From fa57c8041c68862c72bba5e62ba3c80430af4afc Mon Sep 17 00:00:00 2001 From: donovan6000 Date: Sat, 2 Mar 2024 05:41:19 -0800 Subject: [PATCH] Uses File System API to open files when available. Makes confirmation buttons to delete wallet(s) red. Fixes copy events occurring when the touchend event occurs off of the copy icon. Adds support for scanning invoice QR codes. Displays the transaction's sender and recipient payment proof addresses when sending or receiving a payment. Adds setting to require manually approving receiving payments. Displays amount and fee values in the current currency when sending and receiving payments. Transactions now display their value at the price when they were recorded. --- .gitignore | 1 + LICENSE | 2 +- README.md | 59 +- docs/exchange compatibility.md | 37 - docs/trust and privacy concerns.md | 10 - nginx.conf | 24 +- public_html/.user.ini | 4 +- public_html/backend/common.php | 13 +- public_html/backend/resources.php | 112 +- public_html/errors/503.html | 2 +- public_html/errors/error.html | 2 +- public_html/errors/template.php | 12 +- public_html/index.html | 30 +- public_html/languages/czech.php | 105 +- public_html/languages/dutch.php | 91 +- public_html/languages/german.php | 125 +- public_html/languages/greek.php | 71 +- public_html/languages/simplified_chinese.php | 61 +- public_html/scripts/about_section.js | 12 + public_html/scripts/account_section.js | 2 +- public_html/scripts/api.js | 6844 +++++++++-------- public_html/scripts/application.js | 600 +- public_html/scripts/consensus.js | 2 +- public_html/scripts/crypto.js | 58 + public_html/scripts/extension.js | 4 +- public_html/scripts/hardware_wallet.js | 8 +- .../scripts/hardware_wallet_definitions.js | 111 + public_html/scripts/language.js | 181 +- public_html/scripts/listener.js | 18 +- public_html/scripts/message.js | 43 +- public_html/scripts/node.js | 11 +- public_html/scripts/prices.js | 54 +- public_html/scripts/send_payment_section.js | 315 +- public_html/scripts/transaction.js | 33 +- public_html/scripts/transaction_section.js | 301 +- public_html/scripts/transactions.js | 16 + public_html/scripts/unlocked.js | 26 +- public_html/scripts/wallet.js | 2 +- public_html/scripts/wallet_section.js | 875 ++- public_html/scripts/wallets.js | 23 +- public_html/styles/message.css | 18 + public_html/styles/transaction_section.css | 4 - public_html/styles/unlocked.css | 3 +- public_html/styles/wallet_section.css | 5 + 44 files changed, 6204 insertions(+), 4126 deletions(-) delete mode 100755 docs/exchange compatibility.md delete mode 100755 docs/trust and privacy concerns.md diff --git a/.gitignore b/.gitignore index db50293..07421f6 100755 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ private +sessions callback.php items.php public_html/browser_extension_api_example.html diff --git a/LICENSE b/LICENSE index 28af572..d5e2966 100755 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2022-2023 Nicolas Flamel +Copyright (c) 2022-2024 Nicolas Flamel Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index b5c838a..f37b2e4 100755 --- a/README.md +++ b/README.md @@ -9,6 +9,55 @@ This wallet also allows for you to manage your MimbleWimble Coin with Ledger and You can also use your own node, [listener](https://github.com/NicolasFlamel1/WebSocket-Listener), and [Tor proxy](https://github.com/NicolasFlamel1/Tor-Proxy) with this wallet thus allowing it to function without having to rely on any third parties. +### Sending MWC To Exchanges Compatibility + +Compatibility for sending MWC from the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile to exchanges: + +|| [TradeOgre](https://tradeogre.com/exchange/BTC-MWC) | +|-|-|-| +| [MWC web wallet website](https://mwcwallet.com) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet Onion Service](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| MWC web wallet progressive web app version | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [Ledger Live Desktop/Mobile](https://github.com/NicolasFlamel1/ledger-live) | ✅ | + +\* This table assumes that the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile are using their default settings. + +\* [WhiteBIT](https://whitebit.com/trade/MWC-BTC) had temporarily suspended depositing and withdrawing MWC when this table was created which is why they aren't included. + +\* CORS issues can by bypassed by disabling CORS checks in your web browser, however this shouldn't be done without understanding the security implications of doing so. + +# Receiving MWC From Exchanges Compatibility + +Compatibility for receiving MWC from exchanges to the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile: + +|| [TradeOgre](https://tradeogre.com/exchange/BTC-MWC) | +|-|-|-| +| [MWC web wallet website](https://mwcwallet.com) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet Onion Service](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| MWC web wallet progressive web app version | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [MWC web wallet standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone) | ✅ Requires version 2.2.0 or newer of the web wallet. | +| [Ledger Live Desktop/Mobile](https://github.com/NicolasFlamel1/ledger-live) | ✅ | + +\* This table assumes that the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile are using their default settings. + +\* [WhiteBIT](https://whitebit.com/trade/MWC-BTC) had temporarily suspended depositing and withdrawing MWC when this table was created which is why they aren't included. + +\* It's unlikely that any exchanges currently supports sending MWC to the MimbleWimble Coin web wallet when using a hardware wallet due to that [needing a longer network read timeout](https://github.com/mwcproject/mwc-wallet/pull/17). + +### Trust And Privacy Concerns +By default, the MimbleWimble Coin web wallet is not trustless and sacrifices some of its users' privacy in order to achieve a greater ease of use. This is true for any of the methods that can be used to access this web wallet including accessing it from its website at [https://mwcwallet.com](https://mwcwallet.com), accessing it from its Onion Service at [http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion), accessing it from its progressive web app version, accessing it from [its browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension), and accessing it from [its standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone). + +However, this web wallet does provide a way to use it in a completely trustless and private way. This can be accomplished by performing the following steps. + +1. Use the [Tor Browser](https://www.torproject.org/download/) to access this web wallet from [its standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone). +2. Run your own [MWC node](https://github.com/mwcproject/mwc-node) and set the web wallet to use it in its settings. +3. Run your own [listener](https://github.com/NicolasFlamel1/WebSocket-Listener) and set the web wallet to use it in its settings. + +Accessing this web wallet in this way will remove the need to trust the servers hosting the site, listener, Tor proxy, and node. This will also preserve your privacy by not leaking your IP address to anyone that you send MWC to and your ISP won't be aware that you're using this web wallet. + ### Develop This site can be ran from a local machine for development purposes. To do that, this repo's files are intended to reside at `/srv/mwcwallet.com`, but can be located anywhere as long as the `root` directive in the `nginx.conf` file correctly reflects the `public_html` folder's current location. @@ -49,10 +98,10 @@ For example, here's what a file for a French translation, `public_html/languages ``` [ - "Your name here" + "Your name here" => "http://yourLinkHere" ], "Constants" => [ @@ -63,7 +112,11 @@ For example, here's what a file for a French translation, `public_html/languages "Image" => "./images/countries/france.svg", - "Currency" => "EUR" + "Currency" => "EUR", + + "Extension Locale Code" => "fr", + + "Fallback" => "fr" ], "Text" => [ diff --git a/docs/exchange compatibility.md b/docs/exchange compatibility.md deleted file mode 100755 index cbc5573..0000000 --- a/docs/exchange compatibility.md +++ /dev/null @@ -1,37 +0,0 @@ -# Sending MWC To Exchanges Compatibility - -Compatibility for sending MWC from the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile to exchanges: - -|| [Hotbit](https://www.hotbit.io/exchange?symbol=MWC_USDT) | [TradeOgre](https://tradeogre.com/exchange/BTC-MWC) | [BitForex](https://www.bitforex.com/en/spot/mwc_usdt) | -|-|-|-|-| -| [MWC web wallet website](https://mwcwallet.com) | ❌ Hotbit doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | ✔ Requires version 2.2.0 or newer of the web wallet. | ❌ BitForex doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| [MWC web wallet Onion Service](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion) | ❌ Hotbit doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | ✔ Requires version 2.2.0 or newer of the web wallet. | ❌ BitForex doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| MWC web wallet progressive web app version | ❌ Hotbit doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | ✔ Requires version 2.2.0 or newer of the web wallet. | ❌ BitForex doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| [MWC web wallet browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension) | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ Requires version 1.1.19 or newer of the web wallet. | -| [MWC web wallet standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone) | ❌ Hotbit doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | ✔ Requires version 2.2.0 or newer of the web wallet. | ❌ BitForex doesn't support [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). | -| [Ledger Live Desktop/Mobile](https://github.com/NicolasFlamel1/ledger-live) | ✔ Requires version 2.52.1 or newer of Ledger Live Desktop and version 3.14.1 or newer of Ledger Live Mobile. | ✔ | ✔ | - -\* This table assumes that the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile are using their default settings. - -\* [WhiteBIT](https://whitebit.com/trade/MWC-BTC) had temporarily suspended depositing and withdrawing MWC when this table was created which is why they aren't included. - -\* CORS issues can by bypassed by disabling CORS checks in your web browser, however this shouldn't be done without understanding the security implications of doing so. - -# Receiving MWC From Exchanges Compatibility - -Compatibility for receiving MWC from exchanges to the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile: - -|| [Hotbit](https://www.hotbit.io/exchange?symbol=MWC_USDT) | [TradeOgre](https://tradeogre.com/exchange/BTC-MWC) | [BitForex](https://www.bitforex.com/en/spot/mwc_usdt) | -|-|-|-|-| -| [MWC web wallet website](https://mwcwallet.com) | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ | -| [MWC web wallet Onion Service](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion) | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ | -| MWC web wallet progressive web app version | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ | -| [MWC web wallet browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension) | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ | -| [MWC web wallet standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone) | ✔ | ✔ Requires version 2.2.0 or newer of the web wallet. | ✔ | -| [Ledger Live Desktop/Mobile](https://github.com/NicolasFlamel1/ledger-live) | ❌ Hotbit doesn't support withdrawing as file. | ✔ | ❌ BitForex doesn't support withdrawing as file. | - -\* This table assumes that the MimbleWimble Coin web wallet and Ledger Live Desktop/Mobile are using their default settings. - -\* [WhiteBIT](https://whitebit.com/trade/MWC-BTC) had temporarily suspended depositing and withdrawing MWC when this table was created which is why they aren't included. - -\* It's unlikely that any exchanges currently supports sending MWC to the MimbleWimble Coin web wallet when using a hardware wallet due to that [needing a longer network read timeout](https://github.com/mwcproject/mwc-wallet/pull/17). diff --git a/docs/trust and privacy concerns.md b/docs/trust and privacy concerns.md deleted file mode 100755 index a7d6848..0000000 --- a/docs/trust and privacy concerns.md +++ /dev/null @@ -1,10 +0,0 @@ -# Trust And Privacy Concerns -By default, the MimbleWimble Coin web wallet is not trustless and sacrifices some of its users' privacy in order to achieve a greater ease of use. This is true for any of the methods that can be used to access this web wallet including accessing it from its website at [https://mwcwallet.com](https://mwcwallet.com), accessing it from its Onion Service at [http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion](http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion), accessing it from its progressive web app version, accessing it from [its browser extension version](https://github.com/NicolasFlamel1/MWC-Wallet-Browser-Extension), and accessing it from [its standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone). - -However, this web wallet does provide a way to use it in a completely trustless and private way. This can be accomplished by performing the following steps. - -1. Use the [Tor Browser](https://www.torproject.org/download/) to access this web wallet from [its standalone version](https://github.com/NicolasFlamel1/MWC-Wallet-Standalone). -2. Run your own [MWC node](https://github.com/mwcproject/mwc-node) and set the web wallet to use it in its settings. -3. Run your own [listener](https://github.com/NicolasFlamel1/WebSocket-Listener) and set the web wallet to use it in its settings. - -Accessing this web wallet in this way will remove the need to trust the servers hosting the site, listener, tor proxy, and node. This will also preserve your privacy by not leaking your IP address to anyone that you send MWC to and your ISP won't be aware that you're using this web wallet. diff --git a/nginx.conf b/nginx.conf index 29b6528..19735b8 100755 --- a/nginx.conf +++ b/nginx.conf @@ -698,8 +698,8 @@ server { } # Push resources - more_set_headers -s 200 "Set-Cookie: $cookie"; - more_set_headers -s 200 "Link: $resources"; + more_set_headers -s 200 "Set-Cookie: $mwcwallet_cookie"; + more_set_headers -s 200 "Link: $mwcwallet_resources"; # Only allow being in an iframes of the same origin more_set_headers -s 200 "X-Frame-Options: SAMEORIGIN"; @@ -718,7 +718,7 @@ server { more_set_headers -s 200 "Strict-Transport-Security: max-age=63072000; includeSubDomains; preload"; # Set content security policy - more_set_headers -s 200 "Content-Security-Policy: default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:"; + more_set_headers -s 200 "Content-Security-Policy: default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: https://mwcplace.com"; # Set referrer policy to not include a referrer header more_set_headers -s 200 "Referrer-Policy: same-origin"; @@ -753,8 +753,8 @@ server { } # Push resources - add_header Set-Cookie $cookie always; - add_header Link $resources always; + add_header Set-Cookie $mwcwallet_cookie always; + add_header Link $mwcwallet_resources always; # Only allow being in an iframes of the same origin add_header X-Frame-Options "SAMEORIGIN" always; @@ -773,13 +773,13 @@ server { add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always; # Set content security policy - add_header Content-Security-Policy "default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:" always; + add_header Content-Security-Policy "default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: https://mwcplace.com" always; # Set referrer policy to not include a referrer header add_header Referrer-Policy "same-origin" always; # Add onion location - add_header Onion-Location $onion_location always; + add_header Onion-Location $mwcwallet_onion_location always; # Set permissions policy add_header Permissions-Policy "camera=(self), screen-wake-lock=(self), clipboard-write=(self), usb=(self), bluetooth=(self), cross-origin-isolated=(self), vertical-scroll=(self), execution-while-not-rendered=(self), execution-while-out-of-viewport=(self), focus-without-user-activation=(self), unload=(self), autoplay=(), display-capture=(), encrypted-media=(), fullscreen=(), hid=(), idle-detection=(), otp-credentials=(), picture-in-picture=(), serial=(), sync-xhr=(), accelerometer=(), document-domain=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), midi=(), payment=(), publickey-credentials-get=(), xr-spatial-tracking=(), clipboard-read=(), ambient-light-sensor=(), attribution-reporting=(), gamepad=(), keyboard-map=(), window-placement=(), identity-credentials-get=(), local-fonts=(), private-state-token-issuance=(), private-state-token-redemption=()" always; @@ -1522,7 +1522,7 @@ server { more_set_headers -s 200 "Cross-Origin-Embedder-Policy: require-corp"; # Set content security policy - more_set_headers -s 200 "Content-Security-Policy: default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:"; + more_set_headers -s 200 "Content-Security-Policy: default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: https://mwcplace.com"; # Set referrer policy to not include a referrer header more_set_headers -s 200 "Referrer-Policy: same-origin"; @@ -1567,7 +1567,7 @@ server { add_header Cross-Origin-Embedder-Policy "require-corp" always; # Set content security policy - add_header Content-Security-Policy "default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:" always; + add_header Content-Security-Policy "default-src 'self'; connect-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data: https://mwcplace.com" always; # Set referrer policy to not include a referrer header add_header Referrer-Policy "same-origin" always; @@ -1652,19 +1652,19 @@ server { } # Cookie -map $http_cookie $cookie { +map $http_cookie $mwcwallet_cookie { "~*__Host-Preloaded=true" "$sent_http_set_cookie"; default "__Host-Preloaded=true; Max-Age=63072000; HttpOnly; Secure; SameSite=Strict; Priority=High; Path=/; Partitioned"; } # Resources -map $http_cookie $resources { +map $http_cookie $mwcwallet_resources { "~*__Host-Preloaded=true" ""; default "; as=image; rel=preload, ; as=image; rel=preload, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=font; rel=preload; crossorigin=anonymous, ; as=style; rel=preload; integrity=sha512-oHDEc8Xed4hiW6CxD7qjbnI+B07vDdX7hEPTvn9pSZO1bcRqHp8mj9pyr+8RVC2GmtEfI2Bi9Ke9Ass0as+zpg==, ; as=style; rel=preload, ; as=style; rel=preload, ; as=image; rel=preload, ; as=image; rel=preload"; } # Onion location -map $http_referer $onion_location { +map $http_referer $mwcwallet_onion_location { "~^https://mwcwallet\.com/scripts/service_worker\.js$" "http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion/"; "~^https://mwcwallet\.com(/.*)$" "http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion$1"; default "http://mwcwalletmiq3gdkmfbqlytxunvlxyli4m6zrqozk7xjc353ewqb6bad.onion$request_uri"; diff --git a/public_html/.user.ini b/public_html/.user.ini index 79d143c..4dfb88e 100755 --- a/public_html/.user.ini +++ b/public_html/.user.ini @@ -19,9 +19,9 @@ default_charset = "UTF-8" output_handler = mb_output_handler output_buffering = 4096 session.name = __Host-Session_ID -session.gc_probability = 1 -session.gc_divisor = 1000 +session.gc_probability = 0 session.gc_maxlifetime = 31536000 +session.save_path="/srv/mwcwallet.com/sessions" date.timezone = UTC display_errors = Off session.auto_start = 0 diff --git a/public_html/backend/common.php b/public_html/backend/common.php index bd3f107..dea77e0 100755 --- a/public_html/backend/common.php +++ b/public_html/backend/common.php @@ -3,19 +3,22 @@ // Constants // Version number - const VERSION_NUMBER = "2.4.1"; + const VERSION_NUMBER = "2.5.0"; // Version release date - const VERSION_RELEASE_DATE = "27 Aug 2023 21:43:00 UTC"; + const VERSION_RELEASE_DATE = "02 Mar 2024 12:49:00 UTC"; // Version changes const VERSION_CHANGES = [ "Fixed bold fonts displaying incorrectly on Safari.", "Fixed caching main page when using URL parameters.", "Fixed canceling connecting to a locked Trezor Model T hardware wallet.", - "Updated dependencies.", - "Removes wallet and network protocol from pasted recipient addresses.", - "Added support for Trezor Safe 3 hardware wallets." + "Added support for Trezor Safe 3 hardware wallets.", + "Added support for scanning invoice QR codes.", + "Displays the transaction's sender and recipient payment proof addresses when sending or receiving a payment.", + "Added setting to require manual approval when receiving payments.", + "Displays the amount and fee values in the current currency when sending or receiving a payment.", + "Transactions now display their value at the price when they was recorded." ]; // Maintenance start time diff --git a/public_html/backend/resources.php b/public_html/backend/resources.php index 33d67fd..a2ced1a 100755 --- a/public_html/backend/resources.php +++ b/public_html/backend/resources.php @@ -309,10 +309,10 @@ "Checksum" => NULL ], "./scripts/prices.js" => [ - "Version" => 11, + "Version" => 16, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "kIi06i7mLnPPcY0qYAnamPGIjZOrVbTQgABvp0y5TDzl/q9pqtqUpC6aLWoQhbMsZ+xvu36qL2Ir5I1gI1007w==" + "Checksum" => "tJJnVOFB5KeDa13rKP9GYg71q8Ynwk+bNxSabqV2M2mCD8xu3GeACdF35TDd2WLTypXyZNp0IYhc5d1SjyfT5g==" ], "./scripts/log.js" => [ "Version" => 7, @@ -339,16 +339,16 @@ "Checksum" => "AaYCKtIK3CfkZgJL+KjqGHbvK+urVTVK0Wagvfi9MQcrVy95oT6vmwR0lkjIA1gO89vuQ15jrW4vjLyLjUihfA==" ], "./scripts/wallets.js" => [ - "Version" => 69, + "Version" => 73, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "7ZHNh00eWDgTkN32OYfreAd1HeSiynSdLQBkuMwni27D2UtvU4M16jjtcFwUl3Vy4L70WWvzupn/LAWlwAQBSw==" + "Checksum" => "dPusPRCnCmHd3HtU3too2Th76vqqKBE3ARrdf3SIhznOinyyBXyvn+xDw9PoMWITeGeD5XVkUTuvXzPSQN0oag==" ], "./scripts/application.js" => [ - "Version" => 69, + "Version" => 102, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "BrHs9FhjbAJP4ozilpbP3qlD3kq+RGRY1l51liaLIOhVYgflvLXHeJMFu46HZq4Ma6p/vErndiWXuS9FZQYj8A==" + "Checksum" => "qs/kwo1v4I5R1VONjbUlpEGRWC2uIiuzDVkNHlpX5heOMY0IHg5n1eEWRuoO4LdE7EfqGCVOcfL5B7Sfn9sAuA==" ], "./scripts/automatic_lock.js" => [ "Version" => 5, @@ -363,10 +363,10 @@ "Checksum" => "6IoZ640jM4IsPVC0QB7+wiuens2+mcxLasLwGkGoszew+RVumYtcUmdruWbpr2LVG0ntS06TvUrUt5DqIJwVXQ==" ], "./scripts/language.js" => [ - "Version" => 40, + "Version" => 63, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "J955MBj4nPNQYsNYmm3oCRqGzv1tIEaSoSj3SpPXfaRu6S3WHFzlpbJaw3xD04SgOJVR1Q4Kd+yk9lE/qX15gw==" + "Checksum" => "MEm7gU63Khy6PTTRwQOoC2YbsWjwwD1XmrbQgvE5whUb9pWJIa1Wht9w1DLynKZeE4JwHvuJDJDGGkMNJNZoNg==" ], "./scripts/protocol_handler.js" => [ "Version" => 8, @@ -417,28 +417,28 @@ "Checksum" => "lpFVNVY1nK6ZM1winGWXDkVOz4bRxgpgKbyC6YeJELwiAXSy32/pvYZMlaySJfHyRbeyRMahuHqGaRZUUjMQdA==" ], "./scripts/wallet.js" => [ - "Version" => 22, + "Version" => 25, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "ewdINTHdHttjFj3lsG984hILJRC6pDOAyMQG6IghlhWbQGInYK/hkOzy4mx/VC4JsRiJxBCsHYky0/1x847u/w==" + "Checksum" => "PojnUykqdVTAwgBtx2yYUzZLawnNQZS1AtSTHvMeImMo1X+5IFTVSY6Xezl8CTywaVkJ0SyRIWogmrOPvAmHvA==" ], "./scripts/consensus.js" => [ - "Version" => 28, + "Version" => 30, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "4k0+Pf/Yd8SLVrHggwHuHPuU8MtyXz7WW/nLSQNVCrp/0/mm461hYcejqP19U9LDP8zBBh84KdHbVW+6OQetYg==" + "Checksum" => "n5ES3sazs7wZq1XqWZbRrk22pJ3r9fMQd9s4Z1J9HoWB5DV/OAS9PDK8qo8lgsLsar3aV9DTpf+RfIEfwN9lEQ==" ], "./scripts/transaction.js" => [ - "Version" => 10, + "Version" => 13, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "nG5nVYe2gYGJa0bFGYAPQf0q1W3K2/XUx+MDJx+FwN4uvqDkXgXnzcXG6WyYrfqVLzF9U7Rgv34klg5DHrvdzw==" + "Checksum" => "D8F+g8KMqTxpFTXHYtZyJKNRmtsUx9vSIC/3+p3y/OoBRZ0SvB/HSmWPn9GgvJP5MJtWnsWaJDh0RCruLzK2OQ==" ], "./scripts/transactions.js" => [ - "Version" => 17, + "Version" => 19, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "gNLJgqO0v9TvDd/vSKSduJ8+rmk4wPZBbR6VRTDd/PsdHTg2BDkvHmw74I0Zy5LL4MoMqp7141ofHbN/6l1dZg==" + "Checksum" => "8A7HGyjR2cWp2dy5mtGX5+okEawJSsZxO71S4rUQeaweIhyLqR5y1TaH/EoR8QfCunEcY5QkNfm4P0TU8MWE3g==" ], "./scripts/focus.js" => [ "Version" => 6, @@ -453,22 +453,22 @@ "Checksum" => "jSzvJoFNyGWGAlNp1a4r556E4qYOKEqZFy153hcWtYOjKYGsBLkY+z5koJK/kiDxemFjQ1v8HtfqeassdIiazg==" ], "./scripts/crypto.js" => [ - "Version" => 12, + "Version" => 15, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "uf1yQ1igJdTTd3ofOTVelJpqYWF/fuczoZ4/jkp46gyesaEpYag0+eJmgLw5Qe6lu6lM1IpPtTVgMVwA9HkZ0g==" + "Checksum" => "1Dos1rNWtUlUuVq4ElvN9Twhy9SaeXeN3kTAGT7ND8tAPn3eskDtegm+zVMrxqH5iyN+Zk3cL7IbTKs23OtHKA==" ], "./scripts/api.js" => [ - "Version" => 108, + "Version" => 131, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "BIfCMkk5ejyMfRCpaACquJgrdc6lZPPB3gS/A7Ou+Tsv9mjxd/EQhk/C41Cjrc/1UpbiVBedIos7fRqxXRTYwQ==" + "Checksum" => "la+Ke0z4OcOjZc0uhAP6w7pZ3Y+0esV/Gx5+ielneckX9kggeOfThy/sDFBrDF4+9lAWsA6logB27dAf9/iZ5Q==" ], "./scripts/hardware_wallet.js" => [ - "Version" => 71, + "Version" => 75, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "dpRIAeVylzcwbA3MHpO1kKOe7ffhvyOzKd6aVdidO6cfPvwUsx1SCxFMBQLO9CaPSFUoD5OZXyDIkiSHCjQyCQ==" + "Checksum" => "gBFSNcldjcElXlO4rs71cttY+mNMu4qKLPfjrEgAt52AeD1StzU2aFwE4z430rjjUae7pjdPyQoxgvywAegKCg==" ], "./scripts/hardware_wallet_usb_transport.js" => [ "Version" => 8, @@ -483,10 +483,10 @@ "Checksum" => "inHK4CWMcLQO/obdN8+9PVZi7lSe2aPiDlU93XaWv6CFEaV3pjdDoikzSu5S79JnzJRcy72yH55/eSRh0zLCMw==" ], "./scripts/hardware_wallet_definitions.js" => [ - "Version" => 7, + "Version" => 10, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "yJWZDgDHJ4e2SIvz1dNOqjrXJIqz7L6NfkZ9lpJoBVRroak47Br0lnQ6tsUSkkxdGUG6JJHwYRnK2e4RnNOk2w==" + "Checksum" => "EnU1TuygTMQWi1jyd8cKWL657kgmVrgi5rcn4PBQupeEl+WJKsKOVao8O7isPKvFygBYoQgPmQf3yTJM3O6beA==" ], "./scripts/protocol_buffers.js" => [ "Version" => 5, @@ -567,13 +567,13 @@ "Checksum" => "ig4BjvopYK4Oh7AtF9x5MntYRzW0oSh/n7BTqThp1DlC0vJCTyRJ+/mtOWtDdgC6U+5d4sJzMCBfmGm69sJNTQ==" ], "./scripts/output_worker.js" => [ - "Version" => 72, + "Version" => 74, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL ], "./scripts/slate_worker.js" => [ - "Version" => 139, + "Version" => 141, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL @@ -591,13 +591,13 @@ "Checksum" => "RFXyJdMBrFe0rBAKTOwmTVcZzI6V3Pf7HHizK+RQVHguh/pCOTPV0Jj+EB7cvP1/wpuUAyh1SnWVZ01qLg4emg==" ], "./scripts/languages.js" => [ - "Version" => 13, + "Version" => 15, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL ], "./scripts/camera_worker.js" => [ - "Version" => 67, + "Version" => 69, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL @@ -609,10 +609,10 @@ "Checksum" => "UdiWWkqNvt3q0KH7I+E+eoFOWTt+hULNoXNxnwPaqevGInwqgpnjqJVG1S7lk9jo++XEPiJYK/xSWuwEwpEPRQ==" ], "./scripts/listener.js" => [ - "Version" => 16, + "Version" => 21, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "SQYQkRRQxuCsc2EgPlMfsCaDvqBJ/HtWNTYREzwiPYRknB9r/d7iOYa9zaqigj5NyaW0ihDnu/hs0TGYjBjI1w==" + "Checksum" => "n9X9WDCumLjb9pic1KPaTnqRmaxecFNn8AbZwCjboXJl4i3Fw03YeG0rDoyM5j+0K2Mme3H105EJy7+wj+pMow==" ], "./scripts/interaction.js" => [ "Version" => 6, @@ -729,16 +729,16 @@ "Checksum" => "DKc9auFvln7lPN+3dXDaSpu/GASjOUb5TsUF/taDYvNDH9yftvtrRwtfISh5F3BOFqa3TIV8RqCljj5aF9ZORQ==" ], "./scripts/node.js" => [ - "Version" => 26, + "Version" => 31, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "ZLB0s5hVxBmY4SOnC5ZLdyHjkOI5LBXVzXZg2T+0TNp0Lh+kn7RE03TPF7FvGD3Sc4uY4/bhp1sfFBNhy5GrmA==" + "Checksum" => "CW1VKYGlk61NaF8nHNgP80nWcZbxEiYI0e8/RWG2jqkrJM9Ia+sfg66VxpHRVtettWovRup38ljwiatiQI5uiw==" ], "./scripts/message.js" => [ - "Version" => 21, + "Version" => 28, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "pF+fedQkQaBflAY4jUUY4DpxQswhDgQWIki0Tl1rnbnolMfTLk1MidZpeUNH2c+nVw79lFK/ZsWG/f1X6aKRMw==" + "Checksum" => "fUT2aWct3axErt/wI8N/bxKNkP3YMH9FkEYnKH4PRHhMKd90XDW8MIytywk4/OK2GMDexmxZoTv5irrRxmusjg==" ], "./scripts/common.js" => [ "Version" => 101, @@ -795,10 +795,10 @@ "Checksum" => "QNtKNG9TS2TfRgBAjPlLqCDIXv/UIcqDCTMi6tNwd3C7yxlKBkiErW/wtLpufToe46dfyTjUwbsBxkHAQilPBA==" ], "./scripts/extension.js" => [ - "Version" => 5, + "Version" => 7, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "SllMKT46UR2ZWSA+rQmGRBQKknNxjT8HVzJPturPITtnnk4Ucapi4tvq7oQpYbYSKrMJv0jeNngI6IwMOquAEA==" + "Checksum" => "W4VU2BdG0lMevLGhEK8sx7aXj3EHoQIqfRQBjQ/MuannygiCmjsaWjoH84qSGSZdrB8rMmzkxte4vyrIKqRt2w==" ], "./scripts/version.js" => [ "Version" => 13, @@ -855,34 +855,34 @@ "Checksum" => "tbo37DKhDLWgAFFmdHYd7m4aqyqHIQev/OEROMgr0+2IK+Wp9ldX+dzkDsxJWV0zsF8F9aDCf9AAaOkXWkF4eg==" ], "./scripts/about_section.js" => [ - "Version" => 17, + "Version" => 20, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "9Qf07JgzobkdHEEEpOAmKdQ7+VXAMON0wlx68xG3kVfeqrQLdsHmV0CeH9IVMTNGaHdIJRrLrapSvNKVyUA+QQ==" + "Checksum" => "liNasQI9AlFyJZvge45UmsJ8mzflhC3CIOkRQAEqlO/JTscDe3edhvzHGZPrznwpqfCk9+pcWQSFXN8BLruXzw==" ], "./scripts/transaction_section.js" => [ - "Version" => 31, + "Version" => 38, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "PFGH8IV2Q0dpmVBn9tnMxAvfcUeJmPiE8b/RPJ4bQ4PIIF2oNI0A9Dl9KuDbXdF5oJ6qccdQW/tXjrKOB05BFg==" + "Checksum" => "UDay3ItgLltbFNgSTX5T5LHkJ9fGq37t40XKjjBghcYBPG+IEuKzVfEZuqC0TXympEEvRmxfjQ9pRvqoK5W1tw==" ], "./scripts/account_section.js" => [ - "Version" => 11, + "Version" => 14, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "g8yzW3y3iNqcJFMMNOdcd84L2xjZ/nwLTfAOcyXi3nNUfyKGMI7o2Ita2xPqkwSSvwDJwPoOCaLNcv6ABylstw==" + "Checksum" => "NYI6dt8F95YbVXNa9QMby6C4L1ME8Ta+80FEZg5X4YQEn9N69du4R8yuCKDa+WWXFuxjcjokJHAYuW6hTnRguA==" ], "./scripts/wallet_section.js" => [ - "Version" => 66, + "Version" => 94, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "jB5k4CFSr6i/r2B5daGfj2hwTCkpTn1MGl6t5zwOVkrKNc6StbF4zOPjty2gSDnnMZ2hteBSIoNBe3PTdYtH8g==" + "Checksum" => "lj2xuTgwaooaswcUFFdUL3AUqYNHIWBFrN7bf7EQ7/OYVd9rWslfSWcAhanGYSmXZKvWujxK/Egmbp1GQSrvlw==" ], "./scripts/send_payment_section.js" => [ - "Version" => 74, + "Version" => 101, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "1svao8i3E1GI10MEADRadNLsYYq4+hUOs+CGJXv58dFsq61c6UzTMIViTkdiuiFqzO2plu1D8vCnKS4BbcBVFw==" + "Checksum" => "3PPueVbL3bu3HdyDsDcluJmDaxO2LNBkp5HDXfiAFYAk9vD3zU94Vzenluiv93/uE/5zPTtlIftBO7bvolyywA==" ], "./scripts/log_section.js" => [ "Version" => 7, @@ -915,10 +915,10 @@ "Checksum" => "tL8JRuLipT2XAjuSFouO83j4CGsTPvdWE8Co6cKcuhskCdPKA3XquDvo3DgpU4cRhbjc4DrDwTZq27YChQ5IIA==" ], "./scripts/unlocked.js" => [ - "Version" => 80, + "Version" => 92, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "iXlQG4m6Iw/aYqKXjP21LFII9Nuw42xMjkWY2DNB7kQ5xg5e6d9v9rhTHgJbSpnTEehSAM5S/cJ4hKl9DARiLw==" + "Checksum" => "82dzsYR3p2pahc9CDklC2bFTmPDINx/GDiQKiIelG1YFE2f2kSOi1Ga7gPTIk29oWImtHQAYcIRkPNIZE2KOAw==" ], "./scripts/uuid.js" => [ "Version" => 5, @@ -1323,7 +1323,7 @@ "Checksum" => "tOhHVb/LcJeCK0whL1JGdLGcBmMd58cq40BHkJQYk6I75O72DzZOpPB7/wZMbsee0tSPo86DxSLI4/IiOVJKLA==" ], "./styles/unlocked.css" => [ - "Version" => 10, + "Version" => 20, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL @@ -1335,7 +1335,7 @@ "Checksum" => "XD9ZdiMk+TvjGzPL9bShDP8BHp1n5SyqVAtRs3AreF6Nq+KXPASTM+yEASG0wbibhpJvqb4YEWyQadd4gM7D6Q==" ], "./styles/section.css" => [ - "Version" => 9, + "Version" => 11, "Cache" => TRUE, "Minified" => FALSE, "Checksum" => NULL @@ -1353,10 +1353,10 @@ "Checksum" => "kle8KMb5SxViaESttcxJhtm3gdbbQmLCiMEzin09b6tfLYO4nu787LVxkBA0GuV+Ar5BLMRnUNny9T3untSuVQ==" ], "./styles/transaction_section.css" => [ - "Version" => 10, + "Version" => 12, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "bSjTsxF8PD7D3bA9lEjcmDhXuvDB5TrE0mkkn4clw/hPsTxBCWS8/UWUPPQVjOc4be4Gr+IhNgfNqTlmAk95uQ==" + "Checksum" => "CQu4kK60uQl2b13ufaFGAn0SE+d1jgulF6jVTrcJWgqRUwJBiAtFfbPszflVpmna4TNcuvserMUVX4d0pCoV5g==" ], "./styles/account_section.css" => [ "Version" => 3, @@ -1365,10 +1365,10 @@ "Checksum" => "+iLOox399ALnS2ocTTcoR8TeLA911Bq1xoTAcINCUU40rxukwsiTQUbPLWxukc4VqPRhUlbTiTLie5fVPL64+Q==" ], "./styles/wallet_section.css" => [ - "Version" => 21, + "Version" => 24, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "cpEAWAh9uHU5eV74nG4JNwJEJi79Z0C6Iq/DxTG+m/ulisUZq+9qAAK1k3T6YjJUZEVz5tLRzPWa6Lgq+lk3WQ==" + "Checksum" => "w7n2vzYHN5b+wquh6vc4OLO1N4R4P/CI1ZMjoCkMSV5u5+96zedO/BjLkBV0S99ytDwahU0DfJl+qc6tjY/tWw==" ], "./styles/send_payment_section.css" => [ "Version" => 6, @@ -1401,10 +1401,10 @@ "Checksum" => "mf4xH5NA+btnUSrWZgCv7YLH5fAWv3/vTaAEVd3fQE6UZvf4+TB5t++LKn/ZiJ7wl8ONtpWDxwdSuWjHIzcmKg==" ], "./styles/message.css" => [ - "Version" => 25, + "Version" => 28, "Cache" => TRUE, "Minified" => FALSE, - "Checksum" => "5X+bJOMizrYB2vEnuLUSdfB6yTKtlkQRTOC4/BvI535scNxisPHzA0/ZU2k80DOUYwDTazkaChg1N0UvG0qmrA==" + "Checksum" => "Gqs7ZH11SE0HCgv7SIiD9qVWmYjrMn6LyN7OavvryUtgNcv/uDYn9t4BqfXDXF71wGgfqEGQ/pWgNWwKUZI7IQ==" ], "./styles/tetris.css" => [ "Version" => 3, diff --git a/public_html/errors/503.html b/public_html/errors/503.html index b966934..3023764 100755 --- a/public_html/errors/503.html +++ b/public_html/errors/503.html @@ -73,7 +73,7 @@ header("Retry-After: " . gmdate("D, d M Y H:i:s T", time() + RETRY_AFTER_SECONDS)); // Set refresh header - header("Refresh: " . sprintf("%.0f", RETRY_AFTER_SECONDS) . "; URL=" . ((isset($hideUrl) === TRUE) ? $_SERVER["HTTP_REFERER"] : ("http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . rawurlencode($_SERVER["SERVER_NAME"]) . $_SERVER["REQUEST_URI"]))); + header("Refresh: " . sprintf("%.0F", RETRY_AFTER_SECONDS) . "; URL=" . ((isset($hideUrl) === TRUE) ? $_SERVER["HTTP_REFERER"] : ("http" . ((array_key_exists("HTTPS", $_SERVER) === TRUE && $_SERVER["HTTPS"] === "on") ? "s" : "") . "://" . rawurlencode($_SERVER["SERVER_NAME"]) . $_SERVER["REQUEST_URI"]))); // Set title, title argument, error, error argument, and message $title = getDefaultTranslation('MWC Wallet — Maintenance'); diff --git a/public_html/errors/error.html b/public_html/errors/error.html index 641db59..6619791 100755 --- a/public_html/errors/error.html +++ b/public_html/errors/error.html @@ -44,7 +44,7 @@ } // Set refresh header - header("Refresh: " . sprintf("%.0f", SECONDS_BEFORE_REFRESH) . "; URL=" . $_SERVER["HTTP_REFERER"]); + header("Refresh: " . sprintf("%.0F", SECONDS_BEFORE_REFRESH) . "; URL=" . $_SERVER["HTTP_REFERER"]); // Set title, title argument, error, error argument, and message $title = getDefaultTranslation('MWC Wallet — Error'); diff --git a/public_html/errors/template.php b/public_html/errors/template.php index 4f3da70..f5cd485 100755 --- a/public_html/errors/template.php +++ b/public_html/errors/template.php @@ -810,7 +810,7 @@ - <?= encodeString(getTranslation($title, [getNumberTranslation($titleArgument)])); ?> + <?= encodeString(getTranslation($title, [getNumberTranslation($titleArgument)])); ?> @@ -826,16 +826,16 @@ if($year > COPYRIGHT_YEAR) { // Display copyright information with the current year - echo ""; - echo ""; + echo ""; + echo ""; } // Otherwise else { // Display copyright information with the copyright year - echo ""; - echo ""; + echo ""; + echo ""; } // Display theme color @@ -954,7 +954,7 @@ -->