diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index ebca6f5..ccb3f2e 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -3,7 +3,7 @@ ## Application Structure - [Nault](https://github.com/Nault/Nault) - The main wallet application (UI + Seed Generation/Block Signing/Etc). -- Communication with the network is done via Nano RPC and Websocket protocols, private or public on any nano network. +- Communication with the network is done via nano RPC and Websocket protocols, private or public on any nano network. ## Development Prerequisites - [NodeJS](https://nodejs.org) v14.x + NPM v6.x diff --git a/README.md b/README.md index 8912696..5b0b532 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,11 @@ [![GitHub All Releases](https://img.shields.io/github/downloads/nault/nault/total)](https://github.com/Nault/Nault/releases/latest) [![Discord](https://img.shields.io/badge/discord-join%20chat-orange.svg?logo=discord&color=7289DA)](https://discord.nanocenter.org) -Nault is a community driven fork of the popular Nano wallet [NanoVault](https://github.com/cronoh/nanovault) 💙 +Nault is a community driven fork of the popular nano wallet [NanoVault](https://github.com/cronoh/nanovault) 💙 -It's a fully client-side signing wallet for sending and receiving [Nano](https://github.com/nanocurrency/nano-node/) either directly in your browser at [nault.cc](https://nault.cc) or with the [desktop app](https://github.com/Nault/Nault/releases/latest). +It's a fully client-side signing wallet for sending and receiving [nano](https://github.com/nanocurrency/nano-node/) either directly in your browser at [nault.cc](https://nault.cc) or with the [desktop app](https://github.com/Nault/Nault/releases/latest). -Seamless integration with any Nano compatible RPC backend/websocket and the aim to be more frequently maintained are some of the main features. Those together will greatly increase the stability, performance and uptime. +Seamless integration with any nano compatible RPC backend/websocket and the aim to be more frequently maintained are some of the main features. Those together will greatly increase the stability, performance and uptime. ![Nault Screenshot](/src/assets/img/preview.png) ___ diff --git a/package.json b/package.json index b3133f0..684cc40 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "nault", "version": "1.16.0", "license": "MIT", - "description": "Wallet for interacting with Nano", + "description": "Wallet for interacting with nano", "author": "The Nano Community / Andrew Steele", "main": "desktop-app/dist/desktop-app.js", "scripts": { diff --git a/src/app/app.component.html b/src/app/app.component.html index b984ce6..430b6ba 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -24,7 +24,7 @@
- {{ wallet.selectedAccount.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ wallet.selectedAccount.balance | rai: 'mnano,true' | amountsplit: 1 }} NANO + {{ wallet.selectedAccount.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ wallet.selectedAccount.balance | rai: 'mnano,true' | amountsplit: 1 }} XNO
{{ wallet.selectedAccount.balanceFiat | fiat: settings.settings.displayCurrency }}
@@ -42,7 +42,7 @@
-
{{ wallet.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ wallet.balance | rai: 'mnano,true' | amountsplit: 1 }} NANO
+
{{ wallet.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ wallet.balance | rai: 'mnano,true' | amountsplit: 1 }} XNO
{{ wallet.balanceFiat | fiat: settings.settings.displayCurrency }}
@@ -63,9 +63,9 @@
{{ 'general.new' | transloco }} - +{{ account.pending | rai: 'mnano,true' | amountsplit: 0 }}{{ account.pending | rai: 'mnano,true' | amountsplit: 1 }} NANO + +{{ account.pending | rai: 'mnano,true' | amountsplit: 0 }}{{ account.pending | rai: 'mnano,true' | amountsplit: 1 }} XNO - {{ account.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ account.balance | rai: 'mnano,true' | amountsplit: 1 }} NANO + {{ account.balance | rai: 'mnano,true' | amountsplit: 0 }}{{ account.balance | rai: 'mnano,true' | amountsplit: 1 }} XNO
{{ account.balanceFiat | fiat: settings.settings.displayCurrency }}
@@ -124,7 +124,7 @@
-

Import Seed

+

Import Secret Recovery Seed

- Enter your Nano secret seed below. + Enter your secret recovery seed below.

- +
-

Import Nano Mnemonic

+

Import Secret Recovery Mnemonic

- Enter your Nano mnemonic phrase below.
If it came from a Ledger device or certain multi-currency wallets, use BIP39 Mnemonic import type instead. + Enter your secret recovery mnemonic below.
If it came from a Ledger device or certain multi-currency wallets, use BIP39 Mnemonic import type instead.

- +
-

Import BIP39 Mnemonic

+

Import Secret Recovery BIP39 Mnemonic

- Enter your BIP39 mnemonic phrase below. It is typically generated by Ledger devices and certain multi-currency wallets.
If it was generated in Nault, use Nano Mnemonic import type instead. + Enter your secret recovery BIP39 mnemonic below. It is typically generated by Ledger devices and certain multi-currency wallets.
If it was generated in Nault, use Nano Mnemonic import type instead.

@@ -287,7 +287,7 @@
- +
@@ -314,7 +314,7 @@

Use Ledger Hardware Wallet

- Make sure you have the Nano app installed and running on your Ledger, then click one of the buttons below to connect via either USB or Bluetooth.
+ Make sure you have the nano app installed and running on your Ledger, then click one of the buttons below to connect via either USB or Bluetooth.
Ledger/Nault User Guide and Troubleshooting

@@ -338,7 +338,7 @@

Ledger Device Not Connected
- Connect your Ledger device and make sure you have the Nano app installed and running, then press the button below.
+ Connect your Ledger device and make sure you have the nano app installed and running, then press the button below.
Bluetooth is currently not supported by your browser, please use Google Chrome or download the Desktop App

@@ -372,7 +372,7 @@

Import Private Key

- Enter your Nano private key below. + Enter your nano account's private key below.

@@ -384,7 +384,7 @@

Import Expanded Private Key

- Enter your expanded private key below. These are rare, and are usually generated from multi-party cryptography magic. + Enter your nano account's expanded private key below. These are rare, and are usually generated from multi-party cryptography magic.

@@ -507,7 +507,7 @@

- Your wallet has been created and you are ready to send and receive Nano!
+ Your wallet has been created and you are ready to send and receive nano!
It will lock after a certain amount of inactivity which can be changed in the app settings.

diff --git a/src/app/components/configure-wallet/configure-wallet.component.ts b/src/app/components/configure-wallet/configure-wallet.component.ts index 82cbac0..f5c7ff0 100644 --- a/src/app/components/configure-wallet/configure-wallet.component.ts +++ b/src/app/components/configure-wallet/configure-wallet.component.ts @@ -58,15 +58,6 @@ export class ConfigureWalletComponent implements OnInit { indexMax = INDEX_MAX; selectedImportOption = 'seed'; - importOptions = [ - { name: 'Nano Seed', value: 'seed' }, - { name: 'Nano Mnemonic Phrase', value: 'mnemonic' }, - { name: 'BIP39 Mnemonic Phrase', value: 'bip39-mnemonic' }, - { name: 'Nault Wallet File', value: 'file' }, - { name: 'Ledger Nano S / Nano X', value: 'ledger' }, - { name: 'Private Key', value: 'privateKey' }, - { name: 'Expanded Private Key', value: 'expandedKey' }, - ]; ledgerStatus = LedgerStatus; ledger = this.ledgerService.ledger; @@ -168,11 +159,11 @@ export class ConfigureWalletComponent implements OnInit { if (this.ledger.status === LedgerStatus.NOT_CONNECTED) { this.ledgerService.resetLedger(); - return this.notifications.sendWarning(`Failed to connect the Ledger device. Make sure the Nano app is running on the Ledger. If the error persists: Check the troubleshooting guide`, { identifier: 'ledger-error', length: 0 }); + return this.notifications.sendWarning(`Failed to connect the Ledger device. Make sure the nano app is running on the Ledger. If the error persists: Check the troubleshooting guide`, { identifier: 'ledger-error', length: 0 }); } if (this.ledger.status === LedgerStatus.LOCKED) { - return this.notifications.sendWarning(`Unlock your Ledger device and open the Nano app to continue`); + return this.notifications.sendWarning(`Unlock your Ledger device and open the nano app to continue`); } if (this.ledger.status === LedgerStatus.READY) { @@ -203,13 +194,13 @@ export class ConfigureWalletComponent implements OnInit { if (this.walletService.isLedgerWallet()) { msg = '


You are about to configure a new wallet, which will disconnect your Ledger device from Nault.

If you need to use the Ledger wallet, simply import your device again.

Make sure you have saved the recovery phrase you got when initially setting up your Ledger device.

YOU WILL NOT BE ABLE TO RECOVER THE FUNDS
if you lose both the recovery phrase and access to your Ledger device.


'; } else { - msg = '


You are about to configure a new wallet, which will replace your currently configured wallet.

Before continuing, make sure you have saved the Nano seed and/or mnemonic of your current wallet.

YOU WILL NOT BE ABLE TO RECOVER THE FUNDS
without a backup of your currently configured wallet.


'; + msg = '


You are about to configure a new wallet, which will replace your currently configured wallet.

' + this.translocoService.translate('reset-wallet.before-continuing-make-sure-you-have-saved-the-nano-seed') + '

' + this.translocoService.translate('reset-wallet.you-will-not-be-able-to-recover-the-funds-without-a-backup') + '


'; } await UIkit.modal.confirm(msg); return true; } catch (err) { if (!this.walletService.isLedgerWallet()) { - this.notifications.sendInfo(`You can use the 'Manage Wallet' page to backup your Nano seed and/or mnemonic`); + this.notifications.sendInfo(`You can use the 'Manage Wallet' page to backup your wallet's secret recovery seed and/or mnemonic`); } return false; } @@ -352,7 +343,7 @@ export class ConfigureWalletComponent implements OnInit { this.walletService.saveWalletExport(); this.walletService.informNewWallet(); - this.notifications.sendSuccess(`Successfully created new wallet! Do not lose the seed/mnemonic!`); + this.notifications.sendSuccess(`Successfully created new wallet! Do not lose the secret recovery seed/mnemonic!`); } setPanel(panel) { diff --git a/src/app/components/converter/converter.component.html b/src/app/components/converter/converter.component.html index fb9b470..d9bcdd5 100644 --- a/src/app/components/converter/converter.component.html +++ b/src/app/components/converter/converter.component.html @@ -9,7 +9,7 @@
- +
@@ -27,7 +27,7 @@
- +
diff --git a/src/app/components/helpers/nano-transaction-mobile/nano-transaction-mobile.component.html b/src/app/components/helpers/nano-transaction-mobile/nano-transaction-mobile.component.html index 446fff9..ac73807 100644 --- a/src/app/components/helpers/nano-transaction-mobile/nano-transaction-mobile.component.html +++ b/src/app/components/helpers/nano-transaction-mobile/nano-transaction-mobile.component.html @@ -121,7 +121,7 @@
{{ transaction.amount | rai: 'mnano,true' | amountsplit: 0 }} {{ transaction.amount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO

- Unlock wallet to access the seed/mnemonic. + Unlock wallet to access the secret recovery seed/mnemonic.

Unlock wallet to access the private key.

- To backup your wallet mnemonic phrase, click here to copy it to your clipboard. + To backup your wallet's secret recovery mnemonic, click here to copy it to your clipboard.

- To backup your wallet seed, click here to copy it to your clipboard.
+ To backup your wallet's secret recovery seed, click here to copy it to your clipboard.

- To backup your private key, click here to copy it to your clipboard.
+ To backup your wallet account's private key, click here to copy it to your clipboard.

@@ -75,7 +75,7 @@

If you forget the wallet password used at the time of this export, you will NOT be able to restore your wallet.

- For backup purposes, always store the seed and/or mnemonic from the "Backup Wallet" section above. + For backup purposes, always store the secret recovery seed and/or mnemonic from the "Backup Wallet" section above.

@@ -130,7 +130,7 @@
diff --git a/src/app/components/multisig/multisig.component.html b/src/app/components/multisig/multisig.component.html index 7aa4bfd..1c50312 100644 --- a/src/app/components/multisig/multisig.component.html +++ b/src/app/components/multisig/multisig.component.html @@ -12,7 +12,7 @@

1 - Create a Multisig Address

-

Add 2 or more Nano addresses to form a new multisig address.
+

Add 2 or more nano addresses to form a new multisig address.
If you (or the participants) don't have any, they can be generated with the Keypair Generator and stored safely.

diff --git a/src/app/components/multisig/multisig.component.ts b/src/app/components/multisig/multisig.component.ts index a490ab8..b0d28f4 100644 --- a/src/app/components/multisig/multisig.component.ts +++ b/src/app/components/multisig/multisig.component.ts @@ -52,7 +52,7 @@ export class MultisigComponent implements OnInit { addAccount() { if (this.accountAddStatus !== 1) { this.notificationService.removeNotification('account-invalid'); - this.notificationService.sendWarning('Invalid Nano address!', {identifier: 'account-invalid'}); + this.notificationService.sendWarning('Invalid nano address!', {identifier: 'account-invalid'}); return; } if (this.storedAccounts.includes(this.accountAdd.replace('xrb_', 'nano_').toLocaleLowerCase())) { @@ -133,7 +133,7 @@ export class MultisigComponent implements OnInit { if (this.validateMultisig()) { this.router.navigate(['account', this.multisigAccount], { queryParams: {sign: 1}}); } else { - this.notificationService.sendWarning('Invalid Nano account!'); + this.notificationService.sendWarning('Invalid nano account!'); } } diff --git a/src/app/components/receive/receive.component.css b/src/app/components/receive/receive.component.css index 90c379c..8a9eb2c 100644 --- a/src/app/components/receive/receive.component.css +++ b/src/app/components/receive/receive.component.css @@ -30,14 +30,6 @@ max-width: 450px; } -.icon-nano-logo { - margin: 13px 11px; - width: 32px; - background-color: currentcolor; - -webkit-mask-image: url('assets/img/nano-mark-simple.svg'); - mask-image: url('assets/img/nano-mark-simple.svg'); -} - .receive-columns { display: flex; flex-direction: column; diff --git a/src/app/components/receive/receive.component.html b/src/app/components/receive/receive.component.html index a83bb25..0826098 100644 --- a/src/app/components/receive/receive.component.html +++ b/src/app/components/receive/receive.component.html @@ -13,7 +13,7 @@
@@ -22,12 +22,12 @@
- - + +
@@ -202,7 +202,7 @@ Ready to receive
{{ pending.amount | rai: 'mnano,true' | amountsplit: 0 }} {{ pending.amount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
@@ -226,7 +226,7 @@ - +
Minimum Receive is set to {{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() | rai: 'mnano,true' | amountsplit: 0 }}{{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() | rai: 'mnano,true' | amountsplit: 1 }} NANO{{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() }} raw, transactions below this amount will be hidden. Minimum Receive is set to {{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() | rai: 'mnano,true' | amountsplit: 0 }}{{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() | rai: 'mnano,true' | amountsplit: 1 }} XNO{{ util.nano.mnanoToRaw(this.settings.settings.minimumReceive).toFixed() }} raw, transactions below this amount will be hidden.
diff --git a/src/app/components/receive/receive.component.ts b/src/app/components/receive/receive.component.ts index 2efcda0..fb86b76 100644 --- a/src/app/components/receive/receive.component.ts +++ b/src/app/components/receive/receive.component.ts @@ -319,7 +319,7 @@ export class ReceiveComponent implements OnInit, OnDestroy { receivableBlock.received = true; this.mobileTransactionMenuModal.hide(); this.notificationService.removeNotification('success-receive'); - this.notificationService.sendSuccess(`Successfully received Nano!`, { identifier: 'success-receive' }); + this.notificationService.sendSuccess(`Successfully received nano!`, { identifier: 'success-receive' }); // pending has been processed, can be removed from the list // list also updated with reloadBalances but not if called too fast this.walletService.removePendingBlock(receivableBlock.hash); diff --git a/src/app/components/remote-signing/remote-signing.component.html b/src/app/components/remote-signing/remote-signing.component.html index ab77c34..f3e0992 100644 --- a/src/app/components/remote-signing/remote-signing.component.html +++ b/src/app/components/remote-signing/remote-signing.component.html @@ -6,13 +6,13 @@
-

An extremely secure way of transacting on the Nano network without exposing your private keys to the Internet, ensuring only non-sensitive data is transferred between devices. +

An extremely secure way of transacting on the nano network without exposing your private keys to the Internet, ensuring only non-sensitive data is transferred between devices.
A full security and user guide is found here.

STEP 1 - Create Block (Online Device)

-

Create a SEND, RECEIVE or CHANGE block from a "watch-only" account. No login is needed.

+

Create a SEND, RECEIVE or CHANGE block from a "watch-only" account. No wallet import needed.

diff --git a/src/app/components/remote-signing/remote-signing.component.ts b/src/app/components/remote-signing/remote-signing.component.ts index ee62a3b..77ab9cf 100644 --- a/src/app/components/remote-signing/remote-signing.component.ts +++ b/src/app/components/remote-signing/remote-signing.component.ts @@ -108,7 +108,7 @@ export class RemoteSigningComponent implements OnInit { if (this.validateDestination()) { this.router.navigate(['account', this.toAccountID], { queryParams: {sign: 1}}); } else { - this.notificationService.sendWarning('Invalid Nano account!'); + this.notificationService.sendWarning('Invalid nano account!'); } } diff --git a/src/app/components/representatives/representatives.component.html b/src/app/components/representatives/representatives.component.html index 57b02a2..87554a7 100644 --- a/src/app/components/representatives/representatives.component.html +++ b/src/app/components/representatives/representatives.component.html @@ -14,7 +14,7 @@
-

Representatives participate in the Nano consensus protocol on your behalf. You can change them at any time.

+

Representatives participate in the nano consensus protocol on your behalf. You can change them at any time.

@@ -74,7 +74,7 @@
{{ rep.delegatedWeight | rai: 'mnano,true' | amountsplit: 0 }} {{ rep.delegatedWeight | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
@@ -97,7 +97,7 @@
{{ delegatingAccount.balance | rai: 'mnano,true' | amountsplit: 0 }} {{ delegatingAccount.balance | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
@@ -136,7 +136,7 @@
  • diff --git a/src/app/components/send/send.component.css b/src/app/components/send/send.component.css index 14ff580..b37f2b3 100644 --- a/src/app/components/send/send.component.css +++ b/src/app/components/send/send.component.css @@ -88,11 +88,3 @@ .send-types-tab-active { border-color: transparent; } - -.icon-nano-logo { - margin: 13px 11px; - width: 32px; - background-color: currentcolor; - -webkit-mask-image: url('assets/img/nano-mark-simple.svg'); - mask-image: url('assets/img/nano-mark-simple.svg'); -} diff --git a/src/app/components/send/send.component.html b/src/app/components/send/send.component.html index a2cff48..584a1d5 100644 --- a/src/app/components/send/send.component.html +++ b/src/app/components/send/send.component.html @@ -1,6 +1,6 @@
    -

    {{ (sendDestinationType === 'own-address') ? 'Transfer Nano between own accounts' : 'Send Nano' }}

    +

    {{ (sendDestinationType === 'own-address') ? 'Transfer Nano Between Own Accounts' : 'Send Nano' }}

    @@ -22,7 +22,7 @@
    @@ -59,7 +59,7 @@
    @@ -73,7 +73,7 @@
    Max - +
    @@ -85,7 +85,7 @@ @@ -101,7 +101,7 @@ @@ -168,7 +168,7 @@ {{ (fromAccount.balance || 0) | rai: 'mnano,true' | amountsplit: 0 }} {{ (fromAccount.balance || 0) | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
    @@ -179,7 +179,7 @@ - {{ rawAmount | rai: 'mnano,true' | amountsplit: 0 }} {{ rawAmount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
    @@ -215,7 +215,7 @@ {{ (toAccount.balance || 0) | rai: 'mnano,true' | amountsplit: 0 }} {{ (toAccount.balance || 0) | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO @@ -226,7 +226,7 @@ + {{ rawAmount | rai: 'mnano,true' | amountsplit: 0 }} {{ rawAmount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO diff --git a/src/app/components/send/send.component.ts b/src/app/components/send/send.component.ts index d535370..516dc2d 100644 --- a/src/app/components/send/send.component.ts +++ b/src/app/components/send/send.component.ts @@ -34,7 +34,7 @@ export class SendComponent implements OnInit { addressBookMatch = ''; amounts = [ - { name: 'NANO', shortName: 'NANO', value: 'mnano' }, + { name: 'XNO', shortName: 'XNO', value: 'mnano' }, { name: 'knano', shortName: 'knano', value: 'knano' }, { name: 'nano', shortName: 'nano', value: 'nano' }, ]; @@ -299,7 +299,7 @@ export class SendComponent implements OnInit { return this.notificationService.sendWarning(`From and to account are required`); } if (!this.validateAmount()) { - return this.notificationService.sendWarning(`Invalid NANO Amount`); + return this.notificationService.sendWarning(`Invalid XNO amount`); } this.preparingTransaction = true; @@ -328,7 +328,7 @@ export class SendComponent implements OnInit { return this.notificationService.sendWarning(`Amount is invalid`); } if (from.balanceBN.minus(rawAmount).lessThan(0)) { - return this.notificationService.sendError(`From account does not have enough NANO`); + return this.notificationService.sendError(`From account does not have enough XNO`); } // Determine a proper raw amount to show in the UI, if a decimal was entered diff --git a/src/app/components/sign/sign.component.html b/src/app/components/sign/sign.component.html index 6b02c49..1255686 100644 --- a/src/app/components/sign/sign.component.html +++ b/src/app/components/sign/sign.component.html @@ -20,10 +20,10 @@
    {{ rawAmount | rai: 'mnano,true' | amountsplit: 0 }} {{ rawAmount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
    {{ amountFiat | fiat: settings.settings.displayCurrency }}
    -
    {{ price.price.lastPrice | fiat: settings.settings.displayCurrency }} / NANO
    +
    {{ price.price.lastPrice | fiat: settings.settings.displayCurrency }} / XNO
    @@ -57,7 +57,7 @@ {{ fromAccountBalance ? (fromAccountBalance | rai: 'mnano,true' | amountsplit: 0) : 'N/A' }} {{ fromAccountBalance ? (fromAccountBalance | rai: 'mnano,true' | amountsplit: 1) : '' }} - {{ fromAccountBalance ? 'NANO' : '' }} + {{ fromAccountBalance ? 'XNO' : '' }} @@ -68,7 +68,7 @@ - {{ rawAmount | rai: 'mnano,true' | amountsplit: 0 }} {{ rawAmount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO @@ -119,7 +119,7 @@ {{ toAccountBalance && txType === txTypes.receive ? (toAccountBalance | rai: 'mnano,true' | amountsplit: 0) : 'N/A' }} {{ toAccountBalance && txType === txTypes.receive ? (toAccountBalance | rai: 'mnano,true' | amountsplit: 1) : '' }} - {{ toAccountBalance && txType === txTypes.receive ? 'NANO' : '' }} + {{ toAccountBalance && txType === txTypes.receive ? 'XNO' : '' }} @@ -130,7 +130,7 @@ + {{ rawAmount | rai: 'mnano,true' | amountsplit: 0 }} {{ rawAmount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO @@ -169,7 +169,7 @@
    - +
    diff --git a/src/app/components/sign/sign.component.ts b/src/app/components/sign/sign.component.ts index 0b42ec6..0d8063b 100644 --- a/src/app/components/sign/sign.component.ts +++ b/src/app/components/sign/sign.component.ts @@ -1061,7 +1061,7 @@ export class SignComponent implements OnInit { multiSign() { const result = this.musigService.runMultiSign(this.privateKey, this.blockHash, this.inputMultisigData); - // used for validation when the final Nano block is created + // used for validation when the final nano block is created if (result && result.multisig !== '') { this.multisigAccount = result.multisig; } diff --git a/src/app/components/sweeper/sweeper.component.html b/src/app/components/sweeper/sweeper.component.html index dfcbb39..9ba44ff 100644 --- a/src/app/components/sweeper/sweeper.component.html +++ b/src/app/components/sweeper/sweeper.component.html @@ -14,7 +14,7 @@ Even a mnemonic from a Ledger hardware wallet or other multicurrency wallets using BIP39/44 can be recovered using this tool.

    - Please use with caution if you are using an external destination. Make sure you have access to the seed on the receiving side! + Please use with caution if you are using an external destination. Make sure you have access to the secret recovery seed on the receiving side!

    @@ -29,7 +29,7 @@
    - +
    @@ -44,7 +44,7 @@
    diff --git a/src/app/components/sweeper/sweeper.component.ts b/src/app/components/sweeper/sweeper.component.ts index 006042f..6f61988 100644 --- a/src/app/components/sweeper/sweeper.component.ts +++ b/src/app/components/sweeper/sweeper.component.ts @@ -272,8 +272,8 @@ export class SweeperComponent implements OnInit { this.totalSwept = this.util.big.add(this.totalSwept, nanoAmountSent); } this.notificationService.sendInfo('Account ' + address + ' was swept and ' + - (nanoAmountSent ? (nanoAmountSent.toString(10) + ' Nano') : '') + ' transferred to ' + this.destinationAccount, {length: 15000}); - this.appendLog('Funds transferred ' + (nanoAmountSent ? ('(' + nanoAmountSent.toString(10) + ' Nano)') : '') + ': ' + data.hash); + (nanoAmountSent ? ( 'Ó¾' + nanoAmountSent.toString(10) ) : '') + ' transferred to ' + this.destinationAccount, {length: 15000}); + this.appendLog('Funds transferred ' + (nanoAmountSent ? ('(Ó¾' + nanoAmountSent.toString(10) + ')') : '') + ': ' + data.hash); console.log(this.adjustedBalance + ' raw transferred to ' + this.destinationAccount); } else { this.notificationService.sendWarning(`Failed processing block.`); @@ -379,8 +379,8 @@ export class SweeperComponent implements OnInit { raw = this.util.big.add(raw, data.blocks[key].amount); }.bind(this)); const nanoAmount = this.util.nano.rawToMnano(raw); - const pending = {count: Object.keys(data.blocks).length, raw: raw, NANO: nanoAmount, blocks: data.blocks}; - const row = 'Found ' + pending.count + ' pending containing total ' + pending.NANO + ' NANO'; + const pending = {count: Object.keys(data.blocks).length, raw: raw, XNO: nanoAmount, blocks: data.blocks}; + const row = 'Found ' + pending.count + ' pending containing total ' + pending.XNO + ' XNO'; this.appendLog(row); // create receive blocks for all pending @@ -469,8 +469,8 @@ export class SweeperComponent implements OnInit { } else { // all private keys have been processed this.appendLog('Finished processing all accounts'); - this.appendLog(this.totalSwept + ' Nano transferred'); - this.notificationService.sendInfo('Finished processing all accounts. ' + this.totalSwept + ' Nano transferred', {length: 0}); + this.appendLog('Ó¾' + this.totalSwept + ' transferred'); + this.notificationService.sendInfo('Finished processing all accounts. Ó¾' + this.totalSwept + ' transferred', {length: 0}); this.sweeping = false; } }.bind(this)); @@ -567,7 +567,7 @@ export class SweeperComponent implements OnInit { // let user confirm account const UIkit = window['UIkit']; try { - const msg = '


    You are about to empty the source wallet, which will transfer all funds from it to the destination address.

    Before continuing, make sure you (or someone) have saved the Nano seed and/or mnemonic of the specified destination address.

    YOU WILL NOT BE ABLE TO RECOVER THE FUNDS
    without a backup of the specified destination address.


    '; + const msg = '


    You are about to empty the source wallet, which will transfer all funds from it to the destination address.

    Before continuing, make sure you (or someone) have saved the secret recovery seed and/or mnemonic of the specified destination address.

    YOU WILL NOT BE ABLE TO RECOVER THE FUNDS
    without a backup of the specified destination address.


    '; await UIkit.modal.confirm(msg); this.sweepContinue(); } catch (err) { diff --git a/src/app/components/transaction-details/transaction-details.component.html b/src/app/components/transaction-details/transaction-details.component.html index 6a6543b..a40195b 100644 --- a/src/app/components/transaction-details/transaction-details.component.html +++ b/src/app/components/transaction-details/transaction-details.component.html @@ -49,7 +49,7 @@ > {{ transaction?.amount | rai: 'mnano,true' | amountsplit: 0 }} {{ transaction?.amount | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
    +{{ amountRaw.toString(10) }} raw
    @@ -157,7 +157,7 @@
    {{ ( isStateBlock ? getBalanceFromDec(transaction?.contents?.balance) : getBalanceFromHex(transaction?.contents?.balance )) | rai: 'mnano,true' | amountsplit: 0 }} {{ ( isStateBlock ? getBalanceFromDec(transaction?.contents?.balance) : getBalanceFromHex(transaction?.contents?.balance )) | rai: 'mnano,true' | amountsplit: 1 }} - NANO + XNO
    ={{ transaction?.contents?.balance }} raw
    diff --git a/src/app/pipes/rai.pipe.ts b/src/app/pipes/rai.pipe.ts index 5e7b580..e3480cf 100644 --- a/src/app/pipes/rai.pipe.ts +++ b/src/app/pipes/rai.pipe.ts @@ -17,15 +17,15 @@ export class RaiPipe implements PipeTransform { switch (denomination.toLowerCase()) { default: - case 'xrb': return `${(value / this.mrai).toFixed(6)}${!hideText ? ' NANO' : ''}`; + case 'xrb': return `${(value / this.mrai).toFixed(6)}${!hideText ? ' XNO' : ''}`; case 'mnano': const hasRawValue = (value / this.rai) % 1; if (hasRawValue) { // New more precise toFixed function, but bugs on huge raw numbers const newVal = value / this.mrai < 0.000001 ? 0 : value / this.mrai; - return `${this.toFixed(newVal, this.precision)}${!hideText ? ' NANO' : ''}`; + return `${this.toFixed(newVal, this.precision)}${!hideText ? ' XNO' : ''}`; } else { - return `${(value / this.mrai).toFixed(6)}${!hideText ? ' NANO' : ''}`; + return `${(value / this.mrai).toFixed(6)}${!hideText ? ' XNO' : ''}`; } case 'knano': return `${(value / this.krai).toFixed(3)}${!hideText ? ' knano' : ''}`; case 'nano': return `${(value / this.rai).toFixed(0)}${!hideText ? ' nano' : ''}`; diff --git a/src/app/services/ledger.service.ts b/src/app/services/ledger.service.ts index bfb45ac..eb2980d 100644 --- a/src/app/services/ledger.service.ts +++ b/src/app/services/ledger.service.ts @@ -345,7 +345,7 @@ export class LedgerService { this.ledger.status = LedgerStatus.NOT_CONNECTED; this.ledgerStatus$.next({ status: this.ledger.status, statusText: `Unable to detect Nano Ledger application (Timeout)` }); if (!hideNotifications) { - this.notifications.sendWarning(`Unable to connect to the Ledger device. Make sure it is unlocked and the Nano application is open`); + this.notifications.sendWarning(`Unable to connect to the Ledger device. Make sure it is unlocked and the nano application is open`); } resolved = true; return resolve(false); @@ -367,7 +367,7 @@ export class LedgerService { this.resetLedger(); } if (!hideNotifications && !resolved) { - this.notifications.sendWarning(`Unable to connect to the Ledger device. Make sure your Ledger is unlocked. Restart the Nano App on your Ledger if the error persists`); + this.notifications.sendWarning(`Unable to connect to the Ledger device. Make sure your Ledger is unlocked. Restart the nano app on your Ledger if the error persists`); } resolved = true; return resolve(false); @@ -388,7 +388,7 @@ export class LedgerService { if (err.statusCode === STATUS_CODES.SECURITY_STATUS_NOT_SATISFIED) { this.ledger.status = LedgerStatus.LOCKED; if (!hideNotifications) { - this.notifications.sendWarning(`Ledger device locked. Unlock and open the Nano application`); + this.notifications.sendWarning(`Ledger device locked. Unlock and open the nano application`); } } } diff --git a/src/app/services/node.service.ts b/src/app/services/node.service.ts index 4b4327d..8b80013 100644 --- a/src/app/services/node.service.ts +++ b/src/app/services/node.service.ts @@ -10,7 +10,7 @@ export class NodeService { constructor(private notifications: NotificationService) { } - setOffline(msg = `Unable to connect to the Nano node, your balances may be inaccurate!`) { + setOffline(msg = `Unable to connect to the nano node, your balances may be inaccurate!`) { if (this.node.status === false) return; // Already offline this.node.status = false; diff --git a/src/app/services/util.service.ts b/src/app/services/util.service.ts index ff3fef9..615bcf4 100644 --- a/src/app/services/util.service.ts +++ b/src/app/services/util.service.ts @@ -306,7 +306,7 @@ function isValidAccount(account: string): boolean { return nanocurrency.checkAddress(account); } -// Check if a string is a numeric and larger than 0 but less than Nano supply +// Check if a string is a numeric and larger than 0 but less than nano supply function isValidNanoAmount(val: string) { // numerics and last character is not a dot and number of dots is 0 or 1 const isnum = /^-?\d*\.?\d*$/.test(val); @@ -328,11 +328,11 @@ function isValidAmount(val: string) { function getAccountPublicKey(account) { if (!isValidAccount(account)) { - throw new Error(`Invalid Nano Account`); + throw new Error(`Invalid nano account`); } const account_crop = account.length === 64 ? account.substring(4, 64) : account.substring(5, 65); const isValid = /^[13456789abcdefghijkmnopqrstuwxyz]+$/.test(account_crop); - if (!isValid) throw new Error(`Invalid NANO account`); + if (!isValid) throw new Error(`Invalid nano account`); const key_uint4 = array_crop(uint5ToUint4(stringToUint5(account_crop.substring(0, 52)))); const hash_uint4 = uint5ToUint4(stringToUint5(account_crop.substring(52, 60))); diff --git a/src/app/services/wallet.service.ts b/src/app/services/wallet.service.ts index 171b99e..3626982 100644 --- a/src/app/services/wallet.service.ts +++ b/src/app/services/wallet.service.ts @@ -186,18 +186,18 @@ export class WalletService { if (transaction.block.subtype === 'send') { // Incoming transaction if (this.addressBook.getTransactionTrackingById(addressLink)) { - this.notifications.sendInfo(`Tracked address ${accountHrefLink} can now receive ${trackedAmount} NANO`, { length: 10000 }); - console.log(`Tracked incoming block to: ${address} - ${trackedAmount} Nano`); + this.notifications.sendInfo(`Tracked address ${accountHrefLink} can now receive ${trackedAmount} XNO`, { length: 10000 }); + console.log(`Tracked incoming block to: ${address} - Ӿ${trackedAmount}`); } // Outgoing transaction if (this.addressBook.getTransactionTrackingById(address)) { - this.notifications.sendInfo(`Tracked address ${accountHref} sent ${trackedAmount} NANO`, { length: 10000 }); - console.log(`Tracked send block from: ${address} - ${trackedAmount} Nano`); + this.notifications.sendInfo(`Tracked address ${accountHref} sent ${trackedAmount} XNO`, { length: 10000 }); + console.log(`Tracked send block from: ${address} - Ӿ${trackedAmount}`); } } else if (transaction.block.subtype === 'receive' && this.addressBook.getTransactionTrackingById(address)) { // Receive transaction - this.notifications.sendInfo(`Tracked address ${accountHref} received incoming ${trackedAmount} NANO`, { length: 10000 }); - console.log(`Tracked receive block to: ${address} - ${trackedAmount} Nano`); + this.notifications.sendInfo(`Tracked address ${accountHref} received incoming ${trackedAmount} XNO`, { length: 10000 }); + console.log(`Tracked receive block to: ${address} - Ӿ${trackedAmount}`); } else if (transaction.block.subtype === 'change' && this.addressBook.getTransactionTrackingById(address)) { // Change transaction this.notifications.sendInfo(`Tracked address ${accountHref} changed its representative to ${rep}`, { length: 10000 }); @@ -1002,7 +1002,7 @@ export class WalletService { const receiveAmount = this.util.nano.rawToMnano(nextBlock.amount); this.notifications.removeNotification('success-receive'); - this.notifications.sendSuccess(`Successfully received ${receiveAmount.isZero() ? '' : receiveAmount.toFixed(6)} Nano!`, { identifier: 'success-receive' }); + this.notifications.sendSuccess(`Successfully received ${receiveAmount.isZero() ? '' : receiveAmount.toFixed(6)} XNO!`, { identifier: 'success-receive' }); // remove after processing // list also updated with reloadBalances but not if called too fast diff --git a/src/assets/i18n/en.json b/src/assets/i18n/en.json index b5c9fe5..850a9cf 100644 --- a/src/assets/i18n/en.json +++ b/src/assets/i18n/en.json @@ -60,13 +60,13 @@ "checking-status": "Checking Status...", "good-representative": "Good Representative", "health": "Health", - "it-is-highly-advised-to-switch-to-a-different-representative": "It is highly advised to switch to a different representative, in order to improve security and decentralization of the Nano network.", + "it-is-highly-advised-to-switch-to-a-different-representative": "It is highly advised to switch to a different representative, in order to improve security and decentralization of the nano network.", "receive-a-transaction-to-configure": "Receive a transaction to configure", - "rep-represents-you": "{{ name }} represents you in the Nano consensus protocol by voting on your behalf.", + "rep-represents-you": "{{ name }} represents you in the nano consensus protocol by voting on your behalf.", "representative-change-required": "Representative Change Required", "representative-for-account": "Representative for {{ account }}", "representative-none": "None", - "switching-to-a-different-representative-could-improve": "Switching to a different representative could improve security and decentralization of the Nano network.", + "switching-to-a-different-representative-could-improve": "Switching to a different representative could improve security and decentralization of the nano network.", "this-representative-has-a-high-voting-weight": "This representative has a high voting weight (over {{ percent }}%).", "this-representative-has-a-very-high-voting-weight": "This representative has a very high voting weight (over {{ percent }}%).", "this-representative-has-announced-plans-to-permanently-shutdown": "This representative has announced plans to permanently shutdown.", @@ -92,10 +92,9 @@ "change-if-your-wallet-should-be-locked-automatically-after": "Change if your wallet should be locked automatically after you have not interacted with it for a certain period of time", "change-the-currency-pair-used-when-showing-fiat-values": "Change the currency pair used when showing fiat values in the application. Select None to hide fiat pairs.", "change-where-your-wallet-is-stored-if-you-select-none-your": "Change where your wallet is stored. If you select none, your wallet is reset every time you reload.", - "change-which-server-is-used-to-communicate-with-the-nano": "Change which server is used to communicate with the Nano network", + "change-which-server-is-used-to-communicate-with-the-nano": "Change which server is used to communicate with the nano network", "clear-all-data": { "1": "You are about to delete all data stored in Nault, which includes all locally stored data about your currently configured wallet, all entries from your address and representative books, and any other cached data. All settings will be reset to default.", - "2": "Before continuing, make sure you have saved the Nano seed and/or mnemonic of your current wallet.", "successfully-deleted-locally-stored-data-and-reset-the": "Successfully deleted locally stored data and reset the settings!" }, "clear-work-cache": "Clear Work Cache", @@ -134,7 +133,7 @@ "leave-blank-to-use-a-recommended-one": "Leave blank to use a recommended one", "lock-after-inactivity": "Lock After Inactivity", "min-receive-amount": "Min. Receive Amount", - "minimum-nano-amount-to-receive-transactions-below-this": "Minimum NANO amount to receive. Transactions below this amount will be ignored by the wallet both for receiving and in the transactions list. Set to blank or 0 to accept all transactions.", + "minimum-nano-amount-to-receive-transactions-below-this": "Minimum XNO amount to receive. Transactions below this amount will be ignored by the wallet both for receiving and in the transactions list. Set to blank or 0 to accept all transactions.", "multiplier-options": { "default-1x-or-1-64x": "Default (1x or 1/64x)" }, @@ -177,7 +176,7 @@ "this-has-to-be-a-valid-authorization-header": "This has to be a valid Authorization header.", "this-has-to-be-a-valid-rpc": { "1": "This has to be a valid", - "2-link-rpc": "Nano RPC endpoint", + "2-link-rpc": "nano RPC endpoint", "3": "or an API compliant with it." }, "this-has-to-be-a-valid-websocket": { @@ -191,7 +190,7 @@ "3": "endpoint or an API compliant with it. If your server on localhost does not work, try the desktop app instead." }, "this-representative-will-be-used-for-any-new-account": "This representative will be used for any new account", - "this-server-is-used-for-rpc-communication-with-the-nano-node": "This server is used for RPC communication with the Nano Node", + "this-server-is-used-for-rpc-communication-with-the-nano-node": "This server is used for RPC communication with the nano node", "this-server-is-used-to-notify-the-wallet-in-real-time-when": "This server is used to notify the wallet in real time when new transactions arrive", "this-will-delete-all-data-related-to-your-wallet-your-seed-a": "This will delete all data related to your wallet (Your seed and accounts)", "this-will-delete-all-locally-cached-proof-of-work-values": "This will delete all locally cached Proof of Work values", @@ -289,11 +288,11 @@ "representative-list-results": "Representative List Results" }, "reset-wallet": { - "before-continuing-make-sure-you-have-saved-the-nano-seed": "Before continuing, make sure you have saved the Nano seed and/or mnemonic of your current wallet.", + "before-continuing-make-sure-you-have-saved-the-nano-seed": "Before continuing, make sure you have saved the secret recovery seed and/or mnemonic of your current wallet.", "you-will-not-be-able-to-recover-the-funds-without-a-backup": "YOU WILL NOT BE ABLE TO RECOVER THE FUNDS without a backup of your currently configured wallet." }, "welcome": { - "a-secure-open-source-wallet-for-nano": "A secure open source wallet for Nano", + "a-secure-open-source-wallet-for-nano": "A secure open source wallet for nano", "advanced-security-features": { "1": "Support for Ledger Nano S / Nano X hardware wallets", "2": "Ability to create multi-signature addresses where multiple private keys are required to access and transfer the funds", @@ -327,7 +326,7 @@ }, "2": { "1": "In Nault there is no single source of truth. All information is provided by the server that's set in app settings. That also means there is no single point of failure – you may choose any public or self-hosted", - "2-link-nano-node": "Nano node", + "2-link-nano-node": "nano node", "3": "as the server." }, "title": "Any Node, Always Available" diff --git a/src/assets/img/nano-mark-simple.svg b/src/assets/img/nano-mark-simple.svg deleted file mode 100644 index 91d0db6..0000000 --- a/src/assets/img/nano-mark-simple.svg +++ /dev/null @@ -1,87 +0,0 @@ - -image/svg+xml - - - - - - - diff --git a/src/assets/img/xno-symbol.svg b/src/assets/img/xno-symbol.svg new file mode 100644 index 0000000..9728d59 --- /dev/null +++ b/src/assets/img/xno-symbol.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/index.html b/src/index.html index 27b549d..166698a 100644 --- a/src/index.html +++ b/src/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/src/less/components/nano-card.less b/src/less/components/nano-card.less index 2738bc8..ade9b4c 100644 --- a/src/less/components/nano-card.less +++ b/src/less/components/nano-card.less @@ -214,9 +214,9 @@ } > .currency-name { - width: 55px; + width: 41px; @media (min-width: 1500px) { - width: 70px; + width: 49px; } margin-right: 15px; diff --git a/src/less/nault-theme.less b/src/less/nault-theme.less index 1ef3330..4dce34c 100644 --- a/src/less/nault-theme.less +++ b/src/less/nault-theme.less @@ -146,6 +146,21 @@ h1, h2, h3, h4, h5, .uk-text-lead, .uk-button, .uk-alert, .uk-description-list d color: #A478E3; } +.xno-symbol { + display: inline-block; + width: 0.756em; + height: 1em; + background-color: currentcolor; + -webkit-mask-image: url('../assets/img/xno-symbol.svg'); + mask-image: url('../assets/img/xno-symbol.svg'); + -webkit-mask-size: cover; + mask-size: cover; + + &.uk-form-icon { + margin: 12px 21px; + } +} + a.fiat-currency-ticker { font-family: 'Montserrat', Arial, Helvetica, sans-serif; color: #81809f !important;