Compare commits

...

209 Commits

Author SHA1 Message Date
ad1546f360 Add docker install to build workflow
Some checks failed
Build / Build and Push (push) Failing after 3h2m20s
2024-07-25 22:46:26 -04:00
c911d0166e Revert to previous build workflow
Some checks failed
Build / Build and Push (push) Failing after 1m31s
2024-07-25 21:52:38 -04:00
4f5d81c88b Updated build workflow
Some checks failed
Build / Build and Push (push) Failing after 2m22s
2024-07-25 21:43:39 -04:00
d2a96ccce9 Added environment setup to build workflow
Some checks failed
Build / Build and Push (push) Failing after 3h3m52s
2024-07-25 14:41:11 -04:00
426d9c32de Test build and push workflow action
Some checks failed
Build / Build and Push (push) Failing after 1m6s
2024-07-25 14:36:17 -04:00
60ad417b9e Added workflow troubleshooting
Some checks failed
Build / Build and Push (push) Has been cancelled
2024-07-25 14:25:15 -04:00
4ea34bb60d Added github.workspace to build workflow command
Some checks failed
Build / Build and Push (push) Failing after 1h29m18s
2024-07-24 20:44:46 -04:00
92bdbe8192 Test alternative build method
Some checks failed
Build / Build and Push (push) Failing after 1h28m55s
2024-07-23 21:01:07 -04:00
93b9b26d1d Added bind propogation
Some checks failed
Build / docker-build (push) Failing after 33s
2024-07-22 14:42:27 -04:00
8b7ee2d8f0 Additional build workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 36s
2024-07-22 14:34:04 -04:00
099fc8e394 Additional build workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 34s
2024-07-22 14:32:17 -04:00
8c7c1dc9d7 Additional build workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 34s
2024-07-22 14:16:00 -04:00
6cfbb8559b Added additional build workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 35s
2024-07-22 14:11:03 -04:00
8953c8c5f2 Removed interactive shell and added workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 36s
2024-07-22 14:03:49 -04:00
4df7f89c84 Added interactive session for debugging 2024-07-22 13:57:28 -04:00
e9c0de9e26 Changed build workflow mount point
Some checks failed
Build / docker-build (push) Failing after 36s
2024-07-22 13:46:03 -04:00
0371a26a56 Added additional workflow troubleshooting code
Some checks failed
Build / docker-build (push) Failing after 36s
2024-07-22 13:37:49 -04:00
bc6e61c66c Added additional workflow troubleshooting
Some checks failed
Build / docker-build (push) Failing after 37s
2024-07-22 13:19:27 -04:00
6c4c702722 Added troubleshooting code to build workflow
Some checks failed
Build / docker-build (push) Failing after 33s
2024-07-22 07:38:08 -04:00
f77f96f5a9 Corrected working directory
Some checks failed
Build / docker-build (push) Failing after 34s
2024-07-22 07:36:39 -04:00
53e4bde4c0 Adjusted troubleshooting workflow code
Some checks failed
Build / docker-build (push) Failing after 35s
2024-07-22 07:23:15 -04:00
651a1a3169 Added troubleshooting code to build workflow
Some checks failed
Build / docker-build (push) Failing after 25s
2024-07-22 07:07:39 -04:00
91abd03fd3 Added https to build workflow
Some checks failed
Build / docker-build (push) Failing after 1h21m23s
2024-07-21 21:56:08 -04:00
ab46af6cf9 Removed build workflow dependency installation
Some checks failed
Build / docker-build (push) Failing after 40s
2024-07-21 21:52:50 -04:00
d08422420b Corrected setup-buildx-action version
Some checks failed
Build / docker-build (push) Failing after 46s
2024-07-21 21:44:03 -04:00
0d801f5159 Updated action versions
Some checks failed
Build / docker-build (push) Failing after 24s
2024-07-21 21:41:12 -04:00
f102dad609 Add comment
Some checks failed
Build / docker-build (push) Failing after 1m49s
2024-07-21 21:33:47 -04:00
c6246962d8 Updated build workflow 2024-07-21 21:23:59 -04:00
luigi1111
f0b1b8cd08 Merge pull request #4291
5d5ac6a build: prepare v0.18.3.3 (selsta)
2024-03-12 15:44:16 -04:00
luigi1111
674f69f131 Merge pull request #4290
0c3e230 docker: bump Qt to v5.15.13 (tobtoht)
2024-03-12 15:43:03 -04:00
selsta
5d5ac6a371 build: prepare v0.18.3.3 2024-03-12 20:40:33 +01:00
tobtoht
0c3e2301ed docker: bump Qt to v5.15.13 2024-03-12 18:08:53 +01:00
luigi1111
29e831ccec Merge pull request #4284
df29170 Dockerfile: bump zlib version to 1.3.1 (selsta)
2024-03-09 13:28:47 -05:00
selsta
df291702df Dockerfile: bump zlib version to 1.3.1 2024-03-09 16:52:49 +01:00
luigi1111
ef555a3d72 Merge pull request #4283
cb3d693 build: prepare v0.18.3.2 (selsta)
2024-03-08 20:52:46 -05:00
luigi1111
51a43341c5 Merge pull request #4281
e956b4f tails: fix detection (tobtoht)
2024-03-08 20:52:06 -05:00
luigi1111
ecec7bc4b6 Merge pull request #4278
ca6b38d Remove instructions for Void Linux, add NixOS (Siren)
2024-03-08 20:51:41 -05:00
luigi1111
d809370d8a Merge pull request #4267
8851e71 Update year in Cypyright (inson1)
2024-03-08 20:50:25 -05:00
selsta
cb3d693a26 build: prepare v0.18.3.2 2024-03-09 02:46:45 +01:00
tobtoht
e956b4ff15 tails: fix detection 2024-02-28 15:58:06 +01:00
Siren
ca6b38d25a Remove instructions for Void Linux, add NixOS 2024-02-20 00:01:15 +02:00
inson1
8851e71a8b Update year in Cypyright 2024-01-27 20:12:09 +01:00
luigi1111
dc3441f258 Merge pull request #4262
84ea177 Dockerfile: remove no-asm for constant time AES (selsta)
2024-01-18 18:20:00 -05:00
luigi1111
7791cb08a9 Merge pull request #4261
bd6e5b1 docker: update Qt to 5.15.12 (selsta)
2024-01-18 18:19:39 -05:00
luigi1111
6ed6d6a85e Merge pull request #4260
de9c53b p2pool: update to v3.10 (SChernykh)
2024-01-18 18:19:18 -05:00
luigi1111
df4f68fbf2 Merge pull request #4255
c692fd1 wizard: add Trezor Safe 3 to hardware wallets (selsta)
2024-01-18 18:18:53 -05:00
luigi1111
1cc631d265 Merge pull request #4251
981600c DEPLOY: add missing code syntax highlighting (selsta)
819c2f5 DEPLOY: update instructions for Apple Silicon (selsta)
2024-01-18 18:18:28 -05:00
luigi1111
1fe6765efa Merge pull request #4245
06ed059 cmake: fix deploy by updating libicu version (selsta)
2024-01-18 18:17:45 -05:00
luigi1111
f284677c17 Merge pull request #4243
e41f3cf TxUtils: use regex to check for valid domain (selsta)
2024-01-18 18:17:02 -05:00
selsta
84ea1776ae Dockerfile: remove no-asm for constant time AES 2024-01-14 17:08:55 +01:00
selsta
bd6e5b13cc docker: update Qt to 5.15.12 2024-01-04 13:17:09 +01:00
SChernykh
de9c53bd8d p2pool: update to v3.10 2024-01-04 10:33:40 +01:00
selsta
981600c935 DEPLOY: add missing code syntax highlighting 2023-12-27 04:45:17 +01:00
selsta
c692fd1605 wizard: add Trezor Safe 3 to hardware wallets 2023-12-25 15:33:05 +01:00
selsta
819c2f57be DEPLOY: update instructions for Apple Silicon 2023-12-07 03:29:31 +01:00
selsta
06ed059cba cmake: fix deploy by updating libicu version
msys2 package manager doesn't have mingw64 debug DLLs for libicu anymore so I removed them.
2023-11-14 11:35:46 +01:00
selsta
e41f3cfd13 TxUtils: use regex to check for valid domain 2023-11-13 03:02:54 +01:00
luigi1111
e9cd4588ae Merge pull request #4238
4d39449 p2pool: update to v3.8 (SChernykh)
2023-11-06 09:48:28 -05:00
luigi1111
fdd406ac95 Merge pull request #4234
a3e0519 main: fix qml warning (selsta)
2023-11-06 09:48:06 -05:00
luigi1111
4a7e26b812 Merge pull request #4232
5954d6b cmake: update sodium dll from 23 to 26 (selsta)
2023-11-06 09:47:36 -05:00
luigi1111
99d2884802 Merge pull request #4229
420d2ba Revert 'DaemonManager.cpp: disable JIT on macOS ARM' (selsta)
2023-11-06 09:47:11 -05:00
luigi1111
7a754a4dfc Merge pull request #4223
664d578 workflows: free up diskspace for docker builds (tobtoht)
2023-11-06 09:45:39 -05:00
luigi1111
70a8086366 Merge pull request #4222
33e3f59 docker: update Linux & Windows Qt to 5.15.11 (tobtoht)
2023-11-06 09:45:13 -05:00
SChernykh
4d39449979 p2pool: update to v3.8 2023-10-31 17:56:12 +01:00
selsta
a3e05195c0 main: fix qml warning 2023-10-22 16:41:19 +02:00
selsta
5954d6ba9a cmake: update sodium dll from 23 to 26 2023-10-21 17:02:48 +02:00
selsta
420d2baec2 Revert "DaemonManager.cpp: disable JIT on macOS ARM"
This reverts commit 6c4a8fb819.
2023-10-19 16:21:14 +02:00
tobtoht
664d578f30 workflows: free up diskspace for docker builds 2023-10-05 17:16:52 +02:00
tobtoht
33e3f599e9 docker: update Linux & Windows Qt to 5.15.11 2023-10-04 17:48:36 +02:00
luigi1111
bea3032df9 Merge pull request #4221
ab8ac87 build: prepare v0.18.3.1 (selsta)
2023-10-02 16:41:42 -04:00
selsta
ab8ac87023 build: prepare v0.18.3.1 2023-10-02 21:44:28 +02:00
luigi1111
588b8435b7 Merge pull request #4051
1215a6e Assume untrusted daemon in simple mode (j-berman)
499c2a4 qsTr scan tx error (j-berman)
3b0e66a Display clear error when user scans older tx via untrusted daemon (j-berman)
4cd6652 Update balance after calling scan_tx (j-berman)
2023-09-30 18:34:24 -04:00
luigi1111
8983cae468 Merge pull request #4220
f5cb244 build: prepare v0.18.3.0 (selsta)
2023-09-30 18:24:50 -04:00
luigi1111
3612866f9f Merge pull request #4219
8f7de0e p2pool: update to v3.7 (SChernykh)
2023-09-30 18:24:28 -04:00
luigi1111
beb336cb93 Merge pull request #4217
b60a98a workflows: run flatpak only in main repo (selsta)
2023-09-30 18:23:54 -04:00
luigi1111
90cbe37846 Merge pull request #4216
7040e3b docker: update zlib to 1.3 (selsta)
2023-09-30 18:23:33 -04:00
luigi1111
10984a0a37 Merge pull request #4211
145ea10 flatpak: Start workflow after release (BigmenPixel0)
2023-09-30 18:22:48 -04:00
selsta
f5cb2443d1 build: prepare v0.18.3.0 2023-09-30 23:43:41 +02:00
SChernykh
8f7de0e9fc p2pool: update to v3.7 2023-09-30 12:26:38 +02:00
selsta
b60a98ae6c workflows: run flatpak only in main repo 2023-09-15 21:35:02 +02:00
selsta
7040e3b72f docker: update zlib to 1.3 2023-09-15 20:00:31 +02:00
luigi1111
12a0966eb9 Merge pull request #4213
d338e06 p2pool: update to v3.6.2 (SChernykh)
2023-09-14 22:27:37 -05:00
luigi1111
5ff03786c7 Merge pull request #4210
d42caf1 cmake: update libicu to 73 (selsta)
2023-09-14 22:27:06 -05:00
luigi1111
483b825a2f Merge pull request #4157
6c4a8fb DaemonManager.cpp: disable JIT on macOS ARM (selsta)
2023-09-14 22:26:02 -05:00
luigi1111
ca304fc63d Merge pull request #4156
ad1b53f main: add ARM build tag for auto updater (selsta)
2023-09-14 22:25:31 -05:00
luigi1111
5a1a349977 Merge pull request #4155
a9e0aff workflows: set default arch for macOS bundle (selsta)
2023-09-14 22:25:08 -05:00
luigi1111
5683f76cd0 Merge pull request #4154
371ff61 cmake: copy missing boost lib, run codesign (selsta)
2023-09-14 22:23:23 -05:00
luigi1111
cc7d7da346 Merge pull request #4153
cad8874 README: add mingw-w64-x86_64-pcre for msys2 instructions (selsta)
2023-09-14 22:22:28 -05:00
luigi1111
d10e4d1e50 Merge pull request #4150
5345dcc cmake: add install_name_tool to fix svg rendering (selsta)
2023-09-14 22:22:03 -05:00
SChernykh
d338e06abd p2pool: update to v3.6.2 2023-09-03 17:39:28 +02:00
BigmenPixel0
145ea10d93 flatpak: Start workflow after release 2023-08-18 12:51:39 +05:00
selsta
d42caf1fbc cmake: update libicu to 73 2023-08-18 01:25:18 +02:00
luigi1111
705cc6573f Merge pull request #4151
7765b8b flatpak: Add workflow (BigmenPixel0)
2023-08-17 14:39:09 -05:00
luigi1111
5c3544f211 Merge pull request #4201
a65fbee Fixing broken link to Arch linux package repo (web3d3v)
2023-08-17 10:34:49 -05:00
luigi1111
f859664443 Merge pull request #4190
17e3ed6 p2pool: update to v3.5 (SChernykh)
2023-08-17 10:34:02 -05:00
luigi1111
2d25364f42 Merge pull request #4185
ddcc17b installers/windows/Readme.htm Updated blockchain size and added pruning description (Dvd-Znf)
2023-08-17 10:33:30 -05:00
luigi1111
8323fb02ca Merge pull request #4183
f6549f3 deploy: remove libssp (tobtoht)
2023-08-17 10:32:58 -05:00
luigi1111
d442ca38dc Merge pull request #4177
fa2241f WizardSummary: fix seed language and hide during restore (selsta)
2023-08-17 10:32:31 -05:00
luigi1111
57409a8c47 Merge pull request #4158
6bd11f2 TxUtils: add handleOpenAliasResolution func, simplify code (selsta)
2023-08-17 10:31:52 -05:00
luigi1111
f002987edd Merge pull request #4149
434f548 Prove/Check: clear text fields on wallet close (plowsof)
2023-08-17 10:31:23 -05:00
luigi1111
866a7b3a78 Merge pull request #4147
3331078 p2pool: fix crash without network connection (selsta)
6ac8e7a p2pool: add more detailed failure message (selsta)
2023-08-17 10:31:00 -05:00
luigi1111
f342d46541 Merge pull request #4146
90c4aa4 wizard: add Ledger Stax image (selsta)
2023-08-17 10:30:28 -05:00
luigi1111
f5e016930b Merge pull request #4145
7a4052f readme: tweak build instructions (Botspot)
2023-08-17 10:30:07 -05:00
luigi1111
ac9a305543 Merge pull request #4144
4cbfa5e docker: update OpenSSL to 1.1.1u (tobtoht)
2023-08-17 10:29:22 -05:00
luigi1111
f824aebfaa Merge pull request #4143
b6e336d docker: update Linux & Windows Qt to 5.15.10 (tobtoht)
2023-08-17 10:28:59 -05:00
BigmenPixel0
7765b8b462 flatpak: Add workflow 2023-08-15 19:18:45 +05:00
web3d3v
a65fbee213 Fixing broken link to Arch linux package repo 2023-07-27 06:28:36 +03:00
SChernykh
17e3ed6c97 p2pool: update to v3.5 2023-06-30 19:00:00 +02:00
tobtoht
b6e336dbaf docker: update Linux & Windows Qt to 5.15.10 2023-06-06 21:48:59 +02:00
Dvd-Znf
ddcc17b7b8 installers/windows/Readme.htm Updated blockchain size and added pruning description 2023-06-04 11:28:23 +03:00
tobtoht
f6549f328b deploy: remove libssp
dfa6dd8c26
2023-05-30 20:06:36 +02:00
tobtoht
4cbfa5efb2 docker: update OpenSSL to 1.1.1u 2023-05-30 16:35:36 +02:00
selsta
fa2241f1a5 WizardSummary: fix seed language and hide during restore 2023-05-16 19:55:54 +02:00
selsta
6bd11f2270 TxUtils: add handleOpenAliasResolution func, simplify code 2023-04-21 14:45:09 +02:00
selsta
6c4a8fb819 DaemonManager.cpp: disable JIT on macOS ARM 2023-04-19 16:02:22 +02:00
selsta
ad1b53fa63 main: add ARM build tag for auto updater 2023-04-17 21:56:42 +02:00
selsta
a9e0affe59 workflows: set default arch for macOS bundle 2023-04-17 21:47:30 +02:00
selsta
371ff6105b cmake: copy missing boost lib, run codesign 2023-04-17 21:45:50 +02:00
selsta
cad8874724 README: add mingw-w64-x86_64-pcre for msys2 instructions 2023-04-17 19:28:04 +02:00
selsta
5345dcc11b cmake: add install_name_tool to fix svg rendering 2023-04-15 21:41:29 +02:00
selsta
33310786db p2pool: fix crash without network connection 2023-04-13 15:45:56 +02:00
selsta
6ac8e7a464 p2pool: add more detailed failure message 2023-04-13 15:44:52 +02:00
plowsof
434f548a87 Prove/Check: clear text fields on wallet close 2023-04-10 23:37:29 +01:00
selsta
90c4aa4ec6 wizard: add Ledger Stax image 2023-04-07 23:15:14 +02:00
Botspot
7a4052f3af readme: tweak build instructions 2023-04-06 02:10:50 +02:00
luigi1111
f650e96363 Merge pull request #4137
9f33c77 build: prepare v0.18.2.2 (selsta)
2023-04-03 22:28:56 -04:00
luigi1111
91e3d3ae04 Merge pull request #4142
7d9c128 p2pool: update to v3.2 (SChernykh)
2023-04-03 22:28:24 -04:00
selsta
9f33c77a47 build: prepare v0.18.2.2 2023-04-04 03:01:50 +02:00
SChernykh
7d9c1284f9 p2pool: update to v3.2 2023-03-31 19:50:26 +02:00
luigi1111
84899f4884 Merge pull request #4138
f0ccf29 docker: fix linux build (selsta)
2023-03-28 12:41:18 -04:00
luigi1111
9c9ff13bd2 Merge pull request #4130
5e949db wizard: add Ledger Stax (selsta)
2023-03-28 12:40:51 -04:00
luigi1111
b117b9be61 Merge pull request #4126
bdf14a2 remove output blackballing (tobtoht)
2023-03-28 12:40:07 -04:00
selsta
f0ccf29f48 docker: fix linux build 2023-03-27 16:38:36 +02:00
luigi1111
3e80d563df Merge pull request #4135
cd1eab4 docker: remove duplicate library (selsta)
2023-03-27 10:25:47 -04:00
luigi1111
e4bdff0a0c Merge pull request #4133
4941b49 p2pool: update to v3.1 (SChernykh)
2023-03-27 10:25:22 -04:00
luigi1111
6b82c01891 Merge pull request #4125
511e2f4 README: remove unmaintained debian repo (selsta)
2023-03-27 10:24:15 -04:00
selsta
cd1eab45d0 docker: remove duplicate library 2023-03-24 18:11:09 +01:00
selsta
511e2f467a README: remove unmaintained debian repo 2023-03-21 22:39:07 +01:00
SChernykh
4941b494cc p2pool: update to v3.1 2023-03-18 19:06:56 +01:00
selsta
5e949dbc15 wizard: add Ledger Stax 2023-03-17 21:38:21 +01:00
tobtoht
bdf14a2520 remove output blackballing 2023-03-03 14:02:58 +01:00
luigi1111
710e3f6948 Merge pull request #4109
56a91b2 docker: update hidapi to 0.13.1 on linux (selsta)
2023-02-25 14:54:37 -05:00
luigi1111
6ec9e24f2f Merge pull request #4120
a50491d build: prepare v0.18.2.0 (selsta)
2023-02-25 13:56:09 -05:00
luigi1111
cb9af349cd Merge pull request #4124
8a910ad DaemonManager: remove systemd check (plowsof)
2023-02-25 13:55:42 -05:00
luigi1111
c8687a961c Merge pull request #4121
e8020c8 cmake: fix windows deploy (selsta)
2023-02-25 13:55:14 -05:00
plowsof
8a910ad4c7 DaemonManager: remove systemd check 2023-02-21 00:53:48 +00:00
selsta
e8020c86df cmake: fix windows deploy 2023-02-19 01:29:17 +01:00
selsta
a50491d0b2 build: prepare v0.18.2.0 2023-02-18 21:49:51 +01:00
luigi1111
bdd91b053d Merge pull request #4113
7d2f2ca Utils.js simplify ago func (backfire-monism-net)
2023-02-15 10:53:13 -05:00
luigi1111
4b23148e68 Merge pull request #4112
500dc57 p2pool: update to v3.0 (SChernykh)
2023-02-15 10:52:48 -05:00
luigi1111
e167bbce20 Merge pull request #4103
c437dab docker: update Windows and Linux Qt to 5.15.8 (selsta)
2023-02-15 10:52:02 -05:00
luigi1111
3338bc3741 Merge pull request #4092
587ea68 p2pool: Stop p2pool mining on node switch (devhyper)
2023-02-15 10:51:37 -05:00
luigi1111
af368c93ce Merge pull request #3936
757bc7d p2pool: Restart monerod only when needed and with proper args (devhyper)
2023-02-15 10:51:05 -05:00
luigi1111
5ced4ef547 Merge pull request #3878
198dfb3 wizard: redesign seed page (rating89us)
2023-02-15 10:50:11 -05:00
rating89us
198dfb338c wizard: redesign seed page
- move mnemonic seed
- restore height into a separate page
- pdf template
- seed verification
- responsive UI
- accessibility
2023-02-12 23:25:49 +01:00
devhyper
587ea68a99 p2pool: Stop p2pool mining on node switch 2023-02-02 17:32:06 -08:00
backfire-monism-net
7d2f2cacbf Utils.js simplify ago func 2023-02-01 00:35:13 -08:00
devhyper
757bc7d7b9 p2pool: Restart monerod only when needed and with proper args 2023-01-31 18:23:20 -08:00
SChernykh
500dc573e4 p2pool: update to v3.0 2023-01-31 19:16:24 +01:00
selsta
56a91b2d1b docker: update hidapi to 0.13.1 on linux 2023-01-25 20:09:55 +01:00
selsta
c437dab90f docker: update Windows and Linux Qt to 5.15.8 2023-01-16 17:56:15 +01:00
luigi1111
b7ba9437d8 Merge pull request #4095
7095061 p2pool: update to v2.7 (SChernykh)
2023-01-11 12:18:46 -05:00
luigi1111
76fa06ceab Merge pull request #4091
a3b54a9 Override desktop theming (devhyper)
2023-01-11 12:17:33 -05:00
luigi1111
4487471ada Merge pull request #4088
a01dc06 open-wallet: set network type when using file browser (plowsof)
2023-01-11 12:16:55 -05:00
luigi1111
55a0bc46e4 Merge pull request #4085
c8127f6 main: skip proxy when setting localhost remote node (selsta)
2023-01-11 12:16:27 -05:00
luigi1111
3e17445a4d Merge pull request #4082
4cc6bcb README: add unbound for Windows (selsta)
2023-01-11 12:15:55 -05:00
luigi1111
fc077fa54e Merge pull request #4079
8b682fb workflows: remove unnecessary dependency (selsta)
2023-01-11 12:15:30 -05:00
SChernykh
70950619b8 p2pool: update to v2.7 2023-01-03 21:35:19 +01:00
plowsof
a01dc06a54 open-wallet: set network type when using file browser
Co-authored-by: selsta <selsta@users.noreply.github.com>
2022-12-28 18:46:22 +00:00
devhyper
a3b54a942c Override desktop theming 2022-12-26 11:24:23 +01:00
selsta
c8127f651d main: skip proxy when setting localhost remote node 2022-12-18 17:51:19 +01:00
selsta
4cc6bcbd7d README: add unbound for Windows 2022-12-03 23:22:29 +01:00
selsta
8b682fbd2b workflows: remove unnecessary dependency 2022-12-03 04:35:53 +01:00
luigi1111
48393db2c7 Merge pull request #4078
a9b52f6 Sign/Verify: clear text fields on wallet close (plowsof)
2022-12-01 23:49:50 -06:00
luigi1111
faa4473b17 Merge pull request #4077
7faec48 History: add open folder button after CSV export (selsta)
2022-12-01 23:49:25 -06:00
luigi1111
9924dfe8af Merge pull request #4066
6984bb8 docker: update Qt to 5.15.7 (selsta)
2022-12-01 23:48:54 -06:00
luigi1111
47f336bf33 Merge pull request #4065
c0a739c Transfer: update mixin, silence warning (selsta)
2022-12-01 23:48:33 -06:00
luigi1111
07b75fb692 Merge pull request #4064
2d25454 docker: update zlib on android (selsta)
2022-12-01 23:48:05 -06:00
luigi1111
6c39e82519 Merge pull request #4062
2fa79c6 workflows: verify p2pool hashes (plowsof)
2022-12-01 23:45:58 -06:00
luigi1111
f8178f2e54 Merge pull request #4061
4743e44 deploy: update libicu to 72 (selsta)
2022-12-01 23:45:24 -06:00
luigi1111
75290d2454 Merge pull request #4060
9e2ae68 p2pool: update to 2.6 (selsta)
2022-12-01 23:45:02 -06:00
luigi1111
b180ac8cab Merge pull request #4059
43cc666 README: update Debian dependencies (2l47)
2022-12-01 23:44:28 -06:00
luigi1111
58c7c9ab76 Merge pull request #4055
c390afd main: fix a potential warning (selsta)
2022-12-01 23:43:46 -06:00
luigi1111
b8e6cb221b Merge pull request #4048
83921a4 main: update blockchain size (selsta)
2022-12-01 23:42:49 -06:00
luigi1111
ef2e711e15 Merge pull request #4047
80ade41 DaemonManager: take dataDir into account when sending cmd (selsta)
2022-12-01 23:42:04 -06:00
luigi1111
2ade733867 Merge pull request #4043
7954661 Android: disable simple mode (malinero)
22a1509 Android: hide local node settings (malinero)
499eeee Android: hide log tab (malinero)
8cf76cf Android: hide mining tab (malinero)
6441d99 Android: useRemoteNode default to true (malinero)
2022-12-01 23:40:39 -06:00
luigi1111
1735154b81 Merge pull request #3616
acf876f Docker android: avoid gradle auto download (malinero)
2022-12-01 23:39:28 -06:00
plowsof
a9b52f6752 Sign/Verify: clear text fields on wallet close 2022-12-02 05:32:25 +00:00
selsta
7faec48c0a History: add open folder button after CSV export 2022-12-02 05:56:51 +01:00
selsta
9e2ae684ed p2pool: update to 2.6 2022-11-30 05:30:00 +01:00
selsta
6984bb8113 docker: update Qt to 5.15.7 2022-11-13 02:57:50 +01:00
selsta
c0a739c9fa Transfer: update mixin, silence warning 2022-11-11 01:59:28 +01:00
selsta
2d254542f3 docker: update zlib on android 2022-11-07 06:16:38 +01:00
plowsof
2fa79c670e workflows: verify p2pool hashes 2022-11-04 00:45:35 +00:00
selsta
4743e443dc deploy: update libicu to 72 2022-11-01 00:11:42 +01:00
2l47
43cc666e77 README: update Debian dependencies 2022-10-31 17:07:26 -05:00
j-berman
1215a6e5d8 Assume untrusted daemon in simple mode 2022-10-29 14:25:20 -05:00
j-berman
499c2a47fc qsTr scan tx error 2022-10-29 14:22:37 -05:00
selsta
c390afd258 main: fix a potential warning 2022-10-29 04:55:01 +02:00
j-berman
3b0e66a3d0 Display clear error when user scans older tx via untrusted daemon 2022-10-28 16:14:31 -05:00
j-berman
4cd6652825 Update balance after calling scan_tx 2022-10-20 16:23:10 -05:00
selsta
80ade41905 DaemonManager: take dataDir into account when sending cmd 2022-10-07 02:28:44 +02:00
selsta
83921a4bc8 main: update blockchain size 2022-10-07 02:00:28 +02:00
malinero
acf876f4b2 Docker android: avoid gradle auto download 2022-10-02 11:06:57 +02:00
malinero
7954661100 Android: disable simple mode 2022-10-02 10:40:07 +02:00
malinero
22a1509316 Android: hide local node settings 2022-10-02 10:40:07 +02:00
malinero
499eeee59a Android: hide log tab 2022-10-02 10:40:07 +02:00
malinero
8cf76cf7c2 Android: hide mining tab 2022-10-02 10:40:07 +02:00
malinero
6441d99279 Android: useRemoteNode default to true 2022-10-02 10:39:48 +02:00
218 changed files with 25440 additions and 1242 deletions

View File

@@ -0,0 +1,50 @@
name: Build
run-name: Build Docker Image
on: [push, pull_request]
jobs:
# Build image and push to container registry
docker-build:
runs-on: ubuntu-20.04
name: Build and Push
steps:
# Checkout Repository
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: recursive
# Install Docker
- name: Install docker
uses: papodaca/install-docker-action@main
- name: Set up Docker BuildX
uses: docker/setup-buildx-action@v3
with:
config-inline: |
[registry."git.prettyhefty.com"]
- name: Login to Registry
uses: docker/login-action@v3
with:
registry: https://git.prettyhefty.com
username: ${{ gitea.repository_owner }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Setup environment
run: cp Dockerfile.linux Dockerfile
- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
push: true
tags: bill/monero:test
- name: sha256sum
run: shasum -a256 /workspace/Bill/monero-gui/build/release/bin/monero-wallet-gui
- name: test qml
run: xvfb-run -a /workspace/Bill/monero-gui/build/release/bin/monero-wallet-gui --test-qml

107
.github/qt_helper.py vendored
View File

@@ -1,107 +0,0 @@
#!/usr/bin/env python3
import defusedxml.ElementTree
import hashlib
import mmap
import pathlib
import subprocess
import sys
import urllib.parse
import urllib.request
import xml.etree.ElementTree as ET
MAX_TRIES = 32
def fetch_links_to_archives(os, target, major, minor, patch, toolchain):
MAX_XML_SIZE = 1024 * 1024 * 1024
MIRROR = 'download.qt.io'
base_url = f'https://{MIRROR}/online/qtsdkrepository/{os}/{target}/qt{major}_{major}{minor}{patch}'
url = f'{base_url}/Updates.xml'
for _ in range(MAX_TRIES):
try:
resp = urllib.request.urlopen(url).read(MAX_XML_SIZE)
update_xml = defusedxml.ElementTree.fromstring(resp)
break
except KeyboardInterrupt:
raise
except BaseException as e:
print('error', e, flush=True)
else:
return
for pkg in update_xml.findall('./PackageUpdate'):
name = pkg.find('.//Name')
if name == None:
continue
if name.text != f'qt.qt{major}.{major}{minor}{patch}.{toolchain}':
continue
version = pkg.find('.//Version')
if version == None:
continue
archives = pkg.find('.//DownloadableArchives')
if archives == None or archives.text == None:
continue
for archive in archives.text.split(', '):
url = f'{base_url}/{name.text}/{version.text}{archive}'
file_name = pathlib.Path(urllib.parse.urlparse(url).path).name
yield {'name': file_name, 'url': url}
def download(links):
metalink = ET.Element('metalink', xmlns = "urn:ietf:params:xml:ns:metalink")
for link in links:
file = ET.SubElement(metalink, 'file', name = link['name'])
ET.SubElement(file, 'url').text = link['url']
data = ET.tostring(metalink, encoding='UTF-8', xml_declaration=True)
for _ in range(MAX_TRIES):
with subprocess.Popen([
'aria2c',
'--connect-timeout=8',
'--console-log-level=warn',
'--continue',
'--follow-metalink=mem',
'--max-concurrent-downloads=100',
'--max-connection-per-server=16',
'--max-file-not-found=100',
'--max-tries=100',
'--min-split-size=1MB',
'--retry-wait=1',
'--split=100',
'--summary-interval=0',
'--timeout=8',
'--user-agent=',
'--metalink-file=-',
], stdin=subprocess.PIPE) as aria:
aria.communicate(data)
if aria.wait() == 0:
return True
return False
def calc_hash_sum(files):
obj = hashlib.new('sha256')
for path in files:
with open(path, 'rb') as f:
with mmap.mmap(f.fileno(), 0, mmap.MAP_SHARED, mmap.PROT_READ) as m:
file_hash = hashlib.new('sha256', m).digest()
obj.update(file_hash)
return obj.digest().hex()
def extract_archives(files, out='.', targets=[]):
for path in files:
if subprocess.Popen(['7z', 'x', '-bd', '-y', '-aoa', f'-o{out}', path] + targets,
stdout=subprocess.DEVNULL,
).wait() != 0:
return False
return True
def main():
os, target, version, toolchain, expect = sys.argv[1:]
major, minor, patch = version.split('.')
links = [*fetch_links_to_archives(os, target, major, minor, patch, toolchain)]
print(*[l['url'].encode() for l in links], sep='\n', flush=True)
assert download(links)
result = calc_hash_sum([l['name'] for l in links])
print('result', result, 'expect', expect, flush=True)
assert result == expect
assert extract_archives([l['name'] for l in links], '.', ['{}.{}.{}'.format(major, minor, patch)])
[pathlib.Path(l['name']).unlink() for l in links]
if __name__ == '__main__':
main()

View File

@@ -1,188 +0,0 @@
name: ci/gh-actions/gui
on: [push, pull_request]
jobs:
build-macos:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm libsodium miniupnpc expat libunwind-headers protobuf qt5 pkg-config
- name: build
run: DEV_MODE=ON make release -j3
- name: test qml
run: build/release/bin/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui --test-qml
build-ubuntu:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: remove bundled boost
run: sudo rm -rf /usr/local/share/boost
- name: set apt conf
run: |
echo "Acquire::Retries \"3\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::http::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
echo "Acquire::ftp::Timeout \"120\";" | sudo tee -a /etc/apt/apt.conf.d/80-custom
- name: update apt
run: sudo apt update
- name: install monero dependencies
run: sudo apt -y install build-essential cmake libboost-all-dev miniupnpc libunbound-dev graphviz doxygen libunwind8-dev pkg-config libssl-dev libzmq3-dev libsodium-dev libhidapi-dev libnorm-dev libusb-1.0-0-dev libpgm-dev libprotobuf-dev protobuf-compiler
- name: install monero gui dependencies
run: sudo apt -y install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-xmllistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qt-labs-folderlistmodel qttools5-dev-tools qml-module-qtquick-templates2 libqt5svg5-dev libgcrypt20-dev xvfb
- name: build
run: DEV_MODE=ON make release -j3
- name: test qml
run: xvfb-run -a build/release/bin/monero-wallet-gui --test-qml
build-windows:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: eine/setup-msys2@v2
with:
update: true
install: mingw-w64-x86_64-toolchain make mingw-w64-x86_64-pcre mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-unbound git mingw-w64-x86_64-qt5 mingw-w64-x86_64-libgcrypt
- name: build
run: DEV_MODE=ON make release-win64 -j2
- name: deploy
run: make deploy
working-directory: build/release
- name: test qml
run: build/release/bin/monero-wallet-gui --test-qml
macos-bundle:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: install dependencies
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install boost hidapi openssl zmq libpgm miniupnpc expat libunwind-headers protobuf pkg-config python3 p7zip aria2
- name: install dependencies
run: pip3 install defusedxml
- name: download qt
run: python3 monero-gui/.github/qt_helper.py mac_x64 desktop 5.15.2 clang_64 c384008156fe63cc183bade0316828c598ff3e5074397c0c9ccc588d6cdc5aca
working-directory: ../
- name: build
run: CMAKE_PREFIX_PATH=/Users/runner/work/monero-gui/5.15.2/clang_64 make release -j3
- name: deploy
run: make deploy
working-directory: build/release
- name: test qml
run: build/release/bin/monero-wallet-gui.app/Contents/MacOS/monero-wallet-gui --test-qml
- name: create .tar
run: tar -cf monero-wallet-gui.tar monero-wallet-gui.app
working-directory: build/release/bin
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: build/release/bin/monero-wallet-gui.tar
docker-linux-static:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-linux-static-{hash}
restore-keys: |
docker-linux-static-
- name: install dependencies
run: sudo apt -y install xvfb libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xkb1 libxcb-shape0 libxkbcommon-x11-0
- name: prepare build environment
run: docker build --tag monero:build-env-linux --build-arg THREADS=3 --file Dockerfile.linux .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-linux sh -c 'make release-static -j3'
- name: sha256sum
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui
- name: test qml
run: xvfb-run -a /home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui --test-qml
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: |
/home/runner/work/monero-gui/monero-gui/build/release/bin/monero-wallet-gui
/home/runner/work/monero-gui/monero-gui/build/release/bin/monerod
docker-windows-static:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-windows-static-{hash}
restore-keys: |
docker-windows-static-
- name: prepare build environment
run: docker build --tag monero:build-env-windows --build-arg THREADS=3 --file Dockerfile.windows .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -w /monero-gui monero:build-env-windows sh -c 'make depends root=/depends target=x86_64-w64-mingw32 tag=win-x64 -j3'
- name: sha256sum
run: shasum -a256 /home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: |
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monero-wallet-gui.exe
/home/runner/work/monero-gui/monero-gui/build/x86_64-w64-mingw32/release/bin/monerod.exe
docker-android:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- uses: satackey/action-docker-layer-caching@v0.0.11
if: "!startsWith(github.ref, 'refs/tags/v')"
continue-on-error: true
with:
key: docker-android-static-{hash}
restore-keys: |
docker-android-static-
- name: prepare build environment
run: docker build --tag monero:build-env-android --build-arg THREADS=3 --file Dockerfile.android .
- name: build
run: docker run --rm -v /home/runner/work/monero-gui/monero-gui:/monero-gui -e THREADS=3 monero:build-env-android
- name: Remove obsolete docker layers
run: docker images -a | grep none | awk '{ print $3; }' | xargs docker rmi || true
- uses: actions/upload-artifact@v2
with:
name: ${{ github.job }}
path: /home/runner/work/monero-gui/monero-gui/build/Android/release/android-build/monero-gui.apk
source-archive:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v1
with:
submodules: recursive
- name: archive
run: |
pip install git-archive-all
export VERSION="monero-gui-$(git describe)"
export OUTPUT="$VERSION.tar"
echo "OUTPUT=$OUTPUT" >> $GITHUB_ENV
/home/runner/.local/bin/git-archive-all --prefix "$VERSION/" --force-submodules "$OUTPUT"
- uses: actions/upload-artifact@v2
with:
name: ${{ env.OUTPUT }}
path: /home/runner/work/monero-gui/monero-gui/${{ env.OUTPUT }}

View File

@@ -4,8 +4,8 @@ project(monero-gui)
message(STATUS "Initiating compile using CMake ${CMAKE_VERSION}")
set(VERSION_MAJOR "18")
set(VERSION_MINOR "1")
set(VERSION_REVISION "2")
set(VERSION_MINOR "3")
set(VERSION_REVISION "3")
set(VERSION "0.${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_REVISION}")
option(STATIC "Link libraries statically, requires static Qt")

View File

@@ -10,7 +10,7 @@ Use macOS 10.12 - 10.13 for better backwards compability.
4. Compile `monero-wallet-gui.app`
```
```bash
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release -D ARCH=default -D CMAKE_PREFIX_PATH=~/Qt5.12.8/5.12.8/clang_64 ..
make
@@ -45,3 +45,31 @@ You can check if this step worked by using `codesign -dvvv monero-wallet-gui.app
5. `xcrun altool --notarization-info aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeee -u email@address.org`
6. `xcrun stapler staple -v monero-gui-mac-x64-v0.X.Y.Z.dmg`
## Compile Qt for Apple Silicon
Qt does not offer pre-built binaries for Apple Silicon, they have to be manually compiled.
```bash
git clone https://github.com/qt/qt5.git
cd qt5
git checkout v5.15.9-lts-lgpl
./init-repository
mkdir build
cd build
../configure -prefix /path/to/qt-build-dir/ -opensource -confirm-license -release -nomake examples -nomake tests -no-rpath -skip qtwebengine -skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtnetworkauth -skip qtpurchasing -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qttools -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -skip gamepad -skip serialbus -skip location -skip webengine
make
make install
cd ../qttools/src/linguist/lrelease
../../../../build/qtbase/bin/qmake
make
make install
cd ../../../../qttools/src/macdeployqt/macdeployqt/
../../../../build/qtbase/bin/qmake
make
make install
```
For compilation with Xcode 15 the following patch has to be applied: https://raw.githubusercontent.com/Homebrew/formula-patches/086e8cf/qt5/qt5-qmake-xcode15.patch
The `CMAKE_PREFIX_PATH` has to be set to `/path/to/qt-build-dir/` during monero-gui compilation.

View File

@@ -5,12 +5,12 @@ ARG ANDROID_NDK_REVISION=21e
ARG ANDROID_NDK_HASH=c3ebc83c96a4d7f539bd72c241b2be9dcd29bda9
ARG ANDROID_SDK_REVISION=7302050_latest
ARG ANDROID_SDK_HASH=7a00faadc0864f78edd8f4908a629a46d622375cbe2e5814e82934aebecdb622
ARG QT_VERSION=v5.15.6-lts-lgpl
ARG QT_VERSION=v5.15.7-lts-lgpl
WORKDIR /opt/android
ENV WORKDIR=/opt/android
ENV ANDROID_NATIVE_API_LEVEL=29
ENV ANDROID_NATIVE_API_LEVEL=30
ENV ANDROID_API=android-${ANDROID_NATIVE_API_LEVEL}
ENV ANDROID_CLANG=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}-clang
ENV ANDROID_CLANGPP=aarch64-linux-android${ANDROID_NATIVE_API_LEVEL}-clang++
@@ -43,9 +43,9 @@ RUN echo y | ${ANDROID_SDK_ROOT}/bin/sdkmanager --sdk_root=${ANDROID_SDK_ROOT} "
ENV HOST_PATH=${PATH}
ENV PATH=${TOOLCHAIN_DIR}/aarch64-linux-android/bin:${TOOLCHAIN_DIR}/bin:${PATH}
ARG ZLIB_VERSION=1.2.12
ARG ZLIB_HASH=91844808532e5ce316b3c010929493c0244f3d37593afd6de04f71821d5136d9
RUN wget -q https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz \
ARG ZLIB_VERSION=1.3.1
ARG ZLIB_HASH=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
RUN wget -q https://github.com/madler/zlib/releases/download/v${ZLIB_VERSION}/zlib-${ZLIB_VERSION}.tar.gz \
&& echo "${ZLIB_HASH} zlib-${ZLIB_VERSION}.tar.gz" | sha256sum -c \
&& tar -xzf zlib-${ZLIB_VERSION}.tar.gz \
&& rm zlib-${ZLIB_VERSION}.tar.gz \
@@ -117,15 +117,15 @@ RUN wget -q https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION_D
install -j${THREADS} \
&& rm -rf $(pwd)
ARG OPENSSL_VERSION=1.1.1q
ARG OPENSSL_HASH=d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca
ARG OPENSSL_VERSION=1.1.1u
ARG OPENSSL_HASH=e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6
RUN wget -q https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz \
&& echo "${OPENSSL_HASH} openssl-${OPENSSL_VERSION}.tar.gz" | sha256sum -c \
&& tar -xzf openssl-${OPENSSL_VERSION}.tar.gz \
&& rm openssl-${OPENSSL_VERSION}.tar.gz \
&& cd openssl-${OPENSSL_VERSION} \
&& ANDROID_NDK_HOME=${ANDROID_NDK_ROOT} ./Configure CC=${ANDROID_CLANG} CXX=${ANDROID_CLANGPP} \
android-arm64 no-asm no-shared --static \
android-arm64 no-shared --static \
--with-zlib-include=${PREFIX}/include --with-zlib-lib=${PREFIX}/lib \
--prefix=${PREFIX} --openssldir=${PREFIX} \
&& sed -i 's/CNF_EX_LIBS=-ldl -pthread//g;s/BIN_CFLAGS=-pie $(CNF_CFLAGS) $(CFLAGS)//g' Makefile \
@@ -206,6 +206,16 @@ RUN git clone -b v3.24.2 --depth 1 https://github.com/Kitware/CMake \
&& PATH=${HOST_PATH} make -j${THREADS} install \
&& rm -rf $(pwd)
RUN GRADLE_VERSION=5.6.4 \
&& GRADLE_HASH=1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d \
&& wget -q https\://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip \
&& echo "${GRADLE_HASH} gradle-${GRADLE_VERSION}-bin.zip" | sha256sum -c \
&& GRADLE_LOCAL_PATH=gradle/wrapper/dists/gradle-${GRADLE_VERSION}-bin/bxirm19lnfz6nurbatndyydux \
&& mkdir -p ${GRADLE_LOCAL_PATH} \
&& mv gradle-${GRADLE_VERSION}-bin.zip ${GRADLE_LOCAL_PATH}
ENV GRADLE_USER_HOME=${WORKDIR}/gradle
CMD set -ex \
&& cd /monero-gui \
&& mkdir -p build/Android/release \

View File

@@ -1,7 +1,7 @@
FROM ubuntu:16.04
ARG THREADS=1
ARG QT_VERSION=v5.15.6-lts-lgpl
ARG QT_VERSION=v5.15.13-lts-lgpl
ENV CFLAGS="-fPIC"
ENV CPPFLAGS="-fPIC"
@@ -113,9 +113,9 @@ RUN git clone -b xkbcommon-0.5.0 --depth 1 https://github.com/xkbcommon/libxkbco
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b v1.2.11 --depth 1 https://github.com/madler/zlib && \
RUN git clone -b v1.3 --depth 1 https://github.com/madler/zlib && \
cd zlib && \
git reset --hard cacf7f1d4e3d44d871b605da3b647f07d718623f && \
git reset --hard 09155eaa2f9270dc4ed1fa13e2b4b2613e6e4851 && \
./configure --static && \
make -j$THREADS && \
make -j$THREADS install && \
@@ -130,11 +130,12 @@ RUN git clone -b VER-2-10-2 --depth 1 https://git.savannah.gnu.org/git/freetype/
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b R_2_2_9 --depth 1 https://github.com/libexpat/libexpat && \
cd libexpat/expat && \
git reset --hard a7bc26b69768f7fb24f0c7976fae24b157b85b13 && \
./buildconf.sh && \
./configure --disable-shared --enable-static && \
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 && \
echo "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16 expat-2.4.8.tar.bz2" | sha256sum -c && \
tar -xf expat-2.4.8.tar.bz2 && \
rm expat-2.4.8.tar.bz2 && \
cd expat-2.4.8 && \
./configure --enable-static --disable-shared --prefix=/usr && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
@@ -164,22 +165,12 @@ RUN wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_
./b2 --with-atomic --with-system --with-filesystem --with-thread --with-date_time --with-chrono --with-regex --with-serialization --with-program_options --with-locale variant=release link=static runtime-link=static cflags="${CFLAGS}" cxxflags="${CXXFLAGS}" install -a --prefix=/usr && \
rm -rf $(pwd)
RUN wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz && \
echo "d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca openssl-1.1.1q.tar.gz" | sha256sum -c && \
tar -xzf openssl-1.1.1q.tar.gz && \
rm openssl-1.1.1q.tar.gz && \
cd openssl-1.1.1q && \
./config no-asm no-shared no-zlib-dynamic --prefix=/usr --openssldir=/usr && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN wget https://github.com/libexpat/libexpat/releases/download/R_2_4_8/expat-2.4.8.tar.bz2 && \
echo "a247a7f6bbb21cf2ca81ea4cbb916bfb9717ca523631675f99b3d4a5678dcd16 expat-2.4.8.tar.bz2" | sha256sum -c && \
tar -xf expat-2.4.8.tar.bz2 && \
rm expat-2.4.8.tar.bz2 && \
cd expat-2.4.8 && \
./configure --enable-static --disable-shared --prefix=/usr && \
RUN wget https://www.openssl.org/source/openssl-1.1.1u.tar.gz && \
echo "e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6 openssl-1.1.1u.tar.gz" | sha256sum -c && \
tar -xzf openssl-1.1.1u.tar.gz && \
rm openssl-1.1.1u.tar.gz && \
cd openssl-1.1.1u && \
./config no-shared no-zlib-dynamic --prefix=/usr --openssldir=/usr && \
make -j$THREADS && \
make -j$THREADS install && \
rm -rf $(pwd)
@@ -242,9 +233,9 @@ RUN git clone -b v1.0.26 --depth 1 https://github.com/libusb/libusb && \
make -j$THREADS install && \
rm -rf $(pwd)
RUN git clone -b hidapi-0.12.0 --depth 1 https://github.com/libusb/hidapi && \
RUN git clone -b hidapi-0.13.1 --depth 1 https://github.com/libusb/hidapi && \
cd hidapi && \
git reset --hard 76108294092c023a4ece99eb3219559cea0d5066 && \
git reset --hard 4ebce6b5059b086d05ca7e091ce04a5fd08ac3ac && \
./bootstrap && \
./configure --disable-shared --enable-static && \
make -j$THREADS && \

View File

@@ -1,7 +1,7 @@
FROM ubuntu:20.04
ARG THREADS=1
ARG QT_VERSION=v5.15.6-lts-lgpl
ARG QT_VERSION=v5.15.13-lts-lgpl
ENV SOURCE_DATE_EPOCH=1397818193
RUN apt update && \
@@ -12,9 +12,9 @@ RUN apt update && \
RUN update-alternatives --set x86_64-w64-mingw32-g++ $(which x86_64-w64-mingw32-g++-posix) && \
update-alternatives --set x86_64-w64-mingw32-gcc $(which x86_64-w64-mingw32-gcc-posix)
RUN git clone -b v0.18.1.0 --depth 1 https://github.com/monero-project/monero && \
RUN git clone -b v0.18.2.0 --depth 1 https://github.com/monero-project/monero && \
cd monero && \
git reset --hard 727bc5b6878170332bf2d838f2c60d1c8dc685c8 && \
git reset --hard 99be9a044f3854f339548e2d99c539c18d7b1b01 && \
cp -a contrib/depends / && \
cd .. && \
rm -rf monero

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014-2018, The Monero Project
Copyright (c) 2014-2024, The Monero Project
All rights reserved.

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,6 +1,6 @@
# Monero GUI
Copyright (c) 2014-2022, The Monero Project
Copyright (c) 2014-2024, The Monero Project
## Table of Contents
* [Development resources](#development-resources)
@@ -86,9 +86,8 @@ Status of the translations:
## Installing the Monero GUI from a package
Packages are available for
* Arch Linux: [monero-gui](https://www.archlinux.org/packages/community/x86_64/monero-gui/)
* Debian: See the [whonix/monero-gui repository](https://gitlab.com/whonix/monero-gui#how-to-install-monero-using-apt-get)
* Void Linux: `xbps-install -S monero-gui`
* Arch Linux: [monero-gui](https://archlinux.org/packages/extra/x86_64/monero-gui/)
* NixOS: `nix-shell -p monero-gui`
* Flatpak: [Monero GUI](https://flathub.org/apps/details/org.getmonero.Monero)
* GuixSD: `guix package -i monero-gui`
* macOS (homebrew): `brew install --cask monero-wallet`
@@ -108,7 +107,7 @@ Packaging for your favorite distribution would be a welcome contribution!
```
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
```
\* `master` - replace with the desired version tag (e.g. `v0.18.1.2`) to build the release binaries.
\* `master` - replace with the desired version tag (e.g. `v0.18.3.3`) to build the release binaries.
3. Prepare build environment
```
cd monero-gui
@@ -131,7 +130,7 @@ Packaging for your favorite distribution would be a welcome contribution!
```
git clone --branch master --recursive https://github.com/monero-project/monero-gui.git
```
\* `master` - replace with the desired version tag (e.g. `v0.18.1.2`) to build the release binaries.
\* `master` - replace with the desired version tag (e.g. `v0.18.3.3`) to build the release binaries.
3. Prepare build environment
```
cd monero-gui
@@ -221,15 +220,15 @@ Packaging for your favorite distribution would be a welcome contribution!
2. Install Qt:
*Note*: The Qt 5.9.7 or newer requirement makes **some** distributions (mostly based on debian, like Ubuntu 16.x or Linux Mint 18.x) obsolete due to their repositories containing an older Qt version.
*Note*: The Qt 5.9.7 or newer requirement makes **some** distributions (mostly based on Debian, like Ubuntu 16.x or Linux Mint 18.x) obsolete due to their repositories containing an older Qt version.
The recommended way is to install 5.9.7 from the [official Qt installer](https://www.qt.io/download-qt-installer) or [compiling it yourself](https://wiki.qt.io/Install_Qt_5_on_Ubuntu). This ensures you have the correct version. Higher versions *can* work but as it differs from our production build target, slight differences may occur.
The following instructions will fetch Qt from your distribution's repositories instead. Take note of what version it installs. Your mileage may vary.
- For Ubuntu 17.10+
- For Debian distributions (Debian, Ubuntu, Mint, Tails...)
`sudo apt install qtbase5-dev qt5-default qtdeclarative5-dev qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-xmllistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qt-labs-folderlistmodel qttools5-dev-tools qml-module-qtquick-templates2 libqt5svg5-dev`
`sudo apt install qtbase5-dev qtdeclarative5-dev qml-module-qtqml-models2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-xmllistmodel qml-module-qt-labs-settings qml-module-qt-labs-platform qml-module-qt-labs-folderlistmodel qttools5-dev-tools qml-module-qtquick-templates2 libqt5svg5-dev`
- For Gentoo
@@ -240,7 +239,7 @@ The following instructions will fetch Qt from your distribution's repositories i
- Optional : To build the flag `WITH_SCANNER`
- For Ubuntu
- For Debian distributions (Debian, Ubuntu, Mint, Tails...)
`sudo apt install qtmultimedia5-dev qml-module-qtmultimedia`
@@ -258,18 +257,10 @@ The following instructions will fetch Qt from your distribution's repositories i
4. Build
If on x86-64:
```
make release -j4
```
If on ppc64le:
```
make release-linux-ppc64le -j4
```
\* `4` - number of CPU threads to use
\* Add `CMAKE_PREFIX_PATH` environment variable to set a custom Qt install directory, e.g. `CMAKE_PREFIX_PATH=$HOME/Qt/5.9.7/gcc_64 make release -j4`
@@ -319,7 +310,7 @@ The Monero GUI on Windows is 64 bits only; 32-bit Windows GUI builds are not off
3. Install MSYS2 packages for Monero dependencies; the needed 64-bit packages have `x86_64` in their names
```
pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-libgcrypt
pacman -S mingw-w64-x86_64-toolchain make mingw-w64-x86_64-cmake mingw-w64-x86_64-boost mingw-w64-x86_64-openssl mingw-w64-x86_64-zeromq mingw-w64-x86_64-libsodium mingw-w64-x86_64-hidapi mingw-w64-x86_64-protobuf-c mingw-w64-x86_64-libusb mingw-w64-x86_64-libgcrypt mingw-w64-x86_64-unbound mingw-w64-x86_64-pcre
```
You find more details about those dependencies in the [Monero documentation](https://github.com/monero-project/monero). Note that that there is no more need to compile Boost from source; like everything else, you can install it now with a MSYS2 package.

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2014-2019, The Monero Project
# Copyright (c) 2014-2024, The Monero Project
#
# All rights reserved.
#

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2014-2019, The Monero Project
# Copyright (c) 2014-2024, The Monero Project
#
# All rights reserved.
#

View File

@@ -17,7 +17,33 @@ if(APPLE OR (WIN32 AND NOT STATIC))
add_custom_command(TARGET deploy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${_qt_svg_dylib} $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/
COMMENT "Copying libqsvg.dylib"
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtGui.framework/Versions/5/QtGui" "@executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtWidgets.framework/Versions/5/QtWidgets" "@executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtSvg.framework/Versions/5/QtSvg" "@executable_path/../Frameworks/QtSvg.framework/Versions/5/QtSvg" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMAND ${CMAKE_INSTALL_NAME_TOOL} -change "${CMAKE_PREFIX_PATH}/lib/QtCore.framework/Versions/5/QtCore" "@executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore" $<TARGET_FILE_DIR:monero-wallet-gui>/../PlugIns/imageformats/libqsvg.dylib
COMMENT "Copying libqsvg.dylib, running install_name_tool"
)
endif()
# libbost_filesyste-mt.dylib has a dependency on libboost_atomic-mt.dylib, maydeployqt does not copy it by itself
find_package(Boost COMPONENTS atomic)
get_target_property(BOOST_ATOMIC_LIB_PATH Boost::atomic LOCATION)
if(EXISTS ${BOOST_ATOMIC_LIB_PATH})
add_custom_command(TARGET deploy
POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy "${BOOST_ATOMIC_LIB_PATH}" "$<TARGET_FILE_DIR:monero-wallet-gui>/../Frameworks/"
COMMENT "Copying libboost_atomic-mt.dylib"
)
endif()
# Apple Silicon requires all binaries to be codesigned
find_program(CODESIGN_EXECUTABLE NAMES codesign)
if(CODESIGN_EXECUTABLE)
add_custom_command(TARGET deploy
POST_BUILD
COMMAND "${CODESIGN_EXECUTABLE}" --force --deep --sign - "$<TARGET_FILE_DIR:monero-wallet-gui>/../.."
COMMENT "Running codesign..."
)
endif()
@@ -42,7 +68,7 @@ if(APPLE OR (WIN32 AND NOT STATIC))
zlib1.dll
libzstd.dll
libwinpthread-1.dll
libtiff-5.dll
libtiff-6.dll
libstdc++-6.dll
libpng16-16.dll
libpcre16-0.dll
@@ -58,37 +84,25 @@ if(APPLE OR (WIN32 AND NOT STATIC))
libglib-2.0-0.dll
libfreetype-6.dll
libbz2-1.dll
libssp-0.dll
libpcre2-16-0.dll
libhidapi-0.dll
libdouble-conversion.dll
libgcrypt-20.dll
libgpg-error-0.dll
libsodium-23.dll
libsodium-26.dll
libzmq.dll
#platform files
libgcc_s_seh-1.dll
#openssl files
libssl-1_1-x64.dll
libcrypto-1_1-x64.dll
libssl-3-x64.dll
libcrypto-3-x64.dll
#icu
libicudt74.dll
libicuin74.dll
libicuio74.dll
libicutu74.dll
libicuuc74.dll
)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
list(APPEND WIN_DEPLOY_DLLS
libicudtd71.dll
libicuind71.dll
libicuiod71.dll
libicutud71.dll
libicuucd71.dll
)
else() # assume release
list(APPEND WIN_DEPLOY_DLLS
libicudt71.dll
libicuin71.dll
libicuio71.dll
libicutu71.dll
libicuuc71.dll
)
endif()
list(TRANSFORM WIN_DEPLOY_DLLS PREPEND "$ENV{MSYSTEM_PREFIX}/bin/")
add_custom_command(TARGET deploy
POST_BUILD

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2014-2019, The Monero Project
# Copyright (c) 2014-2024, The Monero Project
#
# All rights reserved.
#

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2020, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -66,7 +66,7 @@ Item {
anchors.fill: parent
color: buttonArea.containsMouse ? MoneroComponents.Style.buttonInlineBackgroundColorHover : MoneroComponents.Style.buttonInlineBackgroundColor
radius: 4
border.width: parent.focus && parent.enabled ? 1 : 0
MoneroComponents.TextPlain {
id: inlineText

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2015, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2020, The Monero Project
// Copyright (c) 2020-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2020, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -40,6 +40,8 @@ ColumnLayout {
default property alias content: inlineButtons.children
property alias input: input
property bool inputHasFocus: input.activeFocus
property bool tabNavigationEnabled: true
property alias text: input.text
property int inputPaddingLeft: 10
@@ -109,6 +111,8 @@ ColumnLayout {
signal editingFinished();
signal accepted();
signal textUpdated();
signal backtabPressed();
signal tabPressed();
onActiveFocusChanged: activeFocus && input.forceActiveFocus()
onTextUpdated: {
@@ -212,8 +216,18 @@ ColumnLayout {
MoneroComponents.Input {
id: input
KeyNavigation.backtab: item.KeyNavigation.backtab
KeyNavigation.tab: item.KeyNavigation.tab
Keys.onBacktabPressed: {
item.backtabPressed();
if (item.KeyNavigation.backtab) {
item.KeyNavigation.backtab.forceActiveFocus()
}
}
Keys.onTabPressed: {
item.tabPressed();
if (item.KeyNavigation.tab) {
item.KeyNavigation.tab.forceActiveFocus()
}
}
Layout.fillWidth: true
Layout.preferredHeight: inputHeight

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2021, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -201,6 +201,7 @@ Rectangle {
daemonManager.sendCommandAsync(
["set_bootstrap_daemon", "auto"],
appWindow.currentWallet.nettype,
persistentSettings.blockchainDataDir,
callback);
refreshMouseArea.visible = false;

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2020, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2020, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -21,6 +21,14 @@ Text {
font.pixelSize: 14
textFormat: Text.PlainText
Rectangle {
width: root.contentWidth
height: root.height
anchors.left: parent.left
anchors.top: parent.top
color: root.focus ? MoneroComponents.Style.titleBarButtonHoverColor : "transparent"
}
MoneroEffects.ColorTransition {
enabled: root.themeTransition
themeTransition: root.themeTransition

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2020, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2020, The Monero Project
// Copyright (c) 2020-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

BIN
images/ledgerStax.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
images/trezor3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 301 KiB

After

Width:  |  Height:  |  Size: 301 KiB

BIN
images/verify-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 956 B

BIN
images/verify-white@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
images/verify.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 854 B

BIN
images/verify@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
images/write-down-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 779 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
images/write-down.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 728 B

BIN
images/write-down@2x.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@@ -1,4 +1,4 @@
Copyright (c) 2014-2020, The Monero Project
Copyright (c) 2014-2024, The Monero Project
All rights reserved.

View File

@@ -1,5 +1,5 @@
; Monero Fluorine Fermi GUI Wallet Installer for Windows
; Copyright (c) 2017-2020, The Monero Project
; Copyright (c) 2017-2024, The Monero Project
; See LICENSE
#define GuiVersion GetFileVersion("bin\monero-wallet-gui.exe")
@@ -167,7 +167,6 @@ Type: files; Name: "{app}\libstdc++-6.dll"
Type: files; Name: "{app}\libtiff-5.dll"
Type: files; Name: "{app}\libwinpthread-1.dll"
Type: files; Name: "{app}\zlib1.dll"
Type: files; Name: "{app}\libssp-0.dll"
Type: files; Name: "{app}\libhidapi-0.dll"
Type: files; Name: "{app}\libeay32.dll"
Type: files; Name: "{app}\ssleay32.dll"

View File

@@ -1,6 +1,6 @@
# Monero GUI Wallet Windows Installer #
Copyright (c) 2017-2020, The Monero Project
Copyright (c) 2017-2024, The Monero Project
## Introduction ##

View File

@@ -6,7 +6,7 @@
<body style="font-family: Arial, Helvetica, sans-serif">
<h1>Monero Fluorine Fermi GUI Wallet</h1>
<p>Copyright (c) 2014-2020, The Monero Project</p>
<p>Copyright (c) 2014-2024, The Monero Project</p>
<h2>Preface</h2>
@@ -56,11 +56,14 @@
i.e. let it download the blockchain and store it locally on your computer, or you can configure your wallet to
access a remote <i>open node</i> to get indirect access to the blockchain.</p>
<p>Working with your own copy of the blockchain is <b>preferred</b>: It strengthens the Monero network, and it
<p>You can also <i>Prune</i> the blockchain in order to save 2/3 of storage space while keeping the full transaction history.
More information regarding how pruning works can be found <a href="https://www.getmonero.org/resources/moneropedia/pruning.html">here</a>.</p>
<p>Working with your own copy of the blockchain, even pruned, is <b>preferred</b>: It strengthens the Monero network, and it
provides the most security and privacy possible for you.</p>
<p>However if your Internet access makes it difficult to run a full node, or if you have simply no room to store
the blockchain locally (about 90 GB in May 2020, and of course growing), you can compromise and try to connect
the blockchain locally (about 160 GB in June 2023, and of course growing), you can compromise and try to connect
to a remote node. One way of finding such a node is checking
<a href="https://moneroworld.com/#nodes">this page</a>.
</p>

View File

@@ -70,9 +70,43 @@ function checkSignature(signature) {
}
function isValidOpenAliasAddress(address) {
address = address.trim()
// we can get an awful lot of valid domains, including non ASCII chars... accept anything
// there should be something after the .
// make sure it is not some kind of floating number
return address.length > 2 && isNaN(parseFloat(address)) && address.indexOf('.') >= 0
var regex = /^[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+$/; // Basic domain structure
if (!regex.test(address)) {
return false;
}
const lastPart = address.substring(address.lastIndexOf('.') + 1);
return isNaN(parseInt(lastPart)) || lastPart !== parseInt(lastPart).toString();
}
function handleOpenAliasResolution(address, descriptionText) {
const result = walletManager.resolveOpenAlias(address);
if (!result) {
return { message: qsTr("No address found") };
}
const [isDnssecValid, resolvedAddress] = result.split("|");
const isAddressValid = walletManager.addressValid(resolvedAddress, appWindow.persistentSettings.nettype);
let updatedDescriptionText = descriptionText;
if (isDnssecValid === "true") {
if (isAddressValid) {
updatedDescriptionText = descriptionText ? `${address} ${descriptionText}` : address;
return { address: resolvedAddress, description: updatedDescriptionText };
} else {
return { message: qsTr("No valid address found at this OpenAlias address") };
}
} else if (isDnssecValid === "false") {
if (isAddressValid) {
return {
address: resolvedAddress,
message: qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"),
};
} else {
return { message: qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed") };
}
} else {
return { message: qsTr("Internal error") };
}
}

View File

@@ -57,12 +57,12 @@ function ago(epoch) {
if(delta < 60)
return qsTr("%n second(s) ago", "0", Math.floor(delta))
else if (delta >= 60 && delta <= 3600)
else if (delta < 3600)
return qsTr("%n minute(s) ago", "0", Math.floor(delta / 60))
else if (delta >= 3600 && delta <= 86400)
return qsTr("%n hour(s) ago", "0", Math.floor(delta / 60 / 60))
else if (delta >= 86400)
return qsTr("%n day(s) ago", "0", Math.floor(delta / 24 / 60 / 60))
else if (delta < 86400)
return qsTr("%n hour(s) ago", "0", Math.floor(delta / 3600))
else
return qsTr("%n day(s) ago", "0", Math.floor(delta / 86400))
}
function netTypeToString(){

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -94,7 +94,7 @@ ApplicationWindow {
readonly property string localDaemonAddress : "localhost:" + getDefaultDaemonRpcPort(persistentSettings.nettype)
property string currentDaemonAddress;
property int disconnectedEpoch: 0
property int estimatedBlockchainSize: persistentSettings.pruneBlockchain ? 40 : 105 // GB
property int estimatedBlockchainSize: persistentSettings.pruneBlockchain ? 55 : 150 // GB
property alias viewState: rootItem.state
property string prevSplashText;
property bool splashDisplayedBeforeButtonRequest;
@@ -379,7 +379,7 @@ ApplicationWindow {
}
function isTrustedDaemon() {
return !persistentSettings.useRemoteNode || remoteNodesModel.currentRemoteNode().trusted;
return appWindow.walletMode >= 2 && (!persistentSettings.useRemoteNode || remoteNodesModel.currentRemoteNode().trusted);
}
function usefulName(path) {
@@ -469,7 +469,7 @@ ApplicationWindow {
// If wallet isnt connected, advanced wallet mode and no daemon is running - Ask
if (appWindow.walletMode >= 2 && !persistentSettings.useRemoteNode && !walletInitialized && disconnected) {
daemonManager.runningAsync(persistentSettings.nettype, function(running) {
daemonManager.runningAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, function(running) {
if (!running) {
daemonManagerDialog.open();
}
@@ -586,6 +586,9 @@ ApplicationWindow {
}
function onWalletUpdate() {
if (!currentWallet)
return;
console.log(">>> wallet updated")
updateBalance();
// Update history if new block found since last update
@@ -602,6 +605,9 @@ ApplicationWindow {
function connectRemoteNode() {
console.log("connecting remote node");
p2poolManager.exit();
p2poolManager.getStatus();
const callback = function() {
persistentSettings.useRemoteNode = true;
const remoteNode = remoteNodesModel.currentRemoteNode();
@@ -630,6 +636,10 @@ ApplicationWindow {
return;
console.log("disconnecting remote node");
p2poolManager.exit();
p2poolManager.getStatus();
persistentSettings.useRemoteNode = false;
currentDaemonAddress = localDaemonAddress
currentWallet.setDaemonLogin("", "");
@@ -694,7 +704,8 @@ ApplicationWindow {
// Daemon connected
leftPanel.networkStatus.connected = currentWallet ? currentWallet.connected() : Wallet.ConnectionStatus_Disconnected
currentWallet.refreshHeightAsync();
if (currentWallet)
currentWallet.refreshHeightAsync();
}
function startDaemon(flags){
@@ -714,7 +725,7 @@ ApplicationWindow {
appWindow.showProcessingSplash(qsTr("Waiting for daemon to stop..."));
}
p2poolManager.exit()
daemonManager.stopAsync(persistentSettings.nettype, function(result) {
daemonManager.stopAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, function(result) {
daemonStartStopInProgress = 0;
if (splash) {
hideProcessingSplash();
@@ -747,6 +758,12 @@ ApplicationWindow {
currentWallet.startRefresh();
informationPopup.title = qsTr("Daemon failed to start") + translationManager.emptyString;
informationPopup.text = error + ".\n\n" + qsTr("Please check your wallet and daemon log for errors. You can also try to start %1 manually.").arg((isWindows)? "monerod.exe" : "monerod")
if (middlePanel.advancedView.miningView.stopMiningEnabled == true) {
walletManager.stopMining()
p2poolManager.exit()
middlePanel.advancedView.miningView.update()
informationPopup.text += qsTr("\n\nExiting p2pool. Please check that port 18083 is available.") + translationManager.emptyString;
}
informationPopup.icon = StandardIcon.Critical
informationPopup.onCloseCallback = null
informationPopup.open();
@@ -1118,6 +1135,7 @@ ApplicationWindow {
middlePanel.transferView.clearFields();
middlePanel.receiveView.clearFields();
middlePanel.historyView.clearFields();
middlePanel.advancedView.clearFields();
// disable timers
userInActivityTimer.running = false;
});
@@ -1395,7 +1413,7 @@ ApplicationWindow {
property bool historyShowAdvanced: false
property bool historyHumanDates: true
property string blockchainDataDir: ""
property bool useRemoteNode: false
property bool useRemoteNode: isAndroid
property string remoteNodeAddress: "" // TODO: drop after v0.17.2.0 release
property string remoteNodesSerialized: JSON.stringify({
selected: 0,
@@ -1445,8 +1463,15 @@ ApplicationWindow {
function getWalletProxyAddress() {
if (!useRemoteNode) {
return "";
} else {
const remoteAddress = remoteNodesModel.currentRemoteNode().address;
// skip proxy when using localhost remote node
if (remoteAddress.startsWith("127.0.0.1:") || remoteAddress.startsWith("localhost:")) {
return "";
} else {
return getProxyAddress();
}
}
return getProxyAddress();
}
Component.onCompleted: {
@@ -2141,7 +2166,7 @@ ApplicationWindow {
if (currentWallet) {
handler(!currentWallet.disconnected);
} else {
daemonManager.runningAsync(persistentSettings.nettype, handler);
daemonManager.runningAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, handler);
}
}
}
@@ -2164,7 +2189,7 @@ ApplicationWindow {
function getBuildTag() {
if (isMac) {
return "mac-x64";
return isARM ? "mac-armv8" : "mac-x64";
}
if (isWindows) {
return oshelper.installed ? "install-win-x64" : "win-x64";

2
monero

Submodule monero updated: 66184f3085...81d4db08eb

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -387,34 +387,17 @@ Rectangle {
visible: TxUtils.isValidOpenAliasAddress(addressLine.text)
enabled : visible
onClicked: {
var result = walletManager.resolveOpenAlias(addressLine.text)
if (result) {
var parts = result.split("|")
if (parts.length === 2) {
var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.nettype)
if (parts[0] === "true") {
if (address_ok) {
// prepend openalias to description
descriptionLine.text = descriptionLine.text ? addressLine.text + " " + descriptionLine.text : addressLine.text
addressLine.text = parts[1]
} else {
root.oa_message(qsTr("No valid address found at this OpenAlias address"))
}
} else if (parts[0] === "false") {
if (address_ok) {
addressLine.text = parts[1]
root.oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
} else {
root.oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
}
} else {
root.oa_message(qsTr("Internal error"))
}
} else {
root.oa_message(qsTr("Internal error"))
const response = TxUtils.handleOpenAliasResolution(addressLine.text, descriptionLine.text);
if (response) {
if (response.message) {
oa_message(response.message);
}
if (response.address) {
addressLine.text = response.address;
}
if (response.description) {
descriptionLine.text = response.description;
}
} else {
root.oa_message(qsTr("No address found"))
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2021, The Monero Project
// Copyright (c) 2021-2024, The Monero Project
//
// All rights reserved.
//
@@ -40,6 +40,8 @@ ColumnLayout {
spacing: 0
property int panelHeight: 900
property alias miningView: stateView.miningView
property alias signView: stateView.signView
property alias prooveView: stateView.prooveView
property alias state: stateView.state
MoneroComponents.Navbar {
@@ -52,6 +54,7 @@ ColumnLayout {
active: state == "Mining"
text: qsTr("Mining") + translationManager.emptyString
onSelected: state = "Mining"
visible: !isAndroid
}
MoneroComponents.NavbarItem {
active: state == "Prove"
@@ -81,7 +84,7 @@ ColumnLayout {
Layout.fillWidth: true
Layout.preferredHeight: panelHeight
color: "transparent"
state: "Mining"
state: isAndroid ? "Prove" : "Mining"
onCurrentViewChanged: {
if (previousView) {
@@ -120,7 +123,7 @@ ColumnLayout {
StackView {
id: stackView
initialItem: stateView.miningView
initialItem: isAndroid ? stateView.prooveView : stateView.miningView
anchors.fill: parent
clip: false // otherwise animation will affect left panel
@@ -146,4 +149,10 @@ ColumnLayout {
}
}
}
function clearFields() {
signView.clearFields();
prooveView.clearFields();
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -1765,18 +1765,25 @@ Rectangle {
var written = currentWallet.history.writeCSV(currentWallet.currentSubaddressAccount, dataDir);
if(written !== ""){
informationPopup.title = qsTr("Success") + translationManager.emptyString;
confirmationDialog.title = qsTr("Success") + translationManager.emptyString;
var text = qsTr("CSV file written to: %1").arg(written) + "\n\n"
text += qsTr("Tip: Use your favorite spreadsheet software to sort on blockheight.") + "\n\n" + translationManager.emptyString;
informationPopup.text = text;
informationPopup.icon = StandardIcon.Information;
confirmationDialog.text = text;
confirmationDialog.icon = StandardIcon.Information;
confirmationDialog.cancelText = qsTr("Open folder") + translationManager.emptyString;
confirmationDialog.onAcceptedCallback = null;
confirmationDialog.onRejectedCallback = function() {
oshelper.openContainingFolder(written);
}
confirmationDialog.open();
} else {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("Error exporting transaction data.") + "\n\n" + translationManager.emptyString;
informationPopup.icon = StandardIcon.Critical;
informationPopup.onCloseCallback = null;
informationPopup.open();
}
informationPopup.onCloseCallback = null;
informationPopup.open();
}
Component.onCompleted: {
var _folder = 'file://' + appWindow.accountsDir;

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -41,7 +41,8 @@ Rectangle {
property alias miningHeight: mainLayout.height
property double currentHashRate: 0
property int threads: idealThreadCount / 2
property alias stopMiningEnabled: stopSoloMinerButton.enabled
property string args: ""
ColumnLayout {
id: mainLayout
Layout.fillWidth: true
@@ -293,11 +294,12 @@ Rectangle {
var success;
if (persistentSettings.allow_p2pool_mining) {
if (p2poolManager.isInstalled()) {
if (persistentSettings.allowRemoteNodeMining) {
args = daemonManager.getArgs(persistentSettings.blockchainDataDir) //updates arguments
if (persistentSettings.allowRemoteNodeMining || (args.includes("--zmq-pub tcp://127.0.0.1:18083") || args.includes("--zmq-pub=tcp://127.0.0.1:18083")) && !args.includes("--no-zmq")) {
startP2Pool()
}
else {
daemonManager.stopAsync(persistentSettings.nettype, startP2PoolLocal)
daemonManager.stopAsync(persistentSettings.nettype, persistentSettings.blockchainDataDir, startP2PoolLocal)
}
}
else {
@@ -585,12 +587,35 @@ Rectangle {
function startP2PoolLocal() {
var noSync = false;
var customDaemonArgs = persistentSettings.daemonFlags.toLowerCase();
var daemonArgs = "--zmq-pub " + "tcp://127.0.0.1:18083 " + "--disable-dns-checkpoints "
if (!customDaemonArgs.includes("--zmq-pub") && !customDaemonArgs.includes("--disable-dns-checkpoints") && !customDaemonArgs.includes("--no-zmq")) {
daemonArgs = daemonArgs + customDaemonArgs;
//these args will be deleted because DaemonManager::start will re-add them later.
//--no-zmq must be deleted. removing '--zmq-pub=tcp...' lets us blindly add '--zmq-pub tcp...' later without risking duplication.
var defaultArgs = ["--detach","--data-dir","--bootstrap-daemon-address","--prune-blockchain","--no-sync","--check-updates","--non-interactive","--max-concurrency","--no-zmq","--zmq-pub=tcp://127.0.0.1:18083"]
var customDaemonArgsArray = args.split(' ');
var flag = "";
var allArgs = [];
var p2poolArgs = ["--zmq-pub tcp://127.0.0.1:18083"];
//create an array (allArgs) of ['--arg value','--arg2','--arg3']
for (let i = 0; i < customDaemonArgsArray.length; i++) {
if(!customDaemonArgsArray[i].startsWith("--")) {
flag += " " + customDaemonArgsArray[i]
} else {
if(flag){
allArgs.push(flag)
}
flag = customDaemonArgsArray[i]
}
}
var success = daemonManager.start(daemonArgs, persistentSettings.nettype, persistentSettings.blockchainDataDir, persistentSettings.bootstrapNodeAddress, noSync, persistentSettings.pruneBlockchain)
allArgs.push(flag)
//pop from allArgs if value is inside the deleteme array (defaultArgs)
allArgs = allArgs.filter( ( el ) => !defaultArgs.includes( el.split(" ")[0] ) )
//append required p2pool flags
for (let i = 0; i < p2poolArgs.length; i++) {
if(!allArgs.includes(p2poolArgs[i])) {
allArgs.push(p2poolArgs[i])
continue
}
}
var success = daemonManager.start(allArgs.join(" "), persistentSettings.nettype, persistentSettings.blockchainDataDir, persistentSettings.bootstrapNodeAddress, noSync, persistentSettings.pruneBlockchain)
if (success) {
startP2Pool()
}
@@ -616,10 +641,25 @@ Rectangle {
}
}
function p2poolDownloadFailed() {
function p2poolDownloadFailed(errorCode) {
statusMessage.visible = false
errorPopup.title = qsTr("P2Pool Installation Failed") + translationManager.emptyString;
errorPopup.text = qsTr("P2Pool installation failed.") + isWindows ? (" " + qsTr("Try starting the program with administrator privileges.")) : ""
switch (errorCode) {
case P2PoolManager.HashVerificationFailed:
errorPopup.text = qsTr("Hash verification failed.") + translationManager.emptyString;
break;
case P2PoolManager.BinaryNotAvailable:
errorPopup.text = qsTr("P2Pool download is not available.") + translationManager.emptyString;
break;
case P2PoolManager.ConnectionIssue:
errorPopup.text = qsTr("P2Pool download failed due to a connection issue.") + translationManager.emptyString;
break;
case P2PoolManager.InstallationFailed:
errorPopup.text = qsTr("P2Pool installation failed.") + (isWindows ? (" " + qsTr("Try starting the program with administrator privileges.")) : "")
break;
default:
errorPopup.text = qsTr("Unknown error.") + translationManager.emptyString;
}
errorPopup.icon = StandardIcon.Critical
errorPopup.open()
update()

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2018, The Monero Project
// Copyright (c) 2018-2024, The Monero Project
//
// All rights reserved.
//
@@ -50,15 +50,6 @@ Rectangle {
return true
}
function validUnsigned(s) {
if (s.length == 0)
return false
for (var i = 0; i < s.length; ++i)
if ("0123456789".indexOf(s[i]) == -1)
return false
return true
}
function validRing(str, relative) {
var outs = str.split(" ");
if (outs.length == 0)
@@ -109,136 +100,6 @@ Rectangle {
color: MoneroComponents.Style.defaultFontColor
}
MoneroComponents.LabelSubheader {
Layout.fillWidth: true
textFormat: Text.RichText
text: qsTr("Outputs marked as spent") + translationManager.emptyString
tooltip: qsTr(
"In order to obscure which inputs in a Monero transaction are being spent, a third party should not be able " +
"to tell which inputs in a ring are already known to be spent. Being able to do so would weaken the protection " +
"afforded by ring signatures. If all but one of the inputs are known to be already spent, then the input being " +
"actually spent becomes apparent, thereby nullifying the effect of ring signatures, one of the three main layers " +
"of privacy protection Monero uses.<br>" +
"To help transactions avoid those inputs, a list of known spent ones can be used to avoid using them in new " +
"transactions. Such a list is maintained by the Monero project and is available on the getmonero.org website, " +
"and you can import this list here.<br>" +
"Alternatively, you can scan the blockchain (and the blockchain of key-reusing Monero clones) yourself " +
"using the monero-blockchain-mark-spent-outputs tool to create a list of known spent outputs.<br>"
) + translationManager.emptyString
}
MoneroComponents.TextPlain {
textFormat: Text.RichText
font.family: MoneroComponents.Style.fontRegular.name
font.pixelSize: 14
text: qsTr("This sets which outputs are known to be spent, and thus not to be used as privacy placeholders in ring signatures. ") +
qsTr("You should only have to load a file when you want to refresh the list. Manual adding/removing is possible if needed.") + translationManager.emptyString
wrapMode: Text.Wrap
Layout.fillWidth: true;
color: MoneroComponents.Style.defaultFontColor
}
ColumnLayout {
Layout.fillWidth: true
Layout.topMargin: 12
FileDialog {
id: loadBlackballFileDialog
title: qsTr("Please choose a file from which to load outputs to mark as spent") + translationManager.emptyString;
folder: "file://"
nameFilters: ["*"]
onAccepted: {
loadBlackballFileLine.text = walletManager.urlToLocalPath(loadBlackballFileDialog.fileUrl)
}
}
MoneroComponents.LineEdit {
id: loadBlackballFileLine
Layout.fillWidth: true
fontSize: 16
placeholderFontSize: 16
placeholderText: qsTr("Path to file") + "..." + translationManager.emptyString
labelFontSize: 14
labelText: qsTr("Filename with outputs to mark as spent") + ":" + translationManager.emptyString
copyButton: true
readOnly: false
}
RowLayout {
Layout.fillWidth: true
Layout.topMargin: 18
MoneroComponents.StandardButton {
id: selectBlackballFileButton
text: qsTr("Browse") + translationManager.emptyString
enabled: true
small: true
onClicked: {
loadBlackballFileDialog.open()
}
}
MoneroComponents.StandardButton {
id: loadBlackballFileButton
text: qsTr("Load") + translationManager.emptyString
small: true
enabled: !!appWindow.currentWallet && loadBlackballFileLine.text !== ""
onClicked: appWindow.currentWallet.blackballOutputs(walletManager.urlToLocalPath(loadBlackballFileDialog.fileUrl), true)
}
}
}
GridLayout {
Layout.fillWidth: true
columnSpacing: 20
MoneroComponents.LineEdit {
id: blackballOutputAmountLine
Layout.fillWidth: true
fontSize: 16
labelFontSize: 14
labelText: qsTr("Or manually mark a single output as spent/unspent:") + translationManager.emptyString
placeholderFontSize: 16
placeholderText: qsTr("Paste output amount") + "..." + translationManager.emptyString
readOnly: false
validator: IntValidator { bottom: 0 }
}
MoneroComponents.LineEdit {
id: blackballOutputOffsetLine
Layout.fillWidth: true
fontSize: 16
labelFontSize: 14
labelText: " "
placeholderFontSize: 16
placeholderText: qsTr("Paste output offset") + "..." + translationManager.emptyString
readOnly: false
validator: IntValidator { bottom: 0 }
}
}
RowLayout {
Layout.fillWidth: true
Layout.topMargin: 18
MoneroComponents.StandardButton {
id: blackballButton
text: qsTr("Mark as spent") + translationManager.emptyString
small: true
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
onClicked: appWindow.currentWallet.blackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
}
MoneroComponents.StandardButton {
id: unblackballButton
text: qsTr("Mark as unspent") + translationManager.emptyString
small: true
enabled: !!appWindow.currentWallet && validUnsigned(blackballOutputAmountLine.text) && validUnsigned(blackballOutputOffsetLine.text)
onClicked: appWindow.currentWallet.unblackballOutput(blackballOutputAmountLine.text, blackballOutputOffsetLine.text)
}
}
MoneroComponents.LabelSubheader {
Layout.fillWidth: true
Layout.topMargin: 24

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -421,6 +421,16 @@ Rectangle {
}
}
function clearFields() {
verifyMessageLine.text = ""
signMessageLine.text = ""
signSignatureLine.text = ""
verifyAddressLine.text = ""
verifySignatureLine.text = ""
signFileLine.text = ""
verifyFileLine.text = ""
}
function onPageCompleted() {
console.log("Sign/verify page loaded");
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -51,7 +51,7 @@ Rectangle {
color: "transparent"
property alias transferHeight1: pageRoot.height
property alias transferHeight2: advancedLayout.height
property int mixin: 10 // (ring size 11)
property int mixin: 15 // (ring size 16)
property string warningContent: ""
property string sendButtonWarning: {
// Currently opened wallet is not view-only
@@ -415,41 +415,18 @@ Rectangle {
text: qsTr("Resolve") + translationManager.emptyString
visible: TxUtils.isValidOpenAliasAddress(address)
onClicked: {
var result = walletManager.resolveOpenAlias(address)
if (result) {
var parts = result.split("|")
if (parts.length == 2) {
var address_ok = walletManager.addressValid(parts[1], appWindow.persistentSettings.nettype)
if (parts[0] === "true") {
if (address_ok) {
// prepend openalias to description
descriptionLine.text = descriptionLine.text ? address + " " + descriptionLine.text : address
descriptionCheckbox.checked = true
recipientRepeater.itemAt(index).children[1].children[0].text = parts[1];
}
else
oa_message(qsTr("No valid address found at this OpenAlias address"))
}
else if (parts[0] === "false") {
if (address_ok) {
recipientRepeater.itemAt(index).children[1].children[0].text = parts[1];
oa_message(qsTr("Address found, but the DNSSEC signatures could not be verified, so this address may be spoofed"))
}
else
{
oa_message(qsTr("No valid address found at this OpenAlias address, but the DNSSEC signatures could not be verified, so this may be spoofed"))
}
}
else {
oa_message(qsTr("Internal error"))
}
const response = TxUtils.handleOpenAliasResolution(address, descriptionLine.text);
if (response) {
if (response.message) {
oa_message(response.message);
}
else {
oa_message(qsTr("Internal error"))
if (response.address) {
recipientRepeater.itemAt(index).children[1].children[0].text = response.address;
}
if (response.description) {
descriptionLine.text = response.description;
descriptionCheckbox.checked = true;
}
}
else {
oa_message(qsTr("No address found"))
}
}
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -259,6 +259,17 @@ Rectangle {
}
}
function clearFields() {
checkProofAddressLine.text = ""
checkProofMessageLine.text = ""
checkProofSignatureLine.text = ""
checkProofTxIdLine.text = ""
getProofAddressLine.text = ""
getProofMessageLine.text = ""
getProofTxIdLine.text = ""
getReserveProofAmtLine.text = ""
}
function onPageCompleted() {
console.log("TxKey page loaded");

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -74,6 +74,7 @@ ColumnLayout {
active: settingsStateView.state == "Log"
text: qsTr("Log") + translationManager.emptyString
onSelected: settingsStateView.state = "Log"
visible: !isAndroid
}
MoneroComponents.NavbarItem {
active: settingsStateView.state == "Info"

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -254,7 +254,7 @@ Rectangle {
onAccepted: {
if(text.length > 0) {
consoleArea.logCommand(">>> " + text)
daemonManager.sendCommandAsync(text.split(" "), currentWallet.nettype, function(result) {
daemonManager.sendCommandAsync(text.split(" "), currentWallet.nettype, persistentSettings.blockchainDataDir, function(result) {
if (!result) {
appWindow.showStatusMessage(qsTr("Failed to send command"), 3);
}

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2019, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -55,6 +55,7 @@ Rectangle{
Layout.fillWidth: true
Layout.preferredHeight: 90
color: "transparent"
visible: !isAndroid
Rectangle {
id: localNodeDivider

View File

@@ -1,4 +1,4 @@
// Copyright (c) 2014-2018, The Monero Project
// Copyright (c) 2014-2024, The Monero Project
//
// All rights reserved.
//
@@ -138,9 +138,19 @@ Rectangle {
inputDialog.onAcceptedCallback = function() {
var txid = inputDialog.inputText.trim();
if (currentWallet.scanTransactions([txid])) {
updateBalance();
appWindow.showStatusMessage(qsTr("Transaction successfully scanned"), 3);
} else {
appWindow.showStatusMessage(qsTr("Failed to scan transaction") + ": " + currentWallet.errorString, 5);
console.error("Error: ", currentWallet.errorString);
if (currentWallet.errorString == "The wallet has already seen 1 or more recent transactions than the scanned tx") {
informationPopup.title = qsTr("Error") + translationManager.emptyString;
informationPopup.text = qsTr("The wallet has already seen 1 or more recent transactions than the scanned transaction.\n\nIn order to rescan the transaction, you can re-sync your wallet by resetting the wallet restore height in the Settings > Info page. Make sure to use a restore height from before your wallet's earliest transaction.") + translationManager.emptyString;
informationPopup.icon = StandardIcon.Critical
informationPopup.onCloseCallback = null
informationPopup.open();
} else {
appWindow.showStatusMessage(qsTr("Failed to scan transaction") + ": " + currentWallet.errorString, 5);
}
}
}
inputDialog.onRejectedCallback = null;

19
qml.qrc
View File

@@ -206,6 +206,7 @@
<file>wizard/WizardCreateWallet2.qml</file>
<file>wizard/WizardCreateWallet3.qml</file>
<file>wizard/WizardCreateWallet4.qml</file>
<file>wizard/WizardCreateWallet5.qml</file>
<file>wizard/WizardCreateDevice1.qml</file>
<file>wizard/WizardDaemonSettings.qml</file>
<file>wizard/WizardHeader.qml</file>
@@ -280,7 +281,21 @@
<file>images/ledgerNanoS.png</file>
<file>images/ledgerNanoSPlus.png</file>
<file>images/ledgerNanoX.png</file>
<file>images/trezor.png</file>
<file>images/trezor@2x.png</file>
<file>images/ledgerStax.png</file>
<file>images/trezor3.png</file>
<file>images/trezorT.png</file>
<file>images/trezorT@2x.png</file>
<file>qtquickcontrols2.conf</file>
<file>images/write-down.png</file>
<file>images/write-down-white.png</file>
<file>images/write-down@2x.png</file>
<file>images/write-down-white@2x.png</file>
<file>images/verify.png</file>
<file>images/verify-white.png</file>
<file>images/verify@2x.png</file>
<file>images/verify-white@2x.png</file>
<file>wizard/SeedListItem.qml</file>
<file>wizard/SeedListGrid.qml</file>
<file>wizard/template.pdf</file>
</qresource>
</RCC>

2
qtquickcontrols2.conf Normal file
View File

@@ -0,0 +1,2 @@
[Controls]
Style=Desktop

Some files were not shown because too many files have changed in this diff Show More