From 3b816edf2da54c8df55e871a8005ac575ccb5dcd Mon Sep 17 00:00:00 2001 From: cryptozoidberg Date: Mon, 8 Apr 2024 11:26:16 +0000 Subject: [PATCH] Auto-build folder html --- html/assets/i18n/af.json | 17 +- html/assets/i18n/ar.json | 17 +- html/assets/i18n/ca.json | 17 +- html/assets/i18n/cs.json | 17 +- html/assets/i18n/da.json | 17 +- html/assets/i18n/de.json | 17 +- html/assets/i18n/el.json | 17 +- html/assets/i18n/en.json | 17 +- html/assets/i18n/es.json | 17 +- html/assets/i18n/fi.json | 17 +- html/assets/i18n/fr.json | 17 +- html/assets/i18n/he.json | 17 +- html/assets/i18n/hu.json | 17 +- html/assets/i18n/id.json | 17 +- html/assets/i18n/it.json | 17 +- html/assets/i18n/ja.json | 17 +- html/assets/i18n/ko.json | 17 +- html/assets/i18n/nl.json | 17 +- html/assets/i18n/no.json | 17 +- html/assets/i18n/pl.json | 17 +- html/assets/i18n/pt.json | 17 +- html/assets/i18n/ro.json | 17 +- html/assets/i18n/ru.json | 17 +- html/assets/i18n/sr.json | 17 +- html/assets/i18n/sv.json | 17 +- html/assets/i18n/tr.json | 17 +- html/assets/i18n/uk.json | 17 +- html/assets/i18n/vi.json | 17 +- html/assets/i18n/zh.json | 17 +- .../scss/components/_migrate-alert.scss | 21 + html/assets/scss/components/index.scss | 1 + html/assets/scss/helpers/_padding.scss | 6 + html/assets/scss/modals/_send-details.scss | 2 +- html/main.js | 1504 +++++++++++------ html/main.js.map | 2 +- html/styles.css | 30 +- html/styles.css.map | 2 +- 37 files changed, 1462 insertions(+), 599 deletions(-) create mode 100644 html/assets/scss/components/_migrate-alert.scss diff --git a/html/assets/i18n/af.json b/html/assets/i18n/af.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/af.json +++ b/html/assets/i18n/af.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/ar.json b/html/assets/i18n/ar.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/ar.json +++ b/html/assets/i18n/ar.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/ca.json b/html/assets/i18n/ca.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/ca.json +++ b/html/assets/i18n/ca.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/cs.json b/html/assets/i18n/cs.json index 194b7862..04caebc4 100644 --- a/html/assets/i18n/cs.json +++ b/html/assets/i18n/cs.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/da.json b/html/assets/i18n/da.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/da.json +++ b/html/assets/i18n/da.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/de.json b/html/assets/i18n/de.json index a2b10d82..8bc4d5b2 100644 --- a/html/assets/i18n/de.json +++ b/html/assets/i18n/de.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Senden", "SEND_PLACEHOLDER": "Nachricht eingeben..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Token hinzufügen", "CANCEL": "Abbrechen", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Zeitspanne:", "TITLE_TOTAL": "Gesamt" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Verschlüsseln", "LOCKED_BALANCE": "Gesperrt", "LOCKED_BALANCE_LINK": "Was bedeutet das?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset-ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Benutzerdefiniertes Token hinzufügen" }, diff --git a/html/assets/i18n/el.json b/html/assets/i18n/el.json index 89ba1b3a..baabe65f 100644 --- a/html/assets/i18n/el.json +++ b/html/assets/i18n/el.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/en.json b/html/assets/i18n/en.json index 3c61c79b..8037456a 100644 --- a/html/assets/i18n/en.json +++ b/html/assets/i18n/en.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/es.json b/html/assets/i18n/es.json index 50a2b88f..3bd3d4db 100644 --- a/html/assets/i18n/es.json +++ b/html/assets/i18n/es.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/fi.json b/html/assets/i18n/fi.json index babecb5c..28ab8a1b 100644 --- a/html/assets/i18n/fi.json +++ b/html/assets/i18n/fi.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/fr.json b/html/assets/i18n/fr.json index ce1818a2..ca4a9fe5 100644 --- a/html/assets/i18n/fr.json +++ b/html/assets/i18n/fr.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Envoyer", "SEND_PLACEHOLDER": "Tapez un message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Ajouter un jeton", "CANCEL": "Annuler", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Période de temps:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Verrouillage", "LOCKED_BALANCE": "Vérouillé{{locked}}{{currency}}", "LOCKED_BALANCE_LINK": "Que signifie cela?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Identifiant de l'élément", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Ajouter un jeton personnalisé" }, diff --git a/html/assets/i18n/he.json b/html/assets/i18n/he.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/he.json +++ b/html/assets/i18n/he.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/hu.json b/html/assets/i18n/hu.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/hu.json +++ b/html/assets/i18n/hu.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/id.json b/html/assets/i18n/id.json index dd12a22e..6579bf01 100644 --- a/html/assets/i18n/id.json +++ b/html/assets/i18n/id.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Kirim", "SEND_PLACEHOLDER": "Ketik sebuah pesan..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Tambahkan token", "CANCEL": "Batal", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Periode waktu:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Kunci", "LOCKED_BALANCE": "Terkunci", "LOCKED_BALANCE_LINK": "Apa yang dimaksudkan?\n", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "ID Aset", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Tambahkan Token Khusus" }, diff --git a/html/assets/i18n/it.json b/html/assets/i18n/it.json index 5d81d356..d185ddf3 100644 --- a/html/assets/i18n/it.json +++ b/html/assets/i18n/it.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Invia", "SEND_PLACEHOLDER": "Digita un messaggio..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Aggiungi token", "CANCEL": "Annulla", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Periodo di tempo:", "TITLE_TOTAL": "Totale" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Blocca", "LOCKED_BALANCE": "Bloccato", "LOCKED_BALANCE_LINK": "Che cosa significa?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "ID risorsa", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Aggiungi token personalizzato" }, diff --git a/html/assets/i18n/ja.json b/html/assets/i18n/ja.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/ja.json +++ b/html/assets/i18n/ja.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/ko.json b/html/assets/i18n/ko.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/ko.json +++ b/html/assets/i18n/ko.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/nl.json b/html/assets/i18n/nl.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/nl.json +++ b/html/assets/i18n/nl.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/no.json b/html/assets/i18n/no.json index babecb5c..28ab8a1b 100644 --- a/html/assets/i18n/no.json +++ b/html/assets/i18n/no.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/pl.json b/html/assets/i18n/pl.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/pl.json +++ b/html/assets/i18n/pl.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/pt.json b/html/assets/i18n/pt.json index 509f9485..c25f9718 100644 --- a/html/assets/i18n/pt.json +++ b/html/assets/i18n/pt.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Enviar", "SEND_PLACEHOLDER": "Escreva uma mensagem..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Adicionar token", "CANCEL": "Cancelar", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Período de tempo:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Bloquear", "LOCKED_BALANCE": "Bloqueado", "LOCKED_BALANCE_LINK": "O que isso quer dizer?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "ID do recurso", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Adicionar token personalizado" }, diff --git a/html/assets/i18n/ro.json b/html/assets/i18n/ro.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/ro.json +++ b/html/assets/i18n/ro.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/ru.json b/html/assets/i18n/ru.json index 51cd0231..2157f540 100644 --- a/html/assets/i18n/ru.json +++ b/html/assets/i18n/ru.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/sr.json b/html/assets/i18n/sr.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/sr.json +++ b/html/assets/i18n/sr.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/sv.json b/html/assets/i18n/sv.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/sv.json +++ b/html/assets/i18n/sv.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/tr.json b/html/assets/i18n/tr.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/tr.json +++ b/html/assets/i18n/tr.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/uk.json b/html/assets/i18n/uk.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/uk.json +++ b/html/assets/i18n/uk.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/vi.json b/html/assets/i18n/vi.json index 4c1582a9..555d3f7f 100644 --- a/html/assets/i18n/vi.json +++ b/html/assets/i18n/vi.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/i18n/zh.json b/html/assets/i18n/zh.json index a41919b2..00935604 100644 --- a/html/assets/i18n/zh.json +++ b/html/assets/i18n/zh.json @@ -402,6 +402,13 @@ "SEND_BUTTON": "Send", "SEND_PLACEHOLDER": "Type a message..." }, + "MIGRATE_WALLET_TO_ZARCANUM": { + "BUTTON1": "Migrate", + "LINK1": "What does it mean?", + "TEXT1": "There are {{ total_bare_outs }} outputs with total amount of {{ total_amount }} ZANO.", + "TEXT2": "They can be converted in {{ txs_count }} transactions with total fee = {{ expected_total_fee }}.", + "TITLE": "Migrate wallet to Zarcanum" + }, "MODALS": { "ADD_TOKEN": "Add token", "CANCEL": "Cancel", @@ -721,6 +728,9 @@ "TITLE_PERIOD": "Time period:", "TITLE_TOTAL": "Total" }, + "SUCCESS_SWEEP_BARE_OUTS": { + "DETAILS": "{{ txs_sent }} transactions were successfully sent, {{ bare_outs_swept }} bare outputs migrated, {{ amount_swept }} coins transferred, and {{ fee_spent }} was spent for fees." + }, "SWAP": { "BUTTONS": { "BUTTON1": "Create Swap", @@ -800,10 +810,15 @@ "LOCK": "Lock", "LOCKED_BALANCE": "Locked", "LOCKED_BALANCE_LINK": "What does that mean?", + "MIGRATE": { + "BUTTON1": "More Details", + "BUTTON2": "Migrate", + "TEXT1": "Your wallet contains pre-zarcanum outputs" + }, "MODAL_ADD_CUSTOM_TOKEN": { "FIELD_TITLE": "Asset ID", "FORM_ERRORS": { - "ERROR1": "Invalid asset ID" + "ERROR1": "Invalid Asset ID" }, "TITLE": "Add Custom Token" }, diff --git a/html/assets/scss/components/_migrate-alert.scss b/html/assets/scss/components/_migrate-alert.scss new file mode 100644 index 00000000..5d3d1069 --- /dev/null +++ b/html/assets/scss/components/_migrate-alert.scss @@ -0,0 +1,21 @@ +.migrate-alert { + .btn-migrate { + background-color: #1F8FEB33; + color: #1F8FEB; + font-size: 1.8rem; + line-height: 1.2; + padding: 0.8rem 2rem; + border-radius: 0.8rem; + cursor: pointer; + transition: background-color 0.2s ease; + + &:hover { + background-color: #1F8FEB50; + } + } + + .migration-details { + font-size: 1.6rem; + } +} + diff --git a/html/assets/scss/components/index.scss b/html/assets/scss/components/index.scss index 70df7163..cc8d7faf 100644 --- a/html/assets/scss/components/index.scss +++ b/html/assets/scss/components/index.scss @@ -5,6 +5,7 @@ @import 'forms'; @import 'icons'; @import 'loader'; +@import 'migrate-alert'; @import 'modals'; @import 'ng-select'; @import 'ngx-pagination'; diff --git a/html/assets/scss/helpers/_padding.scss b/html/assets/scss/helpers/_padding.scss index b9148a09..02e9f307 100644 --- a/html/assets/scss/helpers/_padding.scss +++ b/html/assets/scss/helpers/_padding.scss @@ -33,6 +33,12 @@ padding-bottom: 0.5rem; } +.py-0_8 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; +} + + .py-1 { padding-top: 1rem; padding-bottom: 1rem; diff --git a/html/assets/scss/modals/_send-details.scss b/html/assets/scss/modals/_send-details.scss index 7582d4e7..60c738d2 100644 --- a/html/assets/scss/modals/_send-details.scss +++ b/html/assets/scss/modals/_send-details.scss @@ -1,4 +1,4 @@ -app-send-details-modal { +app-send-details-modal, app-success-sweep-bare-outs { .status { .image { max-width: 13rem; diff --git a/html/main.js b/html/main.js index 0aeb9386..d3b797dd 100644 --- a/html/main.js +++ b/html/main.js @@ -35,6 +35,7 @@ class Wallet { this.updated = false; this._balances$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject(undefined); this._assetsInfoWhitelist = { global_whitelist: [], local_whitelist: [], own_assets: [] }; + this.has_bare_unspent_outputs = false; this.history = []; this.pages = []; this.excluded_history = []; @@ -1546,6 +1547,7 @@ class AppComponent { wallet.balances = data.balances; wallet.mined_total = data.minied_total; wallet.alias_available = data.is_alias_operations_available; + wallet.has_bare_unspent_outputs = data.has_bare_unspent_outputs; }); } }); @@ -10163,17 +10165,19 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "SendDetailsModalComponent": () => (/* binding */ SendDetailsModalComponent) /* harmony export */ }); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 3184); /* harmony import */ var _api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @api/services/backend.service */ 122); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 6317); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 228); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs/operators */ 8951); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ 116); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! rxjs */ 6317); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! rxjs */ 228); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! rxjs/operators */ 8951); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! rxjs/operators */ 116); /* harmony import */ var _parts_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @parts/services/variables.service */ 2994); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/common */ 6362); -/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); -/* harmony import */ var _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/flex-layout/extended */ 3338); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/common */ 6362); +/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); +/* harmony import */ var _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @angular/flex-layout/extended */ 3338); +/* harmony import */ var _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../../../../../parts/components/copy-button.component */ 7035); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ngx-translate/core */ 7514); + @@ -10189,45 +10193,45 @@ const _c0 = ["elDetailsList"]; function SendDetailsModalComponent_div_7_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "img", 21); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 20); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](1, "img", 21); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } } function SendDetailsModalComponent_div_8_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](1, "img", 22); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 20); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](1, "img", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } } function SendDetailsModalComponent_div_9_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "div", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "div", 23); } } function SendDetailsModalComponent_p_10_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "p", 24); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "p", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](2, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } if (rf & 2) { const currentActionState_r11 = ctx.ngIf; - const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate2"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](2, 2, currentActionState_r11 ? "TOR_LIB_STATE" + "." + currentActionState_r11.status : "TOR_LIB_STATE.STATE_INITIALIZING"), " ", !ctx_r3.isSentSuccess && !ctx_r3.isSentFailed ? "..." : "", " "); + const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](2, 2, currentActionState_r11 ? "TOR_LIB_STATE" + "." + currentActionState_r11.status : "TOR_LIB_STATE.STATE_INITIALIZING"), " ", !ctx_r3.isSentSuccess && !ctx_r3.isSentFailed ? "..." : "", " "); } } function SendDetailsModalComponent_ng_container_12_ng_container_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainer"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainer"](0); } } @@ -10239,151 +10243,151 @@ const _c1 = function (a0) { function SendDetailsModalComponent_ng_container_12_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_container_12_ng_container_1_Template, 1, 0, "ng-container", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_container_12_ng_container_1_Template, 1, 0, "ng-container", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { const data_r12 = ctx.ngIf; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); - const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](35); + const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](35); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", _r9)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](2, _c1, data_r12.error_code)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngTemplateOutlet", _r9)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpureFunction1"](2, _c1, data_r12.error_code)); } } function SendDetailsModalComponent_button_19_img_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 29); } } function SendDetailsModalComponent_button_19_img_3_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 30); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 30); } } function SendDetailsModalComponent_button_19_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "button", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_button_19_img_1_Template, 1, 0, "img", 27); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](2, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](3, SendDetailsModalComponent_button_19_img_3_Template, 1, 0, "img", 28); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](4, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "button", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_button_19_img_1_Template, 1, 0, "img", 27); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](2, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](3, SendDetailsModalComponent_button_19_img_3_Template, 1, 0, "img", 28); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](4, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } if (rf & 2) { - const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", !_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](2, 2, ctx_r5.stateDetails$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](4, 4, ctx_r5.stateDetails$)); + const ctx_r5 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", !_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](2, 2, ctx_r5.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](4, 4, ctx_r5.stateDetails$)); } } function SendDetailsModalComponent_li_26_ng_container_4_img_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 35); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 35); } } function SendDetailsModalComponent_li_26_ng_container_4_img_2_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 22); } } function SendDetailsModalComponent_li_26_ng_container_4_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_li_26_ng_container_4_img_1_Template, 1, 0, "img", 33); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, SendDetailsModalComponent_li_26_ng_container_4_img_2_Template, 1, 0, "img", 34); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_li_26_ng_container_4_img_1_Template, 1, 0, "img", 33); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, SendDetailsModalComponent_li_26_ng_container_4_img_2_Template, 1, 0, "img", 34); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const action_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().$implicit; - const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx_r18.isSuccess(action_r16)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx_r18.isFailed(action_r16)); + const action_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().$implicit; + const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx_r18.isSuccess(action_r16)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx_r18.isFailed(action_r16)); } } function SendDetailsModalComponent_li_26_ng_container_5_img_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 35); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 35); } } function SendDetailsModalComponent_li_26_ng_container_5_img_2_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "img", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "img", 22); } } function SendDetailsModalComponent_li_26_ng_container_5_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_li_26_ng_container_5_img_1_Template, 1, 0, "img", 33); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, SendDetailsModalComponent_li_26_ng_container_5_img_2_Template, 1, 0, "img", 34); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_li_26_ng_container_5_img_1_Template, 1, 0, "img", 33); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, SendDetailsModalComponent_li_26_ng_container_5_img_2_Template, 1, 0, "img", 34); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const last_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().last; - const ctx_r19 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", last_r17 && ctx_r19.isSentSuccess); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", last_r17 && ctx_r19.isSentFailed); + const last_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().last; + const ctx_r19 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", last_r17 && ctx_r19.isSentSuccess); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", last_r17 && ctx_r19.isSentFailed); } } function SendDetailsModalComponent_li_26_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "li", 31)(1, "span", 32); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, SendDetailsModalComponent_li_26_ng_container_4_Template, 3, 2, "ng-container", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](5, SendDetailsModalComponent_li_26_ng_container_5_Template, 3, 2, "ng-container", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "li", 31)(1, "span", 32); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](4, SendDetailsModalComponent_li_26_ng_container_4_Template, 3, 2, "ng-container", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](5, SendDetailsModalComponent_li_26_ng_container_5_Template, 3, 2, "ng-container", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } if (rf & 2) { const action_r16 = ctx.$implicit; const last_r17 = ctx.last; - const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate2"]("", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](3, 4, "TOR_LIB_STATE" + "." + (action_r16 == null ? null : action_r16.status)), "", last_r17 && !ctx_r7.isSentSuccess && !ctx_r7.isSentFailed ? "..." : "", ""); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", !last_r17); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", last_r17); + const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"]("", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](3, 4, "TOR_LIB_STATE" + "." + (action_r16 == null ? null : action_r16.status)), "", last_r17 && !ctx_r7.isSentSuccess && !ctx_r7.isSentFailed ? "..." : "", ""); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", !last_r17); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", last_r17); } } function SendDetailsModalComponent_ng_container_28_app_copy_button_4_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelement"](0, "app-copy-button", 39); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelement"](0, "app-copy-button", 39); } if (rf & 2) { - const data_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().ngIf; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("value", data_r26.response_data.tx_hash); + const data_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().ngIf; + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("value", data_r26.response_data.tx_hash); } } function SendDetailsModalComponent_ng_container_28_li_8_ng_container_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainer"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainer"](0); } } @@ -10396,109 +10400,109 @@ const _c2 = function (a1) { function SendDetailsModalComponent_ng_container_28_li_8_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "li", 40); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_container_28_li_8_ng_container_1_Template, 1, 0, "ng-container", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "li", 40); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_container_28_li_8_ng_container_1_Template, 1, 0, "ng-container", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); } if (rf & 2) { - const data_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"]().ngIf; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); + const data_r26 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"]().ngIf; + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); - const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵreference"](35); + const _r9 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵreference"](35); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngTemplateOutlet", _r9)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpureFunction1"](2, _c2, data_r26.error_code)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngTemplateOutlet", _r9)("ngTemplateOutletContext", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpureFunction1"](2, _c2, data_r26.error_code)); } } function SendDetailsModalComponent_ng_container_28_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "li", 31)(2, "span", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](4, SendDetailsModalComponent_ng_container_28_app_copy_button_4_Template, 1, 1, "app-copy-button", 37); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "li", 31)(6, "div", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](8, SendDetailsModalComponent_ng_container_28_li_8_Template, 2, 4, "li", 38); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "li", 31)(2, "span", 36); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](4, SendDetailsModalComponent_ng_container_28_app_copy_button_4_Template, 1, 1, "app-copy-button", 37); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "li", 31)(6, "div", 36); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](7); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](8, SendDetailsModalComponent_ng_container_28_li_8_Template, 2, 4, "li", 38); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { const data_r26 = ctx.ngIf; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" tx id: ", data_r26.response_data.tx_hash || "---", " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", data_r26.response_data.tx_hash); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" tx size: ", data_r26.response_data.tx_blob_size, " bytes "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", data_r26.error_code !== "OK"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" tx id: ", data_r26.response_data.tx_hash || "---", " "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", data_r26.response_data.tx_hash); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" tx size: ", data_r26.response_data.tx_blob_size, " bytes "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", data_r26.error_code !== "OK"); } } function SendDetailsModalComponent_ng_template_34_ng_container_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "p", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "p", 44); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const ctx_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); + const ctx_r37 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); const prefix_r32 = ctx_r37.prefix; const error_code_r33 = ctx_r37.error_code; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate2"]("", prefix_r32, " ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](3, 2, "SEND.ERROR_CODES" + "." + error_code_r33), ""); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"]("", prefix_r32, " ", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](3, 2, "SEND.ERROR_CODES" + "." + error_code_r33), ""); } } function SendDetailsModalComponent_ng_template_34_ng_container_2_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainer"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainer"](0); } } function SendDetailsModalComponent_ng_template_34_ng_container_3_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](1, "p", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](1, "p", 44); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const ctx_r38 = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵnextContext"](); + const ctx_r38 = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵnextContext"](); const prefix_r32 = ctx_r38.prefix; const error_code_r33 = ctx_r38.error_code; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate2"]("", prefix_r32, " ", error_code_r33, ""); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate2"]("", prefix_r32, " ", error_code_r33, ""); } } function SendDetailsModalComponent_ng_template_34_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerStart"](0, 41); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_template_34_ng_container_1_Template, 4, 4, "ng-container", 42); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](2, SendDetailsModalComponent_ng_template_34_ng_container_2_Template, 1, 0, "ng-container", 42); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](3, SendDetailsModalComponent_ng_template_34_ng_container_3_Template, 3, 2, "ng-container", 43); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerStart"](0, 41); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](1, SendDetailsModalComponent_ng_template_34_ng_container_1_Template, 4, 4, "ng-container", 42); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](2, SendDetailsModalComponent_ng_template_34_ng_container_2_Template, 1, 0, "ng-container", 42); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](3, SendDetailsModalComponent_ng_template_34_ng_container_3_Template, 3, 2, "ng-container", 43); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementContainerEnd"](); } if (rf & 2) { const error_code_r33 = ctx.error_code; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngSwitch", error_code_r33); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngSwitchCase", "NOT_ENOUGH_MONEY"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngSwitchCase", "OK"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngSwitch", error_code_r33); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngSwitchCase", "NOT_ENOUGH_MONEY"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngSwitchCase", "OK"); } } @@ -10510,13 +10514,13 @@ class SendDetailsModalComponent { this.variablesService = variablesService; this.renderer = renderer; this.modalOverlay = true; - this.eventClose = new _angular_core__WEBPACK_IMPORTED_MODULE_2__.EventEmitter(); - this.responseData$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject(null); - this.stateDetails$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject(false); - this.currentActionState$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject(null); - this.currentActionStates$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject([]); + this.eventClose = new _angular_core__WEBPACK_IMPORTED_MODULE_3__.EventEmitter(); + this.responseData$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.BehaviorSubject(null); + this.stateDetails$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.BehaviorSubject(false); + this.currentActionState$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.BehaviorSubject(null); + this.currentActionStates$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.BehaviorSubject([]); this.success = false; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_4__.Subject(); + this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_5__.Subject(); } get currentActionState() { @@ -10551,7 +10555,7 @@ class SendDetailsModalComponent { } = this.variablesService; if (appUseTor) { - this.backendService.handleCurrentActionState$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.takeUntil)(this.destroy$)).subscribe({ + this.backendService.handleCurrentActionState$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe({ next: currentActionState => { this.currentActionState$.next(currentActionState); this.currentActionStates$.next([...this.currentActionStates, currentActionState]); @@ -10566,10 +10570,10 @@ class SendDetailsModalComponent { this.currentActionStates$.next([...this.currentActionStates, actionState]); } - this.backendService.dispatchAsyncCallResult$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.filter)(({ + this.backendService.dispatchAsyncCallResult$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_7__.filter)(({ job_id, response - }) => this.job_id === job_id && !!response), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_5__.takeUntil)(this.destroy$)).subscribe({ + }) => this.job_id === job_id && !!response), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_6__.takeUntil)(this.destroy$)).subscribe({ next: ({ response }) => { @@ -10626,27 +10630,27 @@ class SendDetailsModalComponent { } SendDetailsModalComponent.ɵfac = function SendDetailsModalComponent_Factory(t) { - return new (t || SendDetailsModalComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__.BackendService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_parts_services_variables_service__WEBPACK_IMPORTED_MODULE_1__.VariablesService), _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_2__.Renderer2)); + return new (t || SendDetailsModalComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__.BackendService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_parts_services_variables_service__WEBPACK_IMPORTED_MODULE_1__.VariablesService), _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_3__.Renderer2)); }; -SendDetailsModalComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵdefineComponent"]({ +SendDetailsModalComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineComponent"]({ type: SendDetailsModalComponent, selectors: [["app-send-details-modal"]], viewQuery: function SendDetailsModalComponent_Query(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵviewQuery"](_c0, 7); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵviewQuery"](_c0, 7); } if (rf & 2) { let _t; - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵloadQuery"]()) && (ctx.elDetailsList = _t.first); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵqueryRefresh"](_t = _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵloadQuery"]()) && (ctx.elDetailsList = _t.first); } }, hostVars: 2, hostBindings: function SendDetailsModalComponent_HostBindings(rf, ctx) { if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("modal-overlay", ctx.modalOverlay); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("modal-overlay", ctx.modalOverlay); } }, inputs: { @@ -10660,80 +10664,80 @@ SendDetailsModalComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_M consts: [["fxFlex", "0 1 54rem", 1, "modal", "p-2", "border-radius-0_8-rem", "bg-light-blue", "w-100", "max-h-100"], ["fxFlex", "", "fxLayout", "column", 1, "wrapper", "w-100"], ["fxFlex", "0 0 auto", 1, "title", "mb-2"], ["fxFlex", "1 1 auto", "fxLayout", "column", 1, "content", "mb-2", "overflow-x-hidden", "overflow-y-auto"], ["fxFlex", "0 0 auto", "fxLayout", "column", "fxLayoutAlign", " center", 1, "status", "mb-2"], ["class", "image", 4, "ngIf"], ["class", "loader", 4, "ngIf"], ["class", "color-primary mt-2", 4, "ngIf"], [4, "ngIf"], ["fxFlex", "0 0 auto", "fxLayout", "column", 1, "details", "border-radius-0_8-rem", "overflow-hidden"], ["fxLayout", "row", "fxLayoutAlign", "space-between center", 1, "header", "overflow-hidden", "py-1", "px-2", "w-100", "cursor-pointer", 3, "click"], [1, "title", "text-ellipsis", "mr-2"], ["fxLayout", "row", "fxLayoutAlign", "center center", 4, "ngIf"], ["fxFlex", "1 1 auto", "fxLayout", "row", 1, "details-wrapper", 3, "fxHide"], [1, "details-list", "scrolled-content"], ["elDetailsList", ""], ["class", "item mb-1 color-primary", "fxLayout", "row nowrap", "fxLayoutAlign", " center", 4, "ngFor", "ngForOf", "ngForTrackBy"], ["fxFlex", "0 0 auto", 1, "controls"], [1, "primary", "big", "w-100", 3, "disabled", "click"], ["errorCodesTemplate", ""], [1, "image"], ["alt", "success", "src", "assets/icons/aqua/transaction_success.svg"], ["alt", "failed", "src", "assets/icons/red/transaction_failed.svg", 1, "image"], [1, "loader"], [1, "color-primary", "mt-2"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], ["fxLayout", "row", "fxLayoutAlign", "center center"], ["alt", "dropdown-arrow-down", "src", "assets/icons/white/dropdown-arrow-down.svg", 4, "ngIf"], ["alt", "dropdown-arrow-up", "src", "assets/icons/white/dropdown-arrow-up.svg", 4, "ngIf"], ["alt", "dropdown-arrow-down", "src", "assets/icons/white/dropdown-arrow-down.svg"], ["alt", "dropdown-arrow-up", "src", "assets/icons/white/dropdown-arrow-up.svg"], ["fxLayout", "row nowrap", "fxLayoutAlign", " center", 1, "item", "mb-1", "color-primary"], [1, "text", "text-ellipsis", "mr-1"], ["alt", "success", "class", "image", "src", "assets/icons/blue/check_with_blue_bg.svg", 4, "ngIf"], ["alt", "failed", "class", "image", "src", "assets/icons/red/transaction_failed.svg", 4, "ngIf"], ["alt", "success", "src", "assets/icons/blue/check_with_blue_bg.svg", 1, "image"], [1, "word-break-break-all"], ["class", "ml-1", 3, "value", 4, "ngIf"], ["class", "item", 4, "ngIf"], [1, "ml-1", 3, "value"], [1, "item"], [3, "ngSwitch"], [4, "ngSwitchCase"], [4, "ngSwitchDefault"], [1, "color-red"]], template: function SendDetailsModalComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "h3", 2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](4, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](5, "div", 3)(6, "div", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](7, SendDetailsModalComponent_div_7_Template, 2, 0, "div", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](8, SendDetailsModalComponent_div_8_Template, 2, 0, "div", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](9, SendDetailsModalComponent_div_9_Template, 1, 0, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](10, SendDetailsModalComponent_p_10_Template, 3, 4, "p", 7); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](11, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](12, SendDetailsModalComponent_ng_container_12_Template, 2, 4, "ng-container", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](13, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](14, "div", 9)(15, "div", 10); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function SendDetailsModalComponent_Template_div_click_15_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "h3", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](4, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](5, "div", 3)(6, "div", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](7, SendDetailsModalComponent_div_7_Template, 2, 0, "div", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](8, SendDetailsModalComponent_div_8_Template, 2, 0, "div", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](9, SendDetailsModalComponent_div_9_Template, 1, 0, "div", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](10, SendDetailsModalComponent_p_10_Template, 3, 4, "p", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](11, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](12, SendDetailsModalComponent_ng_container_12_Template, 2, 4, "ng-container", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](13, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](14, "div", 9)(15, "div", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function SendDetailsModalComponent_Template_div_click_15_listener() { return ctx.isDetailsNotEmpty && ctx.toggleDetails(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](16, "p", 11); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](17); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](18, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](19, SendDetailsModalComponent_button_19_Template, 5, 6, "button", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](20, "div", 13); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](21, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](22, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](23, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](24, "ul", 14, 15); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](26, SendDetailsModalComponent_li_26_Template, 6, 6, "li", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](27, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](28, SendDetailsModalComponent_ng_container_28_Template, 9, 4, "ng-container", 8); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](29, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementStart"](30, "div", 17)(31, "button", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵlistener"]("click", function SendDetailsModalComponent_Template_button_click_31_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](16, "p", 11); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](17); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](18, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](19, SendDetailsModalComponent_button_19_Template, 5, 6, "button", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](20, "div", 13); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](21, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](22, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](23, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](24, "ul", 14, 15); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](26, SendDetailsModalComponent_li_26_Template, 6, 6, "li", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](27, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](28, SendDetailsModalComponent_ng_container_28_Template, 9, 4, "ng-container", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](29, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementStart"](30, "div", 17)(31, "button", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵlistener"]("click", function SendDetailsModalComponent_Template_button_click_31_listener() { return ctx.eventClose.emit(ctx.success); }); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtext"](32); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipe"](33, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵelementEnd"]()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplate"](34, SendDetailsModalComponent_ng_template_34_Template, 4, 3, "ng-template", null, 19, _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtemplateRefExtractor"]); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtext"](32); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipe"](33, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵelementEnd"]()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplate"](34, SendDetailsModalComponent_ng_template_34_Template, 4, 3, "ng-template", null, 19, _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtemplateRefExtractor"]); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](4, 18, "SEND_DETAILS_MODAL.TITLE1"), " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.isSentSuccess); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.isSentFailed); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", !ctx.isSentSuccess && !ctx.isSentFailed); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](11, 20, ctx.currentActionState$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](13, 22, ctx.responseData$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](18, 24, "SEND_DETAILS_MODAL.TITLE2"), " "); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", ctx.isDetailsNotEmpty); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵclassProp"]("px-2", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](21, 26, ctx.stateDetails$))("py-1", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](22, 28, ctx.stateDetails$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("fxHide", !_angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](23, 30, ctx.stateDetails$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngForOf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](27, 32, ctx.currentActionStates$))("ngForTrackBy", ctx.trackBy); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](29, 34, ctx.responseData$)); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵproperty"]("disabled", !ctx.isSentSuccess && !ctx.isSentFailed); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_2__["ɵɵpipeBind1"](33, 36, "Ok"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](4, 18, "SEND_DETAILS_MODAL.TITLE1"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.isSentSuccess); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.isSentFailed); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", !ctx.isSentSuccess && !ctx.isSentFailed); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](11, 20, ctx.currentActionState$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](13, 22, ctx.responseData$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](18, 24, "SEND_DETAILS_MODAL.TITLE2"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", ctx.isDetailsNotEmpty); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵclassProp"]("px-2", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](21, 26, ctx.stateDetails$))("py-1", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](22, 28, ctx.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("fxHide", !_angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](23, 30, ctx.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngForOf", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](27, 32, ctx.currentActionStates$))("ngForTrackBy", ctx.trackBy); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](29, 34, ctx.responseData$)); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵproperty"]("disabled", !ctx.isSentSuccess && !ctx.isSentFailed); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵpipeBind1"](33, 36, "Ok"), " "); } }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_7__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_7__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_7__.NgTemplateOutlet, _angular_common__WEBPACK_IMPORTED_MODULE_7__.NgSwitch, _angular_common__WEBPACK_IMPORTED_MODULE_7__.NgSwitchCase, _angular_common__WEBPACK_IMPORTED_MODULE_7__.NgSwitchDefault, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_8__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_8__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_8__.DefaultFlexDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_9__.DefaultShowHideDirective, _angular_common__WEBPACK_IMPORTED_MODULE_7__.AsyncPipe, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_10__.TranslatePipe], + dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_8__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgTemplateOutlet, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgSwitch, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgSwitchCase, _angular_common__WEBPACK_IMPORTED_MODULE_8__.NgSwitchDefault, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultFlexDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_10__.DefaultShowHideDirective, _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_2__.CopyButtonComponent, _angular_common__WEBPACK_IMPORTED_MODULE_8__.AsyncPipe, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_11__.TranslatePipe], encapsulation: 2, changeDetection: 0 }); @@ -10981,14 +10985,16 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "WalletModalsModule": () => (/* binding */ WalletModalsModule) /* harmony export */ }); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 6362); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/common */ 6362); /* harmony import */ var _send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./send-modal/send-modal.component */ 8244); /* harmony import */ var _send_details_modal_send_details_modal_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./send-details-modal/send-details-modal.component */ 2160); -/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/flex-layout */ 7114); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @ngx-translate/core */ 7514); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/forms */ 587); +/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/flex-layout */ 7114); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/forms */ 587); /* harmony import */ var _parts_pipes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @parts/pipes */ 4710); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @parts/components/copy-button.component */ 7035); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/core */ 3184); + @@ -11000,9 +11006,9 @@ __webpack_require__.r(__webpack_exports__); class WalletModalsModule { } WalletModalsModule.ɵfac = function WalletModalsModule_Factory(t) { return new (t || WalletModalsModule)(); }; -WalletModalsModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineNgModule"]({ type: WalletModalsModule }); -WalletModalsModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateModule, _angular_flex_layout__WEBPACK_IMPORTED_MODULE_6__.FlexLayoutModule, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.ReactiveFormsModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsetNgModuleScope"](WalletModalsModule, { declarations: [_send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_0__.SendModalComponent, _send_details_modal_send_details_modal_component__WEBPACK_IMPORTED_MODULE_1__.SendDetailsModalComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateModule, _angular_flex_layout__WEBPACK_IMPORTED_MODULE_6__.FlexLayoutModule, _angular_forms__WEBPACK_IMPORTED_MODULE_7__.ReactiveFormsModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_2__.GetAssetInfoPipe], exports: [_send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_0__.SendModalComponent, _send_details_modal_send_details_modal_component__WEBPACK_IMPORTED_MODULE_1__.SendDetailsModalComponent] }); })(); +WalletModalsModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineNgModule"]({ type: WalletModalsModule }); +WalletModalsModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateModule, _angular_flex_layout__WEBPACK_IMPORTED_MODULE_7__.FlexLayoutModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.ReactiveFormsModule, _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_3__.CopyButtonComponent] }); +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_4__["ɵɵsetNgModuleScope"](WalletModalsModule, { declarations: [_send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_0__.SendModalComponent, _send_details_modal_send_details_modal_component__WEBPACK_IMPORTED_MODULE_1__.SendDetailsModalComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_5__.CommonModule, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_6__.TranslateModule, _angular_flex_layout__WEBPACK_IMPORTED_MODULE_7__.FlexLayoutModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.ReactiveFormsModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_2__.GetAssetInfoPipe, _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_3__.CopyButtonComponent], exports: [_send_modal_send_modal_component__WEBPACK_IMPORTED_MODULE_0__.SendModalComponent, _send_details_modal_send_details_modal_component__WEBPACK_IMPORTED_MODULE_1__.SendDetailsModalComponent] }); })(); /***/ }), @@ -13169,8 +13175,8 @@ __webpack_require__.r(__webpack_exports__); -function ConfirmSwapComponent_div_9_div_9_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](0, "div", 17); +function ConfirmSwapComponent_div_9_p_10_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](0, "p"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](2, "intToMoney"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](3, "getAssetInfo"); @@ -13179,10 +13185,10 @@ function ConfirmSwapComponent_div_9_div_9_Template(rf, ctx) { if (rf & 1) { const item_r4 = ctx.$implicit; let tmp_0_0; _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate2"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](2, 2, item_r4.amount), " ", ((tmp_0_0 = _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](3, 4, item_r4.asset_id)) == null ? null : tmp_0_0.ticker) || "???", " "); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate2"]("", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](2, 2, item_r4.amount), " ", ((tmp_0_0 = _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](3, 4, item_r4.asset_id)) == null ? null : tmp_0_0.ticker) || "???", ""); } } -function ConfirmSwapComponent_div_9_div_15_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](0, "div", 17); +function ConfirmSwapComponent_div_9_p_17_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](0, "p"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](1); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](2, "intToMoney"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](3, "getAssetInfo"); @@ -13202,26 +13208,28 @@ function ConfirmSwapComponent_div_9_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](7); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](8, "translate"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](9, ConfirmSwapComponent_div_9_div_9_Template, 4, 6, "div", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelement"](10, "hr", 16); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](11, "div", 13)(12, "div", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](13); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](14, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](9, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](10, ConfirmSwapComponent_div_9_p_10_Template, 4, 6, "p", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelement"](11, "hr", 17); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](12, "div", 13)(13, "div", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](14); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](15, "translate"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](15, ConfirmSwapComponent_div_9_div_15_Template, 4, 6, "div", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](16, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](17, ConfirmSwapComponent_div_9_p_17_Template, 4, 6, "p", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"]()()()(); } if (rf & 2) { const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵnextContext"](); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](2); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](3, 5, "CONFIRM_SWAP.FORM.LABELS.LABEL2"), " "); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](5); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](8, 7, "CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1"), " "); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](3); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵproperty"]("ngForOf", ctx_r0.proposalDetails.to_initiator); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](14, 9, "CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2"), " "); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipeBind1"](15, 9, "CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵadvance"](3); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵproperty"]("ngForOf", ctx_r0.proposalDetails.to_finalizer); } } function ConfirmSwapComponent_div_17_Template(rf, ctx) { if (rf & 1) { @@ -13339,7 +13347,7 @@ class ConfirmSwapComponent { } } ConfirmSwapComponent.ɵfac = function ConfirmSwapComponent_Factory(t) { return new (t || ConfirmSwapComponent)(); }; -ConfirmSwapComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵdefineComponent"]({ type: ConfirmSwapComponent, selectors: [["app-confirm-swap"]], standalone: true, features: [_angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵStandaloneFeature"]], decls: 18, vars: 17, consts: [[1, "container", "scrolled-content"], [1, "mb-2", 3, "items"], [1, "form", 3, "formGroup"], [1, "form__field", "textarea", "mb-2"], ["for", "swap-proposal-hex"], ["formControlName", "hex_raw_proposal", "id", "swap-proposal-hex", 3, "placeholder"], ["class", "form__field mb-2", 4, "ngIf"], [1, "actions"], ["type", "button", 1, "btn", "primary", "big", "w-100", 3, "disabled", "click"], ["routerLink", "/wallet/swap", 1, "btn", "outline", "big", "w-100"], ["class", "error mt-2", 4, "ngIf"], [1, "form__field", "mb-2"], [1, "table-info"], [1, "row"], [1, "label", "max-w-19-rem", "w-100"], ["class", "text", 4, "ngFor", "ngForOf"], [1, "separator"], [1, "text"], [1, "error", "mt-2"]], template: function ConfirmSwapComponent_Template(rf, ctx) { if (rf & 1) { +ConfirmSwapComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵdefineComponent"]({ type: ConfirmSwapComponent, selectors: [["app-confirm-swap"]], standalone: true, features: [_angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵStandaloneFeature"]], decls: 18, vars: 17, consts: [[1, "container", "scrolled-content"], [1, "mb-2", 3, "items"], [1, "form", 3, "formGroup"], [1, "form__field", "textarea", "mb-2"], ["for", "swap-proposal-hex"], ["formControlName", "hex_raw_proposal", "id", "swap-proposal-hex", 3, "placeholder"], ["class", "form__field mb-2", 4, "ngIf"], [1, "actions"], ["type", "button", 1, "btn", "primary", "big", "w-100", 3, "disabled", "click"], ["routerLink", "/wallet/swap", 1, "btn", "outline", "big", "w-100"], ["class", "error mt-2", 4, "ngIf"], [1, "form__field", "mb-2"], [1, "table-info"], [1, "row"], [1, "label", "max-w-19-rem", "w-100"], [1, "text"], [4, "ngFor", "ngForOf"], [1, "separator"], [1, "error", "mt-2"]], template: function ConfirmSwapComponent_Template(rf, ctx) { if (rf & 1) { _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](0, "div", 0); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelement"](1, "app-breadcrumbs", 1); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](2, "form", 2)(3, "div", 3)(4, "label", 4); @@ -13349,7 +13357,7 @@ ConfirmSwapComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODUL _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelement"](7, "textarea", 5); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵpipe"](8, "translate"); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](9, ConfirmSwapComponent_div_9_Template, 16, 11, "div", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtemplate"](9, ConfirmSwapComponent_div_9_Template, 18, 11, "div", 6); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵelementStart"](10, "div", 7)(11, "button", 8); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵlistener"]("click", function ConfirmSwapComponent_Template_button_click_11_listener() { return ctx.swapConfirmMasterPasswordDialog(); }); _angular_core__WEBPACK_IMPORTED_MODULE_8__["ɵɵtext"](12); @@ -14873,28 +14881,28 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "WalletModule": () => (/* binding */ WalletModule) /* harmony export */ }); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @angular/common */ 6362); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/common */ 6362); /* harmony import */ var _wallet_routing_module__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./wallet-routing.module */ 8685); /* harmony import */ var _tabs_assets_assets_component__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tabs/assets/assets.component */ 6695); /* harmony import */ var _wallet_wallet_component__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./wallet/wallet.component */ 4386); -/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/flex-layout */ 5434); -/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! @angular/flex-layout */ 7114); +/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/flex-layout */ 5434); +/* harmony import */ var _angular_flex_layout__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @angular/flex-layout */ 7114); /* harmony import */ var _parts_directives_tooltip_tooltip_module__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @parts/directives/tooltip/tooltip.module */ 70); /* harmony import */ var _parts_pipes__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @parts/pipes */ 4710); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @ngx-translate/core */ 7514); /* harmony import */ var _parts_modals_confirm_modal_confirm_modal_module__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @parts/modals/confirm-modal/confirm-modal.module */ 1225); /* harmony import */ var _wallet_modals_export_history_modal_export_history_modal_module__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./wallet/modals/export-history-modal/export-history-modal.module */ 1703); /* harmony import */ var _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../wallet-details/wallet-details.component */ 1879); -/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @angular/forms */ 587); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! @angular/cdk/overlay */ 4244); +/* harmony import */ var _angular_forms__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! @angular/forms */ 587); +/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! @angular/cdk/overlay */ 4244); /* harmony import */ var _parts_directives__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @parts/directives */ 1443); -/* harmony import */ var ngx_pagination__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ngx-pagination */ 7043); +/* harmony import */ var ngx_pagination__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ngx-pagination */ 7043); /* harmony import */ var _tabs_history_history_component__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./tabs/history/history.component */ 3086); /* harmony import */ var _tabs_staking_staking_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./tabs/staking/staking.component */ 8234); -/* harmony import */ var angular_highcharts__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! angular-highcharts */ 4072); -/* harmony import */ var _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! @ng-select/ng-select */ 8660); +/* harmony import */ var angular_highcharts__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! angular-highcharts */ 4072); +/* harmony import */ var _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @ng-select/ng-select */ 8660); /* harmony import */ var _tabs_receive_receive_component__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./tabs/receive/receive.component */ 4810); -/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); +/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); /* harmony import */ var _tabs_send_send_component__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./tabs/send/send.component */ 4357); /* harmony import */ var _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../export-import/export-import.component */ 4295); /* harmony import */ var _parts_modals_asset_details_asset_details_module__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @parts/modals/asset-details/asset-details.module */ 5974); @@ -14907,7 +14915,11 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _parts_components_back_button_back_button_component__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @parts/components/back-button/back-button.component */ 7779); /* harmony import */ var _tabs_send_modals_wallet_modals_module__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./tabs/send/modals/wallet-modals.module */ 425); /* harmony import */ var _parts_pipes_get_asset_info_pipe__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @parts/pipes/get-asset-info.pipe */ 4075); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _wallet_modals_migrate_wallet_to_zarcanum_migrate_wallet_to_zarcanum_component__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component */ 2096); +/* harmony import */ var _wallet_modals_success_sweep_bare_outs_success_sweep_bare_outs_component__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ./wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component */ 4211); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/core */ 3184); + + @@ -14945,26 +14957,26 @@ __webpack_require__.r(__webpack_exports__); class WalletModule { } WalletModule.ɵfac = function WalletModule_Factory(t) { return new (t || WalletModule)(); }; -WalletModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵdefineNgModule"]({ type: WalletModule }); -WalletModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_25__.CommonModule, +WalletModule.ɵmod = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵdefineNgModule"]({ type: WalletModule }); +WalletModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵdefineInjector"]({ imports: [_angular_common__WEBPACK_IMPORTED_MODULE_27__.CommonModule, _wallet_routing_module__WEBPACK_IMPORTED_MODULE_0__.WalletRoutingModule, - _angular_flex_layout__WEBPACK_IMPORTED_MODULE_26__.FlexModule, + _angular_flex_layout__WEBPACK_IMPORTED_MODULE_28__.FlexModule, _parts_directives_tooltip_tooltip_module__WEBPACK_IMPORTED_MODULE_3__.TooltipModule, - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__.TranslateModule, + _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__.TranslateModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.IsAvailableAliasNamePipeModule, _parts_modals_confirm_modal_confirm_modal_module__WEBPACK_IMPORTED_MODULE_5__.ConfirmModalModule, _wallet_modals_export_history_modal_export_history_modal_module__WEBPACK_IMPORTED_MODULE_6__.ExportHistoryModalModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_28__.ReactiveFormsModule, - _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_29__.OverlayModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_30__.ReactiveFormsModule, + _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_31__.OverlayModule, _parts_directives__WEBPACK_IMPORTED_MODULE_8__.DefaultImgModule, - ngx_pagination__WEBPACK_IMPORTED_MODULE_30__.NgxPaginationModule, + ngx_pagination__WEBPACK_IMPORTED_MODULE_32__.NgxPaginationModule, _parts_components_switch_component__WEBPACK_IMPORTED_MODULE_18__.SwitchComponent, - angular_highcharts__WEBPACK_IMPORTED_MODULE_31__.ChartModule, - _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_32__.NgSelectModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_28__.FormsModule, - _angular_flex_layout__WEBPACK_IMPORTED_MODULE_33__.FlexLayoutModule, + angular_highcharts__WEBPACK_IMPORTED_MODULE_33__.ChartModule, + _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_34__.NgSelectModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_30__.FormsModule, + _angular_flex_layout__WEBPACK_IMPORTED_MODULE_35__.FlexLayoutModule, _parts_components_staking_switch_component__WEBPACK_IMPORTED_MODULE_17__.StakingSwitchComponent, - _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_34__.DialogModule, + _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_36__.DialogModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.IntToMoneyPipeModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.ContractStatusMessagesPipeModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.HistoryTypeMessagesPipeModule, @@ -14976,33 +14988,35 @@ WalletModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_24__[" _parts_components_breadcrumbs_breadcrumbs_component__WEBPACK_IMPORTED_MODULE_20__.BreadcrumbsComponent, _parts_components_back_button_back_button_component__WEBPACK_IMPORTED_MODULE_21__.BackButtonComponent, _tabs_send_modals_wallet_modals_module__WEBPACK_IMPORTED_MODULE_22__.WalletModalsModule] }); -(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_24__["ɵɵsetNgModuleScope"](WalletModule, { declarations: [_wallet_wallet_component__WEBPACK_IMPORTED_MODULE_2__.WalletComponent, +(function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_26__["ɵɵsetNgModuleScope"](WalletModule, { declarations: [_wallet_wallet_component__WEBPACK_IMPORTED_MODULE_2__.WalletComponent, _tabs_assets_assets_component__WEBPACK_IMPORTED_MODULE_1__.AssetsComponent, _wallet_details_wallet_details_component__WEBPACK_IMPORTED_MODULE_7__.WalletDetailsComponent, _tabs_history_history_component__WEBPACK_IMPORTED_MODULE_9__.HistoryComponent, _tabs_staking_staking_component__WEBPACK_IMPORTED_MODULE_10__.StakingComponent, _tabs_receive_receive_component__WEBPACK_IMPORTED_MODULE_11__.ReceiveComponent, _export_import_export_import_component__WEBPACK_IMPORTED_MODULE_13__.ExportImportComponent, - _tabs_send_send_component__WEBPACK_IMPORTED_MODULE_12__.SendComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_25__.CommonModule, + _tabs_send_send_component__WEBPACK_IMPORTED_MODULE_12__.SendComponent, + _wallet_modals_migrate_wallet_to_zarcanum_migrate_wallet_to_zarcanum_component__WEBPACK_IMPORTED_MODULE_24__.MigrateWalletToZarcanumComponent, + _wallet_modals_success_sweep_bare_outs_success_sweep_bare_outs_component__WEBPACK_IMPORTED_MODULE_25__.SuccessSweepBareOutsComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_27__.CommonModule, _wallet_routing_module__WEBPACK_IMPORTED_MODULE_0__.WalletRoutingModule, - _angular_flex_layout__WEBPACK_IMPORTED_MODULE_26__.FlexModule, + _angular_flex_layout__WEBPACK_IMPORTED_MODULE_28__.FlexModule, _parts_directives_tooltip_tooltip_module__WEBPACK_IMPORTED_MODULE_3__.TooltipModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.ShortStringPipe, - _ngx_translate_core__WEBPACK_IMPORTED_MODULE_27__.TranslateModule, + _ngx_translate_core__WEBPACK_IMPORTED_MODULE_29__.TranslateModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.IsAvailableAliasNamePipeModule, _parts_modals_confirm_modal_confirm_modal_module__WEBPACK_IMPORTED_MODULE_5__.ConfirmModalModule, _wallet_modals_export_history_modal_export_history_modal_module__WEBPACK_IMPORTED_MODULE_6__.ExportHistoryModalModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_28__.ReactiveFormsModule, - _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_29__.OverlayModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_30__.ReactiveFormsModule, + _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_31__.OverlayModule, _parts_directives__WEBPACK_IMPORTED_MODULE_8__.DefaultImgModule, - ngx_pagination__WEBPACK_IMPORTED_MODULE_30__.NgxPaginationModule, + ngx_pagination__WEBPACK_IMPORTED_MODULE_32__.NgxPaginationModule, _parts_components_switch_component__WEBPACK_IMPORTED_MODULE_18__.SwitchComponent, - angular_highcharts__WEBPACK_IMPORTED_MODULE_31__.ChartModule, - _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_32__.NgSelectModule, - _angular_forms__WEBPACK_IMPORTED_MODULE_28__.FormsModule, - _angular_flex_layout__WEBPACK_IMPORTED_MODULE_33__.FlexLayoutModule, + angular_highcharts__WEBPACK_IMPORTED_MODULE_33__.ChartModule, + _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_34__.NgSelectModule, + _angular_forms__WEBPACK_IMPORTED_MODULE_30__.FormsModule, + _angular_flex_layout__WEBPACK_IMPORTED_MODULE_35__.FlexLayoutModule, _parts_components_staking_switch_component__WEBPACK_IMPORTED_MODULE_17__.StakingSwitchComponent, - _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_34__.DialogModule, + _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_36__.DialogModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.IntToMoneyPipeModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.ContractStatusMessagesPipeModule, _parts_pipes__WEBPACK_IMPORTED_MODULE_4__.HistoryTypeMessagesPipeModule, @@ -15443,6 +15457,283 @@ ExportHistoryModalModule.ɵinj = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_M (function () { (typeof ngJitMode === "undefined" || ngJitMode) && _angular_core__WEBPACK_IMPORTED_MODULE_3__["ɵɵsetNgModuleScope"](ExportHistoryModalModule, { declarations: [_export_history_modal_component__WEBPACK_IMPORTED_MODULE_0__.ExportHistoryModalComponent], imports: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.CommonModule, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_5__.TranslateModule, _angular_flex_layout__WEBPACK_IMPORTED_MODULE_6__.FlexModule, _parts_components_switch_component__WEBPACK_IMPORTED_MODULE_2__.SwitchComponent, _parts_components_checkbox_component__WEBPACK_IMPORTED_MODULE_1__.CheckboxComponent, _ng_select_ng_select__WEBPACK_IMPORTED_MODULE_7__.NgSelectModule, _angular_forms__WEBPACK_IMPORTED_MODULE_8__.FormsModule], exports: [_export_history_modal_component__WEBPACK_IMPORTED_MODULE_0__.ExportHistoryModalComponent] }); })(); +/***/ }), + +/***/ 2096: +/*!***************************************************************************************************************!*\ + !*** ./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.ts ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "MigrateWalletToZarcanumComponent": () => (/* binding */ MigrateWalletToZarcanumComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); +/* harmony import */ var _api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @api/services/backend.service */ 122); +/* harmony import */ var _parts_services_variables_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @parts/services/variables.service */ 2994); +/* harmony import */ var _parts_services_modal_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @parts/services/modal.service */ 5827); +/* harmony import */ var _success_sweep_bare_outs_success_sweep_bare_outs_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../success-sweep-bare-outs/success-sweep-bare-outs.component */ 4211); +/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @angular/cdk/overlay */ 4244); +/* harmony import */ var _parts_data_constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @parts/data/constants */ 3480); +/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _parts_pipes_int_to_money_pipe_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @parts/pipes/int-to-money-pipe/int-to-money.pipe */ 5985); + + + + + + + + + + + + +const _c0 = function (a0, a1) { return { total_bare_outs: a0, total_amount: a1 }; }; +const _c1 = function (a0, a1) { return { txs_count: a0, expected_total_fee: a1 }; }; +class MigrateWalletToZarcanumComponent { + constructor() { + this.dialogData = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_7__.DIALOG_DATA); + this._scrollStrategyOptions = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_8__.ScrollStrategyOptions); + this._scrollStrategyNoop = this._scrollStrategyOptions.noop(); + this._dialog = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_7__.Dialog); + this._dialogRef = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_7__.DialogRef); + this._backendService = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__.BackendService); + this._variableService = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_parts_services_variables_service__WEBPACK_IMPORTED_MODULE_1__.VariablesService); + this._modalService = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_parts_services_modal_service__WEBPACK_IMPORTED_MODULE_2__.ModalService); + this._ngZone = (0,_angular_core__WEBPACK_IMPORTED_MODULE_6__.inject)(_angular_core__WEBPACK_IMPORTED_MODULE_6__.NgZone); + } + migrate() { + const { currentWallet: { wallet_id }, } = this._variableService; + const params = { id: 0, jsonrpc: '2.0', method: 'sweep_bare_outs', params: {} }; + this._backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => { + this._ngZone.run(() => { + if (response_data === null || response_data === void 0 ? void 0 : response_data.result) { + const data = response_data.result; + const dialogConfig = { + maxWidth: '90vw', + width: '540px', + scrollStrategy: this._scrollStrategyNoop, + data, + }; + this._dialog.open(_success_sweep_bare_outs_success_sweep_bare_outs_component__WEBPACK_IMPORTED_MODULE_3__.SuccessSweepBareOutsComponent, dialogConfig); + } + else { + const message = response_data.error; + this._modalService.prepareModal('error', message); + } + this._dialogRef.close(); + }); + }); + } + openZarcanumMigration() { + this._backendService.openUrlInBrowser(_parts_data_constants__WEBPACK_IMPORTED_MODULE_4__.ZARCANUM_MIGRATION); + } +} +MigrateWalletToZarcanumComponent.ɵfac = function MigrateWalletToZarcanumComponent_Factory(t) { return new (t || MigrateWalletToZarcanumComponent)(); }; +MigrateWalletToZarcanumComponent.ɵcmp = /*@__PURE__*/ _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵdefineComponent"]({ type: MigrateWalletToZarcanumComponent, selectors: [["app-migrate-wallet-to-zarcanum"]], decls: 24, vars: 27, consts: [["fxFlex", "0 1 54rem", 1, "p-2", "border-radius-0_8-rem", "bg-light-blue", "w-100", "max-h-90-vh"], ["fxFlexFill", "", "fxLayout", "column", 1, "overflow-hidden"], ["fxFlex", "0 0 auto", 1, "title", "mb-2"], [1, "details", "mb-2"], [1, "mb-2", "mt-2"], ["fxLayout", "row", "fxLayoutAlign", "start center", 1, "text-align-center", "cursor-pointer", "mb-2", 3, "click"], [1, "icon", "question-circle", "mr-0_5"], [1, "color-primary"], [1, "mb-2"], ["fxFlex", "0 0 auto", "fxLayout", "row nowrap", "fxLayoutGap", "1rem", 1, "controls", "w-100"], ["type", "button", 1, "primary", "big", "w-100", 3, "click"]], template: function MigrateWalletToZarcanumComponent_Template(rf, ctx) { if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "h3", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](4, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](5, "div", 3)(6, "p", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](7); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](8, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](9, "intToMoney"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](10, "p", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵlistener"]("click", function MigrateWalletToZarcanumComponent_Template_p_click_10_listener() { return ctx.openZarcanumMigration(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelement"](11, "i", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](12, "span", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](13); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](14, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelement"](15, "hr", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](16, "p", 8); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](17); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](18, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](19, "intToMoney"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementStart"](20, "div", 9)(21, "button", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵlistener"]("click", function MigrateWalletToZarcanumComponent_Template_button_click_21_listener() { return ctx.migrate(); }); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtext"](22); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipe"](23, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵelementEnd"]()()()(); + } if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind1"](4, 5, "MIGRATE_WALLET_TO_ZARCANUM.TITLE"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind2"](8, 7, "MIGRATE_WALLET_TO_ZARCANUM.TEXT1", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpureFunction2"](21, _c0, ctx.dialogData.total_bare_outs, _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind1"](9, 10, ctx.dialogData.total_amount))), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind1"](14, 12, "MIGRATE_WALLET_TO_ZARCANUM.LINK1")); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind2"](18, 14, "MIGRATE_WALLET_TO_ZARCANUM.TEXT2", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpureFunction2"](24, _c1, ctx.dialogData.txs_count, _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind1"](19, 17, ctx.dialogData.expected_total_fee))), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_6__["ɵɵpipeBind1"](23, 19, "MIGRATE_WALLET_TO_ZARCANUM.BUTTON1"), " "); + } }, dependencies: [_angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultLayoutGapDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.FlexFillDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_9__.DefaultFlexDirective, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_10__.TranslatePipe, _parts_pipes_int_to_money_pipe_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_5__.IntToMoneyPipe], styles: [".details[_ngcontent-%COMP%] {\n padding: 0 2rem;\n border-radius: 0.8rem;\n border: 1px solid #33426E;\n}\n.details[_ngcontent-%COMP%] hr[_ngcontent-%COMP%] {\n border: none;\n border-bottom: 1px solid rgba(255, 255, 255, 0.062745098);\n}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1pZ3JhdGUtd2FsbGV0LXRvLXphcmNhbnVtLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0ksZUFBQTtFQUNBLHFCQUFBO0VBQ0EseUJBQUE7QUFDSjtBQUNJO0VBQ0ksWUFBQTtFQUNBLHlEQUFBO0FBQ1IiLCJmaWxlIjoibWlncmF0ZS13YWxsZXQtdG8temFyY2FudW0uY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuZGV0YWlscyB7XG4gICAgcGFkZGluZzogMCAycmVtO1xuICAgIGJvcmRlci1yYWRpdXM6IDAuOHJlbTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzM0MjZFO1xuXG4gICAgaHIge1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmZmZmZmMTA7XG4gICAgfVxufVxuIl19 */"] }); + + +/***/ }), + +/***/ 4211: +/*!*********************************************************************************************************!*\ + !*** ./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.ts ***! + \*********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "SuccessSweepBareOutsComponent": () => (/* binding */ SuccessSweepBareOutsComponent) +/* harmony export */ }); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! rxjs */ 6317); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @angular/common */ 6362); +/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); +/* harmony import */ var _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @angular/flex-layout/extended */ 3338); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _parts_pipes_int_to_money_pipe_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @parts/pipes/int-to-money-pipe/int-to-money.pipe */ 5985); + + + + + + + + + + +function SuccessSweepBareOutsComponent_img_19_Template(rf, ctx) { + if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "img", 19); + } +} + +function SuccessSweepBareOutsComponent_img_21_Template(rf, ctx) { + if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](0, "img", 20); + } +} + +const _c0 = function (a0) { + return { + "border-radius": a0 + }; +}; + +const _c1 = function (a0, a1, a2, a3) { + return { + txs_sent: a0, + bare_outs_swept: a1, + amount_swept: a2, + fee_spent: a3 + }; +}; + +class SuccessSweepBareOutsComponent { + constructor() { + this.dialogData = (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.inject)(_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_2__.DIALOG_DATA); + this._dialogRef = (0,_angular_core__WEBPACK_IMPORTED_MODULE_1__.inject)(_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_2__.DialogRef); + this.stateDetails$ = new rxjs__WEBPACK_IMPORTED_MODULE_3__.BehaviorSubject(false); + } + + toggleDetails() { + this.stateDetails$.next(!this.stateDetails$.value); + } + + close() { + this._dialogRef.close(); + } + +} + +SuccessSweepBareOutsComponent.ɵfac = function SuccessSweepBareOutsComponent_Factory(t) { + return new (t || SuccessSweepBareOutsComponent)(); +}; + +SuccessSweepBareOutsComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵdefineComponent"]({ + type: SuccessSweepBareOutsComponent, + selectors: [["app-success-sweep-bare-outs"]], + decls: 39, + vars: 52, + consts: [["fxFlex", "0 1 54rem", 1, "modal", "p-2", "border-radius-0_8-rem", "bg-light-blue", "w-100", "max-h-100"], ["fxFlex", "", "fxLayout", "column", 1, "wrapper", "w-100"], ["fxFlex", "0 0 auto", 1, "title", "mb-2"], ["fxFlex", "1 1 auto", "fxLayout", "column", 1, "content", "mb-2", "overflow-x-hidden", "overflow-y-auto"], ["fxFlex", "0 0 auto", "fxLayout", "column", "fxLayoutAlign", "center center", 1, "status", "mb-2"], [1, "image"], ["alt", "success", "src", "assets/icons/aqua/transaction_success.svg"], [1, "color-primary", "mt-2"], ["fxFlex", "0 0 auto", "fxLayout", "column", 1, "details", "border-radius-0_8-rem", "overflow-hidden"], ["fxLayout", "row", "fxLayoutAlign", "space-between center", 1, "header", "overflow-hidden", "py-1", "px-2", "w-100", "cursor-pointer", 3, "ngStyle", "click"], [1, "title", "text-ellipsis", "mr-2"], ["fxLayout", "row", "fxLayoutAlign", "center center"], ["alt", "dropdown-arrow-down", "src", "assets/icons/white/dropdown-arrow-down.svg", 4, "ngIf"], ["alt", "dropdown-arrow-up", "src", "assets/icons/white/dropdown-arrow-up.svg", 4, "ngIf"], ["fxFlex", "1 1 auto", "fxLayout", "row", 1, "details-wrapper", 3, "fxHide", "ngStyle"], [1, "details-list", "scrolled-content"], ["fxLayout", "row nowrap", "fxLayoutAlign", " center", 1, "item", "mb-1"], ["fxFlex", "0 0 auto", 1, "controls"], [1, "primary", "big", "w-100", 3, "click"], ["alt", "dropdown-arrow-down", "src", "assets/icons/white/dropdown-arrow-down.svg"], ["alt", "dropdown-arrow-up", "src", "assets/icons/white/dropdown-arrow-up.svg"]], + template: function SuccessSweepBareOutsComponent_Template(rf, ctx) { + if (rf & 1) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "h3", 2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](4, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](5, "div", 3)(6, "div", 4)(7, "div", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelement"](8, "img", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](9, "p", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](10); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](11, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](12, "div", 8)(13, "div", 9); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function SuccessSweepBareOutsComponent_Template_div_click_13_listener() { + return ctx.toggleDetails(); + }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](14, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](15, "p", 10); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](16); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](17, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](18, "button", 11); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](19, SuccessSweepBareOutsComponent_img_19_Template, 1, 0, "img", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](20, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtemplate"](21, SuccessSweepBareOutsComponent_img_21_Template, 1, 0, "img", 13); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](22, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](23, "div", 14); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](24, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](25, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](26, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](27, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](28, "ul", 15)(29, "li", 16)(30, "p"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](31); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](32, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](33, "intToMoney"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](34, "intToMoney"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementStart"](35, "div", 17)(36, "button", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵlistener"]("click", function SuccessSweepBareOutsComponent_Template_button_click_36_listener() { + return ctx.close(); + }); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtext"](37); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipe"](38, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵelementEnd"]()()()(); + } + + if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](4, 14, "SEND_DETAILS_MODAL.TITLE1"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](7); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](11, 16, "TOR_LIB_STATE.STATE_SENT_SUCCESS"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpureFunction1"](43, _c0, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](14, 18, ctx.stateDetails$) ? "0.8rem 0.8rem 0 0" : "0.8rem")); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](17, 20, "SEND_DETAILS_MODAL.TITLE2"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", !_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](20, 22, ctx.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](22, 24, ctx.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵclassProp"]("px-2", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](24, 26, ctx.stateDetails$))("py-1", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](25, 28, ctx.stateDetails$)); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵproperty"]("fxHide", !_angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](26, 30, ctx.stateDetails$))("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpureFunction1"](45, _c0, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](27, 32, ctx.stateDetails$) ? "0 0 0.8rem 0.8rem " : "0")); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](8); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"]("", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind2"](32, 34, "SUCCESS_SWEEP_BARE_OUTS.DETAILS", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpureFunction4"](47, _c1, ctx.dialogData.txs_sent, ctx.dialogData.bare_outs_swept, _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](33, 37, ctx.dialogData.amount_swept), _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](34, 39, ctx.dialogData.fee_spent))), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵadvance"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_1__["ɵɵpipeBind1"](38, 41, "Ok"), " "); + } + }, + dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_4__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_4__.NgStyle, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_5__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_5__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_5__.DefaultFlexDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_6__.DefaultShowHideDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_6__.DefaultStyleDirective, _angular_common__WEBPACK_IMPORTED_MODULE_4__.AsyncPipe, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_7__.TranslatePipe, _parts_pipes_int_to_money_pipe_int_to_money_pipe__WEBPACK_IMPORTED_MODULE_0__.IntToMoneyPipe], + styles: ["\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzdWNjZXNzLXN3ZWVwLWJhcmUtb3V0cy5jb21wb25lbnQuc2NzcyJ9 */"] +}); + /***/ }), /***/ 4386: @@ -15456,31 +15747,37 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "WalletComponent": () => (/* binding */ WalletComponent) /* harmony export */ }); /* harmony import */ var _api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @api/services/backend.service */ 122); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! rxjs */ 228); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! rxjs */ 9295); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! rxjs */ 228); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs */ 9295); /* harmony import */ var _store_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @store/store */ 7254); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! rxjs/operators */ 8951); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! rxjs/operators */ 116); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! rxjs/operators */ 8977); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! rxjs/operators */ 8951); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! rxjs/operators */ 116); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! rxjs/operators */ 8977); /* harmony import */ var _parts_functions_hasOwnProperty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @parts/functions/hasOwnProperty */ 2979); /* harmony import */ var _parts_modals_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @parts/modals/confirm-modal/confirm-modal.component */ 666); /* harmony import */ var _modals_export_history_modal_export_history_modal_component__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./modals/export-history-modal/export-history-modal.component */ 8217); /* harmony import */ var _modals_add_custom_token_add_custom_token_component__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./modals/add-custom-token/add-custom-token.component */ 8688); /* harmony import */ var _parts_modals_asset_details_asset_details_component__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @parts/modals/asset-details/asset-details.component */ 8225); -/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @angular/router */ 2816); -/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @angular/core */ 3184); -/* harmony import */ var _parts_services_variables_service__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @parts/services/variables.service */ 2994); -/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); -/* harmony import */ var _parts_services_wallets_service__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @parts/services/wallets.service */ 2073); -/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! @angular/common */ 6362); -/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); -/* harmony import */ var _parts_directives_tooltip_tooltip_directive__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../../parts/directives/tooltip/tooltip.directive */ 1072); -/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/cdk/overlay */ 4244); -/* harmony import */ var _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/flex-layout/extended */ 3338); -/* harmony import */ var _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../../parts/components/copy-button.component */ 7035); -/* harmony import */ var _parts_pipes_short_string_pipe__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../../parts/pipes/short-string.pipe */ 3346); -/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @ngx-translate/core */ 7514); -/* harmony import */ var _parts_pipes_is_available_alias_name_pipe_is_available_alias_name_pipe__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe */ 7225); +/* harmony import */ var _angular_router__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! @angular/router */ 2816); +/* harmony import */ var _parts_data_constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @parts/data/constants */ 3480); +/* harmony import */ var _modals_migrate_wallet_to_zarcanum_migrate_wallet_to_zarcanum_component__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component */ 2096); +/* harmony import */ var _angular_core__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @angular/core */ 3184); +/* harmony import */ var _parts_services_variables_service__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @parts/services/variables.service */ 2994); +/* harmony import */ var _angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! @angular/cdk/dialog */ 8800); +/* harmony import */ var _parts_services_modal_service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @parts/services/modal.service */ 5827); +/* harmony import */ var _parts_services_wallets_service__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @parts/services/wallets.service */ 2073); +/* harmony import */ var _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! @angular/cdk/overlay */ 4244); +/* harmony import */ var _angular_common__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! @angular/common */ 6362); +/* harmony import */ var _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @angular/flex-layout/flex */ 5434); +/* harmony import */ var _parts_directives_tooltip_tooltip_directive__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../../parts/directives/tooltip/tooltip.directive */ 1072); +/* harmony import */ var _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! @angular/flex-layout/extended */ 3338); +/* harmony import */ var _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../../parts/components/copy-button.component */ 7035); +/* harmony import */ var _parts_pipes_short_string_pipe__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../../../parts/pipes/short-string.pipe */ 3346); +/* harmony import */ var _ngx_translate_core__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! @ngx-translate/core */ 7514); +/* harmony import */ var _parts_pipes_is_available_alias_name_pipe_is_available_alias_name_pipe__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../../../parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe */ 7225); + + + @@ -15515,19 +15812,19 @@ const _c0 = function () { function WalletComponent_div_8_ng_container_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "button", 21); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "button", 21); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction0"](4, _c0)); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](3, 2, "WALLET.REGISTER_ALIAS"), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction0"](4, _c0)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](3, 2, "WALLET.REGISTER_ALIAS"), " "); } } @@ -15541,123 +15838,166 @@ const _c2 = function () { function WalletComponent_div_8_ng_container_2_ng_container_4_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "button", 23); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](2, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](3, "i", 24); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](4, "button", 25); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](5, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](6, "i", 26); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "button", 23); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](2, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](3, "i", 24); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](4, "button", 25); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](5, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](6, "i", 26); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](2, 8, "WALLET.TOOLTIPS.EDIT_ALIAS")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction0"](12, _c1))("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](5, 10, "WALLET.TOOLTIPS.TRANSFER_ALIAS")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction0"](13, _c2))("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](2, 8, "WALLET.TOOLTIPS.EDIT_ALIAS")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction0"](12, _c1))("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](5, 10, "WALLET.TOOLTIPS.TRANSFER_ALIAS")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction0"](13, _c2))("timeDelay", 500); } } function WalletComponent_div_8_ng_container_2_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "div", 22); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](2, "isAvailableAliasName"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](4, WalletComponent_div_8_ng_container_2_ng_container_4_Template, 7, 14, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "div", 22); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](2, "isAvailableAliasName"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](4, WalletComponent_div_8_ng_container_2_ng_container_4_Template, 7, 14, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const ctx_r6 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵclassProp"]("available", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](2, 4, ctx_r6.variablesService.currentWallet.alias)); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate1"](" ", ctx_r6.variablesService.currentWallet.alias.name, " "); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", ctx_r6.variablesService.currentWallet.alias_available); + const ctx_r7 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵclassProp"]("available", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](2, 4, ctx_r7.variablesService.currentWallet.alias)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate1"](" ", ctx_r7.variablesService.currentWallet.alias.name, " "); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", ctx_r7.variablesService.currentWallet.alias_available); } } function WalletComponent_div_8_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](0, "div", 19); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](1, WalletComponent_div_8_ng_container_1_Template, 4, 5, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](2, WalletComponent_div_8_ng_container_2_Template, 5, 6, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](0, "div", 20); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](1, WalletComponent_div_8_ng_container_1_Template, 4, 5, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](2, WalletComponent_div_8_ng_container_2_Template, 5, 6, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); } if (rf & 2) { - const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", !ctx_r0.variablesService.currentWallet.alias.hasOwnProperty("name") && ctx_r0.variablesService.currentWallet.loaded && ctx_r0.variablesService.daemon_state === 2 && ctx_r0.variablesService.currentWallet.alias_available); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", ctx_r0.variablesService.currentWallet.alias.hasOwnProperty("name") && ctx_r0.variablesService.currentWallet.loaded && ctx_r0.variablesService.daemon_state === 2); + const ctx_r0 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", !ctx_r0.variablesService.currentWallet.alias.hasOwnProperty("name") && ctx_r0.variablesService.currentWallet.loaded && ctx_r0.variablesService.daemon_state === 2 && ctx_r0.variablesService.currentWallet.alias_available); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", ctx_r0.variablesService.currentWallet.alias.hasOwnProperty("name") && ctx_r0.variablesService.currentWallet.loaded && ctx_r0.variablesService.daemon_state === 2); } } -function WalletComponent_ng_template_14_ng_container_9_Template(rf, ctx) { +function WalletComponent_ng_container_9_Template(rf, ctx) { if (rf & 1) { - const _r11 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵgetCurrentView"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "li", 29)(2, "button", 32); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_ng_template_14_ng_container_9_Template_button_click_2_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵrestoreView"](_r11); - const ctx_r10 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresetView"](ctx_r10.addCustomToken()); + const _r10 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵgetCurrentView"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](1, "hr", 27); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](2, "div", 28)(3, "button", 29); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_container_9_Template_button_click_3_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r10); + const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r9.openMigrateWalletToZarcanum()); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](4, "i", 36); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](5, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](7, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](5, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](6, "div", 30)(7, "p", 31); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](8); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](9, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](10, "p", 32); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_container_9_Template_p_click_10_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r10); + const ctx_r11 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r11.openZarcanumMigration()); + }); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](11, "i", 33); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](12, "span", 34); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](13); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](14, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); + } + + if (rf & 2) { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](5, 3, "WALLET.MIGRATE.BUTTON2")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](9, 5, "WALLET.MIGRATE.TEXT1")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](14, 7, "WALLET.MIGRATE.BUTTON1")); + } +} + +function WalletComponent_ng_template_15_ng_container_9_Template(rf, ctx) { + if (rf & 1) { + const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵgetCurrentView"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "li", 37)(2, "button", 40); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_template_15_ng_container_9_Template_button_click_2_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r15); + const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r14.addCustomToken()); + }); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](4, "i", 44); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](5, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](7, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](3, 5, "WALLET.TOOLTIPS.ADD_CUSTOM_TOKEN")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("disabled", false)("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](7, 7, "WALLET_DETAILS.ADD_CUSTOM_TOKEN")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](3, 5, "WALLET.TOOLTIPS.ADD_CUSTOM_TOKEN")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("disabled", false)("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](7, 7, "WALLET_DETAILS.ADD_CUSTOM_TOKEN")); } } -function WalletComponent_ng_template_14_ng_container_18_Template(rf, ctx) { +function WalletComponent_ng_template_15_ng_container_18_Template(rf, ctx) { if (rf & 1) { - const _r13 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵgetCurrentView"](); - - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "li", 29)(2, "button", 32); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_ng_template_14_ng_container_18_Template_button_click_2_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵrestoreView"](_r13); - const ctx_r12 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](2); - return _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresetView"](ctx_r12.resyncCurrentWallet(ctx_r12.variablesService.currentWallet.wallet_id)); + const _r17 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵgetCurrentView"](); + + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "li", 37)(2, "button", 40); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_template_15_ng_container_18_Template_button_click_2_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r17); + const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](2); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r16.resyncCurrentWallet(ctx_r16.variablesService.currentWallet.wallet_id)); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](4, "i", 37); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](5, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](6); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](7, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](4, "i", 45); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](5, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](6); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](7, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const ctx_r9 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](3, 5, "WALLET_DETAILS.RESYNC_WALLET")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("disabled", !ctx_r9.variablesService.currentWallet.loaded)("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](7, 7, "WALLET_DETAILS.RESYNC_WALLET_BUTTON")); + const ctx_r13 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](3, 5, "WALLET_DETAILS.RESYNC_WALLET")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("disabled", !ctx_r13.variablesService.currentWallet.loaded)("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](7, 7, "WALLET_DETAILS.RESYNC_WALLET_BUTTON")); } } @@ -15665,87 +16005,87 @@ const _c3 = function () { return ["/details"]; }; -function WalletComponent_ng_template_14_Template(rf, ctx) { +function WalletComponent_ng_template_15_Template(rf, ctx) { if (rf & 1) { - const _r15 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵgetCurrentView"](); + const _r19 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵgetCurrentView"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](0, "div", 27); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_ng_template_14_Template_div_click_0_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵrestoreView"](_r15); - const ctx_r14 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresetView"](ctx_r14.toggleMenuDropdown()); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](0, "div", 35); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_template_15_Template_div_click_0_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r19); + const ctx_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r18.toggleMenuDropdown()); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "ul", 28)(2, "li", 29)(3, "button", 30); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](4, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](5, "i", 31); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](6, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](7); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](8, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](9, WalletComponent_ng_template_14_ng_container_9_Template, 8, 9, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](10, "async"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](11, "li", 29)(12, "button", 32); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_ng_template_14_Template_button_click_12_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵrestoreView"](_r15); - const ctx_r16 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresetView"](ctx_r16.exportHistory()); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "ul", 36)(2, "li", 37)(3, "button", 38); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](4, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](5, "i", 39); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](6, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](8, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](9, WalletComponent_ng_template_15_ng_container_9_Template, 8, 9, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](10, "async"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](11, "li", 37)(12, "button", 40); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_template_15_Template_button_click_12_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r19); + const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r20.exportHistory()); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](13, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](14, "i", 33); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](15, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](16); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](17, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](18, WalletComponent_ng_template_14_ng_container_18_Template, 8, 9, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](19, "li", 29)(20, "button", 34); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_ng_template_14_Template_button_click_20_listener() { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵrestoreView"](_r15); - const ctx_r17 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](); - return _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresetView"](ctx_r17.close(ctx_r17.variablesService.currentWallet.wallet_id)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](13, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](14, "i", 41); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](15, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](16); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](17, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](18, WalletComponent_ng_template_15_ng_container_18_Template, 8, 9, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](19, "li", 37)(20, "button", 42); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_ng_template_15_Template_button_click_20_listener() { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵrestoreView"](_r19); + const ctx_r21 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + return _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresetView"](ctx_r21.close(ctx_r21.variablesService.currentWallet.wallet_id)); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](21, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](22, "i", 35); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](23, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](24); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](25, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](21, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](22, "i", 43); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](23, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](24); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](25, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()()()(); } if (rf & 2) { - const ctx_r2 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](4, 17, "WALLET.TOOLTIPS.SETTINGS")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("disabled", !ctx_r2.variablesService.currentWallet.loaded)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction0"](31, _c3))("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](8, 19, "WALLET_DETAILS.WALLET_OPTIONS")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](10, 21, ctx_r2.variablesService.is_hardfok_active$)); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](13, 23, "EXPORT_HISTORY.TOOLTIP")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("disabled", ctx_r2.variablesService.currentWallet.history.length <= 0)("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](17, 25, "EXPORT_HISTORY.EXPORT_BUTTON")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", ctx_r2.walletSyncVisible); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](21, 27, "WALLET.TOOLTIPS.REMOVE")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 500)("timeDelay", 500); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](25, 29, "WALLET_DETAILS.BUTTON_REMOVE")); - } -} - -function WalletComponent_ng_container_17_ng_container_1_span_6_Template(rf, ctx) { + const ctx_r3 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](4, 17, "WALLET.TOOLTIPS.SETTINGS")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("disabled", !ctx_r3.variablesService.currentWallet.loaded)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction0"](31, _c3))("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](8, 19, "WALLET_DETAILS.WALLET_OPTIONS")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](10, 21, ctx_r3.variablesService.is_hardfok_active$)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](13, 23, "EXPORT_HISTORY.TOOLTIP")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("disabled", ctx_r3.variablesService.currentWallet.history.length <= 0)("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](17, 25, "EXPORT_HISTORY.EXPORT_BUTTON")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", ctx_r3.walletSyncVisible); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpropertyInterpolate"]("tooltip", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](21, 27, "WALLET.TOOLTIPS.REMOVE")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 500)("timeDelay", 500); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](25, 29, "WALLET_DETAILS.BUTTON_REMOVE")); + } +} + +function WalletComponent_ng_container_18_ng_container_1_span_6_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](0, "span", 41); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](0, "span", 49); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); } if (rf & 2) { - const ctx_r20 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](ctx_r20.variablesService.currentWallet.new_contracts); + const ctx_r24 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](ctx_r24.variablesService.currentWallet.new_contracts); } } @@ -15753,60 +16093,60 @@ const _c4 = function (a0) { return [a0]; }; -function WalletComponent_ng_container_17_ng_container_1_Template(rf, ctx) { +function WalletComponent_ng_container_18_ng_container_1_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](1, "button", 38); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](2, "i", 39); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](3, "span"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](5, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](6, WalletComponent_ng_container_17_ng_container_1_span_6_Template, 2, 1, "span", 40); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](1, "button", 46); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](2, "i", 47); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](3, "span"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](5, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](6, WalletComponent_ng_container_18_ng_container_1_span_6_Template, 2, 1, "span", 48); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const tab_r18 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵnextContext"]().$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("disabled", tab_r18.disabled)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction1"](7, _c4, "/wallet" + tab_r18.link)); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngClass", tab_r18.icon); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](5, 5, tab_r18.title)); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", tab_r18.indicator); + const tab_r22 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵnextContext"]().$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("disabled", tab_r22.disabled)("routerLink", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction1"](7, _c4, "/wallet" + tab_r22.link)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngClass", tab_r22.icon); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate"](_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](5, 5, tab_r22.title)); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", tab_r22.indicator); } } -function WalletComponent_ng_container_17_Template(rf, ctx) { +function WalletComponent_ng_container_18_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerStart"](0); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](1, WalletComponent_ng_container_17_ng_container_1_Template, 7, 9, "ng-container", 20); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementContainerEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerStart"](0); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](1, WalletComponent_ng_container_18_ng_container_1_Template, 7, 9, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementContainerEnd"](); } if (rf & 2) { - const tab_r18 = ctx.$implicit; - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", !tab_r18.hidden); + const tab_r22 = ctx.$implicit; + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", !tab_r22.hidden); } } -function WalletComponent_div_21_Template(rf, ctx) { +function WalletComponent_div_22_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](0, "div", 42)(1, "p", 43); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](3, "translate"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](4, "div", 44); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](0, "div", 50)(1, "p", 51); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](3, "translate"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](4, "div", 52); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); } if (rf & 2) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](3, 1, "Loading..."), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](3, 1, "Loading..."), " "); } } @@ -15886,32 +16226,35 @@ const objTabs = { } }; class WalletComponent { - constructor(backend, variablesService, ngZone, store, dialog, walletsService, router) { + constructor(backend, variablesService, ngZone, store, dialog, modalService, walletsService, router, scrollStrategyOptions) { this.backend = backend; this.variablesService = variablesService; this.ngZone = ngZone; this.store = store; this.dialog = dialog; + this.modalService = modalService; this.walletsService = walletsService; this.router = router; + this.scrollStrategyOptions = scrollStrategyOptions; this.settingsButtonDisabled = true; this.walletLoaded = false; this.walletSyncVisible = false; this.tabs = []; - this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_14__.Subject(); + this.destroy$ = new rxjs__WEBPACK_IMPORTED_MODULE_17__.Subject(); this.loader = true; + this.scrollStrategyNoop = this.scrollStrategyOptions.noop(); if (!this.variablesService.currentWallet && this.variablesService.wallets.length > 0) { this.variablesService.setCurrentWallet(0); } this.walletLoaded = this.variablesService.currentWallet.loaded; - this.variablesService.currentWalletChangedEvent.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.variablesService.currentWalletChangedEvent.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: wallet => { this.createTabs(wallet); const disabled = !wallet.loaded; this.setDisabledTabs(['send', 'swap', 'staking'], disabled); - this.variablesService.is_hardfok_active$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_16__.take)(1)).subscribe({ + this.variablesService.is_hardfok_active$.pipe((0,rxjs__WEBPACK_IMPORTED_MODULE_19__.take)(1)).subscribe({ next: value => { const hidden = !value; this.setHiddenTabs(['swap'], hidden); @@ -15919,35 +16262,35 @@ class WalletComponent { }); } }); - this.variablesService.is_hardfok_active$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.variablesService.is_hardfok_active$.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: value => { const hidden = !value; this.setHiddenTabs(['swap'], hidden); } }); - this.router.events.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe(e => { + this.router.events.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe(e => { this.navigationInterceptor(e); }); } navigationInterceptor(event) { - if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_17__.NavigationStart) { + if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_20__.NavigationStart) { this.loader = true; } - if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_17__.NavigationEnd) { + if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_20__.NavigationEnd) { setTimeout(() => { this.loader = false; }, 500); } - if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_17__.NavigationCancel) { + if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_20__.NavigationCancel) { setTimeout(() => { this.loader = false; }, 500); } - if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_17__.NavigationError) { + if (event instanceof _angular_router__WEBPACK_IMPORTED_MODULE_20__.NavigationError) { setTimeout(() => { this.loader = false; }, 500); @@ -15997,7 +16340,7 @@ class WalletComponent { clearInterval(this.settingsButtonInterval); } }, 1000); - this.store.select(_store_store__WEBPACK_IMPORTED_MODULE_1__.StateKeys.sync).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.filter)(Boolean), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_19__.distinctUntilChanged)(), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.store.select(_store_store__WEBPACK_IMPORTED_MODULE_1__.StateKeys.sync).pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_21__.filter)(Boolean), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_22__.distinctUntilChanged)(), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: value => { const data = value.filter(item => item.wallet_id === this.variablesService.currentWallet.wallet_id)[0]; @@ -16025,7 +16368,7 @@ class WalletComponent { this.variablesService.currentWallet.wakeAlias = false; } - this.variablesService.getAliasChangedEvent.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.variablesService.getAliasChangedEvent.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: () => { if ((0,_parts_functions_hasOwnProperty__WEBPACK_IMPORTED_MODULE_2__.hasOwnProperty)(this.variablesService.currentWallet.alias, 'name')) { this.variablesService.currentWallet.wakeAlias = false; @@ -16055,7 +16398,7 @@ class WalletComponent { message: 'WALLET.CONFIRM.TITLE' } }; - this.dialog.open(_parts_modals_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_3__.ConfirmModalComponent, dialogConfig).closed.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.filter)(Boolean), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.dialog.open(_parts_modals_confirm_modal_confirm_modal_component__WEBPACK_IMPORTED_MODULE_3__.ConfirmModalComponent, dialogConfig).closed.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_21__.filter)(Boolean), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: () => { this.walletsService.closeWallet(wallet_id); } @@ -16063,7 +16406,7 @@ class WalletComponent { } addCustomToken() { - this.dialog.open(_modals_add_custom_token_add_custom_token_component__WEBPACK_IMPORTED_MODULE_5__.AddCustomTokenComponent).closed.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.filter)(response_data => Boolean(response_data)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_15__.takeUntil)(this.destroy$)).subscribe({ + this.dialog.open(_modals_add_custom_token_add_custom_token_component__WEBPACK_IMPORTED_MODULE_5__.AddCustomTokenComponent).closed.pipe((0,rxjs_operators__WEBPACK_IMPORTED_MODULE_21__.filter)(response_data => Boolean(response_data)), (0,rxjs_operators__WEBPACK_IMPORTED_MODULE_18__.takeUntil)(this.destroy$)).subscribe({ next: asset => { const dialogConfig = { data: { @@ -16082,6 +16425,41 @@ class WalletComponent { this.dialog.open(_modals_export_history_modal_export_history_modal_component__WEBPACK_IMPORTED_MODULE_4__.ExportHistoryModalComponent); } + openZarcanumMigration() { + this.backend.openUrlInBrowser(_parts_data_constants__WEBPACK_IMPORTED_MODULE_7__.ZARCANUM_MIGRATION); + } + + openMigrateWalletToZarcanum() { + const { + currentWallet: { + wallet_id + } + } = this.variablesService; + const params = { + id: 0, + jsonrpc: '2.0', + method: 'get_bare_outs_stats', + params: {} + }; + this.backend.call_wallet_rpc([wallet_id, params], (status, response_data) => { + this.ngZone.run(() => { + if (response_data === null || response_data === void 0 ? void 0 : response_data.result) { + const data = response_data.result; + const dialogConfig = { + maxWidth: '90vw', + width: '540px', + scrollStrategy: this.scrollStrategyNoop, + data + }; + this.dialog.open(_modals_migrate_wallet_to_zarcanum_migrate_wallet_to_zarcanum_component__WEBPACK_IMPORTED_MODULE_8__.MigrateWalletToZarcanumComponent, dialogConfig); + } else { + const message = response_data.error; + this.modalService.prepareModal('error', message); + } + }); + }); + } + ngOnDestroy() { this.destroy$.next(); this.destroy$.complete(); @@ -16135,77 +16513,81 @@ class WalletComponent { } WalletComponent.ɵfac = function WalletComponent_Factory(t) { - return new (t || WalletComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__.BackendService), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_parts_services_variables_service__WEBPACK_IMPORTED_MODULE_7__.VariablesService), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_13__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_store_store__WEBPACK_IMPORTED_MODULE_1__.Store), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_20__.Dialog), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_parts_services_wallets_service__WEBPACK_IMPORTED_MODULE_8__.WalletsService), _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_17__.Router)); + return new (t || WalletComponent)(_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_api_services_backend_service__WEBPACK_IMPORTED_MODULE_0__.BackendService), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_parts_services_variables_service__WEBPACK_IMPORTED_MODULE_9__.VariablesService), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_angular_core__WEBPACK_IMPORTED_MODULE_16__.NgZone), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_store_store__WEBPACK_IMPORTED_MODULE_1__.Store), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_angular_cdk_dialog__WEBPACK_IMPORTED_MODULE_23__.Dialog), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_parts_services_modal_service__WEBPACK_IMPORTED_MODULE_10__.ModalService), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_parts_services_wallets_service__WEBPACK_IMPORTED_MODULE_11__.WalletsService), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_angular_router__WEBPACK_IMPORTED_MODULE_20__.Router), _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdirectiveInject"](_angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_24__.ScrollStrategyOptions)); }; -WalletComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵdefineComponent"]({ +WalletComponent.ɵcmp = /*@__PURE__*/_angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵdefineComponent"]({ type: WalletComponent, selectors: [["app-wallet"]], hostBindings: function WalletComponent_HostBindings(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("keydown.shift", function WalletComponent_keydown_shift_HostBindingHandler($event) { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("keydown.shift", function WalletComponent_keydown_shift_HostBindingHandler($event) { return ctx.onKeyPressed($event.key); - }, false, _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresolveDocument"])("keyup.shift", function WalletComponent_keyup_shift_HostBindingHandler($event) { + }, false, _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresolveDocument"])("keyup.shift", function WalletComponent_keyup_shift_HostBindingHandler($event) { return ctx.onKeyUpPressed($event.key); - }, false, _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵresolveDocument"]); + }, false, _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵresolveDocument"]); } }, - decls: 22, - vars: 24, - consts: [["fxFlex", "0 0 auto", "fxLayout", "row nowrap", "fxLayoutAlign", "space-between start", "fxLayoutGap", "1rem", 1, "header", "mb-2"], [1, "left", "overflow-hidden"], ["fxLayout", "column", "fxLayoutAlign", "start start", 1, "wallet-wrapper"], ["fxLayout", "row nowrap", "fxLayoutAlign", "start center", 1, "title"], [1, "text-ellipsis", "mr-1"], [1, "mr-1", 3, "delay", "placement", "timeout", "tooltipClass", "tooltip", "value"], ["class", "controls", "fxFlex", "0 0 auto", "fxLayout", "row", "fxLayoutAlign", "start center", 4, "ngIf"], [1, "right"], [1, "dropdown"], ["cdkOverlayOrigin", "", "data-target", "wallet-dropdown-button", 1, "btn-icon", "circle", "big", 3, "disabled", "click"], ["trigger", "cdkOverlayOrigin"], [1, "icon", "dots"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "backdropClick"], [1, "tabs"], [1, "tabs-header"], [4, "ngFor", "ngForOf"], [1, "tabs-content"], [2, "flex", "1", 3, "ngStyle"], ["class", "preloader", 4, "ngIf"], ["fxFlex", "0 0 auto", "fxLayout", "row", "fxLayoutAlign", "start center", 1, "controls"], [4, "ngIf"], [1, "px-1", "py-0_5", "bg-light-gray", 3, "routerLink"], [1, "alias", "mr-1"], ["placement", "bottom-right", "tooltipClass", "table-tooltip account-tooltip", 1, "btn-icon", "circle", "small", "mr-1", 3, "delay", "routerLink", "timeDelay", "tooltip"], [1, "icon", "edit-square"], ["placement", "right", "tooltipClass", "table-tooltip account-tooltip", 1, "btn-icon", "circle", "small", 3, "delay", "routerLink", "timeDelay", "tooltip"], [1, "icon", "arrow-up-square"], [1, "content-bottom-right", "py-0_5", 3, "click"], [1, "list"], [1, "item"], ["placement", "left", "routerLinkActive", "active", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "disabled", "routerLink", "timeDelay", "tooltip"], [1, "icon", "settings", "mr-1"], ["placement", "left", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "disabled", "timeDelay", "tooltip", "click"], [1, "icon", "export", "mr-1"], ["placement", "left", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "timeDelay", "tooltip", "click"], [1, "icon", "close-square", "mr-1"], [1, "icon", "add", "mr-1"], [1, "icon", "update", "mr-1"], ["routerLinkActive", "active", 1, "tab-header", 3, "disabled", "routerLink"], [1, "icon", "mr-1", 3, "ngClass"], ["class", "indicator", 4, "ngIf"], [1, "indicator"], [1, "preloader"], [1, "mb-2"], [1, "loading-bar"]], + decls: 23, + vars: 25, + consts: [["fxFlex", "0 0 auto", "fxLayout", "row nowrap", "fxLayoutAlign", "space-between start", "fxLayoutGap", "1rem", 1, "header", "mb-2"], ["fxFlex", "1 1 auto", "fxLayoutAlign", "start center", "fxLayout", "row nowrap", "fxLayoutGap", "3rem", 1, "left", "overflow-hidden"], ["fxLayout", "column", "fxLayoutAlign", "start start", 1, "wallet-wrapper"], ["fxLayout", "row nowrap", "fxLayoutAlign", "start center", 1, "title"], [1, "text-ellipsis", "mr-1"], [1, "mr-1", 3, "delay", "placement", "timeout", "tooltipClass", "tooltip", "value"], ["class", "controls", "fxFlex", "0 0 auto", "fxLayout", "row", "fxLayoutAlign", "start center", 4, "ngIf"], [4, "ngIf"], [1, "right"], [1, "dropdown"], ["cdkOverlayOrigin", "", "data-target", "wallet-dropdown-button", 1, "btn-icon", "circle", "big", 3, "disabled", "click"], ["trigger", "cdkOverlayOrigin"], [1, "icon", "dots"], ["cdkConnectedOverlay", "", 3, "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayOrigin", "cdkConnectedOverlayOpen", "cdkConnectedOverlayPositions", "backdropClick"], [1, "tabs"], [1, "tabs-header"], [4, "ngFor", "ngForOf"], [1, "tabs-content"], [2, "flex", "1", 3, "ngStyle"], ["class", "preloader", 4, "ngIf"], ["fxFlex", "0 0 auto", "fxLayout", "row", "fxLayoutAlign", "start center", 1, "controls"], [1, "px-1", "py-0_8", "bg-light-gray", 3, "routerLink"], [1, "alias", "mr-1"], ["placement", "bottom-right", "tooltipClass", "table-tooltip account-tooltip", 1, "btn-icon", "circle", "small", "mr-1", 3, "delay", "routerLink", "timeDelay", "tooltip"], [1, "icon", "edit-square"], ["placement", "right", "tooltipClass", "table-tooltip account-tooltip", 1, "btn-icon", "circle", "small", 3, "delay", "routerLink", "timeDelay", "tooltip"], [1, "icon", "arrow-up-square"], ["fxFlex", "0 0 1px", 2, "height", "3.6rem", "border", "none", "border-right", "1px solid #ffffff10"], ["fxLayout", "row", "fxLayoutAlign", "start center", "fxLayoutGap", "2rem", 1, "migrate-alert"], ["type", "button", 1, "btn-migrate", 3, "click"], [1, "migration-details"], [1, "text-wrap"], ["fxLayout", "row", "fxLayoutAlign", "start center", 1, "text-align-center", "cursor-pointer", 3, "click"], [1, "icon", "info-circle", "mr-0_5"], [1, "color-primary"], [1, "content-bottom-right", "py-0_5", 3, "click"], [1, "list"], [1, "item"], ["placement", "left", "routerLinkActive", "active", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "disabled", "routerLink", "timeDelay", "tooltip"], [1, "icon", "settings", "mr-1"], ["placement", "left", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "disabled", "timeDelay", "tooltip", "click"], [1, "icon", "export", "mr-1"], ["placement", "left", "tooltipClass", "table-tooltip account-tooltip", "type", "button", 1, "w-100", "px-2", "py-1", 3, "delay", "timeDelay", "tooltip", "click"], [1, "icon", "close-square", "mr-1"], [1, "icon", "add", "mr-1"], [1, "icon", "update", "mr-1"], ["routerLinkActive", "active", 1, "tab-header", 3, "disabled", "routerLink"], [1, "icon", "mr-1", 3, "ngClass"], ["class", "indicator", 4, "ngIf"], [1, "indicator"], [1, "preloader"], [1, "mb-2"], [1, "loading-bar"]], template: function WalletComponent_Template(rf, ctx) { if (rf & 1) { - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "h1", 4); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtext"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipe"](6, "zanoShortString"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](7, "app-copy-button", 5); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](8, WalletComponent_div_8_Template, 3, 2, "div", 6); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](9, "div", 7)(10, "div", 8)(11, "button", 9, 10); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("click", function WalletComponent_Template_button_click_11_listener($event) { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "h1", 4); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtext"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipe"](6, "zanoShortString"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](7, "app-copy-button", 5); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](8, WalletComponent_div_8_Template, 3, 2, "div", 6); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](9, WalletComponent_ng_container_9_Template, 15, 9, "ng-container", 7); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](10, "div", 8)(11, "div", 9)(12, "button", 10, 11); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("click", function WalletComponent_Template_button_click_12_listener($event) { $event.stopPropagation(); return ctx.toggleMenuDropdown(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](13, "i", 11); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()()()(); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](14, WalletComponent_ng_template_14_Template, 26, 32, "ng-template", 12); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵlistener"]("backdropClick", function WalletComponent_Template_ng_template_backdropClick_14_listener($event) { + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](14, "i", 12); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()()()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](15, WalletComponent_ng_template_15_Template, 26, 32, "ng-template", 13); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵlistener"]("backdropClick", function WalletComponent_Template_ng_template_backdropClick_15_listener($event) { $event.stopPropagation(); return ctx.toggleMenuDropdown(); }); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](15, "div", 13)(16, "div", 14); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](17, WalletComponent_ng_container_17_Template, 2, 1, "ng-container", 15); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementStart"](18, "div", 16)(19, "div", 17); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelement"](20, "router-outlet"); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"](); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtemplate"](21, WalletComponent_div_21_Template, 5, 3, "div", 18); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵelementEnd"]()(); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](16, "div", 14)(17, "div", 15); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](18, WalletComponent_ng_container_18_Template, 2, 1, "ng-container", 16); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementStart"](19, "div", 17)(20, "div", 18); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelement"](21, "router-outlet"); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"](); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtemplate"](22, WalletComponent_div_22_Template, 5, 3, "div", 19); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵelementEnd"]()(); } if (rf & 2) { - const _r1 = _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵreference"](12); - - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](5); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpipeBind1"](6, 17, ctx.variablesService.currentWallet.address), " "); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("delay", 150)("placement", "bottom")("timeout", 0)("tooltipClass", "table-tooltip")("tooltip", ctx.variablesService.currentWallet.address)("value", ctx.variablesService.currentWallet.address); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](1); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", !ctx.variablesService.currentWallet.is_auditable); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("disabled", ctx.settingsButtonDisabled && !ctx.variablesService.currentWallet.loaded); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("cdkConnectedOverlayBackdropClass", "opacity-0")("cdkConnectedOverlayHasBackdrop", true)("cdkConnectedOverlayOrigin", _r1)("cdkConnectedOverlayOpen", ctx.openDropdown)("cdkConnectedOverlayPositions", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction1"](20, _c4, _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction0"](19, _c5))); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](3); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngForOf", ctx.tabs); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵpureFunction1"](22, _c6, ctx.loader ? "none" : "flex")); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵadvance"](2); - _angular_core__WEBPACK_IMPORTED_MODULE_13__["ɵɵproperty"]("ngIf", ctx.loader); + const _r2 = _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵreference"](13); + + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](5); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵtextInterpolate1"](" ", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpipeBind1"](6, 18, ctx.variablesService.currentWallet.address), " "); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("delay", 150)("placement", "bottom")("timeout", 0)("tooltipClass", "table-tooltip")("tooltip", ctx.variablesService.currentWallet.address)("value", ctx.variablesService.currentWallet.address); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", !ctx.variablesService.currentWallet.is_auditable); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](1); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", ctx.variablesService.currentWallet.has_bare_unspent_outputs); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("disabled", ctx.settingsButtonDisabled && !ctx.variablesService.currentWallet.loaded); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("cdkConnectedOverlayBackdropClass", "opacity-0")("cdkConnectedOverlayHasBackdrop", true)("cdkConnectedOverlayOrigin", _r2)("cdkConnectedOverlayOpen", ctx.openDropdown)("cdkConnectedOverlayPositions", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction1"](21, _c4, _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction0"](20, _c5))); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](3); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngForOf", ctx.tabs); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngStyle", _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵpureFunction1"](23, _c6, ctx.loader ? "none" : "flex")); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵadvance"](2); + _angular_core__WEBPACK_IMPORTED_MODULE_16__["ɵɵproperty"]("ngIf", ctx.loader); } }, - dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_21__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_21__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_21__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_21__.NgStyle, _angular_router__WEBPACK_IMPORTED_MODULE_17__.RouterOutlet, _angular_router__WEBPACK_IMPORTED_MODULE_17__.RouterLink, _angular_router__WEBPACK_IMPORTED_MODULE_17__.RouterLinkActive, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_22__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_22__.DefaultLayoutGapDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_22__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_22__.DefaultFlexDirective, _parts_directives_tooltip_tooltip_directive__WEBPACK_IMPORTED_MODULE_9__.TooltipDirective, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_23__.CdkConnectedOverlay, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_23__.CdkOverlayOrigin, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_24__.DefaultClassDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_24__.DefaultStyleDirective, _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_10__.CopyButtonComponent, _angular_common__WEBPACK_IMPORTED_MODULE_21__.AsyncPipe, _parts_pipes_short_string_pipe__WEBPACK_IMPORTED_MODULE_11__.ShortStringPipe, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_25__.TranslatePipe, _parts_pipes_is_available_alias_name_pipe_is_available_alias_name_pipe__WEBPACK_IMPORTED_MODULE_12__.IsAvailableAliasNamePipe], + dependencies: [_angular_common__WEBPACK_IMPORTED_MODULE_25__.NgClass, _angular_common__WEBPACK_IMPORTED_MODULE_25__.NgForOf, _angular_common__WEBPACK_IMPORTED_MODULE_25__.NgIf, _angular_common__WEBPACK_IMPORTED_MODULE_25__.NgStyle, _angular_router__WEBPACK_IMPORTED_MODULE_20__.RouterOutlet, _angular_router__WEBPACK_IMPORTED_MODULE_20__.RouterLink, _angular_router__WEBPACK_IMPORTED_MODULE_20__.RouterLinkActive, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_26__.DefaultLayoutDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_26__.DefaultLayoutGapDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_26__.DefaultLayoutAlignDirective, _angular_flex_layout_flex__WEBPACK_IMPORTED_MODULE_26__.DefaultFlexDirective, _parts_directives_tooltip_tooltip_directive__WEBPACK_IMPORTED_MODULE_12__.TooltipDirective, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_24__.CdkConnectedOverlay, _angular_cdk_overlay__WEBPACK_IMPORTED_MODULE_24__.CdkOverlayOrigin, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_27__.DefaultClassDirective, _angular_flex_layout_extended__WEBPACK_IMPORTED_MODULE_27__.DefaultStyleDirective, _parts_components_copy_button_component__WEBPACK_IMPORTED_MODULE_13__.CopyButtonComponent, _angular_common__WEBPACK_IMPORTED_MODULE_25__.AsyncPipe, _parts_pipes_short_string_pipe__WEBPACK_IMPORTED_MODULE_14__.ShortStringPipe, _ngx_translate_core__WEBPACK_IMPORTED_MODULE_28__.TranslatePipe, _parts_pipes_is_available_alias_name_pipe_is_available_alias_name_pipe__WEBPACK_IMPORTED_MODULE_15__.IsAvailableAliasNamePipe], encapsulation: 2 }); @@ -17465,7 +17847,8 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ "DOWNLOADS_PAGE_URL": () => (/* binding */ DOWNLOADS_PAGE_URL), /* harmony export */ "LOCKED_BALANCE_HELP_PAGE": () => (/* binding */ LOCKED_BALANCE_HELP_PAGE), /* harmony export */ "MIXIN": () => (/* binding */ MIXIN), -/* harmony export */ "RCV_ADDR_QR_SCALE": () => (/* binding */ RCV_ADDR_QR_SCALE) +/* harmony export */ "RCV_ADDR_QR_SCALE": () => (/* binding */ RCV_ADDR_QR_SCALE), +/* harmony export */ "ZARCANUM_MIGRATION": () => (/* binding */ ZARCANUM_MIGRATION) /* harmony export */ }); const MIXIN = 10; // default mixin value const RCV_ADDR_QR_SCALE = 1.5; // scale factor for QR code @@ -17473,6 +17856,7 @@ const AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/auditable-wallets-faq const CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/wallets/gui-wallet'; const LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/use/locked-balance'; const DOWNLOADS_PAGE_URL = 'zano.org/downloads'; +const ZARCANUM_MIGRATION = 'docs.zano.org/docs/use/zarcanum-migration/'; const BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/'; const BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/'; diff --git a/html/main.js.map b/html/main.js.map index 43a2e771..387b76c0 100644 --- a/html/main.js.map +++ b/html/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/api/models/wallet.model.ts","./src/app/api/services/backend.service.ts","./src/app/api/services/wrap-info.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/layouts/full-layout/full-layout.component.ts","./src/app/layouts/full-layout/full-layout.module.ts","./src/app/layouts/sidebar/sidebar.component.ts","./src/app/layouts/sidebar/sidebar.module.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.module.ts","./src/app/pages/add-wallet/add-wallet.component.ts","./src/app/pages/assign-alias/assign-alias.component.ts","./src/app/pages/auth/auth-routing.module.ts","./src/app/pages/auth/auth.module.ts","./src/app/pages/auth/login/login.component.ts","./src/app/pages/auth/no-wallet/no-wallet.component.ts","./src/app/pages/create-wallet/create-wallet.component.ts","./src/app/pages/deeplink/deeplink.component.ts","./src/app/pages/deeplink/deeplink.module.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.component.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.module.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.component.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.module.ts","./src/app/pages/edit-alias/edit-alias.component.ts","./src/app/pages/export-import/export-import.component.ts","./src/app/pages/open-wallet/open-wallet.component.ts","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/pages/paths.ts","./src/app/pages/restore-wallet/restore-wallet.component.ts","./src/app/pages/seed-phrase/seed-phrase.component.ts","./src/app/pages/settings/settings.component.ts","./src/app/pages/transfer-alias/transfer-alias.component.ts","./src/app/pages/wallet-details/wallet-details.component.ts","./src/app/pages/wallet/tabs/assets/assets.component.ts","./src/app/pages/wallet/tabs/history/history.component.ts","./src/app/pages/wallet/tabs/receive/receive.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/wallet-modals.module.ts","./src/app/pages/wallet/tabs/send/send.component.ts","./src/app/pages/wallet/tabs/staking/staking.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.html","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.html","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.html","./src/app/pages/wallet/tabs/swap/parts/guards/swap-proposal-hex.guard.ts","./src/app/pages/wallet/wallet-routing.module.ts","./src/app/pages/wallet/wallet.module.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.module.ts","./src/app/pages/wallet/wallet/wallet.component.ts","./src/app/parts/components/back-button/back-button.component.ts","./src/app/parts/components/back-button/back-button.component.html","./src/app/parts/components/breadcrumbs/breadcrumbs.component.ts","./src/app/parts/components/breadcrumbs/breadcrumbs.component.html","./src/app/parts/components/checkbox.component.ts","./src/app/parts/components/copy-button.component.ts","./src/app/parts/components/loader.component.ts","./src/app/parts/components/register-context-templates.component.ts","./src/app/parts/components/staking-switch.component.ts","./src/app/parts/components/switch.component.ts","./src/app/parts/components/synchronization-status.component.ts","./src/app/parts/components/transaction-details.component.ts","./src/app/parts/components/wallet-card.component.ts","./src/app/parts/data/assets.ts","./src/app/parts/data/constants.ts","./src/app/parts/data/scale-items.ts","./src/app/parts/directives/autofocus.directive.ts","./src/app/parts/directives/back-button/back-button.directive.ts","./src/app/parts/directives/back-button/back-button.module.ts","./src/app/parts/directives/default-img/default-img.directive.ts","./src/app/parts/directives/default-img/default-img.module.ts","./src/app/parts/directives/default-img/index.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.directive.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.module.ts","./src/app/parts/directives/disable-price-fetch/index.ts","./src/app/parts/directives/index.ts","./src/app/parts/directives/input-disable-selection/index.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.directive.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.module.ts","./src/app/parts/directives/input-validate/index.ts","./src/app/parts/directives/input-validate/input-validate.directive.ts","./src/app/parts/directives/input-validate/input-validate.module.ts","./src/app/parts/directives/lower-case.directive.ts","./src/app/parts/directives/tooltip/index.ts","./src/app/parts/directives/tooltip/tooltip.directive.ts","./src/app/parts/directives/tooltip/tooltip.module.ts","./src/app/parts/functions/hasOwnProperty.ts","./src/app/parts/modals/asset-details/asset-details.component.ts","./src/app/parts/modals/asset-details/asset-details.module.ts","./src/app/parts/modals/confirm-modal/confirm-modal.component.ts","./src/app/parts/modals/confirm-modal/confirm-modal.module.ts","./src/app/parts/modals/modal-container/modal-container.component.ts","./src/app/parts/modals/open-wallet-modal/open-wallet-modal.component.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages-pipe.module.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe.ts","./src/app/parts/pipes/contract-status-messages-pipe/index.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left-pipe.module.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left.pipe.ts","./src/app/parts/pipes/contract-time-left-pipe/index.ts","./src/app/parts/pipes/get-asset-info.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages-pipe.module.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/index.ts","./src/app/parts/pipes/index.ts","./src/app/parts/pipes/int-to-money-pipe/index.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money-pipe.module.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money.pipe.ts","./src/app/parts/pipes/is-available-alias-name-pipe/index.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name-pipe.module.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe.ts","./src/app/parts/pipes/money-to-int-pipe/index.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int-pipe.module.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int.pipe.ts","./src/app/parts/pipes/safe-html-pipe/index.ts","./src/app/parts/pipes/safe-html-pipe/safe-html-pipe.module.ts","./src/app/parts/pipes/safe-html-pipe/safe-html.pipe.ts","./src/app/parts/pipes/short-string.pipe.ts","./src/app/parts/services/back.service.ts","./src/app/parts/services/modal.service.ts","./src/app/parts/services/variables.service.ts","./src/app/parts/services/wallets.service.ts","./src/app/parts/services/zano-loaders.service.ts","./src/app/parts/utils/MIME-types.ts","./src/app/parts/utils/generate-random-string.ts","./src/app/parts/utils/zano-errors.ts","./src/app/parts/utils/zano-validators.ts","./src/app/store/pagination/pagination.service.ts","./src/app/store/pagination/pagination.store.ts","./src/app/store/store.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Contracts } from './contract.model';\nimport { Transaction, Transactions } from './transaction.model';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, AssetInfo, AssetBalances, AssetsInfoWhitelist } from './assets.model';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { MIXIN } from '@parts/data/constants';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const defaultSendMoneyParams: SendMoneyParams = {\n asset_id: zanoAssetInfo.asset_id,\n wallet_id: undefined,\n address: '',\n amount: undefined,\n comment: '',\n mixin: MIXIN,\n fee: '0.01',\n hide: false,\n};\n\nexport class Wallet {\n open_from_exist: boolean;\n updated = false;\n wallet_id: number;\n name: string;\n pass: string;\n path: string;\n address: string;\n\n private _balances$ = new BehaviorSubject(undefined);\n\n private _assetsInfoWhitelist: AssetsInfoWhitelist = { global_whitelist: [], local_whitelist: [], own_assets: [] };\n\n set assetsInfoWhitelist(value: AssetsInfoWhitelist) {\n this._assetsInfoWhitelist = value;\n }\n\n get allAssetsInfoWhitelist(): AssetInfo[] {\n const { global_whitelist = [], local_whitelist= [], own_assets= [] } = this._assetsInfoWhitelist;\n return [\n ...global_whitelist,\n ...local_whitelist,\n ...own_assets\n ];\n }\n\n get isEmptyAssetsInfoWhitelist(): boolean {\n return !this.allAssetsInfoWhitelist.length;\n }\n\n get allAssetsInfo(): AssetInfo[] {\n return [\n zanoAssetInfo,\n ...this.allAssetsInfoWhitelist\n ];\n }\n\n get balances$(): Observable {\n return this._balances$.asObservable();\n }\n\n get balances(): AssetBalances | null | undefined {\n return this._balances$.value;\n }\n\n set balances(value: AssetBalances | null | undefined) {\n const sortedAssets: AssetBalances = [];\n if (value) {\n const assets = [...value];\n const indexZano = assets.findIndex(({ asset_info: { ticker } }) => ticker === 'ZANO');\n if (indexZano >= 0) {\n const assetZano = assets.splice(indexZano, 1)[0];\n sortedAssets.push(assetZano);\n }\n const sortedAssetsByBalance = assets.sort((a, b) => new BigNumber(b.total).minus(new BigNumber(a.total)).toNumber());\n sortedAssets.push(...sortedAssetsByBalance);\n }\n this._balances$.next(sortedAssets);\n }\n\n get isEmptyBalances(): boolean {\n if (!this.balances) {\n return true;\n }\n\n for (const asset of this.balances) {\n const value = asset.total || 0;\n const isEmpty = !Boolean(new BigNumber(value).toNumber());\n\n if (!isEmpty) {\n return false;\n }\n }\n\n return true;\n }\n\n mined_total: number;\n tracking_hey: string;\n is_auditable: boolean;\n is_watch_only: boolean;\n exclude_mining_txs: boolean;\n alias_available: boolean;\n\n alias?: Partial;\n wakeAlias?: boolean;\n staking?: boolean;\n new_messages?: number;\n new_contracts?: number;\n\n history: Transactions = [];\n total_history_item?: number;\n pages = [];\n totalPages: number;\n currentPage: number;\n excluded_history: Transactions = [];\n\n contracts: Contracts = [];\n\n progress?: number;\n loaded?: boolean;\n restore?: boolean;\n\n sendMoneyParams: SendMoneyParams | null = null;\n\n constructor(id, name, pass, path, address, balances, unlocked_balance, mined = 0, tracking = '') {\n this.wallet_id = id;\n this.name = name;\n this.pass = pass;\n this.path = path;\n this.address = address;\n this.balances = balances;\n this.mined_total = mined;\n this.tracking_hey = tracking;\n\n this.alias = {};\n this.staking = false;\n this.new_messages = 0;\n this.new_contracts = 0;\n\n this.history = [];\n this.excluded_history = [];\n\n this.progress = 0;\n this.loaded = false;\n }\n\n getBalanceByTicker(searchTicker: string): AssetBalance | undefined {\n return this.balances?.find(({ asset_info: { ticker } }) => ticker === searchTicker);\n }\n\n getMoneyEquivalentForZano(equivalent): string {\n const balanceZano = this.getBalanceByTicker('ZANO')?.total || 0;\n return new BigNumber(balanceZano).multipliedBy(equivalent).toFixed(0);\n }\n\n prepareHistory(items: Transaction[]): void {\n for (let i = 0; i < items.length; i++) {\n if (\n (items[i].tx_type === 7 && items[i].subtransfers?.find(({ is_income }) => is_income)) ||\n (items[i].tx_type === 11 && items[i].subtransfers?.find(({ is_income }) => is_income))\n ) {\n let exists = false;\n for (let j = 0; j < this.excluded_history.length; j++) {\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.excluded_history[j].height !== items[i].height) {\n this.excluded_history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n this.excluded_history.push(items[i]);\n }\n } else {\n let exists = false;\n for (let j = 0; j < this.history.length; j++) {\n if (this.history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.history[j].height !== items[i].height) {\n this.history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n if (this.history.length > 0 && items[i].timestamp >= this.history[0].timestamp) {\n this.history.unshift(items[i]);\n } else {\n this.history.push(items[i]);\n }\n }\n }\n }\n }\n\n removeFromHistory(hash: string): void {\n for (let i = 0; i < this.history.length; i++) {\n if (this.history[i].tx_hash === hash) {\n this.history.splice(i, 1);\n break;\n }\n }\n }\n}\n\nexport interface DeeplinkParams {\n action?: 'send' | string;\n address?: string;\n amount?: string;\n my_deposit?: string;\n seller_deposit?: string;\n seller_address?: string;\n hide_sender?: string;\n hide_receiver?: string;\n title?: string;\n description?: string;\n category?: string;\n price?: string;\n img_url?: string;\n url?: string;\n contact?: string;\n comment?: string;\n comments?: string;\n mixins?: string;\n fee?: string;\n}\n\nexport interface PushOffer {\n wallet_id: number;\n od: {\n ap: string;\n at: string;\n cat: string;\n cnt: string;\n com: string;\n do: string;\n et: number;\n fee: BigNumber;\n lci: string;\n lco: string;\n ot: number;\n pt: string;\n t: string;\n url: string;\n };\n}\n\nexport interface ResponseGetWalletInfo {\n address: string;\n balances: AssetBalances;\n is_auditable: boolean;\n is_watch_only: boolean;\n mined_total: number;\n path: string;\n view_sec_key: string;\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport JSONBigNumber from 'json-bignumber';\nimport { BigNumber } from 'bignumber.js';\nimport { ResponseGetWalletInfo } from '../models/wallet.model';\nimport {\n AssetInfo,\n ParamsAddCustomAssetId,\n ParamsRemoveCustomAssetId,\n ResponseAddCustomAssetId,\n ResponseRemoveCustomAssetId,\n} from '@api/models/assets.model';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\nexport interface PramsObj {\n [key: string]: any;\n}\n\nexport type PramsArray = (string | PramsObj)[];\n\nexport type Params = string | PramsObj | PramsArray;\n\nexport enum ParamsType {\n array = 'array',\n object = 'object',\n string = 'string',\n}\n\nexport const getParamsType = (value: Params): ParamsType | null => {\n if (!value) {\n return null;\n }\n const array: false | ParamsType.array = Array.isArray(value) && ParamsType.array;\n const object: false | ParamsType = Object.keys(ParamsType).includes(typeof value) && ParamsType[typeof value];\n return array || object || null;\n};\n\nexport type ConvertersObjectForTypes = {\n [key in ParamsType]: (value: Params) => string | string[];\n};\n\nexport const convertersObjectForTypes: ConvertersObjectForTypes = {\n [ParamsType.string]: (value: string): string => value,\n [ParamsType.object]: (value: PramsObj): string => JSONBigNumber.stringify(value),\n [ParamsType.array]: (value: PramsArray): string[] =>\n value.map(v => {\n return typeof v === ParamsType.string ? (v as string) : JSONBigNumber.stringify(v);\n }),\n};\n\nexport const convertorParams = (value: Params): string | string[] => {\n const type: ParamsType = getParamsType(value);\n return convertersObjectForTypes[type](value);\n};\n\nexport interface ResponseAsyncTransfer {\n error_code: string | 'NOT_ENOUGH_MONEY' | 'OK';\n response_data: {\n success: boolean;\n tx_blob_size: number;\n tx_hash: string;\n };\n}\n\nexport interface AsyncCommandResults {\n job_id: number;\n response: ResponseAsyncTransfer;\n}\n\nexport enum StatusCurrentActionState {\n STATE_SENDING = 'STATE_SENDING',\n STATE_SENT_SUCCESS = 'STATE_SENT_SUCCESS',\n STATE_SEND_FAILED = 'STATE_SEND_FAILED',\n STATE_INITIALIZING = 'STATE_INITIALIZING',\n STATE_DOWNLOADING_CONSENSUS = 'STATE_DOWNLOADING_CONSENSUS',\n STATE_MAKING_TUNNEL_A = 'STATE_MAKING_TUNNEL_A',\n STATE_MAKING_TUNNEL_B = 'STATE_MAKING_TUNNEL_B',\n STATE_CREATING_STREAM = 'STATE_CREATING_STREAM',\n STATE_FAILED = 'STATE_FAILED',\n STATE_SUCCESS = 'STATE_SUCCESS',\n}\n\nexport interface CurrentActionState {\n status: StatusCurrentActionState;\n wallet_id: number;\n}\n\nexport enum Commands {\n money_transfer_cancel = 'money_transfer_cancel',\n handle_deeplink_click = 'handle_deeplink_click',\n money_transfer = 'money_transfer',\n update_daemon_state = 'update_daemon_state',\n wallet_sync_progress = 'wallet_sync_progress',\n update_wallet_status = 'update_wallet_status',\n quit_requested = 'quit_requested',\n on_core_event = 'on_core_event',\n get_wallet_info = 'get_wallet_info',\n remove_custom_asset_id = 'remove_custom_asset_id',\n add_custom_asset_id = 'add_custom_asset_id',\n get_options = 'get_options',\n handle_current_action_state = 'handle_current_action_state',\n set_enable_tor = 'set_enable_tor',\n dispatch_async_call_result = 'dispatch_async_call_result',\n async_call = 'async_call',\n set_log_level = 'set_log_level',\n get_network_type = 'get_network_type',\n get_version = 'get_version',\n get_tx_pool_info = 'get_tx_pool_info',\n get_recent_transfers = 'get_recent_transfers',\n resync_wallet = 'resync_wallet',\n get_alias_coast = 'get_alias_coast',\n get_alias_info_by_address = 'get_alias_info_by_address',\n get_alias_info_by_name = 'get_alias_info_by_name',\n get_all_aliases = 'get_all_aliases',\n request_alias_update = 'request_alias_update',\n webkit_launched_script = 'webkit_launched_script',\n on_request_quit = 'on_request_quit',\n get_app_data = 'get_app_data',\n store_app_data = 'store_app_data',\n get_secure_app_data = 'get_secure_app_data',\n set_master_password = 'set_master_password',\n check_master_password = 'check_master_password',\n get_is_disabled_notifications = 'get_is_disabled_notifications',\n set_is_disabled_notifications = 'set_is_disabled_notifications',\n store_secure_app_data = 'store_secure_app_data',\n drop_secure_app_data = 'drop_secure_app_data',\n have_secure_app_data = 'have_secure_app_data',\n show_savefile_dialog = 'show_savefile_dialog',\n show_openfile_dialog = 'show_openfile_dialog',\n store_to_file = 'store_to_file',\n load_from_file = 'load_from_file',\n push_offer = 'push_offer',\n generate_wallet = 'generate_wallet',\n export_wallet_history = 'export_wallet_history',\n open_wallet = 'open_wallet',\n close_wallet = 'close_wallet',\n get_smart_wallet_info = 'get_smart_wallet_info',\n get_seed_phrase_info = 'get_seed_phrase_info',\n run_wallet = 'run_wallet',\n is_valid_restore_wallet_text = 'is_valid_restore_wallet_text',\n restore_wallet = 'restore_wallet',\n transfer = 'transfer',\n validate_address = 'validate_address',\n set_clipboard = 'set_clipboard',\n get_clipboard = 'get_clipboard',\n create_proposal = 'create_proposal',\n get_contracts = 'get_contracts',\n accept_proposal = 'accept_proposal',\n release_contract = 'release_contract',\n request_cancel_contract = 'request_cancel_contract',\n accept_cancel_contract = 'accept_cancel_contract',\n get_mining_history = 'get_mining_history',\n start_pos_mining = 'start_pos_mining',\n stop_pos_mining = 'stop_pos_mining',\n open_url_in_browser = 'open_url_in_browser',\n start_backend = 'start_backend',\n get_default_fee = 'get_default_fee',\n set_localization_strings = 'set_localization_strings',\n request_alias_registration = 'request_alias_registration',\n call_rpc = 'call_rpc',\n call_wallet_rpc = 'call_wallet_rpc',\n setup_jwt_wallet_rpc = 'setup_jwt_wallet_rpc',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackendService {\n dispatchAsyncCallResult$ = new Subject();\n\n handleCurrentActionState$ = new Subject();\n\n backendObject: any;\n\n backendLoaded = false;\n\n constructor(\n private translate: TranslateService,\n private variablesService: VariablesService,\n private modalService: ModalService,\n private moneyToIntPipe: MoneyToIntPipe,\n private ngZone: NgZone\n ) {}\n\n static bigNumberParser(key, val): any {\n if (\n val.constructor.name === 'BigNumber' &&\n ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1\n ) {\n return val.toNumber();\n }\n if (key === 'rcv' || key === 'spn') {\n for (let i = 0; i < val.length; i++) {\n val[i] = new BigNumber(val[i]);\n }\n }\n return val;\n }\n\n static Debug(type, message): void {\n switch (type) {\n case 0:\n console.error(message);\n break;\n case 1:\n console.warn(message);\n break;\n case 2:\n console.log(message);\n break;\n default:\n console.log(message);\n break;\n }\n }\n\n eventSubscribe(command: Commands, callback): void {\n if (command === Commands.on_core_event) {\n this.backendObject[command].connect(callback);\n } else {\n this.backendObject[command].connect(str => {\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\n });\n }\n }\n\n initService(): Observable {\n return new Observable(observer => {\n if (!this.backendLoaded) {\n this.backendLoaded = true;\n (window).QWebChannel((window).qt.webChannelTransport, channel => {\n this.backendObject = channel.objects.mediator_object;\n observer.next('backendObject loaded');\n });\n } else {\n observer.error('backend not loaded');\n if (!this.backendObject) {\n observer.error('backendObject not loaded');\n }\n }\n });\n }\n\n webkitLaunchedScript(): void {\n this.runCommand(Commands.webkit_launched_script);\n }\n\n quitRequest(): void {\n this.runCommand(Commands.on_request_quit);\n }\n\n getAppData(callback): void {\n this.runCommand(Commands.get_app_data, {}, callback);\n }\n\n storeAppData(callback?): void {\n if (this.variablesService.wallets.length > 0) {\n this.variablesService.settings.wallets = [];\n this.variablesService.wallets.forEach(wallet => {\n this.variablesService.settings.wallets.push({\n name: wallet.name,\n path: wallet.path,\n });\n });\n }\n this.runCommand(Commands.store_app_data, this.variablesService.settings, callback);\n }\n\n getSecureAppData(pass, callback): void {\n this.runCommand(Commands.get_secure_app_data, pass, callback);\n }\n\n setMasterPassword(pass, callback): void {\n this.runCommand(Commands.set_master_password, pass, callback);\n }\n\n checkMasterPassword(pass, callback): void {\n this.runCommand(Commands.check_master_password, pass, callback);\n }\n\n getIsDisabledNotifications(callback): void {\n const params = {};\n this.runCommand(Commands.get_is_disabled_notifications, params, callback);\n }\n\n setIsDisabledNotifications(state): void {\n this.runCommand(Commands.set_is_disabled_notifications, state);\n }\n\n storeSecureAppData(callback?): void {\n const wallets = [];\n const contacts = [];\n this.variablesService.wallets.forEach(wallet => {\n wallets.push({\n name: wallet.name,\n pass: wallet.pass,\n path: wallet.path,\n staking: wallet.staking,\n });\n });\n this.variablesService.contacts.forEach(contact => {\n contacts.push({\n name: contact.name,\n address: contact.address,\n notes: contact.notes,\n });\n });\n const data = { wallets: wallets, contacts: contacts };\n this.backendObject[Commands.store_secure_app_data](JSON.stringify(data), this.variablesService.appPass, dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.store_secure_app_data);\n });\n }\n\n dropSecureAppData(callback?): void {\n this.backendObject[Commands.drop_secure_app_data](dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.drop_secure_app_data);\n });\n }\n\n haveSecureAppData(callback): void {\n this.runCommand(Commands.have_secure_app_data, {}, callback);\n }\n\n saveFileDialog(caption, fileMask, default_path, callback): void {\n const dir = default_path ? default_path : '/';\n const params = {\n caption: caption,\n filemask: fileMask,\n default_dir: dir,\n };\n this.runCommand(Commands.show_savefile_dialog, params, callback);\n }\n\n openFileDialog(caption, filemask, default_path, callback): void {\n const default_dir = default_path ? default_path : '/';\n const params = {\n caption,\n filemask,\n default_dir,\n };\n this.runCommand(Commands.show_openfile_dialog, params, callback);\n }\n\n storeFile(path, buff): void {\n this.backendObject[Commands.store_to_file](path, buff);\n }\n\n loadFile(path, callback): void {\n this.runCommand(Commands.load_from_file, path, callback);\n }\n\n push_offer(params, callback): void {\n this.runCommand(Commands.push_offer, params, callback);\n }\n\n generateWallet(path, pass, callback): void {\n const params = {\n path: path,\n pass: pass,\n };\n this.runCommand(Commands.generate_wallet, params, callback);\n }\n\n exportWalletHistory(json_string): void {\n this.runCommand(Commands.export_wallet_history, json_string);\n }\n\n openWallet(path, pass, txs_to_return, testEmpty, callback): void {\n const params = {\n path: path,\n pass: pass,\n txs_to_return: txs_to_return,\n };\n params['testEmpty'] = !!testEmpty;\n this.runCommand(Commands.open_wallet, params, callback);\n }\n\n closeWallet(wallet_id, callback?): void {\n this.runCommand(Commands.close_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n getSmartWalletInfo({ wallet_id, seed_password }, callback): void {\n this.runCommand(Commands.get_smart_wallet_info, { wallet_id: +wallet_id, seed_password }, callback);\n }\n\n getSeedPhraseInfo(param, callback): void {\n this.runCommand(Commands.get_seed_phrase_info, param, callback);\n }\n\n runWallet(wallet_id, callback?): void {\n this.runCommand(Commands.run_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n isValidRestoreWalletText(param, callback): void {\n this.runCommand(Commands.is_valid_restore_wallet_text, param, callback);\n }\n\n restoreWallet(path, pass, seed_phrase, seed_pass, callback): void {\n const params = {\n seed_phrase: seed_phrase,\n path: path,\n pass: pass,\n seed_pass,\n };\n this.runCommand(Commands.restore_wallet, params, callback);\n }\n\n sendMoney({ wallet_id, address, amount, fee, mixin, comment, hide, asset_id }: SendMoneyParams, callback): void {\n const params = {\n wallet_id,\n destinations: [\n {\n address,\n amount,\n ...(asset_id && { asset_id }),\n },\n ],\n mixin_count: mixin ?? 0,\n lock_time: 0,\n fee: this.moneyToIntPipe.transform(fee),\n comment: comment,\n push_payer: !hide,\n };\n\n this.asyncCall(Commands.transfer, params, callback);\n }\n\n setupJwtWalletRpc(value: { zanoCompation: boolean; secret: string }): void {\n const { secret } = value;\n\n this.runCommand(Commands.setup_jwt_wallet_rpc, secret, () => {\n this.variablesService.settings.zanoCompanionForm = value;\n this.storeAppData();\n });\n }\n\n validateAddress(address, callback): void {\n this.runCommand(Commands.validate_address, address, callback);\n }\n\n setClipboard(str, callback?): void {\n this.runCommand(Commands.set_clipboard, str, callback);\n }\n\n getClipboard(callback): void {\n this.runCommand(Commands.get_clipboard, {}, callback);\n }\n\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n details: {\n t: title,\n c: comment,\n a_addr: a_addr,\n b_addr: b_addr,\n to_pay: this.moneyToIntPipe.transform(to_pay),\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\n b_pledge: this.moneyToIntPipe.transform(b_pledge),\n },\n payment_id: payment_id,\n expiration_period: parseInt(time, 10) * 60 * 60,\n fee: this.variablesService.default_fee_big,\n b_fee: this.variablesService.default_fee_big,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.create_proposal, params, callback);\n }\n\n getContracts(wallet_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.get_contracts, params, callback);\n }\n\n acceptProposal(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_proposal, params, callback);\n }\n\n releaseProposal(wallet_id, contract_id, release_type, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n release_type: release_type, // \"normal\" or \"burn\"\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.release_contract, params, callback);\n }\n\n requestCancelContract(wallet_id, contract_id, time, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n fee: this.variablesService.default_fee_big,\n expiration_period: parseInt(time, 10) * 60 * 60,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.request_cancel_contract, params, callback);\n }\n\n acceptCancelContract(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_cancel_contract, params, callback);\n }\n\n getMiningHistory(wallet_id, callback): void {\n this.runCommand(Commands.get_mining_history, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n startPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.start_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n stopPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.stop_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n openUrlInBrowser(url, callback?): void {\n this.runCommand(Commands.open_url_in_browser, url, callback);\n }\n\n start_backend(node, host, port, callback): void {\n const params = {\n configure_for_remote_node: node,\n remote_node_host: host,\n remote_node_port: parseInt(port, 10),\n };\n this.runCommand(Commands.start_backend, params, callback);\n }\n\n getDefaultFee(callback): void {\n this.runCommand(Commands.get_default_fee, {}, callback);\n }\n\n setBackendLocalization(stringsArray, title, callback?): void {\n const params = {\n strings: stringsArray,\n language_title: title,\n };\n this.runCommand(Commands.set_localization_strings, params, callback);\n }\n\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias,\n address: address,\n tracking_key: '',\n comment: comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n reward: this.moneyToIntPipe.transform(reward),\n };\n this.runCommand(Commands.request_alias_registration, params, callback);\n }\n\n updateAlias(wallet_id, alias, fee, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias.name.replace('@', ''),\n address: alias.address,\n tracking_key: '',\n comment: alias.comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n };\n this.runCommand(Commands.request_alias_update, params, callback);\n }\n\n getAllAliases(callback): void {\n this.runCommand(Commands.get_all_aliases, {}, callback);\n }\n\n getAliasInfoByName(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_name, value, callback);\n }\n\n getAliasByAddress(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_address, value, callback);\n }\n\n getAliasCoast(alias, callback): void {\n this.runCommand(Commands.get_alias_coast, { v: alias }, callback);\n }\n\n resyncWallet(id): void {\n this.runCommand(Commands.resync_wallet, { wallet_id: id });\n }\n\n getWalletAlias(address): Partial {\n if (address !== null && this.variablesService.daemon_state === 2) {\n if (this.variablesService.aliasesChecked[address] == null) {\n this.variablesService.aliasesChecked[address] = {};\n if (this.variablesService.aliases.length) {\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\n return this.variablesService.aliasesChecked[address];\n }\n }\n }\n this.getAliasByAddress(address, (status, data) => {\n if (status) {\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\n }\n });\n }\n return this.variablesService.aliasesChecked[address];\n }\n return {};\n }\n\n getContactAlias(): void {\n if (this.variablesService.contacts.length > 0 && this.variablesService.daemon_state === 2) {\n this.variablesService.contacts.map(contact => {\n this.getAliasByAddress(contact.address, (status, data) => {\n if (status) {\n if (data.alias) {\n contact.alias = '@' + data.alias;\n }\n } else {\n contact.alias = null;\n }\n });\n });\n }\n }\n\n getRecentTransfers(id, offset, count, exclude_mining_txs, callback): void {\n const params = {\n wallet_id: id,\n offset: offset,\n count: count,\n exclude_mining_txs: exclude_mining_txs,\n };\n this.runCommand(Commands.get_recent_transfers, params, callback);\n }\n\n getPoolInfo(callback): void {\n this.runCommand(Commands.get_tx_pool_info, {}, callback);\n }\n\n getVersion(callback): void {\n this.runCommand(Commands.get_version, {}, (status, version, errorVersion) => {\n this.runCommand(Commands.get_network_type, {}, (status_network, type, errorType) => {\n callback(version, type, errorVersion ?? errorType);\n });\n });\n }\n\n setLogLevel(level): void {\n this.runCommand(Commands.set_log_level, { v: level });\n }\n\n asyncCall(command: string, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(Commands.async_call, [command, params], (status, { job_id }: { job_id: number }) => {\n callback(job_id);\n });\n }\n\n dispatchAsyncCallResult(): void {\n this.backendObject[Commands.dispatch_async_call_result].connect((job_id: string, json_resp: string) => {\n const asyncCommandResults: AsyncCommandResults = {\n job_id: +job_id,\n response: JSON.parse(json_resp),\n };\n this.ngZone.run(() => this.dispatchAsyncCallResult$.next(asyncCommandResults));\n });\n }\n\n handleCurrentActionState(): void {\n this.backendObject[Commands.handle_current_action_state].connect((response: string) => {\n const currentActionState: CurrentActionState = JSON.parse(response);\n this.ngZone.run(() => this.handleCurrentActionState$.next(currentActionState));\n });\n }\n\n setEnableTor(value: boolean): void {\n this.runCommand(Commands.set_enable_tor, <{ v: boolean }>{\n v: value,\n });\n }\n\n getOptions(): any {\n this.runCommand(\n Commands.get_options,\n {},\n (\n status,\n {\n disable_price_fetch,\n use_debug_mode,\n rpc_port,\n }: { disable_price_fetch: boolean; use_debug_mode: boolean; rpc_port: number }\n ) => {\n this.variablesService.disable_price_fetch$.next(disable_price_fetch);\n this.variablesService.use_debug_mode$.next(use_debug_mode);\n this.variablesService.rpc_port = rpc_port;\n }\n );\n }\n\n addCustomAssetId(\n params: ParamsAddCustomAssetId,\n callback: (\n status: boolean,\n response_data: ResponseAddCustomAssetId,\n res_error_code?: {\n error_code: 'FAILED' | string;\n response_data: {\n asset_descriptor: Partial;\n status: 'FAILED' | string;\n };\n }\n ) => void\n ): void {\n this.runCommand(Commands.add_custom_asset_id, params, callback);\n }\n\n removeCustomAssetId(\n params: ParamsRemoveCustomAssetId,\n callback?: (status: boolean, response_data: ResponseRemoveCustomAssetId) => void\n ): void {\n this.runCommand(Commands.remove_custom_asset_id, params, callback);\n }\n\n getWalletInfo(wallet_id, callback?: (status: boolean, response_data: ResponseGetWalletInfo) => void): void {\n this.runCommand(Commands.get_wallet_info, { wallet_id }, callback);\n }\n\n // Use for call rpc-api https://docs.zano.org/docs/build/rpc-api\n call_rpc(params: Partial, callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_rpc, params, callback);\n }\n\n call_wallet_rpc(params: [wallet_id: number, params: Partial], callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_wallet_rpc, params, callback);\n }\n\n private informerRun(error: string, params, command: string): void {\n let error_translate = '';\n switch (error) {\n case 'NOT_ENOUGH_MONEY':\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\n if (command === 'cancel_offer') {\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\n fee: this.variablesService.default_fee,\n currency: this.variablesService.defaultCurrency,\n });\n }\n break;\n case 'CORE_BUSY':\n error_translate = 'ERRORS.CORE_BUSY';\n break;\n case 'BUSY':\n error_translate = 'ERRORS.DAEMON_BUSY';\n break;\n case 'OVERFLOW':\n if (command !== 'get_all_aliases') {\n error_translate = '';\n }\n break;\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\n break;\n case 'TX_IS_TOO_BIG':\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\n break;\n case 'DISCONNECTED':\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\n break;\n case 'ACCESS_DENIED':\n error_translate = 'ERRORS.ACCESS_DENIED';\n break;\n case 'TX_REJECTED':\n // if (command === 'request_alias_registration') {\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\n // } else {\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n // }\n break;\n case 'INTERNAL_ERROR':\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n break;\n case 'BAD_ARG':\n error_translate = 'ERRORS.BAD_ARG';\n break;\n case 'WALLET_WRONG_ID':\n error_translate = 'ERRORS.WALLET_WRONG_ID';\n break;\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\n break;\n // case 'WRONG_PASSWORD':\n // params = JSON.parse(params);\n // if (!params.testEmpty) {\n // error_translate = 'ERRORS.WRONG_PASSWORD';\n // }\n // break;\n case 'FILE_RESTORED':\n if (command === 'open_wallet') {\n error_translate = 'ERRORS.FILE_RESTORED';\n }\n break;\n case 'FILE_NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'CANCELED':\n case '':\n break;\n case 'FAIL':\n if (\n command === 'create_proposal' ||\n command === 'accept_proposal' ||\n command === 'release_contract' ||\n command === 'request_cancel_contract' ||\n command === 'accept_cancel_contract'\n ) {\n error_translate = ' ';\n }\n break;\n case 'ALREADY_EXISTS':\n error_translate = 'ERRORS.FILE_EXIST';\n break;\n case 'FAILED':\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\n break;\n default:\n error_translate = '';\n }\n if (error.indexOf('FAIL:failed to save file') > -1) {\n error_translate = 'ERRORS.FILE_NOT_SAVED';\n }\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\n error_translate = '';\n }\n\n if (error_translate !== '') {\n this.modalService.prepareModal('error', error_translate);\n }\n }\n\n private commandDebug(command: Commands, params: Params, result: any): void {\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\n const debug = {\n _send_params: params,\n _result: result,\n };\n BackendService.Debug(2, debug);\n try {\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\n } catch (e) {\n BackendService.Debug(2, { response_data: result, error_code: 'OK' });\n }\n }\n\n private backendCallback(resultStr, params, callback, command: Commands): any {\n let Result = resultStr;\n if (command !== Commands.get_clipboard) {\n if (!resultStr || resultStr === '') {\n Result = {};\n } else {\n try {\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\n } catch (e) {\n Result = { response_data: resultStr, error_code: 'OK' };\n }\n }\n } else {\n Result = {\n error_code: 'OK',\n response_data: Result,\n };\n }\n\n const core_busy = Result.error_code === 'CORE_BUSY';\n const Status = Result.error_code === 'OK' || Result.error_code === 'TRUE';\n\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\n }\n const data = typeof Result === 'object' && 'response_data' in Result ? Result.response_data : Result;\n\n let res_error_code = false;\n if (\n typeof Result === 'object' &&\n 'error_code' in Result &&\n Result.error_code !== 'OK' &&\n Result.error_code !== 'TRUE' &&\n Result.error_code !== 'FALSE' &&\n Result.error_code !== 'WRAP'\n ) {\n if (core_busy) {\n setTimeout(() => {\n // this is will avoid update data when user\n // on other wallet after CORE_BUSY (blink of data)\n if (command !== Commands.get_recent_transfers) {\n this.runCommand(command, params, callback);\n } else {\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\n if (current_wallet_id === params.wallet_id) {\n this.runCommand(command, params, callback);\n }\n }\n }, 50);\n } else {\n this.informerRun(Result.error_code, params, command);\n res_error_code = Result.error_code;\n }\n }\n\n if (!core_busy) {\n if (typeof callback === 'function') {\n callback(Status, data, res_error_code);\n } else {\n return data;\n }\n }\n }\n\n private runCommand(command: Commands, params?: Params, callback?): any {\n if (!this.backendObject) {\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = true;\n }\n\n const Action = this.backendObject[command];\n\n if (!Action) {\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\n return;\n }\n\n const type: ParamsType = getParamsType(params);\n params = params && convertorParams(params);\n\n if (type === ParamsType.array) {\n Action(...(params as string[]), resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = false;\n }\n Action(params, resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { WrapInfo } from '@api/models/wrap-info';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WrapInfoService {\n private httpClient = inject(HttpClient);\n\n getWrapInfo(): Observable {\n return this.httpClient.get('https://wrapped.zano.org/api2/get_wrap_info');\n }\n}\n","import { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [RouterModule.forRoot([], { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { BigNumber } from 'bignumber.js';\nimport { ModalService } from '@parts/services/modal.service';\nimport { StateKeys, Store } from '@store/store';\nimport { shareReplay, Subject, switchMap, take } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { paths, pathsChildrenAuth } from './pages/paths';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\n\n@Component({\n selector: 'app-root',\n template: `\n \n\n
\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n

\n
\n
\n\n
\n

\n {{ zanoLoadersService.getMessage('fullScreen') | async | translate }}\n

\n
\n
\n\n \n\n \n `,\n})\nexport class AppComponent implements OnInit, OnDestroy {\n intervalUpdatePriceState;\n\n intervalUpdateContractsState;\n\n expMedTsEvent;\n\n onQuitRequest = false;\n\n firstOnlineState = false;\n\n translateUsed = false;\n\n needOpenWallets = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public translate: TranslateService,\n private http: HttpClient,\n private renderer: Renderer2,\n private backendService: BackendService,\n private router: Router,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private modalService: ModalService,\n private store: Store,\n private dialog: Dialog,\n public zanoLoadersService: ZanoLoadersService\n ) {\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\n translate.setDefaultLang('en');\n translate.use('en').subscribe({\n next: () => {\n this.translateUsed = true;\n },\n });\n }\n\n setBackendLocalization(): void {\n if (this.translateUsed) {\n const stringsArray = [\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE'),\n ];\n this.backendService.setBackendLocalization(stringsArray, this.variablesService.settings.language);\n } else {\n console.warn('wait translate use');\n setTimeout(() => {\n this.setBackendLocalization();\n }, 10000);\n }\n }\n\n ngOnInit(): void {\n this.backendService.initService().subscribe({\n next: initMessage => {\n console.log('Init message: ', initMessage);\n this.backendService.getOptions();\n this.backendService.webkitLaunchedScript();\n\n this.backendService.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\n console.log(st2, dd2);\n });\n\n this.backendService.eventSubscribe(Commands.quit_requested, async () => {\n if (this.onQuitRequest) {\n return;\n }\n\n // await this.ngZone.run(async () => {\n // await this.router.navigate(['/']);\n // });\n\n this.dialog.closeAll();\n this.needOpenWallets = [];\n this.variablesService.daemon_state = 5;\n\n const saveFunction = (): void => {\n this.backendService.storeAppData((): void => {\n const recursionCloseWallets = (): void => {\n if (this.variablesService.wallets.length > 0) {\n const lastIndex = this.variablesService.wallets.length - 1;\n this.backendService.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\n this.variablesService.wallets.splice(lastIndex, 1);\n recursionCloseWallets();\n });\n } else {\n this.ngZone.run(() => {\n this.backendService.quitRequest();\n });\n }\n };\n recursionCloseWallets();\n });\n };\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData(saveFunction);\n } else {\n saveFunction();\n }\n\n this.onQuitRequest = true;\n });\n\n this.backendService.eventSubscribe(Commands.update_wallet_status, data => {\n console.log('----------------- update_wallet_status -----------------');\n console.log(data);\n\n const wallet_state = data.wallet_state;\n const is_mining = data.is_mining;\n const wallet = this.variablesService.getWallet(data.wallet_id);\n // 1-synch, 2-ready, 3 - error\n if (wallet) {\n this.ngZone.run(() => {\n wallet.loaded = false;\n wallet.staking = is_mining;\n if (wallet_state === 2) {\n // ready\n wallet.loaded = true;\n }\n if (wallet_state === 3) {\n // error\n // wallet.error = true;\n }\n wallet.balances = data.balances;\n wallet.mined_total = data.minied_total;\n wallet.alias_available = data.is_alias_operations_available;\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.wallet_sync_progress, data => {\n console.log('----------------- wallet_sync_progress -----------------');\n console.log(data);\n const wallet = this.variablesService.getWallet(data.wallet_id);\n if (wallet) {\n this.ngZone.run(() => {\n wallet.progress = data.progress < 0 ? 0 : data.progress > 100 ? 100 : data.progress;\n if (!this.variablesService.sync_started) {\n this.variablesService.sync_started = true;\n this.variablesService.sync_wallets[wallet.wallet_id] = true;\n }\n this.addToStore(wallet, true); // subscribe on data\n if (wallet.progress === 0) {\n wallet.loaded = false;\n } else if (wallet.progress === 100) {\n wallet.loaded = true;\n this.addToStore(wallet, false);\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[wallet.wallet_id] = false;\n }\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.update_daemon_state, data => {\n console.log('----------------- update_daemon_state -----------------');\n console.log('DAEMON:' + data.daemon_network_state);\n console.log(data);\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\n this.variablesService.last_build_available = data.last_build_available;\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\n this.variablesService.setHeightApp(data.height);\n this.variablesService.setHeightMax(data.max_net_seen_height);\n\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\n this.variablesService.setTotalBytes(data.download_total_data_size);\n\n this.backendService.getContactAlias();\n this.ngZone.run(() => {\n this.variablesService.daemon_state = data['daemon_network_state'];\n if (data['daemon_network_state'] === 1) {\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\n const current = data.height - data['synchronization_start_height'];\n const return_val = Math.floor(((current * 100) / max) * 100) / 100;\n if (max === 0 || return_val < 0) {\n this.variablesService.sync.progress_value = 0;\n this.variablesService.sync.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.sync.progress_value = 100;\n this.variablesService.sync.progress_value_text = '99.99';\n } else {\n this.variablesService.sync.progress_value = return_val;\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\n }\n }\n\n if (data['daemon_network_state'] === 6) {\n const max = data['download_total_data_size'];\n const current = data['downloaded_bytes'];\n const return_val = Math.floor((current / max) * 100);\n if (max === 0 || return_val < 0) {\n this.variablesService.download.progress_value = 0;\n this.variablesService.download.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.download.progress_value = 100;\n this.variablesService.download.progress_value_text = '99.99';\n } else {\n this.variablesService.download.progress_value = return_val;\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\n }\n }\n });\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\n this.getAliases();\n this.backendService.getContactAlias();\n this.backendService.getDefaultFee((status_fee, data_fee) => {\n this.variablesService.default_fee_big = new BigNumber(data_fee);\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\n });\n this.firstOnlineState = true;\n }\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer, data => {\n console.log('----------------- money_transfer -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n\n const wallet = this.variablesService.getWallet(wallet_id);\n if (wallet) {\n if (wallet.history.length > 40) {\n wallet.history.splice(40, 1);\n }\n this.ngZone.run(() => {\n wallet.balances = data.balances;\n\n if (tr_info.tx_type === 6) {\n this.variablesService.setRefreshStacking(wallet_id);\n }\n\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\n tr_exists = !tr_exists ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\n\n if (wallet.currentPage === 1) {\n wallet.prepareHistory([tr_info]);\n if (wallet.restore) {\n wallet.total_history_item = wallet.history.length;\n wallet.totalPages = Math.ceil(wallet.total_history_item / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n }\n }\n\n if (hasOwnProperty(tr_info, 'contract')) {\n const exp_med_ts = this.variablesService.exp_med_ts;\n const height_app = this.variablesService.height_app;\n const contract = tr_info.contract[0];\n if (tr_exists) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\n wallet.contracts[i].expiration_time = contract.expiration_time;\n wallet.contracts[i].height = contract.height;\n wallet.contracts[i].timestamp = contract.timestamp;\n break;\n }\n }\n // $rootScope.getContractsRecount();\n return;\n }\n\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\n contract.state = 110;\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\n contract.state = 130;\n } else if (contract.state === 1) {\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult2) {\n if (searchResult2.time === contract.expiration_time) {\n contract.state = 110;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 2 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 201;\n } else if (contract.state === 2) {\n const searchResult3 = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult3) {\n contract.state = 120;\n }\n } else if (contract.state === 5) {\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult4) {\n if (searchResult4.time === contract.cancel_expiration_time) {\n contract.state = 130;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 6 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 601;\n }\n\n const searchResult = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === contract.state &&\n elem.is_a === contract.is_a &&\n elem.contract_id === contract.contract_id\n );\n contract.is_new = !searchResult;\n\n let findContract = false;\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n for (const prop in contract) {\n if (hasOwnProperty(contract, prop)) {\n wallet.contracts[i][prop] = contract[prop];\n }\n }\n findContract = true;\n break;\n }\n }\n if (findContract === false) {\n wallet.contracts.push(contract);\n }\n // wallet.recountNewContracts();\n }\n });\n }\n });\n\n this.backendService.backendObject[Commands.handle_deeplink_click].connect(data => {\n console.log('----------------- handle_deeplink_click -----------------');\n console.log(data);\n this.ngZone.run(() => {\n if (data) {\n this.variablesService.deeplink$.next(data);\n }\n });\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer_cancel, data => {\n console.log('----------------- money_transfer_cancel -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n const wallet = this.variablesService.getWallet(wallet_id);\n\n if (wallet) {\n if (hasOwnProperty(tr_info, 'contract')) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === tr_info.contract[0].contract_id &&\n wallet.contracts[i].is_a === tr_info.contract[0].is_a\n ) {\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\n wallet.contracts[i].is_new = true;\n wallet.contracts[i].state = 140;\n // wallet.recountNewContracts();\n }\n break;\n }\n }\n }\n\n wallet.removeFromHistory(tr_info.tx_hash);\n\n let error_tr = '';\n switch (tr_info.tx_type) {\n case 0:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NORMAL') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') +\n ' ' +\n this.intToMoneyPipe.transform(tr_info.amount) +\n ' ' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\n break;\n case 1:\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\n break;\n case 2:\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\n break;\n case 3:\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\n break;\n case 4:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 5:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 6:\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\n break;\n }\n if (error_tr) {\n this.modalService.prepareModal('error', error_tr);\n }\n }\n });\n\n this.backendService.eventSubscribe(Commands.on_core_event, data => {\n console.log('----------------- on_core_event -----------------');\n console.log(data);\n\n data = JSON.parse(data);\n\n if (data.events != null) {\n for (let i = 0, length = data.events.length; i < length; i++) {\n switch (data.events[i].method) {\n case 'CORE_EVENT_BLOCK_ADDED':\n break;\n case 'CORE_EVENT_ADD_ALIAS':\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] =\n data.events[i].details.address;\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] =\n data.events[i].details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const newAlias = {\n name: '@' + data.events[i].details.alias,\n address: data.events[i].details.address,\n comment: data.events[i].details.comment,\n };\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\n this.variablesService.changeAliases();\n }\n break;\n case 'CORE_EVENT_UPDATE_ALIAS':\n for (const address in this.variablesService.aliasesChecked) {\n if (hasOwnProperty(this.variablesService.aliasesChecked, address)) {\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\n if (\n this.variablesService.aliasesChecked[address].address !==\n data.events[i].details.details.address\n ) {\n delete this.variablesService.aliasesChecked[address]['name'];\n delete this.variablesService.aliasesChecked[address]['address'];\n delete this.variablesService.aliasesChecked[address]['comment'];\n } else {\n this.variablesService.aliasesChecked[address].comment =\n data.events[i].details.details.comment;\n }\n break;\n }\n }\n }\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] =\n data.events[i].details.details.address;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] =\n data.events[i].details.details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const CurrentAlias = this.variablesService.aliases.find(\n element => element.name === '@' + data.events[i].details.alias\n );\n if (CurrentAlias) {\n CurrentAlias.address = data.events[i].details.details.address;\n CurrentAlias.comment = data.events[i].details.details.comment;\n }\n }\n this.variablesService.changeAliases();\n break;\n default:\n break;\n }\n }\n }\n });\n\n this.intervalUpdateContractsState = setInterval(() => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (\n contract.state === 201 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 2;\n contract.is_new = true;\n console.warn('need check state in contracts');\n } else if (\n contract.state === 601 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 6;\n contract.is_new = true;\n }\n });\n });\n }, 30000);\n\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe({\n next: (newTimestamp: number) => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\n contract.state = 110;\n contract.is_new = true;\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\n contract.state = 130;\n contract.is_new = true;\n }\n });\n });\n },\n });\n\n this.backendService.getAppData((status, data) => {\n if (data && Object.keys(data).length > 0) {\n for (const key in data) {\n if (hasOwnProperty(data, key) && hasOwnProperty(this.variablesService.settings, key)) {\n this.variablesService.settings[key] = data[key];\n }\n }\n // TODO: Delete this line after return appUseTor\n this.variablesService.settings.appUseTor = false;\n if (\n hasOwnProperty(this.variablesService.settings, 'scale') &&\n ['8px', '10px', '12px', '14px'].indexOf(this.variablesService.settings.scale) !== -1\n ) {\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale);\n } else {\n this.variablesService.settings.scale = '10px';\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale);\n }\n }\n this.translate.use(this.variablesService.settings.language);\n this.setBackendLocalization();\n\n this.backendService.setLogLevel(this.variablesService.settings.appLog);\n this.backendService.setEnableTor(this.variablesService.settings.appUseTor);\n\n if (!this.variablesService.settings.wallets || this.variablesService.settings.wallets.length === 0) {\n return this.router.navigate([`${paths.auth}/${pathsChildrenAuth.noWallet}`]).then();\n }\n\n if (this.router.url !== '/login') {\n this.backendService.haveSecureAppData(statusPass => {\n if (statusPass) {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n } else {\n if (Object.keys(data).length !== 0) {\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'reg' },\n });\n });\n }\n }\n });\n }\n });\n\n this.backendService.dispatchAsyncCallResult();\n\n this.backendService.handleCurrentActionState();\n\n this.getVersion();\n\n setTimeout(() => {\n this.getInfo();\n }, 10 * 1000);\n },\n error: error => {\n console.log(error);\n },\n });\n\n this.variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: disable_price_fetch => {\n const updateTime = 10 * 60 * 1000;\n if (!disable_price_fetch) {\n this.updateMoneyEquivalent();\n this.intervalUpdatePriceState = setInterval(() => {\n this.updateMoneyEquivalent();\n }, updateTime);\n } else {\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n if (this.intervalUpdateContractsState) {\n clearInterval(this.intervalUpdateContractsState);\n }\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n this.expMedTsEvent.unsubscribe();\n }\n\n updateMoneyEquivalent(): void {\n this.http\n .get('https://explorer.zano.org/api/price?asset=zano')\n .pipe(take(1))\n .subscribe({\n next: ({ data }: { data: { zano: { usd: number, usd_24h_change: number }, success: boolean} }): void => {\n this.variablesService.moneyEquivalent = data['zano']['usd'];\n this.variablesService.moneyEquivalentPercent = data['zano']['usd_24h_change'];\n },\n error: error => {\n console.warn('api.coingecko.com price error: ', error);\n },\n });\n }\n\n getAliases(): void {\n this.backendService.getAllAliases((status, data, error) => {\n console.warn(error);\n\n if (error === 'CORE_BUSY') {\n window.setTimeout(() => {\n this.getAliases();\n }, 10000);\n } else if (error === 'OVERFLOW') {\n this.variablesService.aliases = [];\n this.variablesService.enableAliasSearch = false;\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n } else {\n this.variablesService.enableAliasSearch = true;\n if (data.aliases && data.aliases.length) {\n this.variablesService.aliases = [];\n data.aliases.forEach(alias => {\n const newAlias = {\n name: '@' + alias.alias,\n address: alias.address,\n comment: alias.comment,\n };\n this.variablesService.aliases.push(newAlias);\n });\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\n if (a.name.length > b.name.length) {\n return 1;\n }\n if (a.name.length < b.name.length) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n });\n this.variablesService.changeAliases();\n }\n }\n });\n }\n\n addToStore(wallet, boolean): void {\n const value = this.store.state.sync;\n if (value && value.length > 0) {\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\n if (sync && sync.length > 0) {\n const result = value.map(item => {\n if (item.wallet_id === wallet.wallet_id) {\n return { sync: boolean, wallet_id: wallet.wallet_id };\n } else {\n return item;\n }\n });\n this.store.set(StateKeys.sync, result);\n } else {\n value.push({ sync: boolean, wallet_id: wallet.wallet_id });\n this.store.set(StateKeys.sync, value);\n }\n } else {\n this.store.set(StateKeys.sync, [{ sync: boolean, wallet_id: wallet.wallet_id }]);\n }\n }\n\n getVersion(): void {\n this.backendService.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n console.log('----------------- version -----------------', version);\n console.log('----------------- type -----------------', type);\n this.variablesService.testnet = type === 'testnet';\n this.variablesService.networkType = type;\n }\n });\n });\n }\n\n getInfo(): void {\n const updateTime = 60 * 1000;\n const getInfo = () => {\n const params = {\n jsonrpc: '2.0',\n method: 'getinfo',\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.variablesService.info$.next(response_data.result);\n });\n };\n getInfo();\n setInterval(getInfo, updateTime);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { PagesModule } from './pages/pages.module';\nimport { CommonModule } from '@angular/common';\nimport { TranslateLoader, TranslateModule, TranslateModuleConfig } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\nimport * as highcharts from 'highcharts';\nimport exporting from 'highcharts/modules/exporting.src';\nimport { MoneyToIntPipeModule } from '@parts/pipes';\nimport { OpenWalletModalComponent } from '@parts/modals/open-wallet-modal/open-wallet-modal.component';\nimport { FlexModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\nimport { RegisterContextTemplatesComponent } from '@parts/components/register-context-templates.component';\n\nexport function highchartsFactory(): any[] {\n highcharts.setOptions({\n time: {\n useUTC: false,\n },\n });\n\n return [exporting];\n}\n\nexport const provideHighchartsFactory = {\n provide: HIGHCHARTS_MODULES,\n useFactory: highchartsFactory,\n};\n\nexport function HttpLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\n}\n\nexport const translateModuleConfig: TranslateModuleConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n};\n\n@NgModule({\n declarations: [AppComponent, OpenWalletModalComponent],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslateModule.forRoot(translateModuleConfig),\n AppRoutingModule,\n PagesModule,\n ChartModule,\n MoneyToIntPipeModule,\n FlexModule,\n FormsModule,\n RegisterContextTemplatesComponent,\n ],\n providers: [provideHighchartsFactory],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-full-layout',\n template: `\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class FullLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FullLayoutComponent } from './full-layout.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [FullLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule],\n exports: [FullLayoutComponent],\n})\nexport class FullLayoutModule {}\n","import { Component, NgZone, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\n\n@Component({\n selector: 'app-sidebar',\n template: `\n
\n
\n \"zano-logo\"\n
\n
\n\n
\n
\n \n
\n\n
\n \n \n {{ 'SIDEBAR.ADD_NEW' | translate }}\n \n\n \n \n {{ 'SIDEBAR.SETTINGS' | translate }}\n \n\n \n \n \n {{ 'SIDEBAR.LOG_OUT' | translate }}\n \n \n\n \n \n \n
\n
\n\n
\n \n
\n\n \n `,\n styles: [],\n})\nexport class SidebarComponent implements OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private ngZone: NgZone,\n private dialog: Dialog,\n public zanoLoadersService: ZanoLoadersService\n ) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n goMainPage(): void {\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\n this.ngZone.run(() => {\n this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } });\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n\n selectWallet(id: number): void {\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(id);\n this.router.navigate(['/wallet/assets']);\n });\n }\n\n drop(event: CdkDragDrop): void {\n moveItemInArray(this.variablesService.wallets, event.previousIndex, event.currentIndex);\n }\n\n beforeClose(wallet_id): void {\n const dialogConfig: DialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.closeWallet(wallet_id),\n });\n }\n\n closeWallet(wallet_id): void {\n this.walletsService.closeWallet(wallet_id);\n }\n\n logOut(): void {\n this.zanoLoadersService.open('fullScreen', 'SIDEBAR.SYNCHRONIZATION.LOGGING_OUT');\n\n setTimeout(() => {\n this.variablesService.stopCountdown();\n this.variablesService.appLogin = false;\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.router.navigate(['/login'], { queryParams: { type: 'auth' } }).then(() => {\n this.zanoLoadersService.close('fullScreen');\n });\n });\n }, 500);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from '../../pages/deeplink/deeplink.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { WalletCardComponent } from '@parts/components/wallet-card.component';\n\n@NgModule({\n declarations: [SidebarComponent],\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n TooltipModule,\n TranslateModule,\n DisablePriceFetchModule,\n ConfirmModalModule,\n SynchronizationStatusComponent,\n DeeplinkModule,\n StakingSwitchComponent,\n FlexLayoutModule,\n IntToMoneyPipeModule,\n WalletCardComponent,\n ],\n exports: [SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-with-sidebar-layout',\n template: `\n \n\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n display: flex;\n }\n `,\n ],\n})\nexport class WithSidebarLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WithSidebarLayoutComponent } from './with-sidebar-layout.component';\nimport { SidebarModule } from '../sidebar/sidebar.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [WithSidebarLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule, SidebarModule],\n exports: [WithSidebarLayoutComponent],\n})\nexport class WithSidebarLayoutModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { filePathWalletValidator } from '@parts/utils/zano-validators';\nimport { ModalService } from '@parts/services/modal.service';\n\n@Component({\n selector: 'app-add-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n \n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n
\n
\n
\n
\n `,\n})\nexport class AddWalletComponent {\n private translateService = inject(TranslateService);\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private modalService: ModalService,\n private backendService: BackendService,\n private ngZone: NgZone\n ) {}\n\n openWallet(): void {\n const caption = this.translateService.instant('MAIN.CHOOSE_PATH');\n const default_path = this.variablesService.settings.default_path;\n this.backendService.openFileDialog(caption, '*', default_path, async (file_status, file_data) => {\n if (!file_status) {\n if (file_data['error_code'] !== 'CANCELED') {\n this.modalService.prepareModal('error', file_data['error_code']);\n }\n return;\n }\n const positionLastSlash = file_data.path.lastIndexOf('/');\n const new_default_path = file_data.path.slice(0, positionLastSlash);\n const error = filePathWalletValidator(file_data.path);\n\n if (error) {\n const text = this.translateService.instant(error.errorText);\n this.modalService.prepareModal('error', text);\n return;\n }\n\n this.variablesService.settings.default_path = new_default_path;\n await this.ngZone.run(async () => {\n await this.router.navigate(['/open'], {\n queryParams: { path: file_data.path },\n });\n });\n });\n }\n\n openInBrowser(): void {\n this.backendService.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport BigNumber from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-assign-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n {{ 'ASSIGN_ALIAS.NAME.LABEL' | translate }}\n \n
\n \n
\n \n 6 &&\n assignForm.get('name').value.length <= 25\n \"\n >\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\n
\n
25\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n \n {{ 'ASSIGN_ALIAS.COMMENT.LABEL' | translate }}\n \n \n \n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n

\n {{\n 'ASSIGN_ALIAS.COST'\n | translate\n : {\n value: alias.price | intToMoney,\n currency: variablesService.defaultCurrency\n }\n }}\n

\n\n \n {{ 'ASSIGN_ALIAS.BUTTON_ASSIGN' | translate }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class AssignAliasComponent implements OnInit, OnDestroy {\n wallet: Wallet;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.ASSIGN_ALIAS',\n },\n ];\n\n fb = inject(FormBuilder);\n\n assignForm = this.fb.group({\n name: this.fb.nonNullable.control('', [Validators.required, Validators.pattern(regExpAliasName)]),\n comment: this.fb.nonNullable.control('', [Validators.maxLength(this.variablesService.maxCommentLength)]),\n });\n\n alias = {\n name: '',\n fee: this.variablesService.default_fee,\n price: new BigNumber(0),\n reward: '0',\n rewardOriginal: '0',\n comment: '',\n exists: false,\n };\n\n canRegister = false;\n\n notEnoughMoney = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private intToMoney: IntToMoneyPipe\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n this.assignForm\n .get('name')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: value => {\n this.canRegister = false;\n this.alias.exists = false;\n const newName = value.toLowerCase().replace('@', '');\n if (\n !(this.assignForm.controls['name'].errors && hasOwnProperty(this.assignForm.controls['name'].errors, 'pattern')) &&\n newName.length >= 6 &&\n newName.length <= 25\n ) {\n this.backend.getAliasInfoByName(newName, status => {\n this.ngZone.run(() => {\n this.alias.exists = status;\n });\n if (!status) {\n this.alias.price = new BigNumber(0);\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\n this.ngZone.run(() => {\n if (statusPrice) {\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\n }\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = this.alias.price.isGreaterThan(unlocked_balance);\n this.alias.reward = this.intToMoney.transform(this.alias.price, false);\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast'], false);\n this.canRegister = !this.notEnoughMoney;\n });\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n this.alias.name = newName;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n assignAlias(): void {\n const alias = this.backend.getWalletAlias(this.wallet.address);\n if (hasOwnProperty(alias, 'name')) {\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\n } else {\n this.alias.comment = this.assignForm.get('comment').value;\n this.backend.registerAlias(\n this.wallet.wallet_id,\n this.alias.name,\n this.wallet.address,\n this.alias.fee,\n this.alias.comment,\n this.alias.rewardOriginal,\n async status => {\n if (status) {\n this.wallet.wakeAlias = true;\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\n await this.ngZone.run(async () => {\n await this.router.navigate(['/wallet/']);\n });\n }\n }\n );\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { paths, pathsChildrenAuth } from '../paths';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { FullLayoutComponent } from '../../layouts/full-layout/full-layout.component';\n\nconst routes: Routes = [\n {\n path: paths.auth,\n component: FullLayoutComponent,\n children: [\n {\n path: pathsChildrenAuth.noWallet,\n component: NoWalletComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AuthRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\n\n@NgModule({\n declarations: [NoWalletComponent],\n imports: [CommonModule, AuthRoutingModule, TranslateModule, FlexLayoutModule, SynchronizationStatusComponent],\n})\nexport class AuthModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\n\n@Component({\n selector: 'app-login',\n template: `\n
\n
\n \n\n
\n
\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\n
\n
\n
\n
\n\n \n {{ 'LOGIN.BUTTON_NEXT' | translate }}\n \n\n \n {{ 'LOGIN.BUTTON_SKIP' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.INVALID_PASS' | translate }}\n
\n
\n
\n
\n \n\n \n \n \n\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n submitLoading$ = new BehaviorSubject(false);\n\n resetLoading$ = new BehaviorSubject(false);\n\n fb = inject(FormBuilder);\n\n regForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmation: this.fb.nonNullable.control(''),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmation')],\n }\n );\n\n authForm = this.fb.group({\n password: this.fb.nonNullable.control(''),\n });\n\n type = 'reg';\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.type) {\n this.type = params.type;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSubmitCreatePass(): void {\n if (this.regForm.valid) {\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n } else {\n console.log(data['error_code']);\n }\n });\n }\n }\n\n onSkipCreatePass(): void {\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n }\n\n resetJwtWalletRpc(): void {\n this.backend.setupJwtWalletRpc({ secret: '', zanoCompation: false });\n }\n\n dropSecureAppData(): void {\n this.resetLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n this.resetJwtWalletRpc();\n this.backend.dropSecureAppData(() => {\n this.resetLoading$.next(false);\n this.onSkipCreatePass();\n });\n this.closeAllWallets();\n this.variablesService.contacts = [];\n }, 500);\n }\n\n onSubmitAuthPass(): void {\n this.submitLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n if (this.authForm.valid) {\n this.variablesService.appPass = this.authForm.get('password').value;\n if (this.variablesService.dataIsLoaded) {\n this.backend.checkMasterPassword({ pass: this.variablesService.appPass }, status => {\n if (status) {\n this.variablesService.appLogin = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/'], {\n queryParams: { prevUrl: 'login' },\n });\n });\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n } else {\n this.getData(this.variablesService.appPass);\n }\n } else {\n this.submitLoading$.next(false);\n }\n }, 500);\n }\n\n getData(appPass): void {\n this.backend.getSecureAppData({ pass: appPass }, (status, data) => {\n if (!data.error_code) {\n this.setAuthPassError(null);\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.variablesService.appPass = appPass;\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\n\n if (this.variablesService.wallets.length > 0) {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/wallet/']);\n });\n return;\n }\n if (hasOwnProperty(data, 'contracts')) {\n if (Object.keys(data['contacts']).length !== 0) {\n data['contacts'].map(contact => {\n this.variablesService.contacts.push(contact);\n });\n }\n }\n if (hasOwnProperty(data, 'wallets')) {\n if (Object.keys(data['wallets']).length !== 0) {\n this.getWalletData(data['wallets']);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n if (!hasOwnProperty(data, 'wallets') && !hasOwnProperty(data, 'contracts')) {\n if (data.length !== 0 && !isEmptyObject) {\n this.getWalletData(data);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n }\n\n if (data.error_code === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n }\n\n getWalletData(walletData): void {\n let openWallets = 0;\n let runWallets = 0;\n walletData.forEach((wallet, wallet_index) => {\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\n if (open_status || open_error === 'FILE_RESTORED') {\n openWallets++;\n this.ngZone.run(() => {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n wallet.name,\n wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n if (wallet.staking) {\n new_wallet.staking = true;\n this.backend.startPosMining(new_wallet.wallet_id);\n } else {\n new_wallet.staking = false;\n }\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(open_data.recent_history.total_history_items / this.variablesService.count);\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n if (this.variablesService.wallets.length === 1) {\n this.router.navigate(['/wallet/']);\n }\n });\n this.backend.runWallet(open_data.wallet_id, run_status => {\n if (run_status) {\n runWallets++;\n } else {\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n } else {\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n });\n this.submitLoading$.next(false);\n }\n\n closeAllWallets(): void {\n this.variablesService.wallets.forEach(({ wallet_id }) => this.closeWallet(wallet_id));\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n }\n\n closeWallet(wallet_id) {\n this.backend.closeWallet(wallet_id, () => {\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\n this.variablesService.wallets.splice(i, 1);\n }\n });\n }\n\n private setAuthPassError(errors: ValidationErrors | null): void {\n this.authForm.controls['password'].setErrors(errors);\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { paths } from '../../paths';\n\n@Component({\n selector: 'app-no-wallet',\n template: `\n
\n
\n \n\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n

\n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class NoWalletComponent {\n paths = paths;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n openWallet(): void {\n this.backend.openFileDialog(\n this.translate.instant('MAIN.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n this.ngZone.run(() => {\n this.router\n .navigate(['/' + paths.open], {\n queryParams: { path: file_data.path },\n })\n .then();\n });\n } else {\n console.log(file_data['error_code']);\n }\n }\n );\n }\n\n openInBrowser(): void {\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-create-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
variablesService.maxWalletNameLength\" class=\"error\">\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\"\n [readonly]=\"createForm.controls.path.valid\"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n\n \n {{ 'CREATE_WALLET.BUTTON_SELECT' | translate }}\n \n\n \n \n
\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class CreateWalletComponent {\n variablesService = inject(VariablesService);\n\n loading$ = new BehaviorSubject(false);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.CREATE_WALLET',\n },\n ];\n\n walletsService = inject(WalletsService);\n\n fb = inject(NonNullableFormBuilder);\n\n createForm = this.fb.group(\n {\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.control(''),\n path: this.fb.control('', Validators.required),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private router = inject(Router);\n\n private backend = inject(BackendService);\n\n private modalService = inject(ModalService);\n\n private ngZone = inject(NgZone);\n\n private translate = inject(TranslateService);\n\n get savedWalletName(): string {\n const path = this.createForm.get('path').value;\n return path.substr(path.lastIndexOf('/') + 1, path.length - 1);\n }\n\n createWallet(): void {\n this.loading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { path: selectedPath, password, name } = this.createForm.getRawValue();\n this.backend.generateWallet(selectedPath, password, async (generate_status, generate_data, errorCode) => {\n if (generate_status) {\n const { wallet_id } = generate_data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey } = generate_data['wi'];\n const wallet = new Wallet(wallet_id, name, password, path, address, balance, unlocked_balance, mined_total, tracking_hey);\n wallet.alias = this.backend.getWalletAlias(address);\n wallet.total_history_item = 0;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.currentPage = 1;\n await this.backend.runWallet(wallet_id, async (run_status, run_data) => {\n if (run_status) {\n await this.ngZone.run(async () => {\n this.walletsService.addWallet(wallet);\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.variablesService.setCurrentWallet(wallet_id);\n this.loading$.next(false);\n await this.router.navigate(['/seed-phrase'], { queryParams: { wallet_id } });\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n } else {\n const errorTranslationKey =\n errorCode === 'ALREADY_EXISTS' ? 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP' : 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM';\n this.modalService.prepareModal('error', errorTranslationKey);\n\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }, 500);\n }\n\n selectWalletLocation(): void {\n const caption = this.translate.instant('CREATE_WALLET.TITLE_SAVE');\n const fileMask = '*';\n const { default_path } = this.variablesService.settings;\n this.backend.saveFileDialog(caption, fileMask, default_path, (file_status, file_data) => {\n if (file_status) {\n this.ngZone.run(() => {\n const { path } = file_data;\n this.createForm.get('path').patchValue(path);\n this.variablesService.settings.default_path = path.substr(0, path.lastIndexOf('/'));\n });\n }\n });\n }\n}\n","import { delay, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-deeplink',\n template: `\n \n \n\n \n \n `,\n styles: [],\n})\nexport class DeeplinkComponent implements OnInit, OnDestroy {\n deeplink$ = new BehaviorSubject(null);\n\n private destroy$ = new Subject();\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.variablesService.deeplink$.pipe(delay(200), takeUntil(this.destroy$)).subscribe({\n next: data => {\n this.deeplink$.next(data);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalModule } from './modals/deeplink-modal/deeplink-modal.module';\nimport { DeeplinkComponent } from './deeplink.component';\nimport { SyncModalModule } from './modals/sync-modal/sync-modal.module';\n\n@NgModule({\n declarations: [DeeplinkComponent],\n imports: [CommonModule, DeeplinkModalModule, SyncModalModule],\n exports: [DeeplinkComponent, DeeplinkModalModule, SyncModalModule],\n})\nexport class DeeplinkModule {}\n","import { Component, HostBinding, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DeeplinkParams, PushOffer, Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { Subject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-deeplink-modal',\n template: `\n
\n 1 && !secondStep\">\n
\n
\n \n \n \n {{ item.name }}\n \n \n {{ item.name }}\n \n \n
\n
\n\n
\n \n \n
\n
\n\n \n

Creating a marketplace offer

\n
\n
\n
\n
\n {{ 'Offer title' | translate }}\n
\n
{{ actionData.title }}
\n
\n\n
\n\n
\n
\n {{ 'Description' | translate }}\n
\n
{{ actionData.description }}
\n
\n\n
\n\n
\n
\n {{ 'Category' | translate }}\n
\n
{{ actionData.category }}
\n
\n\n
\n\n
\n
\n {{ 'Price' | translate }}\n
\n
\n {{ actionData.price }}\n {{ this.variablesService.defaultCurrency }}\n
\n
\n\n
\n\n
\n
\n {{ 'Preview url' | translate }}\n
\n
{{ actionData.url || actionData.img_url }}
\n
\n\n
\n\n
\n
\n {{ 'Contacts' | translate }}\n
\n
{{ actionData.contact }}
\n
\n\n
\n\n
\n
\n {{ 'Comments' | translate }}\n
\n
\n {{ actionData.comment || actionData.comments }}\n
\n
\n\n
\n\n
\n
\n {{ 'Mixins' | translate }}\n
\n
{{ actionData.mixins || defaultMixin }}
\n
\n\n
\n\n
\n
\n {{ 'Transaction fee' | translate }}\n
\n
\n {{ actionData.price * (actionData.fee || this.variablesService.default_fee) }}\n {{ this.variablesService.defaultCurrency }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n\n \n

Operation successful

\n\n
\n
\n
\n
\n {{ 'Operation hash' | translate }}\n
\n \n {{ marketplaceConfirmHash }}\n \n
\n
\n
\n
\n\n
\n \n
\n \n\n \n

Your wallets have not loaded yet. Try this action a little later.

\n\n
\n \n
\n
\n \n `,\n styles: [],\n})\nexport class DeeplinkModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n secondStep = false;\n\n walletToPayId = 0;\n\n nextStepInterval;\n\n marketplaceModalShow = true;\n\n copyAnimation = false;\n\n marketplaceConfirmHash: any = null;\n\n actionData: DeeplinkParams = {};\n\n defaultMixin = MIXIN;\n\n walletsToPay: Array = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.walletsToPay = this.variablesService.wallets.filter(wallet => !wallet.is_watch_only || !wallet.is_auditable);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n\n this.variablesService.deeplink$.pipe(takeUntil(this.destroy$)).subscribe({\n next: deeplink => {\n this.actionData = {};\n\n if (deeplink) {\n if (this.walletsToPay.length === 0) {\n this.canselAction();\n return;\n }\n this.actionData = this.parseDeeplink(deeplink);\n if (this.walletsToPay.length === 1) {\n this.walletToPayId = this.walletsToPay[0].wallet_id;\n const { daemon_state, sync_started } = this.variablesService;\n\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n } else {\n this.nextStepInterval = setInterval(() => {\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n clearInterval(this.nextStepInterval);\n }\n }, 1500);\n }\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.variablesService.deeplink$.next(null);\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n parseDeeplink(deeplink): DeeplinkParams {\n const quotesRex = new RegExp(/'|\"|”|%E2%80%9D|%22/g);\n const spaceSymbolRex = new RegExp(/%20/g);\n const newObj = {};\n\n const newString = deeplink.substr(5); // delete zano:;\n newString.split('&').forEach(str => {\n const [key, value] = str.split('=');\n newObj[key] = value.replace(quotesRex, '').replace(spaceSymbolRex, ' ').trim();\n });\n return newObj;\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n this.actionData = {};\n this.secondStep = false;\n }\n\n marketplaceSend(): void {\n const offerObject: PushOffer = {\n wallet_id: this.walletToPayId,\n od: {\n ap: this.actionData.price || '',\n at: '1',\n cat: this.actionData.category || '',\n cnt: this.actionData.contact || '',\n com: this.actionData.comment || this.actionData.comments || '',\n do: this.actionData.description || '',\n et: 10,\n fee: new BigNumber('' + (+this.actionData.fee || +this.variablesService.default_fee) * 1000000000000),\n lci: '',\n lco: 'World Wide',\n ot: 1,\n pt: 'Credit cards, BTC, ZANO, ETH',\n t: this.actionData.title || '',\n url: this.actionData.url || this.actionData.img_url || '',\n },\n };\n this.backend.push_offer(offerObject, (status, data) => {\n this.ngZone.run(() => {\n if (data.success) {\n this.marketplaceModalShow = false;\n this.marketplaceConfirmHash = data.tx_hash;\n } else {\n this.canselAction();\n }\n });\n });\n }\n\n copyHash(): void {\n this.backend.setClipboard(this.marketplaceConfirmHash);\n this.copyAnimation = true;\n setTimeout(() => (this.copyAnimation = false), 2000);\n }\n\n nextStep(): void {\n if (this.actionData.action === 'send') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/send']).then();\n this.secondStep = false;\n } else if (this.actionData.action === 'escrow') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/contracts/purchase']).then();\n this.secondStep = false;\n } else {\n this.secondStep = true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalComponent } from './deeplink-modal.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [DeeplinkModalComponent],\n imports: [CommonModule, NgSelectModule, FormsModule, FlexLayoutModule, TranslateModule],\n exports: [DeeplinkModalComponent],\n})\nexport class DeeplinkModalModule {}\n","import { Component, HostBinding, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-sync-modal',\n template: `\n
\n
\n

This action is not available during synchronization...

\n \n
\n
\n `,\n styles: [],\n})\nexport class SyncModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n constructor(private renderer: Renderer2, public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SyncModalComponent } from './sync-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [SyncModalComponent],\n imports: [CommonModule, FlexLayoutModule],\n exports: [SyncModalComponent],\n})\nexport class SyncModalModule {}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-edit-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n \n
0 && notEnoughMoney\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n {{\n 'EDIT_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultCurrency\n }\n }}\n
\n\n variablesService.maxCommentLength\n \"\n class=\"primary big w-100\"\n type=\"button\"\n >\n {{ 'EDIT_ALIAS.BUTTON_EDIT' | translate }}\n \n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class EditAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.EDIT_ALIAS',\n },\n ];\n\n oldAliasComment: string;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n };\n this.oldAliasComment = alias.comment;\n const balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n updateAlias(): void {\n if (\n this.requestProcessing ||\n this.notEnoughMoney ||\n this.oldAliasComment === this.alias.comment ||\n this.alias.comment.length > this.variablesService.maxCommentLength\n ) {\n return;\n }\n this.requestProcessing = true;\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, status => {\n if (status) {\n this.modalService.prepareModal('success', '');\n this.wallet.alias['comment'] = this.alias.comment;\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Contact } from '@api/models/contact.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Papa } from 'ngx-papaparse';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-export-import',\n template: `\n
\n
\n
\n \n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n\n .head {\n justify-content: flex-end;\n }\n\n .contacts-title {\n font-size: 1.7rem;\n margin-bottom: 1rem;\n }\n\n .btn-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0;\n }\n\n .btn-wrapper button {\n flex: 1 0 auto;\n margin: 0 0.5rem;\n }\n `,\n ],\n})\nexport class ExportImportComponent {\n constructor(\n private variablesService: VariablesService,\n private backend: BackendService,\n private modalService: ModalService,\n private papa: Papa,\n private translate: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n import(): void {\n this.backend.openFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n if (this.isValid(file_data.path)) {\n this.backend.loadFile(file_data.path, (status, data) => {\n if (!status) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT_EMPTY');\n } else {\n const options = {\n header: true,\n };\n const elements = this.papa.parse(data, options);\n const isArray = Array.isArray(elements.data);\n if (isArray && elements.data.length !== 0 && elements.errors.length === 0) {\n if (this.variablesService.contacts.length === 0) {\n elements.data.forEach(element => {\n this.variablesService.contacts.push(element);\n });\n } else {\n elements.data.forEach(element => {\n const indexName = this.variablesService.contacts.findIndex(\n contact => contact.name === element.name\n );\n const indexAddress = this.variablesService.contacts.findIndex(\n contact => contact.address === element.address\n );\n if (indexAddress === -1 && indexName === -1) {\n this.variablesService.contacts.push(element);\n }\n if (indexName !== -1 && indexAddress === -1) {\n this.variablesService.contacts.push({\n name: `${(element.name as string) || '---'} ${\n this.translate.instant('CONTACTS.COPY') as string\n }`,\n address: element.address,\n notes: element.notes,\n });\n }\n });\n }\n this.backend.getContactAlias();\n this.ngZone.run(() => {\n this.router.navigate(['/contacts']);\n });\n }\n if (elements.errors.length > 0) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT');\n console.log(elements.errors);\n }\n }\n });\n } else {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\n }\n }\n });\n }\n\n export(): void {\n const contacts: Array = [];\n this.variablesService.contacts.forEach(contact => {\n delete contact.alias;\n contacts.push(contact);\n });\n\n this.backend.saveFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (this.variablesService.contacts.length === 0 && !(file_data.error_code === 'CANCELED')) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\n }\n const path = this.isValid(file_data.path) ? file_data.path : `${(file_data.path as string) || 'base-name'}.csv`;\n if (file_status && this.isValid(path) && this.variablesService.contacts.length > 0) {\n this.backend.storeFile(path, this.papa.unparse(contacts));\n }\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\n }\n });\n }\n\n isValid(file): boolean {\n return file.endsWith('.csv');\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { notFileZanoWallet, wrongPassword } from '@parts/utils/zano-errors';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-open-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.OPEN_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ openWalletForm.controls.password.errors['wrongPassword'].errorText | translate }}\n
\n
\n
\n \n \n
\n \n \n\n \n `,\n})\nexport class OpenWalletComponent implements OnInit, OnDestroy {\n loading$ = new BehaviorSubject(false);\n\n fb = inject(NonNullableFormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.OPEN_WALLET',\n },\n ];\n\n openWalletForm = this.fb.group({\n name: this.fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n password: this.fb.control('', [Validators.pattern(regExpPassword)]),\n filePath: this.fb.control('', Validators.required),\n });\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (!params.path) {\n return;\n }\n\n this.openWalletForm.controls.filePath.patchValue(params.path);\n\n let filename = '';\n if (params.path.lastIndexOf('.') === -1) {\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\n } else {\n filename = params.path.substr(\n params.path.lastIndexOf('/') + 1,\n params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/')\n );\n }\n if (filename.length > 25) {\n filename = filename.slice(0, 25);\n }\n this.openWalletForm.controls.name.patchValue(filename);\n this.openWalletForm.controls.name.markAsTouched();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n openWallet(): void {\n this.loading$.next(true);\n\n if (this.openWalletForm.valid) {\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { filePath, password, name } = this.openWalletForm.getRawValue();\n const { count: txs_to_return } = this.variablesService;\n this.backend.openWallet(\n filePath,\n password,\n txs_to_return,\n false,\n (openStatus, openData, errorCode: 'WRONG_PASSWORD' | 'FILE_NOT_FOUND' | 'INVALID_FILE' | 'ALREADY_EXISTS' | string) => {\n console.log('openData', openData);\n if (errorCode === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.openWalletForm.controls.password.setErrors({\n wrongPassword,\n });\n this.loading$.next(false);\n });\n return;\n }\n\n let errorText = errorCode;\n\n if (errorCode === 'FILE_NOT_FOUND') {\n errorText = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n errorText += ':
' + filePath;\n errorText += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n }\n\n if (errorCode === 'INVALID_FILE') {\n errorText = this.translate.instant(notFileZanoWallet.errorText);\n }\n\n if (['INVALID_FILE', 'FILE_NOT_FOUND'].includes(errorCode)) {\n this.modalService.prepareModal('error', errorText);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n return;\n }\n\n if (openStatus || errorCode === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === openData['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(openData.wallet_id, () => {\n this.ngZone.run(() => {\n this.loading$.next(false);\n this.router.navigate(['/']);\n });\n });\n } else {\n const new_wallet = new Wallet(\n openData.wallet_id,\n name,\n password,\n openData['wi'].path,\n openData['wi'].address,\n openData['wi'].balance,\n openData['wi'].unlocked_balance,\n openData['wi'].mined_total,\n openData['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.currentPage = 1;\n new_wallet.open_from_exist = true;\n new_wallet.exclude_mining_txs = false;\n new_wallet.is_auditable = openData['wi'].is_auditable;\n new_wallet.is_watch_only = openData['wi'].is_watch_only;\n if (openData.recent_history && openData.recent_history.history) {\n new_wallet.total_history_item = openData.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n openData.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(openData.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(openData.wallet_id, (run_status, run_data) => {\n if (run_status) {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(openData.wallet_id);\n this.router.navigate(['/wallet/']);\n this.loading$.next(false);\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }\n }\n }\n );\n }, 500);\n } else {\n this.loading$.next(false);\n }\n\n }\n}\n","import { RouterModule, Routes } from '@angular/router';\nimport { paths } from './paths';\nimport { WithSidebarLayoutComponent } from '../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\nimport { FullLayoutComponent } from '../layouts/full-layout/full-layout.component';\nimport { LoginComponent } from './auth/login/login.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeeplinkComponent } from './deeplink/deeplink.component';\nimport { NgModule } from '@angular/core';\nimport { ExportImportComponent } from './export-import/export-import.component';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\n\nconst routes: Routes = [\n {\n path: paths.addWallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AddWalletComponent,\n },\n ],\n },\n {\n path: paths.details,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletDetailsComponent,\n },\n ],\n },\n {\n path: paths.login,\n component: FullLayoutComponent,\n children: [\n {\n path: '',\n component: LoginComponent,\n },\n ],\n },\n {\n path: paths.create,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: CreateWalletComponent,\n },\n ],\n },\n {\n path: paths.open,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: OpenWalletComponent,\n },\n ],\n },\n {\n path: paths.restore,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: RestoreWalletComponent,\n },\n ],\n },\n {\n path: paths.seedPhrase,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SeedPhraseComponent,\n },\n ],\n },\n {\n path: paths.assignAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AssignAliasComponent,\n },\n ],\n },\n {\n path: paths.editAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: EditAliasComponent,\n },\n ],\n },\n {\n path: paths.transferAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: TransferAliasComponent,\n },\n ],\n },\n {\n path: paths.settings,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SettingsComponent,\n },\n ],\n },\n {\n path: paths.import,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: ExportImportComponent,\n },\n ],\n },\n {\n path: paths.deeplink,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: DeeplinkComponent,\n },\n ],\n },\n {\n path: '',\n redirectTo: paths.addWallet,\n pathMatch: 'full',\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthModule } from './auth/auth.module';\nimport { WalletModule } from './wallet/wallet.module';\nimport { PagesRoutingModule } from './pages-routing.module';\nimport { LoginComponent } from './auth/login/login.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { ModalContainerComponent } from '@parts/modals/modal-container/modal-container.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DefaultImgModule, DisablePriceFetchModule } from '@parts/directives';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from './deeplink/deeplink.module';\nimport { FullLayoutModule } from '../layouts/full-layout/full-layout.module';\nimport { WithSidebarLayoutModule } from '../layouts/with-sidebar-layout/with-sidebar-layout.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\nimport {\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule, ShortStringPipe,\n} from '@parts/pipes';\nimport { InputValidateModule } from '@parts/directives/input-validate';\nimport { InputDisableSelectionModule } from '@parts/directives/input-disable-selection';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\n\n@NgModule({\n declarations: [\n LoginComponent,\n SettingsComponent,\n AddWalletComponent,\n CreateWalletComponent,\n OpenWalletComponent,\n RestoreWalletComponent,\n SeedPhraseComponent,\n AssignAliasComponent,\n EditAliasComponent,\n TransferAliasComponent,\n ModalContainerComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PagesRoutingModule,\n AuthModule,\n WalletModule,\n NgSelectModule,\n TranslateModule.forChild(),\n FlexLayoutModule,\n DisablePriceFetchModule,\n TooltipModule,\n ConfirmModalModule,\n DeeplinkModule,\n FullLayoutModule,\n WithSidebarLayoutModule,\n OverlayModule,\n DefaultImgModule,\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n InputValidateModule,\n InputDisableSelectionModule,\n CheckboxComponent,\n CopyButtonComponent,\n StakingSwitchComponent,\n SwitchComponent,\n SynchronizationStatusComponent,\n LoaderComponent,\n AutoFocusDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n ],\n})\nexport class PagesModule {}\n","export enum paths {\n auth = 'auth',\n addWallet = 'add-wallet',\n login = 'login',\n wallet = 'wallet',\n create = 'create',\n open = 'open',\n restore = 'restore',\n seedPhrase = 'seed-phrase',\n details = 'details',\n assignAlias = 'assign-alias',\n editAlias = 'edit-alias',\n transferAlias = 'transfer-alias',\n settings = 'settings',\n import = 'import',\n deeplink = 'deeplink',\n}\n\nexport enum pathsChildrenAuth {\n noWallet = 'no-wallet',\n}\n\nexport enum pathsChildrenWallet {\n assets = 'assets',\n send = 'send',\n receive = 'receive',\n history = 'history',\n contracts = 'contracts',\n staking = 'staking',\n}\n\nexport enum pathsChildrenContracts {\n purchase = 'purchase',\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { pairwise, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-restore-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.CONFIRM_WALET_PASSWORD_PLACEHOLDER' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\n
\n
\n \n {{ 'RESTORE_WALLET.FORM_ERRORS.SEED_PHRASE_IS_NO_VALID' | translate }}\n
\n \n
\n \n \n \n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.OK' | translate }}\n
\n \n\n \n \n {{ 'RESTORE_WALLET.BUTTON_SELECT' | translate }}\n \n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\n fb = inject(FormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.RESTORE_WALLET',\n },\n ];\n\n restoreForm = this.fb.group(\n {\n name: this.fb.nonNullable.control('', [\n Validators.required,\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n key: this.fb.nonNullable.control('', Validators.required),\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n seedPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n wallet = {\n id: '',\n };\n\n walletSaved = false;\n\n walletSavedName = '';\n\n progressWidth = '9rem';\n\n seedPhraseInfo = null;\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.checkValidSeedPhrasePassword();\n this.changeDetectionSeedPhrasePassword();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n changeDetectionSeedPhrasePassword(): void {\n this.restoreForm.controls.seedPassword.valueChanges.pipe(startWith(null), pairwise(), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.checkValidSeedPhrasePassword();\n },\n });\n this.restoreForm.controls.key.valueChanges.pipe(startWith(null), pairwise(), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.checkValidSeedPhrasePassword();\n },\n });\n }\n\n checkValidSeedPhrasePassword(): void {\n const seed_password = this.restoreForm.controls.seedPassword.value;\n const seed_phrase = this.restoreForm.controls.key.value;\n this.backend.getSeedPhraseInfo({ seed_phrase, seed_password }, (status, data) => {\n this.ngZone.run(() => {\n this.seedPhraseInfo = data;\n });\n });\n }\n\n createWallet(): void {\n this.ngZone.run(() => {\n this.progressWidth = '100%';\n this.runWallet();\n });\n }\n\n saveWallet(): void {\n if (this.restoreForm.valid && this.restoreForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\n this.backend.isValidRestoreWalletText(\n {\n seed_phrase: this.restoreForm.get('key').value,\n seed_password: this.restoreForm.get('seedPassword').value,\n },\n (valid_status, valid_data) => {\n if (valid_data !== 'TRUE') {\n this.ngZone.run(() => {\n this.restoreForm.get('key').setErrors({ key_not_valid: true });\n });\n } else {\n this.backend.saveFileDialog(\n this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (save_status, save_data) => {\n if (save_status) {\n this.variablesService.settings.default_path = save_data.path.substr(0, save_data.path.lastIndexOf('/'));\n this.walletSavedName = save_data.path.substr(\n save_data.path.lastIndexOf('/') + 1,\n save_data.path.length - 1\n );\n this.backend.restoreWallet(\n save_data.path,\n this.restoreForm.get('password').value,\n this.restoreForm.get('key').value,\n this.restoreForm.get('seedPassword').value,\n (restore_status, restore_data) => {\n if (restore_status) {\n this.wallet.id = restore_data.wallet_id;\n this.variablesService.opening_wallet = new Wallet(\n restore_data.wallet_id,\n this.restoreForm.get('name').value,\n this.restoreForm.get('password').value,\n restore_data['wi'].path,\n restore_data['wi'].address,\n restore_data['wi'].balance,\n restore_data['wi'].unlocked_balance,\n restore_data['wi'].mined_total,\n restore_data['wi'].tracking_hey\n );\n this.variablesService.opening_wallet.is_auditable = restore_data['wi'].is_auditable;\n this.variablesService.opening_wallet.is_watch_only = restore_data['wi'].is_watch_only;\n this.variablesService.opening_wallet.currentPage = 1;\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(\n this.variablesService.opening_wallet.address\n );\n this.variablesService.opening_wallet.pages = new Array(1).fill(1);\n this.variablesService.opening_wallet.totalPages = 1;\n this.variablesService.opening_wallet.currentPage = 1;\n this.variablesService.opening_wallet.total_history_item = 0;\n this.variablesService.opening_wallet.restore = true;\n if (restore_data.recent_history && restore_data.recent_history.history) {\n this.variablesService.opening_wallet.totalPages = Math.ceil(\n restore_data.recent_history.total_history_items / this.variablesService.count\n );\n this.variablesService.opening_wallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.opening_wallet.pages = new Array(5)\n .fill(1)\n .map((value, index) => value + index))\n : (this.variablesService.opening_wallet.pages = new Array(\n this.variablesService.opening_wallet.totalPages\n )\n .fill(1)\n .map((value, index) => value + index));\n this.variablesService.opening_wallet.prepareHistory(\n restore_data.recent_history.history\n );\n }\n this.ngZone.run(() => {\n this.walletSaved = true;\n this.progressWidth = '50%';\n });\n } else {\n this.modalService.prepareModal('error', 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD');\n }\n }\n );\n }\n }\n );\n }\n }\n );\n }\n }\n\n runWallet(): void {\n // add flag when wallet was restored form seed\n this.variablesService.after_sync_request[this.wallet.id] = true;\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === this.variablesService.opening_wallet.address) {\n exists = true;\n }\n });\n if (!exists) {\n this.backend.runWallet(this.wallet.id, (run_status, run_data) => {\n if (run_status) {\n this.walletsService.addWallet(this.variablesService.opening_wallet);\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(this.wallet.id);\n this.router.navigate(['/wallet/']);\n });\n } else {\n console.log(run_data['error_code']);\n }\n });\n } else {\n this.variablesService.opening_wallet = null;\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(this.wallet.id, () => {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n });\n }\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-seed-phrase',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n\n
\n \n 0\"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n
0\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n
\n \n
\n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n
\n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\n seedPhrase = '';\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.SAVE_PHRASE',\n },\n ];\n\n showSeed = false;\n\n wallet_id: number;\n\n wallet!: Wallet;\n\n seedPhraseCopied = false;\n\n progressWidth = '66%';\n\n fb = inject(FormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.nonNullable.control('', [ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.nonNullable.control(''),\n });\n\n seedPhraseForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.showSeed = false;\n this.getWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n showSeedPhrase(): void {\n this.showSeed = true;\n this.progressWidth = '100%';\n }\n\n onSubmitSeed(): void {\n if (this.seedPhraseForm.valid) {\n this.showSeedPhrase();\n const wallet_id = this.wallet_id;\n const seed_password = this.seedPhraseForm.controls.password.value;\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n }\n\n private setWalletInfoNamePath(): void {\n this.detailsForm.get('name').setValue(this.wallet.name);\n this.detailsForm.get('path').setValue(this.wallet.path);\n }\n\n private getWallet(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.wallet_id) {\n this.wallet_id = +params.wallet_id;\n this.wallet = this.walletsService.getWalletById(this.wallet_id);\n if (this.wallet) {\n this.setWalletInfoNamePath();\n }\n }\n },\n });\n }\n}\n","import { Component, inject, NgZone, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { scaleItems } from '@parts/data/scale-items';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { generateRandomString } from '@parts/utils/generate-random-string';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-settings',\n template: `\n
\n
\n
\n \n

{{ 'SETTINGS.TITLE' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n {{ item.language | translate }}\n \n \n {{ item.language | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.translationKey | translate }}\n \n \n {{ item.translationKey | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.name | translate }}\n \n \n {{ item.name | translate }}\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n\n
\n
\n \n \n
\n \n
\n
\n \n \n \n
\n\n
\n \n \n
\n
\n
\n
\n\n\n
\n

\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\n

\n\n
\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"password\"\n id=\"old-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_OLD' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CURRENT_PASS_NOT_MATCH' | translate }}\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.WRONG_PASSWORD_MUST_BE' | translate }} a-zA-Z0-9_.*|~!?@#$%^&+{}()<>:;\"'-=,/[]*$\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"new_confirmation\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n\n
\n \n {{\n 'SETTINGS.SETTINGS_SAVED' | translate\n }}\n
\n \n\n

Build version: {{ currentBuild }}

\n
\n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .form__field--secret .form__field--input {\n padding-right: 4rem;\n }\n\n .btn--regenerate {\n padding: 4px;\n border-radius: 4px;\n position: absolute;\n right: 0.6rem;\n top: 3.6rem;\n background: #ffffff1a;\n cursor: pointer;\n }\n `,\n ],\n})\nexport class SettingsComponent implements OnInit {\n ifSaved = false;\n\n scale: string;\n\n appUseTor: boolean;\n\n fb = inject(FormBuilder);\n\n changeForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.compose([Validators.pattern(regExpPassword)])),\n new_password: this.fb.nonNullable.control('', Validators.compose([Validators.required, Validators.pattern(regExpPassword)])),\n new_confirmation: this.fb.nonNullable.control(''),\n appPass: this.fb.nonNullable.control(this.variablesService.appPass ?? ''),\n },\n {\n validators: [\n ZanoValidators.formMatch('new_password', 'new_confirmation'),\n ZanoValidators.formMatch('password', 'appPass', 'pass_mismatch'),\n ],\n }\n );\n\n zanoCompanionForm: FormGroup<{\n zanoCompation: FormControl,\n secret: FormControl\n }> = this.fb.group({\n zanoCompation: this.fb.nonNullable.control({ value: false, disabled: !this.variablesService.hasAppPass }),\n secret: this.fb.nonNullable.control(\n { value: '', disabled: false },\n {\n validators: Validators.compose([]),\n }\n ),\n });\n\n public currentNotificationsState;\n\n languagesOptions = [\n {\n name: 'en',\n language: 'SETTINGS.LANGUAGE.EN',\n },\n {\n name: 'fr',\n language: 'SETTINGS.LANGUAGE.FR',\n },\n {\n name: 'de',\n language: 'SETTINGS.LANGUAGE.DE',\n },\n {\n name: 'id',\n language: 'SETTINGS.LANGUAGE.ID',\n },\n {\n name: 'it',\n language: 'SETTINGS.LANGUAGE.IT',\n },\n {\n name: 'pt',\n language: 'SETTINGS.LANGUAGE.PT',\n },\n ];\n\n appLockOptions = [\n {\n time: 5,\n translationKey: 'SETTINGS.APP_LOCK.TIME1',\n },\n {\n time: 15,\n translationKey: 'SETTINGS.APP_LOCK.TIME2',\n },\n {\n time: 60,\n translationKey: 'SETTINGS.APP_LOCK.TIME3',\n },\n {\n time: 0,\n translationKey: 'SETTINGS.APP_LOCK.TIME4',\n },\n ];\n\n appScaleOptions = scaleItems;\n\n appLogOptions = [\n {\n id: -1,\n },\n {\n id: 0,\n },\n {\n id: 1,\n },\n {\n id: 2,\n },\n {\n id: 3,\n },\n {\n id: 4,\n },\n ];\n\n currentBuild = '';\n\n appPass: any;\n\n constructor(\n public translate: TranslateService,\n public variablesService: VariablesService,\n private renderer: Renderer2,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n this.scale = this.variablesService.settings.scale;\n this.appUseTor = this.variablesService.settings.appUseTor;\n this.zanoCompanionForm.setValue(this.variablesService.settings.zanoCompanionForm, { emitEvent: false });\n }\n\n ngOnInit(): void {\n this.backend.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n this.currentBuild = version;\n this.variablesService.testnet = false;\n if (type === 'testnet') {\n this.currentBuild += ' TESTNET';\n this.variablesService.testnet = true;\n }\n this.variablesService.networkType = type;\n } else {\n this.currentBuild = 'There was an error getting the build version';\n }\n });\n });\n this.backend.getIsDisabledNotifications(res => {\n this.currentNotificationsState = res;\n });\n\n this.zanoCompanionForm.valueChanges.pipe(debounceTime(200)).subscribe({\n next: () => {\n const value = this.zanoCompanionForm.getRawValue();\n const { zanoCompation, secret } = value;\n\n if (zanoCompation && !secret) {\n this.generateSecret();\n return;\n }\n\n if (!zanoCompation && secret) {\n this.zanoCompanionForm.controls.secret.patchValue('');\n return;\n }\n\n if (zanoCompation && secret || !zanoCompation && !secret) {\n this.backend.setupJwtWalletRpc(value);\n return;\n }\n }\n });\n }\n\n private generateSecret(): void {\n this.zanoCompanionForm.get('secret').setValue(generateRandomString(40));\n }\n\n regenerateSecret(): void {\n this.generateSecret();\n }\n\n setScale(): void {\n this.scale = this.variablesService.settings.scale;\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale);\n this.backend.storeAppData();\n }\n\n onSubmitChangePass(): void {\n if (this.changeForm.valid) {\n this.variablesService.appPass = this.changeForm.get('new_password').value;\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.zanoCompanionForm.controls.zanoCompation.enable({ emitEvent: false });\n this.onSave();\n });\n } else {\n console.log(data['error_code']);\n }\n });\n\n this.changeForm.reset();\n }\n }\n\n toggleNotifications(): void {\n if (!this.currentNotificationsState) {\n this.backend.setIsDisabledNotifications('true');\n this.currentNotificationsState = true;\n } else {\n this.backend.setIsDisabledNotifications('false');\n this.currentNotificationsState = false;\n }\n }\n\n toggleUseTor(): void {\n this.appUseTor = !this.appUseTor;\n this.variablesService.settings.appUseTor = this.appUseTor;\n this.backend.setEnableTor(this.appUseTor);\n this.backend.storeAppData();\n }\n\n onSave(): void {\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n onLockChange(): void {\n this.variablesService.restartCountdown();\n }\n\n onLogChange(): void {\n this.backend.setLogLevel(this.variablesService.settings.appLog);\n this.backend.storeAppData();\n }\n\n onLanguageChange(): void {\n this.translate.use(this.variablesService.settings.language);\n this.backend.storeAppData();\n }\n}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport BigNumber from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-transfer-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"form__field--input\"\n id=\"alias-transfer\"\n name=\"alias-transfer\"\n placeholder=\"{{ 'TRANSFER_ALIAS.ADDRESS.PLACEHOLDER' | translate }}\"\n type=\"text\"\n />\n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"error\"\n >\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n {{\n 'TRANSFER_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultCurrency\n }\n }}\n
\n\n \n {{ 'TRANSFER_ALIAS.BUTTON_TRANSFER' | translate }}\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class TransferAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.TRANSFER_ALIAS',\n },\n ];\n\n transferAddress = '';\n\n transferAddressValid: boolean;\n\n transferAddressAlias: boolean;\n\n permissionSend: boolean;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n tracking_key: alias.tracking_key,\n };\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = unlocked_balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n changeAddress(): void {\n this.backend.validateAddress(this.transferAddress, status => {\n this.transferAddressValid = status;\n if (status) {\n this.backend.getPoolInfo((statusPool, dataPool) => {\n if (hasOwnProperty(dataPool, 'aliases_que') && dataPool.aliases_que.length) {\n this.setStatus(!dataPool.aliases_que.some(el => el.address === this.transferAddress));\n } else {\n this.setStatus(status);\n }\n });\n } else {\n this.setStatus(false);\n }\n });\n }\n\n setStatus(statusSet): void {\n this.permissionSend = statusSet;\n if (statusSet) {\n this.backend.getAliasByAddress(this.transferAddress, status => {\n this.ngZone.run(() => {\n if (status) {\n this.transferAddressAlias = true;\n this.permissionSend = false;\n } else {\n this.transferAddressAlias = false;\n }\n });\n });\n } else {\n this.ngZone.run(() => {\n this.transferAddressAlias = false;\n });\n }\n }\n\n transferAlias(): void {\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\n return;\n }\n this.requestProcessing = true;\n const newAlias = {\n name: this.alias.name,\n address: this.transferAddress,\n comment: this.alias.comment,\n tracking_key: this.alias.tracking_key,\n };\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\n if (status && hasOwnProperty(data, 'success') && data.success) {\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-wallet-details',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n \n

Saved!

\n
\n
\n \n \n
\n \n\n \n \n \n
\n \n \n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n 0\n \"\n >\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n \n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n \n
\n \n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n \n \n \n \n \n \n \n `,\n})\nexport class WalletDetailsComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.WALLET_DETAILS',\n },\n ];\n\n seedPhrase = '';\n\n showSeed = false;\n\n seedPhraseCopied = false;\n\n ifSaved = false;\n\n fb = inject(NonNullableFormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.control(''),\n });\n\n passwordSeedPhraseForm = this.fb.group(\n {\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n const { currentWallet } = this.variablesService;\n const { name, path } = currentWallet;\n this.detailsForm.patchValue(\n {\n name,\n path,\n },\n {\n emitEvent: false,\n }\n );\n }\n\n beforeSubmitPasswordSeedPhrase(): void {\n if (this.passwordSeedPhraseForm.invalid) {\n this.passwordSeedPhraseForm.updateValueAndValidity();\n this.passwordSeedPhraseForm.markAllAsTouched();\n return;\n }\n\n this.submitPasswordSeedPhrase();\n }\n\n submitPasswordSeedPhrase(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { password: seed_password } = this.passwordSeedPhraseForm.getRawValue();\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.showSeed = true;\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n\n beforeSubmitDetails(): void {\n if (this.detailsForm.invalid) {\n this.detailsForm.updateValueAndValidity();\n this.detailsForm.markAllAsTouched();\n return;\n }\n\n this.submitDetails();\n }\n\n submitDetails(): void {\n const getRawValue = this.detailsForm.getRawValue();\n const { name } = getRawValue;\n this.variablesService.currentWallet.name = name;\n this.detailsForm.reset(getRawValue);\n this.refreshDetailsFormValidators();\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n private refreshDetailsFormValidators(): void {\n const walletNamesForComparisons = this.variablesService.walletNamesForComparisons;\n const validatorsForName = [Validators.required, ZanoValidators.duplicate(walletNamesForComparisons)];\n this.detailsForm.controls.name.clearValidators();\n this.detailsForm.controls.name.setValidators(validatorsForName);\n this.detailsForm.controls.name.updateValueAndValidity();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Subject } from 'rxjs';\nimport { AssetBalance, ParamsRemoveCustomAssetId } from '@api/models/assets.model';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { TranslateService } from '@ngx-translate/core';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-assets',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'ASSETS.TABLE.LABELS.NAME' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.BALANCE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.VALUE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.PRICE' | translate }}\n
\n
\n
 
\n
\n
\n \n {{ asset.asset_info.full_name }}\n
\n
\n
\n \n {{ asset.total | intToMoney }}\n {{ asset.asset_info.ticker }}\n \n
\n
\n
\n {{\n (asset.total | intToMoney) * variablesService.moneyEquivalent | currency : 'USD'\n }}\n
\n
\n
\n {{ variablesService.moneyEquivalent | currency : 'USD' }}\n 0\"\n [class.color-red]=\"variablesService.moneyEquivalentPercent < 0\"\n >\n {{ variablesService.moneyEquivalentPercent | number : '1.2-2' }}%\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n \n \n `,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n currentPage = 1;\n\n itemsPerPage = 10;\n\n paginationId = 'pagination-assets-id';\n\n get paginatePipeArgs(): PaginatePipeArgs {\n return {\n id: this.paginationId,\n itemsPerPage: this.itemsPerPage,\n currentPage: this.currentPage,\n };\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (currentWallet) {\n const { balances } = currentWallet;\n return (balances?.length || 0) > this.itemsPerPage;\n }\n return false;\n }\n\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n triggerOrigin!: CdkOverlayOrigin;\n\n currentAsset!: AssetBalance;\n\n isOpenDropDownMenu = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private backendService: BackendService,\n private walletsService: WalletsService,\n private dialog: Dialog,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.listenChangeWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetBalance): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAsset = asset;\n }\n\n trackByAssets(index: number, { asset_info: { asset_id } }: AssetBalance): number | string {\n return asset_id || index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n assetDetails(): void {\n const dialogConfig: DialogConfig = {\n data: {\n asset: this.currentAsset,\n },\n };\n this.dialog.open(AssetDetailsComponent, dialogConfig);\n }\n\n beforeRemoveAsset(): void {\n if (!this.currentAsset) {\n return;\n }\n const {\n asset_info: { full_name },\n } = this.currentAsset;\n const dialogConfig: DialogConfig = {\n data: {\n title: `Do you want delete \"${full_name}\"`,\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.removeAsset(),\n });\n }\n\n removeAsset(): void {\n const { wallet_id, sendMoneyParams } = this.variablesService.currentWallet;\n const {\n asset_info: { asset_id },\n } = this.currentAsset;\n const params: ParamsRemoveCustomAssetId = {\n wallet_id,\n asset_id,\n };\n this.backendService.removeCustomAssetId(params, () => {\n this.walletsService.updateWalletInfo(wallet_id);\n this.currentAsset = undefined;\n\n if (sendMoneyParams) {\n this.walletsService.currentWallet.sendMoneyParams.asset_id = zanoAssetInfo.asset_id;\n }\n });\n }\n\n getBalanceTooltip(balance: AssetBalance): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!balance) {\n return null;\n }\n\n scrollWrapper.classList.add('balance-scroll-list');\n [balance].forEach(({ unlocked, total, asset_info: { ticker } }: AssetBalance) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${ this.intToMoneyPipe.transform(unlocked) } ${ ticker || '---' }`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${ this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked)) } ${ ticker || '---' }`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backendService.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n\n private listenChangeWallet(): void {\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.currentPage = 0;\n },\n });\n }\n}\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subtransfer, Transaction } from '@api/models/transaction.model';\nimport BigNumber from 'bignumber.js';\nimport { PaginationService } from '@store/pagination/pagination.service';\nimport { PaginationStore } from '@store/pagination/pagination.store';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { collapseOnLeaveAnimation, expandOnEnterAnimation } from 'angular-animations';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-history',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n 0\"\n >\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n
\n
{{ 'HISTORY.STATUS' | translate }}
\n
\n
{{ 'HISTORY.AMOUNT' | translate }}
\n
\n
{{ 'HISTORY.FEE' | translate }}
\n
\n
{{ 'HISTORY.ADDRESS' | translate }}
\n
\n
{{ 'HISTORY.DATE' | translate }}
\n
\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n {{\n (subtransfer.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate\n }}\n\n \n \n \n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate : { date: time(transaction) | date : 'MM.dd.yy' }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n 500000000\">\n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate\n : {\n date:\n transaction.unlock_time * 1000 | date : 'MM.dd.yy'\n }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n \n \n 0)\n \"\n class=\"icon unlock-transaction mr-1\"\n >\n \n \n \n \n \n \n\n \n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n
\n \n \n \n \n
\n \n {{ subtransfer.amount.minus(transaction.fee ?? 0).negated() | intToMoney }}\n \n \n {{ subtransfer.amount | intToMoney }}\n \n {{ (subtransfer.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n \n \n
\n \n {{ subtransfer.amount.negated() | intToMoney }}\n \n \n {{ subtransfer.amount | intToMoney }}\n \n {{ (subtransfer.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n \n\n \n \n {{ 0 | intToMoney }}\n {{ variablesService.defaultCurrency }}\n \n \n
\n
\n \n \n \n {{ transaction.fee | intToMoney }}\n {{ variablesService.defaultCurrency }}\n \n \n {{ 'HISTORY.NO_FEE' | translate }}\n \n \n
\n
\n \n \n
\n \n {{ transaction | historyTypeMessages }}\n \n
\n
\n\n \n \n \n {{ transaction.remote_addresses[0] | zanoShortString }}\n \n \n \n
\n \n \n = 1 && alias.length <= 5\"\n [class.mb-0_5]=\"transaction.remote_aliases.length >= 2\"\n [class.mr-0_5]=\"transaction.remote_aliases.length >= 2\"\n class=\"alias\"\n fxLayout=\"row inline\"\n >\n {{ '@' + alias }}\n
\n
\n
\n \n \n \n\n \n {{ 'HISTORY.HIDDEN' | translate }}\n \n \n
\n
\n {{ transaction.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm' }}\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n \n\n \n \n {{ page }}\n \n \n\n \n \n {{ variablesService.currentWallet.currentPage }}\n \n \n\n \n \n \n
\n
\n Hide mining transactions\n \n
\n
\n
\n
\n `,\n styles: [\n `\n .cell-fee {\n display: inline-flex;\n }\n `,\n ],\n animations: [expandOnEnterAnimation(), collapseOnLeaveAnimation()],\n})\nexport class HistoryComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n openedDetails = '';\n\n stop_paginate = false;\n\n mining = false;\n\n wallet: Wallet;\n\n x = new BigNumber(3);\n\n y = new BigNumber(0.2);\n\n private destroy$ = new Subject();\n\n constructor(\n private route: ActivatedRoute,\n public variablesService: VariablesService,\n private pagination: PaginationService,\n private backend: BackendService,\n private ngZone: NgZone,\n private paginationStore: PaginationStore\n ) {}\n\n ngOnInit(): void {\n this.route.parent.params.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.openedDetails = '';\n },\n });\n\n this.init();\n\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.getRecentTransfers();\n },\n });\n\n this.variablesService.currentWalletChangedEvent\n .pipe(\n filter(w => !!w),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: (currentWallet: Wallet) => {\n this.mining = currentWallet.exclude_mining_txs;\n },\n });\n }\n\n isVisibleSubtransferStatus(subtransfer: Subtransfer, { fee }: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n return !(asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee));\n\n }\n\n init(): void {\n let restore = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n restore = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (!this.variablesService.sync_started && restore && this.variablesService.currentWallet.wallet_id) {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n // if this is was restore wallet, and it was selected on moment when sync completed\n this.getRecentTransfers();\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n let after_sync_request = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n after_sync_request = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (after_sync_request && !this.variablesService.sync_started) {\n // if user click on the wallet at the first time after restore.\n this.getRecentTransfers();\n }\n\n if (hasOwnProperty(this.variablesService.stop_paginate, String(this.variablesService.currentWallet.wallet_id))) {\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n } else {\n this.stop_paginate = false;\n }\n // this will hide pagination a bit earlier\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n isVisibleFee(transaction: Transaction): boolean {\n const { subtransfers } = transaction;\n return subtransfers ? !subtransfers?.every(({ is_income }) => is_income) : false;\n }\n\n strokeSize(item): number {\n const rem = this.variablesService.settings.scale;\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 0;\n } else {\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\n return 4.5 * parseInt(rem, 10);\n } else {\n return (\n 4.5 * parseInt(rem, 10) - ((4.5 * parseInt(rem, 10)) / 100) * ((this.variablesService.height_app - item.height) * 10)\n );\n }\n }\n }\n\n resetPaginationValues(): void {\n this.ngZone.run(() => {\n const total_history_item = this.variablesService.currentWallet.total_history_item;\n const count = this.variablesService.count;\n this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count);\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\n this.variablesService.currentWallet.currentPage = 1;\n\n if (!this.variablesService.currentWallet.totalPages) {\n this.variablesService.currentWallet.totalPages = 1;\n }\n this.variablesService.currentWallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variablesService.currentWallet.pages = new Array(this.variablesService.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n });\n }\n\n setPage(pageNumber: number): void {\n // this is will allow pagination for wallets that was open from existed wallets'\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\n return;\n }\n if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) {\n this.variablesService.get_recent_transfers = false;\n this.variablesService.currentWallet.updated = true;\n }\n // if not running get_recent_transfers callback\n if (!this.variablesService.get_recent_transfers) {\n this.variablesService.currentWallet.currentPage = pageNumber;\n }\n if (!this.variablesService.get_recent_transfers) {\n this.getRecentTransfers();\n }\n }\n\n toggleMiningTransactions(): void {\n if (!this.variablesService.sync_started && !this.wallet) {\n const value = this.paginationStore.value;\n if (!value) {\n this.paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n } else {\n const pages = value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id);\n if (pages.length === 0) {\n this.paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n }\n }\n this.mining = !this.mining;\n this.resetPaginationValues();\n this.getRecentTransfers();\n }\n }\n\n getRecentTransfers(): void {\n const offset = this.pagination.getOffset(this.variablesService.currentWallet.wallet_id);\n const value = this.paginationStore.value;\n const pages = value ? value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id) : [];\n this.backend.getRecentTransfers(\n this.variablesService.currentWallet.wallet_id,\n offset,\n this.variablesService.count,\n this.variablesService.currentWallet.exclude_mining_txs,\n (status, data) => {\n const isForward = this.paginationStore.isForward(pages, this.variablesService.currentWallet.currentPage);\n if (this.mining && isForward && pages && pages.length === 1) {\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\n }\n\n const history = data && data.history;\n this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id] =\n (history && history.length < this.variablesService.count) || !history;\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n if (!this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id]) {\n const page = this.variablesService.currentWallet.currentPage + 1;\n if (isForward && this.mining && history && history.length === this.variablesService.count) {\n this.paginationStore.setPage(page, data.last_item_index, this.variablesService.currentWallet.wallet_id); // add back page for current page\n }\n }\n\n this.pagination.calcPages(data);\n this.pagination.prepareHistory(data, status);\n\n this.ngZone.run(() => {\n this.variablesService.get_recent_transfers = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n // this is will complete get_recent_transfers request\n // this will switch of\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n });\n }\n );\n }\n\n tick(): void {\n const walletInterval = setInterval(() => {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (!this.wallet) {\n clearInterval(walletInterval);\n }\n }, 1000);\n }\n\n getHeight(item): number {\n const { height_app } = this.variablesService;\n if ((height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 10;\n } else {\n if (item.height === 0 || height_app - item.height < 0) {\n return 0;\n } else {\n return height_app - item.height;\n }\n }\n }\n\n openDetails(tx_hash): void {\n if (tx_hash === this.openedDetails) {\n this.openedDetails = '';\n } else {\n this.openedDetails = tx_hash;\n }\n }\n\n time(item: Transaction): number {\n const now = new Date().getTime();\n return now + (item.unlock_time - this.variablesService.height_max) * 60 * 1000;\n }\n\n isLocked(item: Transaction): boolean {\n if (item.unlock_time > 500000000 && item.unlock_time > new Date().getTime() / 1000) {\n return true;\n }\n return item.unlock_time < 500000000 && item.unlock_time > this.variablesService.height_max;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport QRCode from 'qrcode';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { RCV_ADDR_QR_SCALE } from '@parts/data/constants';\n\n@Component({\n selector: 'app-receive',\n template: `\n
\n \n \"qr-code\"\n
\n\n \n {{ variablesService.currentWallet.address | zanoShortString : 9 : 9 }}\n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class ReceiveComponent implements OnInit {\n qrImageSrc: string;\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\n width: 200 * RCV_ADDR_QR_SCALE,\n height: 200 * RCV_ADDR_QR_SCALE,\n })\n .then(url => {\n this.qrImageSrc = url;\n })\n .catch(err => {\n console.error(err);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n AsyncCommandResults,\n BackendService,\n CurrentActionState,\n ResponseAsyncTransfer,\n StatusCurrentActionState,\n} from '@api/services/backend.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nconst successfulStatuses: string[] = [\n StatusCurrentActionState.STATE_SENDING,\n StatusCurrentActionState.STATE_SENT_SUCCESS,\n StatusCurrentActionState.STATE_INITIALIZING,\n StatusCurrentActionState.STATE_DOWNLOADING_CONSENSUS,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_A,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_B,\n StatusCurrentActionState.STATE_CREATING_STREAM,\n StatusCurrentActionState.STATE_SUCCESS,\n];\n\nconst failedStatuses: string[] = [StatusCurrentActionState.STATE_SEND_FAILED, StatusCurrentActionState.STATE_FAILED];\n\n@Component({\n selector: 'app-send-details-modal',\n template: `\n
\n
\n

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n
\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n (currentActionState\n ? 'TOR_LIB_STATE' + '.' + currentActionState.status\n : 'TOR_LIB_STATE.STATE_INITIALIZING'\n ) | translate\n }}\n {{ !isSentSuccess && !isSentFailed ? '...' : '' }}\n

\n\n \n \n \n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n {{ 'TOR_LIB_STATE' + '.' + action?.status | translate\n }}{{ last && !isSentSuccess && !isSentFailed ? '...' : '' }}\n \n \n\n \n \n\n \n \n\n \n \n \n\n \n
  • \n tx id: {{ data.response_data.tx_hash || '---' }} \n \n \n
  • \n
  • \n
    \n tx size:\n {{ data.response_data.tx_blob_size }}\n bytes\n
    \n
  • \n
  • \n \n
  • \n
    \n
\n
\n
\n
\n
\n \n
\n \n \n\n \n \n \n

{{ prefix }} {{ 'SEND.ERROR_CODES' + '.' + error_code | translate }}

\n
\n \n \n

{{ prefix }} {{ error_code }}

\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendDetailsModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() job_id: number;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n responseData$ = new BehaviorSubject(null);\n\n stateDetails$ = new BehaviorSubject(false);\n\n currentActionState$ = new BehaviorSubject(null);\n\n currentActionStates$ = new BehaviorSubject([]);\n\n success = false;\n\n private destroy$: Subject = new Subject();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService, private renderer: Renderer2) {}\n\n get currentActionState(): CurrentActionState {\n return this.currentActionState$.value;\n }\n\n get currentActionStates(): CurrentActionState[] {\n return this.currentActionStates$.value;\n }\n\n get isSentSuccess(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SENT_SUCCESS;\n }\n\n get isSentFailed(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SEND_FAILED;\n }\n\n get isDetailsNotEmpty(): boolean {\n return !!(this.responseData$.value || this.currentActionStates$.value.length > 0);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const {\n currentWallet: { wallet_id },\n settings: { appUseTor },\n } = this.variablesService;\n\n if (appUseTor) {\n this.backendService.handleCurrentActionState$.pipe(takeUntil(this.destroy$)).subscribe({\n next: (currentActionState: CurrentActionState) => {\n this.currentActionState$.next(currentActionState);\n this.currentActionStates$.next([...this.currentActionStates, currentActionState]);\n },\n });\n } else {\n const actionState: CurrentActionState = {\n status: StatusCurrentActionState.STATE_INITIALIZING,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n }\n\n this.backendService.dispatchAsyncCallResult$\n .pipe(\n filter(({ job_id, response }: AsyncCommandResults) => this.job_id === job_id && !!response),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: ({ response }: AsyncCommandResults) => {\n const { response_data } = response;\n const success = response_data?.success ?? false;\n this.success = success;\n\n const actionState: CurrentActionState = {\n status: success ? StatusCurrentActionState.STATE_SENT_SUCCESS : StatusCurrentActionState.STATE_SEND_FAILED,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n\n this.responseData$.next(response);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDetails(): void {\n this.stateDetails$.next(!this.stateDetails$.value);\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n trackBy(index: number): number {\n return index;\n }\n\n isSuccess(action: CurrentActionState): boolean {\n return successfulStatuses.includes(action && action.status);\n }\n\n isFailed(action: CurrentActionState): boolean {\n return failedStatuses.includes(action && action.status);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\n\n@Component({\n selector: 'app-send-modal',\n template: `\n
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM.MESSAGE.SEND' | translate }}\n
\n
\n {{ sendMoneyParams.amount }}\n {{ (sendMoneyParams.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.FROM' | translate }}\n
\n
\n {{ variablesService.currentWallet.address }}\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.TO' | translate }}\n
\n
{{ sendMoneyParams.address }}
\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}\n
\n
{{ sendMoneyParams.comment }}
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() sendMoneyParams: SendMoneyParams;\n\n @Output() confirmed: EventEmitter = new EventEmitter();\n\n cdr = inject(ChangeDetectorRef);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group({\n password: this.fb.control(''),\n appPass: this.fb.control(''),\n });\n\n constructor(public variablesService: VariablesService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const { appPass } = this.variablesService;\n if (appPass) {\n this.confirmForm.controls.appPass.patchValue(appPass, {\n emitEvent: false,\n });\n this.confirmForm.setValidators([ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')]);\n this.confirmForm.controls.password.setValidators([Validators.required]);\n this.confirmForm.updateValueAndValidity();\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n beforeSubmit(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAsTouched();\n this.confirmForm.updateValueAndValidity();\n this.cdr.detectChanges();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.confirmed.emit(true);\n }\n\n onClose(): void {\n this.confirmed.emit(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SendModalComponent } from './send-modal/send-modal.component';\nimport { SendDetailsModalComponent } from './send-details-modal/send-details-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { GetAssetInfoPipe } from '@parts/pipes';\n\n@NgModule({\n declarations: [SendModalComponent, SendDetailsModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, ReactiveFormsModule, GetAssetInfoPipe],\n exports: [SendModalComponent, SendDetailsModalComponent],\n})\nexport class WalletModalsModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport { debounceTime, delay, filter, retry, take, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { Aliases } from '@api/models/alias.model';\nimport { DeeplinkParams, defaultSendMoneyParams } from '@api/models/wallet.model';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-send',\n template: `\n
\n \n
\n
\n \n \n\n \n \n \n \n = 2 && alias.name.length <= 6\"\n [class.pl-1]=\"alias.name.length > 6\"\n class=\"alias\"\n >\n
{{ alias.name }}
\n
\n
\n \n \n
Not found aliases
\n
\n \n
\n\n \n
\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n \n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.WRAP_INFO_NULL' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ sendMoneyParamsForm.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n \n \n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n \n\n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : 3 }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n\n
\n \n \n \n \n {{ asset.asset_info.full_name || '---' }}\n ({{ asset.total | intToMoney }} {{ asset.asset_info.ticker }})\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n \n\n
\n \n {{ 'SEND.DETAILS' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'Min' }} {{ sendMoneyParamsForm.controls.mixin.getError('min')['min'] }}\n
\n
\n {{ 'Max' }} {{ sendMoneyParamsForm.controls.mixin.getError('max')['max'] }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : { fee: variablesService.default_fee } }}\n
\n
\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n \n \n\n \n {{ 'SEND.BUTTON' | translate }}\n \n \n \n\n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class SendComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n job_id: number;\n\n isVisibleDropdownAliases$ = new BehaviorSubject(false);\n\n isVisibleDropdownAliasesObservable$ = this.isVisibleDropdownAliases$.pipe(delay(250));\n\n isModalDialogVisible = false;\n\n isModalDetailsDialogVisible = false;\n\n hideWalletAddress = false;\n\n wrapInfo: WrapInfo;\n\n loading$ = new BehaviorSubject(true);\n\n isWrapShown = false;\n\n aliasAddress: string;\n\n additionalOptions = false;\n\n fb = inject(NonNullableFormBuilder);\n\n intToMoneyPipe = inject(IntToMoneyPipe);\n\n variablesService = inject(VariablesService);\n\n wrapInfoService = inject(WrapInfoService);\n\n aliases$ = new BehaviorSubject([]);\n\n lowerCaseDisabled$ = new BehaviorSubject(true);\n\n sendMoneyParamsForm = this.fb.group({\n wallet_id: this.fb.control(undefined, {\n validators: [Validators.required],\n }),\n address: this.fb.control('', {\n validators: [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this.backendService.validateAddress(control.value, (valid_status, data) => {\n this.ngZone.run(() => {\n this.isWrapShown = data.error_code === 'WRAP';\n if (valid_status === false && !this.isWrapShown) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this.backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this.ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ],\n }),\n amount: this.fb.control(undefined, {\n validators: [\n Validators.required,\n Validators.min(0.000000000001),\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n const bigAmount = this.moneyToInt.transform(control.value) as BigNumber;\n if (this.isWrapShown) {\n if (!this.wrapInfo) {\n return { wrap_info_null: true };\n }\n if (bigAmount.isGreaterThan(new BigNumber(this.wrapInfo.unwraped_coins_left))) {\n return { great_than_unwraped_coins: true };\n }\n if (bigAmount.isLessThan(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20))) {\n return { less_than_zano_needed: true };\n }\n }\n return null;\n },\n\n (control: FormControl): ValidationErrors | null => {\n const asset_id = this.sendMoneyParamsForm?.controls.asset_id.value;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const unlocked = +this.intToMoneyPipe.transform(asset.unlocked);\n return +control.value > unlocked ? { insuficcientFunds } : null;\n }\n return null;\n },\n ],\n }),\n comment: this.fb.control('', {\n validators: [Validators.maxLength(this.variablesService.maxCommentLength)],\n }),\n asset_id: this.fb.control(undefined, {\n validators: [Validators.required],\n }),\n mixin: this.fb.control(MIXIN, {\n validators: [Validators.required, Validators.min(0), Validators.max(1000)],\n }),\n fee: this.fb.control(this.variablesService.default_fee, {\n validators: [\n Validators.required,\n (g: FormControl): ValidationErrors | null => {\n if (new BigNumber(g.value).isLessThan(this.variablesService.default_fee)) {\n return { less_min: true };\n }\n return null;\n },\n ],\n }),\n hide: this.fb.control(false),\n });\n\n get sendMoneyParams(): SendMoneyParams {\n return this.sendMoneyParamsForm.getRawValue() as SendMoneyParams;\n }\n\n private destroy$ = new Subject();\n\n constructor(private backendService: BackendService, private ngZone: NgZone, private moneyToInt: MoneyToIntPipe) {}\n\n ngOnInit(): void {\n const { aliases } = this.variablesService;\n this.aliases$.next(aliases);\n\n this.getWrapInfo();\n this.listenSendActionData();\n this.patchSendMoneyParamsByCurrentWallet();\n this.saveSendMoneyParams();\n this.setAssetFromHistoryState();\n }\n\n setAssetFromHistoryState(): void {\n const state = history.state || {};\n const asset: AssetBalance = state['asset'];\n if (asset) {\n const {\n asset_info: { asset_id },\n } = asset;\n this.sendMoneyParamsForm.controls.asset_id.patchValue(asset_id, { emitEvent: false });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n showDialog(): void {\n this.isModalDialogVisible = true;\n }\n\n confirmed(confirmed: boolean): void {\n this.isModalDialogVisible = false;\n if (confirmed) {\n this.onSend();\n }\n }\n\n onSend(): void {\n if (this.sendMoneyParamsForm.valid) {\n const { address } = this.sendMoneyParamsForm.getRawValue();\n let sendMoneyParams: SendMoneyParams = {\n ...this.sendMoneyParamsForm.getRawValue(),\n };\n\n if (address.indexOf('@') === 0) {\n const aliasName = address;\n const alias = this.aliases$.value.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.sendMoneyParamsForm.controls.address.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n sendMoneyParams = {\n ...sendMoneyParams,\n address: alias.address,\n };\n }\n\n this.backendService.sendMoney(sendMoneyParams, job_id => {\n this.ngZone.run(() => {\n this.job_id = job_id;\n this.isModalDetailsDialogVisible = true;\n this.variablesService.currentWallet.sendMoneyParams = null;\n });\n });\n }\n }\n\n getReceivedValue(): number | BigNumber {\n const amount = this.moneyToInt.transform(this.sendMoneyParamsForm.value.amount);\n const needed = new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20);\n if (amount && needed) {\n return (amount as BigNumber).minus(needed);\n }\n return 0;\n }\n\n handeCloseDetailsModal(success: boolean): void {\n this.isModalDetailsDialogVisible = false;\n this.job_id = null;\n\n if (success) {\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n this.variablesService.currentWallet.sendMoneyParams = null;\n this.sendMoneyParamsForm.reset({ ...defaultSendMoneyParams, wallet_id }, { emitEvent: false });\n }\n }\n\n private patchSendMoneyParamsByCurrentWallet(): void {\n const { currentWallet, default_fee } = this.variablesService;\n\n let sendMoneyParams: SendMoneyParams;\n\n if (currentWallet.sendMoneyParams) {\n sendMoneyParams = currentWallet.sendMoneyParams;\n this.sendMoneyParamsForm.markAllAsTouched();\n } else {\n sendMoneyParams = {\n ...defaultSendMoneyParams,\n fee: default_fee,\n };\n }\n\n if (currentWallet.is_auditable && !currentWallet.is_watch_only) {\n sendMoneyParams.hide = true;\n this.sendMoneyParamsForm.controls['hide'].disable();\n }\n\n if (currentWallet.is_auditable) {\n sendMoneyParams.mixin = 0;\n this.sendMoneyParamsForm.controls['mixin'].disable();\n }\n\n sendMoneyParams.wallet_id = currentWallet.wallet_id;\n\n this.sendMoneyParamsForm.patchValue(sendMoneyParams, { emitEvent: false });\n }\n\n private fillDeepLinkData(value: DeeplinkParams): void {\n this.additionalOptions = true;\n this.sendMoneyParamsForm.patchValue({\n address: value.address,\n amount: value.amount || null,\n comment: value.comment || value.comments || '',\n mixin: +value.mixins || MIXIN,\n asset_id: zanoAssetInfo.asset_id,\n fee: value.fee || this.variablesService.default_fee,\n hide: value.hide_sender === 'true',\n });\n }\n\n private getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loading$.next(true)),\n retry(5),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: value => {\n this.wrapInfo = value;\n this.loading$.next(false);\n },\n error: () => {\n this.loading$.next(false);\n },\n });\n }\n\n pasteListenAddressField(event: any): void {\n event.preventDefault();\n const { clipboardData } = event;\n let value = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n this.sendMoneyParamsForm.controls.address.patchValue(value);\n }\n\n inputListenAddressField(event: any): void {\n const {\n target: { value },\n } = event;\n of((value ?? '') as string)\n .pipe(\n tap(v => this.lowerCaseDisabled$.next(v.indexOf('@') !== 0)),\n tap(v => this.isVisibleDropdownAliases$.next(!!v.length && v.indexOf('@') === 0)),\n filter(v => v.indexOf('@') === 0),\n take(1)\n )\n .subscribe({\n next: v => {\n const filteredAliases = this.variablesService.aliases.filter(({ name }) => {\n return name.indexOf(v) > -1;\n });\n this.aliases$.next(filteredAliases);\n },\n });\n }\n\n private listenSendActionData(): void {\n this.variablesService.sendActionData$.pipe(takeUntil(this.destroy$)).subscribe({\n next: value => {\n if (value && value.action === 'send') {\n setTimeout(() => {\n this.fillDeepLinkData(value);\n }, 100);\n this.variablesService.sendActionData$.next({});\n }\n },\n });\n }\n\n private saveSendMoneyParams(): void {\n this.sendMoneyParamsForm.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.variablesService.currentWallet.sendMoneyParams = this.sendMoneyParamsForm.getRawValue();\n },\n });\n }\n}\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Chart } from 'angular-highcharts';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BigNumber } from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-staking',\n template: `\n
\n
\n
\n
\n \n
\n \n
\n {{ 'STAKING.TITLE' | translate }}\n
\n\n
\n \n \n
\n
\n \n
\n {{ 'STAKING.TITLE_PENDING' | translate }}\n :\n
\n
\n
\n {{ pending.total | intToMoney }}\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n \n
\n {{ 'STAKING.TITLE_TOTAL' | translate }}\n :\n
\n
\n
\n {{ total | intToMoney }}\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n
\n
\n
\n
\n
\n {{ selectedDate.date | date : 'EEEE, MMMM d, y' }}\n {{ selectedDate.amount }}\n
\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n\n \n \n Sort by {{ (item.title | translate | lowercase) + 's' }}\n \n \n {{ item.title | translate }}\n \n \n
\n \n \n
\n
\n
\n
\n
\n {{ selectedDate.date | date : 'EEEE, MMMM d, y' }}\n {{ selectedDate.amount }}\n
\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n
\n \n \n\n
\n
\n
\n\n
\n \n \n {{ period.title }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: auto;\n }\n `,\n ],\n})\nexport class StakingComponent implements OnInit, OnDestroy {\n periods = [\n {\n title: this.translate.instant('STAKING.PERIOD.WEEK1'),\n key: '1 week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.WEEK2'),\n key: '2 week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH1'),\n key: '1 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH3'),\n key: '3 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH6'),\n key: '6 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.YEAR'),\n key: '1 year',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.ALL'),\n key: 'All',\n active: true,\n },\n ];\n\n groups = [\n {\n title: this.translate.instant('STAKING.GROUP.DAY'),\n key: 'day',\n active: true,\n },\n {\n title: this.translate.instant('STAKING.GROUP.WEEK'),\n key: 'week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.GROUP.MONTH'),\n key: 'month',\n active: false,\n },\n ];\n\n selectedGroup = this.groups[0].key;\n\n selectedDate = {\n date: null,\n amount: null,\n };\n\n originalData = [];\n\n chart: Chart;\n\n total = new BigNumber(0);\n\n pending = {\n list: [],\n total: new BigNumber(0),\n };\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n static makeGroupTime(key, date): number {\n if (key === 'day') {\n return date.setHours(0, 0, 0, 0);\n } else if (key === 'week') {\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\n } else {\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\n }\n }\n\n ngOnInit(): void {\n this.route.parent.params.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.getMiningHistory();\n },\n });\n this.variablesService.getHeightAppEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (newHeight: number) => {\n if (!this.pending.total.isZero()) {\n const pendingCount = this.pending.list.length;\n for (let i = pendingCount - 1; i >= 0; i--) {\n if (newHeight - this.pending.list[i].h >= 10) {\n this.pending.list.splice(i, 1);\n }\n }\n if (pendingCount !== this.pending.list.length) {\n this.pending.total = new BigNumber(0);\n for (let i = 0; i < this.pending.list.length; i++) {\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\n }\n }\n }\n },\n });\n this.variablesService.getRefreshStackingEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (wallet_id: number) => {\n if (this.variablesService.currentWallet.wallet_id === wallet_id) {\n this.getMiningHistory();\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n drawChart(data): void {\n this.chart = new Chart({\n title: { text: '' },\n credits: { enabled: false },\n exporting: { enabled: false },\n legend: { enabled: false },\n chart: {\n type: 'line',\n backgroundColor: 'transparent',\n height: null,\n events: {\n load: (): void => {\n this.changePeriod();\n },\n },\n },\n\n yAxis: {\n min: 0,\n tickAmount: 5,\n title: {\n text: '',\n },\n gridLineColor: '#2b3644',\n gridLineWidth: 2,\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 120,\n tickColor: '#2b3644',\n labels: {\n y: -8,\n align: 'left',\n x: -120,\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n format: '{value} ' + this.variablesService.defaultCurrency,\n },\n },\n\n xAxis: {\n type: 'datetime',\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 10,\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n },\n minPadding: 0,\n maxPadding: 0,\n minRange: 86400000,\n // tickInterval: 86400000,\n minTickInterval: 3600000,\n },\n\n tooltip: {\n enabled: false,\n },\n\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n\n series: {\n point: {\n events: {\n mouseOver: (obj): void => {\n this.selectedDate.date = obj.target['x'];\n this.selectedDate.amount = obj.target['y'];\n },\n },\n },\n events: {\n mouseOut: (): void => {\n this.selectedDate.date = null;\n this.selectedDate.amount = null;\n },\n },\n },\n },\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n });\n }\n\n getMiningHistory(): void {\n if (this.variablesService.currentWallet.loaded) {\n this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\n this.total = new BigNumber(0);\n this.pending.list = [];\n this.pending.total = new BigNumber(0);\n this.originalData = [];\n if (data.mined_entries) {\n data.mined_entries.forEach((item, key) => {\n if (item.t.toString().length === 10) {\n data.mined_entries[key].t = new Date(item.t * 1000).setUTCMilliseconds(0);\n }\n });\n data.mined_entries.forEach(item => {\n this.total = this.total.plus(item.a);\n if (this.variablesService.height_app - item.h < 10) {\n this.pending.list.push(item);\n this.pending.total = this.pending.total.plus(item.a);\n }\n this.originalData.push([parseInt(item.t, 10), parseFloat(this.intToMoneyPipe.transform(item.a))]);\n });\n this.originalData = this.originalData.sort(function (a, b) {\n return a[0] - b[0];\n });\n }\n this.ngZone.run(() => {\n this.drawChart([]);\n });\n });\n }\n }\n\n changePeriod(period?): void {\n if (!this.chart) { return; }\n\n if (period) {\n this.periods.forEach(p => {\n p.active = false;\n });\n period.active = true;\n } else {\n period = this.periods.find(p => p.active);\n }\n\n const d = new Date();\n let min = null;\n const newData = [];\n\n const group = this.groups.find(g => g.active);\n\n if (period.key === '1 week') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\n } else if (period.key === '2 week') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\n } else if (period.key === '1 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '3 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '6 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '1 year') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\n } else {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n }\n\n this.chart.ref?.xAxis[0].setExtremes(min, null);\n }\n\n changeGroup(group): void {\n this.groups.forEach(g => {\n g.active = false;\n });\n group.active = true;\n this.changePeriod();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { GetAssetInfoPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { ProposalDetails } from '@api/models/swap.model';\n\n@Component({\n selector: 'app-swap-confirm-master-password',\n standalone: true,\n imports: [CommonModule, FlexModule, ReactiveFormsModule, TranslateModule, IntToMoneyPipeModule, GetAssetInfoPipe],\n templateUrl: './swap-confirm-master-password.component.html',\n styleUrls: ['./swap-confirm-master-password.component.scss'],\n})\nexport class SwapConfirmMasterPasswordComponent {\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n\n data: { proposalDetails: ProposalDetails } = inject(DIALOG_DATA);\n\n dialogRef = inject(DialogRef);\n}\n","
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { SwapConfirmMasterPasswordComponent } from '../../modals/swap-confirm-master-password/swap-confirm-master-password.component';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\n\n@Component({\n selector: 'app-confirm-swap',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n IntToMoneyPipeModule,\n GetAssetInfoPipe,\n ],\n templateUrl: './confirm-swap.component.html',\n styleUrls: ['./confirm-swap.component.scss'],\n})\nexport class ConfirmSwapComponent implements OnInit, OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n errorRpc: { code: number; message: string } | undefined;\n\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n proposalDetails: ProposalDetails | undefined;\n\n hex_raw_proposal: string | undefined;\n\n private backendService = inject(BackendService);\n\n private router = inject(Router);\n\n private ngZone = inject(NgZone);\n\n private dialog = inject(Dialog);\n\n private destroy$ = new Subject();\n\n ngOnInit(): void {\n this.form.controls.hex_raw_proposal.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(500), takeUntil(this.destroy$))\n .subscribe({\n next: (hex_raw_proposal: string) => {\n this.hex_raw_proposal = hex_raw_proposal;\n this.getProposalDetails(hex_raw_proposal);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n swapConfirmMasterPasswordDialog(): void {\n const proposalDetails = this.proposalDetails;\n const config: DialogConfig = {\n data: {\n proposalDetails,\n },\n disableClose: true,\n width: '54rem',\n maxHeight: '90vh',\n };\n this.dialog\n .open(SwapConfirmMasterPasswordComponent, config)\n .closed.pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.acceptProposal(),\n });\n }\n\n acceptProposal(): void {\n if (!this.hex_raw_proposal) {\n return;\n }\n const { wallet_id } = this.variablesService.currentWallet;\n const hex_raw_proposal = this.hex_raw_proposal;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_accept_proposal',\n params: { hex_raw_proposal },\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n if (response_data.result?.['result_tx_id']) {\n this.router.navigate(['/wallet/history']).then();\n } else {\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n\n private getProposalDetails(hex_raw_proposal: string): void {\n const { wallet_id } = this.variablesService.currentWallet;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_get_proposal_info',\n params: { hex_raw_proposal },\n };\n\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n const proposal = response_data?.result?.['proposal'];\n if (proposal) {\n this.proposalDetails = proposal;\n this.errorRpc = undefined;\n } else {\n this.proposalDetails = undefined;\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n\n
\n \n\n \n {{ 'CONFIRM_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n\n
\n Error code: {{ errorRpc.code }}
\n Error message: {{ errorRpc.message || 'hex_raw_proposal not decoded' }}\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { AbstractControl, FormBuilder, FormControl, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport {\n IntToMoneyPipe,\n IntToMoneyPipeModule,\n MoneyToIntPipe,\n MoneyToIntPipeModule,\n ShortStringPipe\n} from '@parts/pipes';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { delay, filter, map, retry, startWith, take, takeUntil, tap } from 'rxjs/operators';\nimport { Aliases } from '@api/models/alias.model';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { BigNumber } from 'bignumber.js';\nimport { assetHasNotBeenAddedToWallet, insuficcientFunds } from '@parts/utils/zano-errors';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { Wallet } from '@api/models/wallet.model';\n\n@Component({\n selector: 'app-create-swap',\n standalone: true,\n imports: [\n CommonModule,\n RouterLinkWithHref,\n TranslateModule,\n BreadcrumbsComponent,\n InputValidateModule,\n ReactiveFormsModule,\n DefaultImgModule,\n NgSelectModule,\n LowerCaseDirective,\n ShortStringPipe,\n FormsModule,\n IntToMoneyPipeModule,\n MoneyToIntPipeModule,\n LoaderComponent,\n ],\n templateUrl: './create-swap.component.html',\n styleUrls: ['./create-swap.component.scss'],\n})\nexport class CreateSwapComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n variablesService = inject(VariablesService);\n\n fb = inject(FormBuilder);\n\n aliasAddress: string;\n\n loading$ = new BehaviorSubject(false);\n\n isWrapShown = false;\n\n aliases$ = new BehaviorSubject([]);\n\n isVisibleDropdownAliases$ = new BehaviorSubject(false);\n\n isVisibleDropdownAliasesObservable$ = this.isVisibleDropdownAliases$.pipe(delay(150));\n\n lowerCaseDisabled$ = new BehaviorSubject(true);\n\n intToMoneyPipe = inject(IntToMoneyPipe);\n\n moneyToIntPipe = inject(MoneyToIntPipe);\n\n wrapInfoService = inject(WrapInfoService);\n\n wrapInfo: WrapInfo;\n\n errorRpc: { code: number; message: string } = null;\n\n private backendService = inject(BackendService);\n\n private ngZone = inject(NgZone);\n\n private router = inject(Router);\n\n private destroy$ = new Subject();\n\n private moneyToInt = inject(MoneyToIntPipe);\n\n currentWallet: Wallet = this.variablesService.currentWallet;\n\n allAssetsInfo = this.currentWallet.allAssetsInfo;\n\n form = this.fb.group(\n {\n sending: this.fb.group({\n amount: this.fb.control(null, {\n validators: [\n Validators.required,\n Validators.min(0.000000000001),\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n const bigAmount = this.moneyToInt.transform(control.value) as BigNumber;\n if (this.isWrapShown) {\n if (!this.wrapInfo) {\n return { wrap_info_null: true };\n }\n if (bigAmount.isGreaterThan(new BigNumber(this.wrapInfo.unwraped_coins_left))) {\n return { great_than_unwraped_coins: true };\n }\n if (bigAmount.isLessThan(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20))) {\n return { less_than_zano_needed: true };\n }\n }\n return null;\n },\n (control: FormControl): ValidationErrors | null => {\n const asset_id = this.form?.controls.sending.controls.asset_id.value;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const unlocked = +this.intToMoneyPipe.transform(asset.unlocked);\n return +control.value > unlocked ? { insuficcientFunds } : null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }),\n asset_id: this.fb.control(zanoAssetInfo.asset_id, [Validators.required]),\n }),\n receiving: this.fb.group({\n amount: this.fb.control({ value: null, disabled: this.currentWallet.isEmptyAssetsInfoWhitelist }, [Validators.required, Validators.min(0.000000000001)]),\n asset_id: this.fb.control({\n value: this.currentWallet.isEmptyAssetsInfoWhitelist ? null : (this.allAssetsInfo[1].asset_id ?? zanoAssetInfo.asset_id),\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist\n }, [Validators.required]),\n }),\n receiverAddress: this.fb.control('', [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this.backendService.validateAddress(control.value, (valid_status, data) => {\n this.ngZone.run(() => {\n this.isWrapShown = data.error_code === 'WRAP';\n if (valid_status === false && !this.isWrapShown) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this.backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this.ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ]),\n },\n {\n validators: [\n (control: AbstractControl): ValidationErrors | null => {\n const condition = control.get('sending').get('asset_id').value === control.get('receiving').get('asset_id').value;\n if (condition) {\n control.get('receiving').get('asset_id').setErrors({ sameAssetsId: true });\n } else {\n control.get('receiving').get('asset_id').setErrors(null);\n }\n return null;\n },\n ],\n }\n );\n\n sendingAssetsInfo$: Observable;\n\n receivingAssetsInfo$: Observable;\n\n ngOnInit(): void {\n this.getWrapInfo();\n this.getAliases();\n this.setSendingAssetIdFromHistoryState();\n\n this.sendingAssetsInfo$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map((asset_id) => this.allAssetsInfo.filter((v) => v.asset_id !== asset_id))\n );\n this.receivingAssetsInfo$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map((asset_id) => this.allAssetsInfo.filter((v) => v.asset_id !== asset_id))\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n reverse(): void {\n const { sending, receiving } = this.form.getRawValue();\n\n const markAllAsTouched = () => {\n this.form.controls.sending.markAllAsTouched();\n this.form.controls.receiving.markAllAsTouched();\n };\n\n markAllAsTouched();\n\n this.form.patchValue({\n sending: receiving,\n receiving: sending,\n });\n this.form.controls.sending.controls.amount.updateValueAndValidity();\n this.form.controls.receiving.controls.amount.updateValueAndValidity();\n }\n\n getReceivedValue(): number | BigNumber {\n const amount = this.moneyToInt.transform(this.form.getRawValue().receiving.amount);\n const needed = new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20);\n if (amount && needed) {\n return (amount as BigNumber).minus(needed);\n }\n return 0;\n }\n\n inputListenReceiverAddressField(event: any): void {\n const {\n target: { value },\n } = event;\n of((value ?? '') as string)\n .pipe(\n tap(v => this.lowerCaseDisabled$.next(v.indexOf('@') !== 0)),\n tap(v => this.isVisibleDropdownAliases$.next(!!v.length && v.indexOf('@') === 0)),\n filter(v => v.indexOf('@') === 0),\n take(1)\n )\n .subscribe({\n next: v => {\n const filteredAliases = this.variablesService.aliases.filter(({ name }) => {\n return name.indexOf(v) > -1;\n });\n this.aliases$.next(filteredAliases);\n },\n });\n }\n\n pasteListenReceiverAddressField(event: any): void {\n event.preventDefault();\n const { clipboardData } = event;\n let value = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n this.form.controls.receiverAddress.patchValue(value);\n }\n\n beforeSubmit(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return;\n }\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { sending, receiving, receiverAddress } = this.form.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const { default_fee_big } = this.variablesService;\n const params1: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'mw_select_wallet',\n params: { wallet_id },\n };\n const params2: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_generate_proposal',\n params: {\n proposal: {\n to_finalizer: [\n {\n asset_id: sending.asset_id,\n amount: this.moneyToIntPipe.transform(sending.amount),\n },\n ],\n to_initiator: [\n {\n asset_id: receiving.asset_id,\n amount: this.moneyToIntPipe.transform(receiving.amount),\n },\n ],\n mixins: 10,\n fee_paid_by_a: default_fee_big,\n expiration_time: 0,\n },\n },\n };\n\n if (receiverAddress.indexOf('@') === 0) {\n const aliasName = receiverAddress;\n const alias = this.aliases$.value.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.receiverAddress.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n params2.params['destination_address'] = alias.address;\n } else {\n params2.params['destination_address'] = receiverAddress;\n }\n\n this.backendService.call_wallet_rpc([wallet_id, params2], (status, response_data) => {\n if (response_data?.result) {\n this.ngZone.run(() => {\n this.router\n .navigateByUrl('/wallet/swap-proposal-hex', {\n state: {\n hex_raw_proposal: response_data.result['hex_raw_proposal'],\n },\n })\n .then();\n });\n } else {\n this.ngZone.run(() => {\n this.errorRpc = response_data.error;\n this.loading$.next(false);\n });\n }\n });\n }\n\n private setSendingAssetIdFromHistoryState(): void {\n const state = history.state || {};\n const asset: AssetBalance = state['asset'];\n if (asset) {\n const {\n asset_info: { asset_id },\n } = asset;\n this.form.patchValue({\n sending: {\n asset_id,\n },\n });\n }\n }\n\n private getAliases(): void {\n const { aliases } = this.variablesService;\n this.aliases$.next(aliases);\n }\n\n private getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loading$.next(true)),\n retry(5),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: value => {\n this.wrapInfo = value;\n this.loading$.next(false);\n },\n error: () => {\n this.loading$.next(false);\n },\n });\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.WRAP_INFO_NULL' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ form.controls.sending.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ form.controls.sending.controls.amount.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n
\n
\n \n\n
\n \n
\n\n \n
\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n \n
\n {{ 'CREATE_SWAP.FORM.ERRORS.ERROR1' | translate }}\n
\n
\n \n \n \n\n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : 3 }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n\n
\n \n \n\n \n \n \n
\n = 2 && alias.name.length <= 6\"\n [class.pl-1]=\"alias.name.length > 6\"\n class=\"alias\"\n >\n
{{ alias.name }}
\n
\n
\n \n \n
Not found aliases
\n
\n \n \n\n \n
\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n \n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n\n
\n \n {{ 'CREATE_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n
\n\n
\n Error code: {{ errorRpc.code }}
\n Error message: {{ errorRpc.message || 'hex_raw_proposal not created' }}\n
\n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\nimport { Observable } from 'rxjs';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\n\n@Component({\n selector: 'app-swap-proposal-hex',\n standalone: true,\n imports: [CommonModule, BreadcrumbsComponent, RouterLinkWithHref, InputValidateModule, TranslateModule, ReactiveFormsModule],\n templateUrl: './swap-proposal-hex.component.html',\n styleUrls: ['./swap-proposal-hex.component.scss'],\n})\nexport class SwapProposalHexComponent implements OnInit, IDeactivateComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM1',\n },\n {\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM2',\n },\n ];\n\n copyAnimation = false;\n\n copyAnimationTimeout: any;\n\n fb = inject(FormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n private backendService = inject(BackendService);\n\n private dialog = inject(Dialog);\n\n ngOnInit(): void {\n this.setSwapProposalHexFromHistoryState();\n }\n\n copy(): void {\n const { hex_raw_proposal } = this.form.getRawValue();\n this.backendService.setClipboard(hex_raw_proposal);\n this.copyAnimation = true;\n this.copyAnimationTimeout = setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n\n canExit(): Observable | Promise | boolean {\n const dialogConfig: DialogConfig = {\n disableClose: true,\n data: {\n title: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.TITLE',\n message: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.MESSAGE',\n buttons: {\n submit: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.SUBMIT',\n close: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.CLOSE',\n },\n },\n };\n const dialogRef = this.dialog.open(ConfirmModalComponent, dialogConfig);\n return dialogRef.closed;\n }\n\n private setSwapProposalHexFromHistoryState(): void {\n const historyState = history.state || {};\n const hex_raw_proposal = historyState['hex_raw_proposal'];\n if (hex_raw_proposal) {\n this.form.controls.hex_raw_proposal.patchValue(hex_raw_proposal, { emitEvent: false });\n }\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n\n \n {{ 'SWAP_PROPOSAL_HEX.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-swap',\n standalone: true,\n imports: [CommonModule, FlexModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './swap.component.html',\n styleUrls: ['./swap.component.scss'],\n})\nexport class SwapComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwapProposalHexGuard implements CanDeactivate {\n canDeactivate(\n component: IDeactivateComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable | Promise | boolean | UrlTree {\n return component.canExit ? component.canExit() : true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { paths, pathsChildrenWallet } from '../paths';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WithSidebarLayoutComponent } from '../../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { ConfirmSwapComponent } from './tabs/swap/pages/confirm-swap/confirm-swap.component';\nimport { SwapComponent } from './tabs/swap/pages/swap/swap.component';\nimport { CreateSwapComponent } from './tabs/swap/pages/create-swap/create-swap.component';\nimport { SwapProposalHexComponent } from './tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component';\nimport { SwapProposalHexGuard } from './tabs/swap/parts/guards/swap-proposal-hex.guard';\n\nconst routes: Routes = [\n {\n path: paths.wallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletComponent,\n children: [\n {\n path: pathsChildrenWallet.assets,\n component: AssetsComponent,\n },\n {\n path: pathsChildrenWallet.send,\n component: SendComponent,\n },\n {\n path: pathsChildrenWallet.receive,\n component: ReceiveComponent,\n },\n {\n path: pathsChildrenWallet.history,\n component: HistoryComponent,\n },\n {\n path: pathsChildrenWallet.staking,\n component: StakingComponent,\n },\n {\n path: 'swap',\n component: SwapComponent,\n },\n {\n path: 'create-swap',\n component: CreateSwapComponent,\n },\n {\n path: 'swap-proposal-hex',\n component: SwapProposalHexComponent,\n canDeactivate: [SwapProposalHexGuard],\n },\n {\n path: 'confirm-swap',\n component: ConfirmSwapComponent,\n },\n {\n path: '',\n redirectTo: pathsChildrenWallet.assets,\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class WalletRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WalletRoutingModule } from './wallet-routing.module';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport {\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule, ShortStringPipe,\n} from '@parts/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { ExportHistoryModalModule } from './wallet/modals/export-history-modal/export-history-modal.module';\nimport { WalletDetailsComponent } from '../wallet-details/wallet-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { ChartModule } from 'angular-highcharts';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ExportImportComponent } from '../export-import/export-import.component';\nimport { AssetDetailsModule } from '@parts/modals/asset-details/asset-details.module';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { TransactionDetailsComponent } from '@parts/components/transaction-details.component';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { WalletModalsModule } from './tabs/send/modals/wallet-modals.module';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\n\n@NgModule({\n declarations: [\n WalletComponent,\n AssetsComponent,\n WalletDetailsComponent,\n HistoryComponent,\n StakingComponent,\n ReceiveComponent,\n ExportImportComponent,\n SendComponent,\n ],\n imports: [\n CommonModule,\n WalletRoutingModule,\n FlexModule,\n TooltipModule,\n ShortStringPipe,\n TranslateModule,\n IsAvailableAliasNamePipeModule,\n ConfirmModalModule,\n ExportHistoryModalModule,\n ReactiveFormsModule,\n OverlayModule,\n DefaultImgModule,\n NgxPaginationModule,\n SwitchComponent,\n ChartModule,\n NgSelectModule,\n FormsModule,\n FlexLayoutModule,\n StakingSwitchComponent,\n DialogModule,\n IntToMoneyPipeModule,\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n InputValidateModule,\n CheckboxComponent,\n AssetDetailsModule,\n CopyButtonComponent,\n TransactionDetailsComponent,\n LowerCaseDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n WalletModalsModule,\n GetAssetInfoPipe,\n ],\n})\nexport class WalletModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { AssetBalance, ParamsAddCustomAssetId } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { wrongAssetId } from '@parts/utils/zano-errors';\nimport { BehaviorSubject } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoaderComponent } from '@parts/components/loader.component';\n\n@Component({\n selector: 'app-add-custom-token',\n standalone: true,\n template: `\n \n
\n

\n {{ 'WALLET.MODAL_ADD_CUSTOM_TOKEN.TITLE' | translate }}\n

\n\n
\n \n \n \n
{{ 'WALLET.MODAL_ADD_CUSTOM_TOKEN.FORM_ERRORS.ERROR1' | translate }}
\n
\n {{ formGroup.get('asset_id').errors['wrongAssetId'].errorText | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n \n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n imports: [CommonModule, FlexModule, TranslateModule, ReactiveFormsModule, LoaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AddCustomTokenComponent {\n private fb = inject(NonNullableFormBuilder);\n\n private cdr = inject(ChangeDetectorRef);\n\n loading$ = new BehaviorSubject(false);\n\n formGroup = this.fb.group<{ asset_id: FormControl }>({\n asset_id: this.fb.control('', Validators.compose([Validators.required, ZanoValidators.hash, Validators.maxLength(64)])),\n });\n\n constructor(\n public variablesService: VariablesService,\n public backendService: BackendService,\n private walletsService: WalletsService,\n private dialogRef: DialogRef\n ) {}\n\n beforeSubmit(): void {\n if (this.formGroup.invalid) {\n this.formGroup.markAsTouched();\n this.formGroup.updateValueAndValidity();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { asset_id } = this.formGroup.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const params: ParamsAddCustomAssetId = {\n asset_id,\n wallet_id,\n };\n this.backendService.addCustomAssetId(params, (status, { asset_descriptor }) => {\n if (status) {\n const asset: AssetBalance = {\n asset_info: {\n ...asset_descriptor,\n asset_id,\n },\n awaiting_in: 0,\n awaiting_out: 0,\n total: 0,\n unlocked: 0,\n };\n this.walletsService.updateWalletInfo(wallet_id);\n this.dialogRef.close(asset);\n } else {\n this.formGroup.controls.asset_id.setErrors({\n wrongAssetId,\n });\n this.loading$.next(false);\n this.cdr.detectChanges();\n }\n });\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DialogRef } from '@angular/cdk/dialog';\n\n@Component({\n selector: 'app-export-history-modal',\n template: `\n \n
\n

\n {{ 'EXPORT_HISTORY.TITLE' | translate }}\n

\n\n
\n
\n \n \n \n {{ item.formatName }}\n \n \n {{ item.formatName }}\n \n \n
\n\n
\n {{ 'EXPORT_HISTORY.FILTER' | translate }}\n \n
\n
\n\n
\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class ExportHistoryModalComponent {\n posFilterIsOn = true;\n\n currentFormat: string;\n\n exportData = {\n wallet_id: 0,\n include_pos_transactions: false,\n path: 'C:\\\\some_file.txt',\n format: 'json',\n };\n\n exportFormats = [\n {\n format: 'json',\n formatName: 'JSON',\n },\n {\n format: 'text',\n formatName: 'Text',\n },\n {\n format: 'csv',\n formatName: 'CSV',\n },\n ];\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private translate: TranslateService,\n private dialogRef: DialogRef\n ) {\n this.currentFormat = this.exportFormats[0].format;\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n\n confirmExport(): void {\n this.exportData.format = `${this.currentFormat}`;\n this.exportData.wallet_id = this.variablesService.currentWallet.wallet_id;\n this.exportData.include_pos_transactions = this.posFilterIsOn;\n\n this.backend.saveFileDialog(\n this.translate.instant('EXPORT_HISTORY.SAVED_FILE'),\n `${this.exportData.format}`,\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (this.exportData.format === 'text') {\n this.exportData.path = file_data.path + '.txt';\n } else {\n this.exportData.path = file_data.path + `.${this.exportData.format}`;\n }\n if (file_status) {\n this.backend.exportWalletHistory(JSON.stringify(this.exportData));\n this.closeModal();\n }\n }\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ExportHistoryModalComponent } from './export-history-modal.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\n\n@NgModule({\n declarations: [ExportHistoryModalComponent],\n exports: [ExportHistoryModalComponent],\n imports: [CommonModule, TranslateModule, FlexModule, SwitchComponent, CheckboxComponent, NgSelectModule, FormsModule],\n})\nexport class ExportHistoryModalModule {}\n","import { Component, HostListener, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Subject, take } from 'rxjs';\nimport { StateKeys, Store, Sync } from '@store/store';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { ExportHistoryModalComponent } from './modals/export-history-modal/export-history-modal.component';\nimport { AddCustomTokenComponent } from './modals/add-custom-token/add-custom-token.component';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router,\n RouterEvent\n} from '@angular/router';\n\ninterface Tab {\n id: string;\n title: string;\n icon: string;\n link: string;\n disabled: boolean;\n hidden: boolean;\n indicator?: boolean;\n}\n\ntype TabNameKeys = 'assets' | 'history' | 'send' | 'receive' | 'swap' | 'staking';\n\nconst objTabs: { [key in TabNameKeys]: Tab } = {\n assets: {\n id: 'assets',\n title: 'WALLET.TABS.ASSETS',\n icon: 'balance-icon',\n link: '/assets',\n disabled: false,\n hidden: false\n },\n history: {\n id: 'history',\n title: 'WALLET.TABS.HISTORY',\n icon: 'time-circle',\n link: '/history',\n disabled: false,\n hidden: false\n },\n send: {\n id: 'send',\n title: 'WALLET.TABS.SEND',\n icon: 'arrow-up-square',\n link: '/send',\n disabled: false,\n hidden: false\n },\n receive: {\n id: 'receive',\n title: 'WALLET.TABS.RECEIVE',\n icon: 'arrow-down-square',\n link: '/receive',\n disabled: false,\n hidden: false\n },\n swap: {\n id: 'swap',\n title: 'Swap',\n icon: 'swap',\n link: '/swap',\n disabled: false,\n hidden: true\n },\n // TODO: https://github.com/hyle-team/zano/issues/374\n // contract: {\n // title: 'WALLET.TABS.CONTRACTS',\n // icon: 'document',\n // link: '/contracts',\n // disabled: false,\n // hidden: false\n // },\n staking: {\n id: 'staking',\n title: 'WALLET.TABS.STAKING',\n icon: 'staking',\n link: '/staking',\n indicator: false,\n disabled: false,\n hidden: false\n },\n};\n\n@Component({\n selector: 'app-wallet',\n template: `\n
\n
\n
\n
\n

\n {{ variablesService.currentWallet.address | zanoShortString }}\n

\n\n \n \n\n \n \n \n \n\n \n
\n {{ variablesService.currentWallet.alias.name }}\n
\n\n \n \n \n \n\n \n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n\n \n
\n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.WALLET_OPTIONS' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.ADD_CUSTOM_TOKEN' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'EXPORT_HISTORY.EXPORT_BUTTON' | translate }}\n \n
  • \n \n
  • \n \n {{ 'WALLET_DETAILS.RESYNC_WALLET_BUTTON' | translate }}\n \n
  • \n
    \n
  • \n \n {{ 'WALLET_DETAILS.BUTTON_REMOVE' | translate }}\n \n
  • \n
\n
\n \n\n
\n
\n \n \n \n \n \n
\n
\n
\n \n
\n
\n

\n {{ 'Loading...' | translate }}\n

\n
\n
\n
\n
\n `,\n})\nexport class WalletComponent implements OnInit, OnDestroy {\n settingsButtonInterval;\n\n settingsButtonDisabled = true;\n\n walletLoaded = false;\n\n openDropdown: boolean;\n\n walletSyncVisible = false;\n\n tabs: Tab[] = [];\n\n private destroy$ = new Subject();\n\n loader = true;\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private store: Store,\n private dialog: Dialog,\n private walletsService: WalletsService,\n private router: Router\n ) {\n if (!this.variablesService.currentWallet && this.variablesService.wallets.length > 0) {\n this.variablesService.setCurrentWallet(0);\n }\n this.walletLoaded = this.variablesService.currentWallet.loaded;\n\n this.variablesService.currentWalletChangedEvent\n .pipe(\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: (wallet: Wallet) => {\n this.createTabs(wallet);\n const disabled = !wallet.loaded;\n this.setDisabledTabs(['send', 'swap', 'staking'], disabled);\n\n this.variablesService.is_hardfok_active$.pipe(\n take(1)\n ).subscribe({\n next: (value) => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n }\n });\n },\n });\n\n this.variablesService.is_hardfok_active$.pipe(\n takeUntil(this.destroy$)\n ).subscribe({\n next: (value) => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n }\n });\n\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((e: RouterEvent) => {\n this.navigationInterceptor(e);\n });\n }\n\n navigationInterceptor(event: RouterEvent): void {\n if (event instanceof NavigationStart) {\n this.loader = true;\n }\n if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationCancel) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationError) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n\n }\n\n createTabs({ is_auditable, is_watch_only }: Wallet): void {\n const conditionForHiding: boolean = !is_auditable || !is_watch_only;\n const tabs: Array = [];\n\n tabs.push(objTabs.assets);\n tabs.push(objTabs.history);\n\n if (conditionForHiding) {\n tabs.push(objTabs.send);\n }\n\n tabs.push(objTabs.receive);\n\n if (conditionForHiding) {\n tabs.push(objTabs.swap);\n }\n\n tabs.push(objTabs.staking);\n\n this.tabs = tabs;\n }\n\n @HostListener('document:keydown.shift', ['$event.key'])\n onKeyPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event.key'])\n onKeyUpPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = false;\n }\n }\n\n ngOnInit(): void {\n this.settingsButtonInterval = setInterval(() => {\n // tslint:disable-next-line:triple-equals\n if (this.variablesService.daemon_state == 2 || this.walletLoaded) {\n this.settingsButtonDisabled = false;\n clearInterval(this.settingsButtonInterval);\n }\n }, 1000);\n this.store\n .select(StateKeys.sync)\n .pipe(filter(Boolean), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe({\n next: (value: any) => {\n const data = value.filter((item: Sync) => item.wallet_id === this.variablesService.currentWallet.wallet_id)[0];\n if (data && !data.sync) {\n let in_progress;\n const values = this.store.state.sync;\n if (values && values.length > 0) {\n in_progress = values.filter(item => item.sync);\n this.variablesService.sync_started = !!(in_progress && in_progress.length);\n if (!in_progress) {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n } else {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n }\n },\n });\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n this.variablesService.getAliasChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n },\n });\n this.updateWalletStatus();\n }\n\n toggleMenuDropdown(): void {\n if (!this.openDropdown) {\n this.openDropdown = true;\n } else {\n this.openDropdown = false;\n this.walletSyncVisible = false;\n }\n }\n\n resyncCurrentWallet(wallet_id: number): void {\n this.backend.resyncWallet(wallet_id);\n }\n\n close(wallet_id: number): void {\n const dialogConfig: DialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed\n .pipe(\n filter(Boolean),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: () => {\n this.walletsService.closeWallet(wallet_id);\n },\n });\n }\n\n addCustomToken(): void {\n this.dialog\n .open(AddCustomTokenComponent)\n .closed.pipe(\n filter(response_data => Boolean(response_data)),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: asset => {\n const dialogConfig: DialogConfig = {\n data: {\n asset,\n title: 'You added new asset',\n },\n };\n this.ngZone.run(() => {\n this.dialog.open(AssetDetailsComponent, dialogConfig);\n });\n },\n });\n }\n\n exportHistory(): void {\n this.dialog.open(ExportHistoryModalComponent);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateWalletStatus(): void {\n this.backend.eventSubscribe(Commands.wallet_sync_progress, data => {\n const wallet_id = data.wallet_id;\n if (wallet_id === this.variablesService.currentWallet.wallet_id) {\n this.ngZone.run(() => {\n this.walletLoaded = false;\n });\n }\n });\n this.backend.eventSubscribe(Commands.update_wallet_status, data => {\n const wallet_state = data.wallet_state;\n const wallet_id = data.wallet_id;\n this.ngZone.run(() => {\n if (wallet_id !== this.variablesService.currentWallet.wallet_id) {\n return;\n }\n\n if (wallet_state === 2) {\n this.walletLoaded = true;\n this.setDisabledTabs(['send', 'swap', 'staking'], false);\n } else {\n this.walletLoaded = false;\n this.setDisabledTabs(['send', 'swap', 'staking'], true);\n }\n });\n });\n }\n\n setHiddenTabs(ids: string[], hidden: boolean): void {\n this.tabs\n .forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.hidden = hidden;\n }\n });\n }\n\n setDisabledTabs(ids: string[], disabled: boolean): void {\n this.tabs\n .forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.disabled = disabled;\n }\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonModule } from '@parts/directives/back-button/back-button.module';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, BackButtonModule],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {}\n","\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-breadcrumbs',\n standalone: true,\n imports: [CommonModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n})\nexport class BreadcrumbsComponent {\n @Input() items: BreadcrumbItems = [];\n}\n","
\n
\n \n {{ item.title | translate }}\n \n\n \n {{ item.title | translate }}\n \n
\n
\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-checkbox',\n template: `\n
\n \n \n
\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() label = '';\n\n @Input() id = 'id-' + Math.random();\n\n @Input() disabled = false;\n\n @Input() readonly = false;\n\n @Output() emitChange = new EventEmitter();\n\n onChange!: (value: boolean) => void;\n\n onTouched!: () => void;\n\n handlerChange({ target }: Event): void {\n const { checked } = target as HTMLInputElement;\n this.value = checked;\n this.emitChange.emit(checked);\n if (this.onChange) {\n this.onChange(checked);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-copy-button',\n template: `\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CopyButtonComponent {\n @Input() value: string;\n\n @Input() size: 'small' | 'big' = 'small';\n\n copyAnimation = false;\n\n copyAnimationTimeout;\n\n constructor(private backend: BackendService, public variablesService: VariablesService) {}\n\n copy(): void {\n this.backend.setClipboard(this.value || '');\n this.copyAnimation = true;\n this.copyAnimationTimeout = window.setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\n\ntype LoaderType = 'circle' | 'circle-2' | 'circle-3' | 'dots' | 'dots-2' | 'pulse';\n\n@Component({\n selector: 'zano-loader',\n standalone: true,\n template: `\n \n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n `,\n styles: [\n `\n /* Loader 1 */\n .loader-1 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-1-1 4.8s linear infinite;\n animation: loader-1-1 4.8s linear infinite;\n }\n\n @-webkit-keyframes loader-1-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-1-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-1 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n -webkit-animation: loader-1-2 1.2s linear infinite;\n animation: loader-1-2 1.2s linear infinite;\n }\n\n @-webkit-keyframes loader-1-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(220deg);\n }\n }\n\n @keyframes loader-1-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(220deg);\n }\n }\n\n .loader-1 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n border: 3px solid #fff;\n border-radius: 50%;\n -webkit-animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-1-3 {\n 0% {\n -webkit-transform: rotate(-140deg);\n }\n 50% {\n -webkit-transform: rotate(-160deg);\n }\n 100% {\n -webkit-transform: rotate(140deg);\n }\n }\n\n @keyframes loader-1-3 {\n 0% {\n transform: rotate(-140deg);\n }\n 50% {\n transform: rotate(-160deg);\n }\n 100% {\n transform: rotate(140deg);\n }\n }\n\n /* Loader 2 */\n .loader-2 {\n display: block;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-2-1 3s linear infinite;\n animation: loader-2-1 3s linear infinite;\n }\n\n @-webkit-keyframes loader-2-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(16px, 32px, 32px, 0);\n -webkit-animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid transparent;\n border-top: 3px solid #fff;\n border-radius: 50%;\n -webkit-animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-3 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-3 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid rgba(255, 255, 255, 0.5);\n border-radius: 50%;\n }\n\n /* Loader 3 */\n .loader-3 {\n display: block;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid #fff;\n border-bottom: 3px solid transparent;\n border-radius: 50%;\n -webkit-animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 40% {\n -webkit-transform: rotate(180deg);\n }\n 60% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-3-1 {\n 0% {\n transform: rotate(0deg);\n }\n 40% {\n transform: rotate(180deg);\n }\n 60% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-3 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 6px;\n height: 6px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-2 {\n 0% {\n -webkit-transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n @keyframes loader-3-2 {\n 0% {\n transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n /* Loader 4 */\n .loader-4 {\n height: 32px;\n width: 32px;\n }\n\n .loader-4::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-1 {\n 0% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n 50% {\n -webkit-transform: scale(1);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n }\n\n @keyframes loader-4-1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n }\n\n .loader-4 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 50% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-4-2 {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-4 span::before,\n .loader-4 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 12px;\n width: 12px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-4 span::after {\n -webkit-animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 5 */\n .loader-5 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-5-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-5::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: auto;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: auto;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-5 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: auto;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span::after {\n content: '';\n display: block;\n position: absolute;\n top: auto;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-5 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-5 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 6 */\n .loader-6 {\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span::before,\n .loader-6 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 2px solid #fff;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n }\n\n @-webkit-keyframes loader-6-1 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-1 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n .loader-6 span::after {\n -webkit-animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n }\n\n @-webkit-keyframes loader-6-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n `,\n ],\n imports: [NgSwitch, NgSwitchCase, NgSwitchDefault],\n})\nexport class LoaderComponent {\n @Input()\n type: LoaderType = 'circle';\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ContextMenuComponent, ContextMenuModule, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-register-context-templates',\n template: ` \n {{ 'CONTEXT_MENU.COPY' | translate }}\n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n \n \n {{ 'CONTEXT_MENU.COPY' | translate }}\n \n\n \n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n `,\n standalone: true,\n imports: [CommonModule, ContextMenuModule, TranslateModule],\n providers: [ContextMenuService],\n})\nexport class RegisterContextTemplatesComponent implements OnInit {\n @ViewChild('allContextMenu', { static: true })\n public allContextMenu: ContextMenuComponent;\n\n @ViewChild('onlyCopyContextMenu', { static: true })\n public onlyCopyContextMenu: ContextMenuComponent;\n\n @ViewChild('pasteSelectContextMenu', { static: true })\n public pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n ngOnInit(): void {\n this.variablesService.allContextMenu = this.allContextMenu;\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\n this.variablesService.pasteSelectContextMenu = this.pasteSelectContextMenu;\n }\n\n contextMenuCopy(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const canUseSelection = target[start] || target[start] === '0';\n const SelectedText = canUseSelection ? target['value'].substring(target[start], target[end]) : target['value'];\n this.backendService.setClipboard(String(SelectedText));\n }\n }\n\n contextMenuOnlyCopy(text): void {\n if (text) {\n this.backendService.setClipboard(String(text));\n }\n }\n\n contextMenuPaste(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n this.backendService.getClipboard((status, clipboard) => {\n clipboard = String(clipboard);\n if (typeof clipboard !== 'string' || clipboard.length) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const _pre = target['value'].substring(0, target[start]);\n const _aft = target['value'].substring(target[end], target['value'].length);\n let text = _pre + clipboard + _aft;\n const cursorPosition = (_pre + clipboard).length;\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\n text = text.substr(0, parseInt(target['maxLength'], 10));\n }\n target['value'] = text;\n target.setSelectionRange(cursorPosition, cursorPosition);\n target.dispatchEvent(new Event('input'));\n target['focus']();\n }\n });\n }\n }\n\n contextMenuSelect(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n target['focus']();\n setTimeout(() => {\n target['select']();\n });\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-staking-switch',\n template: `\n
\n \n
\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class StakingSwitchComponent {\n @Input() wallet_id: number;\n\n @Input() staking: boolean;\n\n @Output() stakingChange = new EventEmitter();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService) {}\n\n toggleStaking(): void {\n const wallet = this.variablesService.getWallet(this.wallet_id);\n if (wallet && wallet.loaded) {\n this.stakingChange.emit(!this.staking);\n if (!this.staking) {\n this.backendService.startPosMining(this.wallet_id);\n } else {\n this.backendService.stopPosMining(this.wallet_id);\n }\n }\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-switch',\n template: `\n \n \n \n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() disabled = false;\n\n @Output() emitChange = new EventEmitter();\n\n onTouched!: () => void;\n\n onChange!: (value: boolean) => void;\n\n toggle(): void {\n if (!this.disabled) {\n this.value = !this.value;\n this.emitChange.emit(this.value);\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component } from '@angular/core';\nimport { VariablesService } from '../services/variables.service';\nimport { DOWNLOADS_PAGE_URL } from '@parts/data/constants';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-synchronization-status',\n template: `\n \n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }}\n {{ variablesService.sync.progress_value_text }}%\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }}\n {{ variablesService.download.progress_value_text }}%\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n
\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n \n\n
\n
\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\n
\n \n
\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class SynchronizationStatusComponent {\n constructor(public variablesService: VariablesService, private backend: BackendService) {}\n\n getUpdate(): void {\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { VariablesService } from '../services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '../data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-transaction-details',\n template: `\n \n \n \n \n \n {{ transaction.tx_hash }}\n \n \n \n \n \n \n \n \n

{{ asset_id }}

\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n {{ transaction.payment_id }}\n \n \n \n \n \n {{ transaction.comment }}\n \n \n \n
{{ 'HISTORY.DETAILS.ID' | translate }}{{ 'HISTORY.DETAILS.SIZE' | translate }}\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : { value: transaction.tx_blob_size } }}\n
{{ 'Asset ID' | translate }}{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\n {{ transaction.height === 0 ? 0 : variablesService.height_app - transaction.height }}\n
{{ 'HISTORY.DETAILS.HEIGHT' | translate }}{{ transaction.height }}
{{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}
{{ 'HISTORY.DETAILS.COMMENT' | translate }}
\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 2rem 0;\n }\n table tbody tr {\n background: none;\n }\n\n table tbody tr td {\n padding: 1rem 2rem;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class TransactionDetailsComponent {\n @Input() transaction: Transaction;\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n\n getAllUniqAssetId(transaction: Transaction): Set {\n const { employed_entries } = transaction;\n const { receive = [], spent = [] } = employed_entries;\n return new Set([...receive, ...spent].map(({ asset_id }) => asset_id));\n }\n\n openInBrowser(tr): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + tr\n );\n }\n}\n","import { Component, EventEmitter, HostBinding, inject, Input, Output } from '@angular/core';\nimport { Wallet } from '@api/models/wallet.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IntToMoneyPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\n\n@Component({\n selector: 'app-wallet-card',\n template: `\n
\n
\n
\n
\n \n {{ wallet.new_contracts }}\n \n\n \n {{ !wallet.alias['name'] ? wallet.name : wallet.alias['name'] }}\n \n
\n
\n
\n \n \n \n
\n
\n\n \n {{ wallet.getMoneyEquivalentForZano(variablesService.moneyEquivalent) | intToMoney | currency : 'USD' || '---' }}\n \n {{ variablesService.moneyEquivalentPercent | number : '1.2-2' }}%\n \n \n\n \n
\n {{ 'SIDEBAR.ACCOUNT.STAKING' | translate }}\n \n
\n
\n\n
\n
\n
\n
\n
{{ wallet.progress }}%
\n
\n
\n `,\n standalone: true,\n imports: [CommonModule, TooltipModule, TranslateModule, IntToMoneyPipeModule, StakingSwitchComponent, DisablePriceFetchModule],\n})\nexport class WalletCardComponent {\n @HostBinding('class') classAttr = 'wallet';\n\n @Input() wallet: Wallet;\n\n @Output() eventClose = new EventEmitter();\n\n constructor(\n public variablesService: VariablesService,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService,\n private backend: BackendService\n ) {}\n\n getBalancesTooltip(): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!this.wallet || !this.wallet.balances) {\n return null;\n }\n const { balances } = this.wallet;\n\n scrollWrapper.classList.add('balance-scroll-list');\n balances.forEach(({ unlocked, total, asset_info: { ticker } }) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${ this.intToMoneyPipe.transform(unlocked) } ${ ticker || '---' }`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${ this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked)) } ${ ticker || '---' }`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backend.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n}\n","import { AssetInfo } from '@api/models/assets.model';\n\nexport const zanoAssetInfo: AssetInfo & { logo: string; price_url: string; } = {\n asset_id: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a',\n current_supply: 0,\n decimal_point: 12,\n full_name: 'Zano',\n logo: 'assets/icons/currency-icons/zano.svg',\n meta_info: '',\n owner: '0000000000000000000000000000000000000000000000000000000000000000',\n price_url: 'https://explorer.zano.org/api/price?asset=zano',\n ticker: 'ZANO',\n total_max_supply: 0,\n};\n\nexport const defaultImgSrc = 'assets/icons/currency-icons/custom_token.svg';\n","export const MIXIN = 10; // default mixin value\nexport const RCV_ADDR_QR_SCALE = 1.5; // scale factor for QR code\n\nexport const AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/auditable-wallets-faq';\nexport const CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/wallets/gui-wallet';\nexport const LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/use/locked-balance';\nexport const DOWNLOADS_PAGE_URL = 'zano.org/downloads';\n\nexport const BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/';\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/';\n","import { ScaleItems } from '@api/models/scale.model';\n\nexport const scaleItems: ScaleItems = [\n {\n value: '8px',\n name: 'SETTINGS.SCALE.75',\n },\n {\n value: '10px',\n name: 'SETTINGS.SCALE.100',\n },\n {\n value: '12px',\n name: 'SETTINGS.SCALE.125',\n },\n {\n value: '14px',\n name: 'SETTINGS.SCALE.150',\n },\n];\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]',\n standalone: true,\n})\nexport class AutoFocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit() {\n setTimeout(() => this.elementRef.nativeElement.focus());\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { NavigationService } from '@parts/services/back.service';\n\n@Directive({\n selector: '[appBackButton]',\n})\nexport class BackButtonDirective {\n constructor(private navigationService: NavigationService) {}\n\n @HostListener('click')\n onClick(): void {\n this.navigationService.back();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonDirective } from './back-button.directive';\n\n@NgModule({\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective],\n imports: [CommonModule],\n})\nexport class BackButtonModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appDefaultImg]',\n})\nexport class DefaultImgDirective {\n @Input() defaultImgSrc!: string | null | undefined;\n @Input() defaultImgAlt: string | null | undefined;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n handlerOnError(): void {\n const elementImg: HTMLImageElement = this.elementRef.nativeElement;\n elementImg.onerror = null;\n elementImg.src = this.defaultImgSrc || '---';\n elementImg.alt = this.defaultImgAlt || '---';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DefaultImgDirective } from './default-img.directive';\n\n@NgModule({\n declarations: [DefaultImgDirective],\n exports: [DefaultImgDirective],\n imports: [CommonModule],\n})\nexport class DefaultImgModule {}\n","export * from './default-img.module';\n","import { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDisablePriceFetch]',\n})\nexport class DisablePriceFetchDirective implements OnDestroy {\n private destroy$: Subject = new Subject();\n\n constructor(\n private _variablesService: VariablesService,\n private _templateRef: TemplateRef,\n private _viewContainer: ViewContainerRef\n ) {\n this._variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: (disable_price_fetch: boolean) => {\n return !disable_price_fetch ? this._viewContainer.createEmbeddedView(this._templateRef) : this._viewContainer.clear();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchDirective } from './disable-price-fetch.directive';\n\n@NgModule({\n declarations: [DisablePriceFetchDirective],\n imports: [CommonModule],\n exports: [DisablePriceFetchDirective],\n})\nexport class DisablePriceFetchModule {}\n","export * from './disable-price-fetch.directive';\nexport * from './disable-price-fetch.module';\n","export * from './default-img';\nexport * from './disable-price-fetch';\nexport * from './input-disable-selection';\nexport * from './input-validate';\nexport * from './tooltip';\nexport * from './lower-case.directive';\n","export * from './input-disable-selection.module';\nexport * from './input-disable-selection.directive';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: 'input',\n})\nexport class InputDisableSelectionDirective {\n @HostListener('mousedown', ['$event'])\n handleInput(event: Event): void {\n if ((event.target).readOnly) {\n event.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputDisableSelectionDirective } from '@parts/directives/input-disable-selection/input-disable-selection.directive';\n\n@NgModule({\n declarations: [InputDisableSelectionDirective],\n exports: [InputDisableSelectionDirective],\n imports: [CommonModule],\n})\nexport class InputDisableSelectionModule {}\n","export * from './input-validate.module';\nexport * from './input-validate.directive';\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\n\n@Directive({\n selector: '[appInputValidate]',\n})\nexport class InputValidateDirective {\n private type: string;\n\n constructor(private el: ElementRef, private variablesService: VariablesService) {}\n\n @Input('appInputValidate')\n public set defineInputType(type: string) {\n this.type = type;\n }\n\n @HostListener('input', ['$event'])\n handleInput(event: Event): void {\n if (this.type === 'money') {\n this.moneyValidation(event);\n } else if (this.type === 'integer') {\n this.integerValidation(event);\n }\n }\n\n private moneyValidation(event: Event): void {\n let currentValue = (event.target).value;\n const originalValue = currentValue;\n // eslint-disable-next-line\n const OnlyD = /[^\\d\\.]/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\n }\n const _double_separator = currentValue.match(/\\./g);\n if (_double_separator && _double_separator.length > 1) {\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\n }\n if (currentValue.indexOf('.') === 0) {\n currentValue = '0' + currentValue;\n }\n const _zero_fill = currentValue.split('.');\n if (_zero_fill[0].length > 7) {\n _zero_fill[0] = _zero_fill[0].substr(0, 7);\n }\n\n if (1 in _zero_fill && _zero_fill[1].length) {\n _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits);\n }\n currentValue = _zero_fill.join('.');\n if (currentValue !== originalValue) {\n (event.target).value = currentValue;\n const cursorPosition = (event.target).selectionEnd;\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\n (event.target).dispatchEvent(new Event('input'));\n }\n }\n\n private integerValidation(event: Event): void {\n let currentValue = (event.target).value;\n const originalValue = currentValue;\n const OnlyD = /\\D/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(OnlyD, '');\n }\n if (currentValue !== originalValue) {\n const cursorPosition = (event.target).selectionEnd;\n (event.target).value = currentValue;\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputValidateDirective } from '@parts/directives/input-validate/input-validate.directive';\n\n@NgModule({\n declarations: [InputValidateDirective],\n exports: [InputValidateDirective],\n imports: [CommonModule],\n})\nexport class InputValidateModule {}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])',\n standalone: true,\n})\nexport class LowerCaseDirective {\n @Input() lowerCaseValue: string;\n\n @Input() lowerCaseDisabled = false;\n\n private getCaret(el) {\n return {\n start: el.selectionStart,\n end: el.selectionEnd,\n };\n }\n\n private setCaret(el, start, end) {\n el.selectionStart = start;\n el.selectionEnd = end;\n\n el.focus();\n }\n\n private dispatchEvent(el, eventType) {\n const event = document.createEvent('Event');\n event.initEvent(eventType, false, false);\n el.dispatchEvent(event);\n }\n\n private convertValue(el, value) {\n el.value = value.toLowerCase();\n\n this.dispatchEvent(el, 'input');\n }\n\n @HostListener('blur', ['$event.target', '$event.target.value'])\n onBlur(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (\n (!this.lowerCaseValue || 'blur' === this.lowerCaseValue) &&\n 'function' === typeof value.toLowerCase &&\n value.toLowerCase() !== value\n ) {\n this.convertValue(el, value);\n this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur\n }\n }\n\n @HostListener('input', ['$event.target', '$event.target.value'])\n onInput(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (!this.lowerCaseValue && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) {\n let { start, end } = this.getCaret(el);\n\n if (value[0] === ' ' && start === 1 && end === 1) {\n start = 0;\n end = 0;\n }\n\n this.convertValue(el, value);\n\n this.setCaret(el, start, end);\n }\n }\n}\n","export * from './tooltip.directive';\nexport * from './tooltip.module';\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[tooltip]',\n})\nexport class TooltipDirective implements OnDestroy {\n @HostBinding('style.cursor') cursor;\n\n @Input('tooltip') tooltipInner: any;\n\n @Input() placement: string;\n\n @Input() tooltipClass: string;\n\n @Input() timeout = 0;\n\n @Input() timeDelay = 0;\n\n @Input() delay = 0;\n\n @Input() showWhenNoOverflow = true;\n\n @Output() eventHide = new EventEmitter();\n\n tooltip: HTMLElement;\n\n removeTooltipTimeout;\n\n removeTooltipTimeoutInner;\n\n removeTooltipTimeDelay;\n\n private enter: (event: MouseEvent) => void;\n\n private leave: (event: MouseEvent) => void;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private sanitizer: DomSanitizer) {}\n\n @HostListener('mouseenter') onMouseEnter(): void {\n if (!this.tooltipInner) {\n return;\n }\n if (\n this.showWhenNoOverflow ||\n (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)\n ) {\n this.cursor = 'pointer';\n if (!this.tooltip) {\n if (this.timeDelay !== 0) {\n this.removeTooltipTimeDelay = setTimeout(() => {\n this.show();\n }, this.timeDelay);\n } else {\n this.show();\n }\n } else {\n this.cancelHide();\n }\n }\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show(): void {\n this.create();\n this.placement = this.placement === null ? 'top' : this.placement;\n this.setPosition(this.placement);\n }\n\n hide(): void {\n this.removeTooltipTimeout = setTimeout(() => {\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.removeTooltipTimeoutInner = setTimeout(() => {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip.removeEventListener('mouseenter', this.enter);\n this.tooltip.removeEventListener('mouseleave', this.leave);\n this.tooltip = null;\n this.eventHide.emit(true);\n }, this.delay);\n }, this.timeout);\n }\n\n cancelHide(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }\n\n create(): void {\n this.tooltip = this.renderer.createElement('div');\n let innerBlock = this.renderer.createElement('div');\n if (typeof this.tooltipInner === 'string') {\n innerBlock.innerText = this.sanitizer.sanitize(SecurityContext.HTML, this.tooltipInner);\n } else {\n if (this.tooltipInner) {\n innerBlock = this.tooltipInner;\n }\n }\n this.renderer.addClass(innerBlock, 'tooltip-inner');\n this.renderer.addClass(innerBlock, 'scrolled-content');\n this.renderer.appendChild(this.tooltip, innerBlock);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.enter = (): void => {\n this.cancelHide();\n };\n this.tooltip.addEventListener('mouseenter', this.enter);\n this.leave = (): void => {\n if (this.tooltip) {\n this.hide();\n }\n };\n this.tooltip.addEventListener('mouseleave', this.leave);\n\n this.renderer.setStyle(document.body, 'position', 'relative');\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\n if (this.tooltipClass !== null) {\n const classes = this.tooltipClass.split(' ');\n for (let i = 0; i < classes.length; i++) {\n this.renderer.addClass(this.tooltip, classes[i]);\n }\n }\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\n window.setTimeout(() => {\n return this.tooltip && this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }, 0);\n }\n\n setPosition(placement): void {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\n const topExit =\n hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\n const bottomExit =\n window.innerHeight <\n hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\n\n switch (placement) {\n case 'top':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom');\n return;\n } else {\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-left':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-right':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'bottom':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.checkSides();\n }\n break;\n case 'bottom-left':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.checkSides();\n }\n break;\n case 'bottom-right':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.checkSides();\n }\n break;\n case 'left':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'left-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n break;\n case 'left-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n case 'right':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'right-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n break;\n case 'right-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n }\n }\n\n checkSides(): void {\n if (this.tooltip.getBoundingClientRect().left < 0) {\n this.renderer.setStyle(this.tooltip, 'left', 0);\n }\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [TooltipDirective],\n imports: [CommonModule],\n exports: [TooltipDirective],\n})\nexport class TooltipModule {}\n","export const hasOwnProperty = (obj: object, key: string): boolean => {\n if (Boolean(obj) && Boolean(key)) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n return false;\n};\n","import { Component, inject, Inject, NgZone, OnInit } from '@angular/core';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { BackendService } from '@api/services/backend.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\n@Component({\n selector: 'app-asset-details',\n template: `\n
\n
\n

\n {{ title | translate }}\n

\n \n
\n
\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.NAME' | translate }}\n
\n
{{ asset.asset_info.full_name }}
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.TICKER' | translate }}\n
\n
{{ asset.asset_info.ticker }}
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.ID' | translate }}\n
\n
\n {{ asset.asset_info.asset_id }}\n
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.CURRENT_SUPPLY' | translate }}\n
\n
\n {{\n asset.asset_info.asset_id === zanoAssetInfo.asset_id\n ? zano_current_supply\n : asset.asset_info.current_supply\n }}\n
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.MAX_SUPPLE' | translate }}\n
\n
\n {{\n asset.asset_info.asset_id === zanoAssetInfo.asset_id\n ? 'Uncapped'\n : asset.asset_info.total_max_supply\n }}\n
\n
\n
\n
\n
\n No data\n
\n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class AssetDetailsComponent implements OnInit {\n title = 'Asset Details';\n\n asset!: AssetBalance;\n\n zanoAssetInfo = zanoAssetInfo;\n\n backendService = inject(BackendService);\n\n ngZone = inject(NgZone);\n\n zano_current_supply = 'Unknown';\n\n constructor(\n public variablesService: VariablesService,\n private dialogRef: DialogRef,\n @Inject(DIALOG_DATA) { asset, title }: { asset: AssetBalance; title?: string }\n ) {\n this.asset = asset;\n\n if (title) {\n this.title = title;\n }\n }\n\n ngOnInit(): void {\n if (this.asset.asset_info.asset_id === zanoAssetInfo.asset_id) {\n this.getZanoCurrentSupply();\n }\n }\n\n private getZanoCurrentSupply(): void {\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'getinfo',\n params: {\n flags: 1024,\n },\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.ngZone.run(() => {\n this.zano_current_supply = response_data?.['result']?.['total_coins'] ?? 'Unknown';\n });\n });\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [AssetDetailsComponent],\n exports: [AssetDetailsComponent],\n imports: [CommonModule, TranslateModule, FlexModule],\n})\nexport class AssetDetailsModule {}\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\n\nexport interface ConfirmModalData {\n title: string;\n message?: string;\n buttons?: Partial<{\n close: string;\n submit: string;\n }>;\n}\n\n@Component({\n selector: 'app-confirm-modal',\n template: `\n
\n \n\n
\n \n\n
\n

{{ title | translate }}

\n

{{ message | translate }}

\n
\n
\n\n
\n \n \n
\n
\n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class ConfirmModalComponent implements OnInit {\n title: string;\n\n message: string;\n\n data: ConfirmModalData;\n\n @ViewChild('buttonSubmit', { static: true }) buttonSubmit: ElementRef;\n\n constructor(private dialogRef: DialogRef, @Inject(DIALOG_DATA) data: ConfirmModalData) {\n const { title, message } = data;\n this.data = data;\n this.title = title;\n this.message = message;\n }\n\n ngOnInit(): void {\n this.buttonSubmit.nativeElement.focus();\n }\n\n submit(): void {\n this.dialogRef.close(true);\n }\n\n close(): void {\n this.dialogRef.close(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ConfirmModalComponent } from './confirm-modal.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [ConfirmModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule],\n exports: [ConfirmModalComponent],\n})\nexport class ConfirmModalModule {}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-modal-container',\n template: `\n
\n \n\n
\n \n
\n

{{ title }}

\n

\n
\n
\n\n
\n \n
\n
\n `,\n styles: [],\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n public title: string;\n\n @Input() type: string;\n\n @Input() message: string;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('btn', { static: true }) button: ElementRef;\n\n constructor(private translate: TranslateService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n this.button.nativeElement.focus();\n switch (this.type) {\n case 'error':\n this.title = this.translate.instant('MODALS.ERROR');\n break;\n case 'success':\n this.title = this.translate.instant('MODALS.SUCCESS');\n break;\n case 'info':\n this.title = this.translate.instant('MODALS.INFO');\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n onClose(): void {\n this.eventClose.emit();\n }\n}\n","import { Component, HostBinding, Input, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalService } from '../../services/modal.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-open-wallet-modal',\n template: `\n
\n
\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\n\n
{{ wallet.name }}
\n
{{ wallet.path }}
\n\n
\n
\n \n \n
\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n styles: [],\n})\nexport class OpenWalletModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() wallets;\n\n isWrongPassword$ = new BehaviorSubject(false);\n\n wallet = {\n name: '',\n path: '',\n pass: '',\n notFound: false,\n emptyPass: false,\n };\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private backend: BackendService,\n private translate: TranslateService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n if (this.wallets.length) {\n this.wallet = this.wallets[0];\n this.wallet.pass = '';\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n openWallet(): void {\n if (this.wallets.length === 0) {\n return;\n }\n this.backend.openWallet(\n this.wallet.path,\n this.wallet.pass,\n this.variablesService.count,\n false,\n (open_status, open_data, open_error) => {\n if (open_error === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.isWrongPassword$.next(true);\n });\n }\n if (open_error && open_error === 'FILE_NOT_FOUND') {\n this.ngZone.run(() => {\n this.wallet.notFound = true;\n });\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n error_translate += ':
' + this.wallet.path;\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n this.modalService.prepareModal('error', error_translate);\n } else {\n if (open_status || open_error === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === open_data['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(open_data.wallet_id);\n } else {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n this.wallet.name,\n this.wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n open_data.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(open_data.wallet_id);\n this.skipWallet();\n this.isWrongPassword$.next(false);\n }\n }\n }\n }\n );\n }\n\n skipWallet(): void {\n this.ngZone.run(() => {\n if (this.wallets.length) {\n this.wallets.splice(0, 1);\n this.ngOnInit();\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractStatusMessagesPipe } from '@parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe';\n\n@NgModule({\n declarations: [ContractStatusMessagesPipe],\n exports: [ContractStatusMessagesPipe],\n providers: [ContractStatusMessagesPipe],\n imports: [CommonModule],\n})\nexport class ContractStatusMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractStatusMessages',\n})\nexport class ContractStatusMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n getStateSeller(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n getStateBuyer(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n break;\n case 120:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n transform(state: number, is_a?: boolean): any {\n if (is_a) {\n return this.getStateBuyer(state);\n } else {\n return this.getStateSeller(state);\n }\n }\n}\n","export * from './contract-status-messages-pipe.module';\nexport * from './contract-status-messages.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractTimeLeftPipe } from '@parts/pipes/contract-time-left-pipe/contract-time-left.pipe';\n\n@NgModule({\n declarations: [ContractTimeLeftPipe],\n exports: [ContractTimeLeftPipe],\n providers: [ContractTimeLeftPipe],\n imports: [CommonModule],\n})\nexport class ContractTimeLeftPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractTimeLeft',\n})\nexport class ContractTimeLeftPipe implements PipeTransform {\n constructor(private service: VariablesService, private translate: TranslateService) {}\n\n transform(value: any, arg?: any): any {\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\n const type = arg || 0;\n if (time === 0) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\n }\n if (this.service.settings.language === 'en') {\n if (type === 0) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n }\n } else if (type === 1) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n }\n }\n } else {\n const rest = time % 10;\n if (type === 0) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', { time: time });\n }\n } else if (type === 1) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', { time: time });\n }\n }\n }\n return null;\n }\n}\n","export * from './contract-time-left-pipe.module';\nexport * from './contract-time-left.pipe';\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\n@Pipe({\n name: 'getAssetInfo',\n standalone: true,\n})\nexport class GetAssetInfoPipe implements PipeTransform {\n private walletsService = inject(WalletsService);\n\n transform(value: AssetInfo['asset_id']): AssetInfo | undefined {\n return this.walletsService.currentWallet?.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HistoryTypeMessagesPipe } from '@parts/pipes/history-type-messages-pipe/history-type-messages.pipe';\n\n@NgModule({\n declarations: [HistoryTypeMessagesPipe],\n exports: [HistoryTypeMessagesPipe],\n providers: [HistoryTypeMessagesPipe],\n imports: [CommonModule],\n})\nexport class HistoryTypeMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { hasOwnProperty } from '../../functions/hasOwnProperty';\n\n@Pipe({\n name: 'historyTypeMessages',\n})\nexport class HistoryTypeMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n transform(item: any): any {\n if (item.tx_type === 0) {\n if (item.remote_addresses && item.remote_addresses[0]) {\n return item.remote_addresses[0];\n } else {\n if (item.is_income) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n }\n } else if (item.tx_type === 6 && item.height === 0) {\n return 'unknown';\n } else if (item.tx_type === 9) {\n if (hasOwnProperty(item, 'contract') && item.contract[0].is_a) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\n }\n } else {\n switch (item.tx_type) {\n // case 0:\n // return '';\n // case 1:\n // return '';\n // case 2:\n // return '';\n // case 3:\n // return '';\n case 4:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\n case 5:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\n case 6:\n return item.employed_entries?.spent?.length\n ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD')\n : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\n case 7:\n if (!item.subtransfers || !item.subtransfers.length) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.SERVICE_TRANSACTIONS');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\n }\n case 8:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\n // case 9:\n // return '';\n case 10:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\n case 11:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\n case 12:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\n }\n }\n\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n}\n","export * from './history-type-messages-pipe.module';\nexport * from './history-type-messages.pipe';\n","export * from './contract-status-messages-pipe';\nexport * from './contract-time-left-pipe';\nexport * from './history-type-messages-pipe';\nexport * from './int-to-money-pipe';\nexport * from './is-available-alias-name-pipe';\nexport * from './money-to-int-pipe';\nexport * from './safe-html-pipe';\nexport * from './get-asset-info.pipe';\nexport * from './short-string.pipe';\n","export * from './int-to-money-pipe.module';\nexport * from './int-to-money.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\n\n@NgModule({\n declarations: [IntToMoneyPipe],\n exports: [IntToMoneyPipe],\n providers: [IntToMoneyPipe],\n imports: [CommonModule],\n})\nexport class IntToMoneyPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'intToMoney',\n})\nexport class IntToMoneyPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any, args?: any): any {\n if (value === 0 || value === undefined) {\n return '0';\n }\n let maxFraction = this.variablesService.digits;\n if (args) {\n maxFraction = parseInt(args, 10);\n }\n const power = Math.pow(10, this.variablesService.digits);\n let str = new BigNumber(value).div(power).toFixed(maxFraction);\n\n for (let i = str.length - 1; i >= 0; i--) {\n if (str[i] !== '0') {\n str = str.substr(0, i + 1);\n break;\n }\n }\n if (str[str.length - 1] === '.') {\n str = str.substr(0, str.length - 1);\n }\n return str;\n }\n}\n","export * from './is-available-alias-name-pipe.module';\nexport * from './is-available-alias-name.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IsAvailableAliasNamePipe } from './is-available-alias-name.pipe';\n\n@NgModule({\n declarations: [IsAvailableAliasNamePipe],\n exports: [IsAvailableAliasNamePipe],\n providers: [IsAvailableAliasNamePipe],\n imports: [CommonModule],\n})\nexport class IsAvailableAliasNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Alias } from '@api/models/alias.model';\n\n@Pipe({\n name: 'isAvailableAliasName',\n})\nexport class IsAvailableAliasNamePipe implements PipeTransform {\n transform(alias: Partial | null | undefined): boolean {\n return (Boolean(alias) && Boolean(alias.name) && alias.name.length >= 2 && alias.name.length <= 6) || false;\n }\n}\n","export * from './money-to-int-pipe.module';\nexport * from './money-to-int.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\n\n@NgModule({\n declarations: [MoneyToIntPipe],\n exports: [MoneyToIntPipe],\n providers: [MoneyToIntPipe],\n imports: [CommonModule],\n})\nexport class MoneyToIntPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'moneyToInt',\n})\nexport class MoneyToIntPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any): any {\n const CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits;\n let result;\n if (value) {\n let am_str = value.toString().trim();\n const point_index = am_str.indexOf('.');\n let fraction_size = 0;\n if (-1 !== point_index) {\n fraction_size = am_str.length - point_index - 1;\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\n am_str = am_str.slice(0, am_str.length - 1);\n --fraction_size;\n }\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\n return undefined;\n }\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\n } else {\n fraction_size = 0;\n }\n if (!am_str.length) {\n return undefined;\n }\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\n am_str = am_str + '0';\n }\n }\n result = new BigNumber(am_str).integerValue();\n }\n return result;\n }\n}\n","export * from './safe-html-pipe.module';\nexport * from './safe-html.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SafeHTMLPipe } from '@parts/pipes/safe-html-pipe/safe-html.pipe';\n\n@NgModule({\n declarations: [SafeHTMLPipe],\n exports: [SafeHTMLPipe],\n providers: [SafeHTMLPipe],\n imports: [CommonModule],\n})\nexport class SafeHtmlPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n})\nexport class SafeHTMLPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'zanoShortString',\n standalone: true\n})\nexport class ShortStringPipe implements PipeTransform {\n transform(value: string | null | undefined, left = 6, right = 6): string | null | undefined {\n return value && `${value.slice(0, left)}...${value.slice(-right)}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/').then();\n }\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, NgZone } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalContainerComponent } from '../modals/modal-container/modal-container.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private components: any[] = [];\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n prepareModal(type: 'error' | 'info' | 'success' | string, message): void {\n const length = this.components.push(\n this.componentFactoryResolver.resolveComponentFactory(ModalContainerComponent).create(this.injector)\n );\n\n this.components[length - 1].instance['type'] = type;\n this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : '';\n this.components[length - 1].instance['eventClose']?.subscribe({\n next: () => {\n this.ngZone.run(() => {\n this.removeModal(length - 1);\n });\n },\n });\n\n this.ngZone.run(() => {\n this.appendModal(length - 1);\n });\n }\n\n appendModal(index): void {\n setTimeout(() => {\n this.appRef.attachView(this.components[index].hostView);\n const domElem = (this.components[index].hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n });\n }\n\n removeModal(index): void {\n if (this.components[index]) {\n this.appRef.detachView(this.components[index].hostView);\n this.components[index].destroy();\n this.components.splice(index, 1);\n } else {\n const last = this.components.length - 1;\n this.appRef.detachView(this.components[last].hostView);\n this.components[last].destroy();\n this.components.splice(last, 1);\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { DeeplinkParams, Wallet } from '@api/models/wallet.model';\nimport { Contact } from '@api/models/contact.model';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { Idle } from 'idlejs/dist';\nimport { Router } from '@angular/router';\nimport { ContextMenuComponent, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { BigNumber } from 'bignumber.js';\nimport { Aliases } from '@api/models/alias.model';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VariablesService {\n disable_price_fetch$ = new BehaviorSubject(false);\n\n rpc_port!: number;\n\n use_debug_mode$ = new BehaviorSubject(false);\n\n info$ = new BehaviorSubject({});\n\n is_hardfok_active$: Observable = this.info$.pipe(map((info) => {\n return Boolean(info?.['is_hardfok_active']?.[4]);\n }), distinctUntilChanged());\n\n stop_paginate = {};\n\n sync_started = false;\n\n digits = 12;\n\n appPass = '';\n\n get hasAppPass(): boolean {\n return Boolean(this.appPass);\n }\n\n appLogin = false;\n\n moneyEquivalent = 0;\n\n moneyEquivalentPercent = 0;\n\n defaultCurrency = 'ZANO';\n\n opening_wallet: Wallet;\n\n exp_med_ts = 0;\n\n net_time_delta_median = 0;\n\n height_app = 0;\n\n height_max = 0;\n\n downloaded = 0;\n\n total = 0;\n\n last_build_available = '';\n\n last_build_displaymode = 0;\n\n daemon_state = 3;\n\n deeplink$ = new BehaviorSubject(null);\n\n sendActionData$ = new BehaviorSubject({});\n\n sync = {\n progress_value: 0,\n progress_value_text: '0',\n };\n\n public sync_wallets: { [wallet_id: number]: boolean } = {};\n download = {\n progress_value: 0,\n progress_value_text: '0',\n };\n get_recent_transfers = false; // avoid of execute function before callback complete\n default_fee = '0.010000000000';\n default_fee_big = new BigNumber('10000000000');\n settings = {\n appLockTime: 15,\n appLog: 0,\n scale: '10px',\n appUseTor: false,\n language: 'en',\n default_path: '/',\n viewedContracts: [],\n notViewedContracts: [],\n zanoCompanionForm: {\n zanoCompation: false,\n secret: ''\n },\n wallets: [],\n };\n count = 40;\n maxPages = 5;\n testnet = false;\n networkType = ''; // testnet of mainnet\n wallets: Array = [];\n currentWallet: Wallet;\n aliases: Aliases = [];\n aliasesChecked: any = {};\n enableAliasSearch = false;\n maxWalletNameLength = 25;\n maxCommentLength = 255;\n dataIsLoaded = false;\n contacts: Array = [];\n pattern = '^[a-zA-Z0-9_.\\\\]*|~!?@#$%^&+{}()<>:;\"\\'-=/,[\\\\\\\\]*$';\n after_sync_request: any = {};\n getExpMedTsEvent = new BehaviorSubject(null);\n getHeightAppEvent = new BehaviorSubject(null);\n getHeightMaxEvent = new BehaviorSubject(null);\n getDownloadedAppEvent = new BehaviorSubject(null);\n getTotalEvent = new BehaviorSubject(null);\n getRefreshStackingEvent = new BehaviorSubject(null);\n getAliasChangedEvent = new BehaviorSubject(null);\n currentWalletChangedEvent = new BehaviorSubject(null);\n idle = new Idle().whenNotInteractive().do(async () => {\n if (this.appPass === '') {\n this.stopCountdown();\n } else {\n await this.ngZone.run(async () => {\n this.stopCountdown();\n this.appPass = '';\n this.appLogin = false;\n await this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n }\n });\n allContextMenu: ContextMenuComponent;\n onlyCopyContextMenu: ContextMenuComponent;\n pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {}\n\n get isCurrentWalletSync(): boolean {\n if (this.currentWallet) {\n const { wallet_id } = this.currentWallet;\n return this.sync_wallets[wallet_id] || false;\n }\n return false;\n }\n\n get isCurrentWalletLoaded(): boolean {\n if (this.currentWallet) {\n const { loaded } = this.currentWallet;\n return loaded;\n }\n return false;\n }\n\n get walletNamesForComparisons(): string[] {\n return this.wallets.map(({ name }) => name) ?? [];\n }\n\n setExpMedTs(timestamp: number): void {\n if (timestamp !== this.exp_med_ts) {\n this.exp_med_ts = timestamp;\n this.getExpMedTsEvent.next(timestamp);\n }\n }\n\n setHeightApp(height: number): void {\n if (height !== this.height_app) {\n this.height_app = height;\n this.getHeightAppEvent.next(height);\n }\n }\n\n setHeightMax(height: number): void {\n if (height !== this.height_max) {\n this.height_max = height;\n this.getHeightMaxEvent.next(height);\n }\n }\n\n setDownloadedBytes(bytes: number): void {\n if (bytes !== this.downloaded) {\n this.downloaded = this.bytesToMb(bytes);\n this.getDownloadedAppEvent.next(bytes);\n }\n }\n\n setTotalBytes(bytes: number): void {\n if (bytes !== this.total) {\n this.total = this.bytesToMb(bytes);\n this.getTotalEvent.next(bytes);\n }\n }\n\n setRefreshStacking(wallet_id: number): void {\n this.getHeightAppEvent.next(wallet_id);\n }\n\n changeAliases(): void {\n this.getAliasChangedEvent.next(true);\n }\n\n setCurrentWallet(id): void {\n this.wallets.forEach(wallet => {\n if (wallet.wallet_id === id) {\n this.currentWallet = wallet;\n this.currentWalletChangedEvent.next(wallet);\n }\n });\n }\n\n getWallet(id): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (this.wallets[i].wallet_id === id) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n getNotLoadedWallet(): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (!this.wallets[i].loaded) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n startCountdown(): void {\n this.idle.within(this.settings.appLockTime).start();\n }\n\n stopCountdown(): void {\n this.idle.stop();\n }\n\n restartCountdown(): void {\n if (Boolean(this.settings.appLockTime)) {\n this.idle.within(this.settings.appLockTime).restart();\n } else {\n this.stopCountdown();\n }\n }\n\n bytesToMb(bytes): number {\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\n }\n\n onContextMenu($event: MouseEvent): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.allContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n onContextMenuOnlyCopy($event: MouseEvent, copyText?: string): void {\n $event.preventDefault();\n $event.stopPropagation();\n this.contextMenuService.show(this.onlyCopyContextMenu, {\n value: copyText,\n x: $event.x,\n y: $event.y,\n });\n }\n\n onContextMenuPasteSelect($event: MouseEvent): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n\n console.warn($event.target);\n console.warn($event.target['disabled']);\n\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.pasteSelectContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ResponseGetWalletInfo, Wallet } from '@api/models/wallet.model';\nimport { Router } from '@angular/router';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { AssetsWhitelistGetResponseData } from '@api/models/assets.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WalletsService {\n get wallets(): Wallet[] | null | undefined {\n return this.variablesService.wallets;\n }\n\n set wallets(value) {\n this.variablesService.wallets = value;\n }\n\n get currentWallet(): Wallet | null | undefined {\n return this.variablesService.currentWallet;\n }\n\n set currentWallet(value) {\n this.variablesService.currentWallet = value;\n }\n\n constructor(\n private backendService: BackendService,\n private variablesService: VariablesService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n addWallet(wallet: Wallet): void {\n const { wallet_id } = wallet;\n this.variablesService.wallets.push(wallet);\n this.updateWalletInfo(wallet_id);\n }\n\n loadAssetsWhitelist(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update assetsWhiteList by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'assets_whitelist_get',\n params: {},\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data: AssetsWhitelistGetResponseData) => {\n const { result } = response_data;\n wallet.assetsInfoWhitelist = result;\n });\n }\n\n getWalletById(wallet_id: number): Wallet | undefined {\n const { wallets } = this.variablesService;\n return wallets.find(w => w.wallet_id === wallet_id);\n }\n\n updateWalletInfo(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update walletInfo by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n const callback: (status: boolean, response_data: ResponseGetWalletInfo) => void = (status, response_data) => {\n this.ngZone.run(() => {\n if (status) {\n const { balances } = response_data;\n wallet.balances = balances;\n }\n });\n };\n\n this.backendService.getWalletInfo(wallet_id, callback);\n\n this.loadAssetsWhitelist(wallet_id);\n }\n\n closeWallet(wallet_id: number): void {\n const callback = async (): Promise => {\n this.wallets = this.wallets.filter(w => w.wallet_id !== wallet_id);\n\n await this.ngZone.run(async () => {\n let url = '/';\n if (this.wallets.length > 0) {\n this.currentWallet = this.wallets[0];\n url = '/wallet/';\n }\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData();\n }\n await this.router.navigate([url]);\n });\n };\n\n this.backendService.closeWallet(wallet_id, callback);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype TLoaderId = 'fullScreen';\n\ninterface TDataLoader {\n state: boolean;\n message: string;\n}\n\ntype TDataLoaders = {\n [key in TLoaderId]: TDataLoader\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ZanoLoadersService {\n private _loaders$ = new BehaviorSubject({\n fullScreen: { state: false, message: 'Loading' }\n });\n\n getState(id: TLoaderId): Observable {\n return this._loaders$.pipe(map((loader) => loader[id].state ));\n }\n\n getMessage(id: TLoaderId): Observable {\n return this._loaders$.pipe(map((loader) => loader[id].message ));\n }\n\n\n open(id: TLoaderId, message: string = 'Loading'): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n state: true,\n message\n }\n });\n }\n\n close(id: TLoaderId): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n ...this._loaders$.value[id],\n state: false\n }\n });\n }\n}\n","export const MIMETypes: string[] = [\n '.rar',\n '.txt',\n '.xls',\n '.xlsx',\n '.zip',\n '.png',\n '.pdf',\n '.csv',\n '.doc',\n '.docx',\n '.jar',\n '.jpeg',\n '.jpg',\n '.js',\n '.json',\n '.mp3',\n '.mp4',\n '.mpeg',\n '.aac',\n '.abw',\n '.arc',\n '.avif',\n '.avi',\n '.azw',\n '.bin',\n '.bmp',\n '.bz',\n '.bz2',\n '.cda',\n '.csh',\n '.css',\n '.dll',\n '.exe',\n '.eot',\n '.epub',\n '.gz',\n '.gif',\n '.htm',\n '.html',\n '.ico',\n '.ics',\n '.jsonld',\n '.mid',\n '.midi',\n '.mjs',\n '.mpkg',\n '.odp',\n '.ods',\n '.odt',\n '.oga',\n '.ogv',\n '.ogx',\n '.opus',\n '.otf',\n '.php',\n '.ppt',\n '.pptx',\n '.pdb',\n '.dat',\n '.rtf',\n '.sh',\n '.svg',\n '.tar',\n '.tif',\n '.tiff',\n '.ts',\n '.ttf',\n '.vsd',\n '.wav',\n '.weba',\n '.webm',\n '.webp',\n '.woff',\n '.woff2',\n '.xhtml',\n '.xml',\n '.xul',\n '.3gp',\n '.3g2',\n '.7z',\n];\n","export const generateRandomString = (length: number = 40): string => {\n const array: Uint8Array = new Uint8Array(length);\n window.crypto.getRandomValues(array);\n\n const regularArray: number[] = Array.from(array);\n\n return btoa(String.fromCharCode.apply(null, regularArray));\n};\n","import { ValidationErrors } from '@angular/forms';\n\nexport interface ZanoValidationErrors extends ValidationErrors {\n errorText: string;\n}\n\nexport const wrongAssetId: ZanoValidationErrors = {\n errorText: 'ASSETS.FORM.ERRORS.WRONG_ASSET_ID',\n};\n\nexport const wrongPassword: ZanoValidationErrors = {\n errorText: 'Incorrect password',\n};\n\nexport const insuficcientFunds: ZanoValidationErrors = {\n errorText: 'ERRORS.INSUFFICIENT_FUNDS',\n};\n\nexport const assetHasNotBeenAddedToWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.ASSET_HAS_NOT_BEEN_ADDED_TO_WALLET',\n};\n\nexport const notFileZanoWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.NOT_FILE_ZANO_WALLET',\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { notFileZanoWallet, ZanoValidationErrors } from '@parts/utils/zano-errors';\nimport { MIMETypes } from '@parts/utils/MIME-types';\n\nexport const regExpHash = /^[a-f0-9]{64}$/i;\nexport const regExpAliasName = /^@?[a-z\\d.-]{2,25}$/;\nexport const regExpPassword = /^[a-zA-Z0-9_.\\]*|~!?@#$%^&+{}()<>:;\"'-=,/[\\\\]*$/;\n\nexport class ZanoValidators {\n static hash({ value }: AbstractControl): ValidationErrors | null {\n return regExpHash.test(value) ? null : { invalidHash: true };\n }\n\n static formMatch(firstControlName: string, secondControlName: string, nameErrorKey = 'mismatch'): ValidatorFn {\n return (abstractControl: AbstractControl): ValidationErrors | null =>\n abstractControl.get(firstControlName).value === abstractControl.get(secondControlName).value ? null : { [nameErrorKey]: true };\n }\n\n static duplicate(valuesForComparisons: string | string[]): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n const errorObject = { duplicate: true };\n let error = null;\n\n if (typeof value === 'string' && value === valuesForComparisons) {\n error = errorObject;\n }\n\n if (Array.isArray(valuesForComparisons) && valuesForComparisons.includes(value)) {\n error = errorObject;\n }\n\n return error;\n };\n }\n}\n\nexport const filePathWalletValidator = (path: string): ZanoValidationErrors | null => {\n if (!(path && path.trim().length)) {\n return null;\n }\n\n const positionLastSlash = path.lastIndexOf('/');\n const fileName = path.slice(positionLastSlash + 1);\n\n if (!(fileName && fileName.trim().length)) {\n return null;\n }\n\n if (fileName) {\n let index = 0;\n while (index < MIMETypes.length) {\n if (fileName.includes(MIMETypes[index])) {\n return notFileZanoWallet;\n }\n index++;\n }\n }\n\n return null;\n};\n","import { Injectable, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationStore } from './pagination.store';\nimport * as _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationService {\n constructor(private variables: VariablesService, private ngZone: NgZone, private paginationStore: PaginationStore) {}\n\n paginate(currentPage = 1): void {\n if (currentPage < 1) {\n currentPage = 1;\n } else if (currentPage > this.variables.currentWallet.totalPages) {\n currentPage = this.variables.currentWallet.totalPages;\n }\n let startPage: number, endPage: number;\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\n startPage = 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\n if (currentPage <= maxPagesBeforeCurrentPage) {\n startPage = 1;\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (endPage = this.variables.maxPages)\n : (endPage = this.variables.currentWallet.totalPages);\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n startPage = currentPage - maxPagesBeforeCurrentPage;\n endPage = currentPage + maxPagesAfterCurrentPage;\n }\n }\n this.ngZone.run(() => {\n this.variables.currentWallet.pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i);\n });\n }\n\n getOffset(walletID): number {\n const mining = this.variables.currentWallet.exclude_mining_txs;\n const currentPage = this.variables.currentWallet.currentPage;\n let offset = (currentPage - 1) * this.variables.count;\n if (!mining) {\n return offset || 0;\n }\n const value = this.paginationStore.value;\n const pages = value.filter(item => item.walletID === walletID);\n if (pages && pages.length > 0) {\n const max = _.maxBy(pages, 'page');\n const isForward = this.paginationStore.isForward(pages, currentPage);\n if (isForward) {\n offset = max.offset || 0;\n } else {\n const index = pages.findIndex(item => item.page === currentPage);\n offset = pages[index].offset || 0;\n }\n }\n return offset;\n }\n\n calcPages(data): void {\n if (data.total_history_items && data && data.history) {\n this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n } else if (this.variables.currentWallet.restore) {\n this.variables.currentWallet.totalPages = Math.ceil(data.history.length / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n }\n }\n\n prepareHistory(data, status): void {\n if (status && data && data.total_history_items) {\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\n this.ngZone.run(() => {\n this.paginate(this.variables.currentWallet.currentPage);\n if (data.history.length !== 0) {\n this.variables.currentWallet.restore = false;\n this.variables.currentWallet.total_history_item = data.total_history_items;\n this.variables.currentWallet.prepareHistory(data.history);\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\n this.variables.currentWallet.prepareHistory(data.unconfirmed.sort((a, b) => a.timestamp - b.timestamp));\n }\n }\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport interface Pages {\n page: number;\n offset: number;\n walletID: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationStore {\n private subject = new BehaviorSubject(null);\n\n get value(): Pages[] | null {\n return this.subject.value;\n }\n\n isForward(pages, currentPage): boolean {\n const max = _.maxBy(pages, 'page');\n return !max || max.page < currentPage || max.page === currentPage;\n }\n\n setPage(pageNumber: number, offset: number, walletID: number): void {\n let newPages: Pages[] = [];\n const pages = this.subject.getValue();\n if (pages && pages.length > 0) {\n newPages = pages.slice(0);\n }\n newPages.push({ page: pageNumber, offset, walletID });\n this.subject.next(newPages);\n }\n}\n","import { distinctUntilChanged, map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Injectable } from '@angular/core';\n\nexport interface Sync {\n sync: boolean;\n wallet_id: number;\n}\n\nexport enum StateKeys {\n wallets = 'wallets',\n sync = 'sync',\n}\n\nexport interface State {\n [StateKeys.wallets]: Wallet[] | null | undefined;\n [StateKeys.sync]: Sync[] | null | undefined;\n}\n\nconst initialState: State = {\n wallets: undefined,\n sync: undefined,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Store {\n private subject = new BehaviorSubject(initialState);\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\n\n get state(): State {\n return this.subject.value;\n }\n\n select(name: StateKeys): Observable {\n return this.store.pipe(map(state => state[name])) as unknown as Observable;\n }\n\n set(name: StateKeys, value: any): void {\n this.subject.next({ ...this.state, [name]: value });\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport 'lodash';\n\nexport const buildTime = '2024-03-06T13:59:36.086Z';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["NgZone","Observable","Subject","JSONBigNumber","BigNumber","ParamsType","getParamsType","value","array","Array","isArray","object","Object","keys","includes","convertersObjectForTypes","string","stringify","map","v","convertorParams","type","StatusCurrentActionState","Commands","BackendService","constructor","translate","variablesService","modalService","moneyToIntPipe","ngZone","bigNumberParser","key","val","name","indexOf","toNumber","i","length","Debug","message","console","error","warn","log","eventSubscribe","command","callback","on_core_event","backendObject","connect","str","parse","initService","observer","backendLoaded","window","QWebChannel","qt","webChannelTransport","channel","objects","mediator_object","next","webkitLaunchedScript","runCommand","webkit_launched_script","quitRequest","on_request_quit","getAppData","get_app_data","storeAppData","wallets","settings","forEach","wallet","push","path","store_app_data","getSecureAppData","pass","get_secure_app_data","setMasterPassword","set_master_password","checkMasterPassword","check_master_password","getIsDisabledNotifications","params","get_is_disabled_notifications","setIsDisabledNotifications","state","set_is_disabled_notifications","storeSecureAppData","contacts","staking","contact","address","notes","data","store_secure_app_data","JSON","appPass","dataStore","backendCallback","dropSecureAppData","drop_secure_app_data","haveSecureAppData","have_secure_app_data","saveFileDialog","caption","fileMask","default_path","dir","filemask","default_dir","show_savefile_dialog","openFileDialog","show_openfile_dialog","storeFile","buff","store_to_file","loadFile","load_from_file","push_offer","generateWallet","generate_wallet","exportWalletHistory","json_string","export_wallet_history","openWallet","txs_to_return","testEmpty","open_wallet","closeWallet","wallet_id","close_wallet","getSmartWalletInfo","seed_password","get_smart_wallet_info","getSeedPhraseInfo","param","get_seed_phrase_info","runWallet","run_wallet","isValidRestoreWalletText","is_valid_restore_wallet_text","restoreWallet","seed_phrase","seed_pass","restore_wallet","sendMoney","amount","fee","mixin","comment","hide","asset_id","destinations","mixin_count","lock_time","transform","push_payer","asyncCall","transfer","setupJwtWalletRpc","secret","setup_jwt_wallet_rpc","zanoCompanionForm","validateAddress","validate_address","setClipboard","set_clipboard","getClipboard","get_clipboard","createProposal","title","a_addr","b_addr","to_pay","a_pledge","b_pledge","time","payment_id","parseInt","details","t","c","expiration_period","default_fee_big","b_fee","create_proposal","getContracts","get_contracts","acceptProposal","contract_id","accept_proposal","releaseProposal","release_type","release_contract","requestCancelContract","request_cancel_contract","acceptCancelContract","accept_cancel_contract","getMiningHistory","get_mining_history","startPosMining","start_pos_mining","stopPosMining","stop_pos_mining","openUrlInBrowser","url","open_url_in_browser","start_backend","node","host","port","configure_for_remote_node","remote_node_host","remote_node_port","getDefaultFee","get_default_fee","setBackendLocalization","stringsArray","strings","language_title","set_localization_strings","registerAlias","alias","reward","tracking_key","request_alias_registration","updateAlias","replace","request_alias_update","getAllAliases","get_all_aliases","getAliasInfoByName","get_alias_info_by_name","getAliasByAddress","get_alias_info_by_address","getAliasCoast","get_alias_coast","resyncWallet","id","resync_wallet","getWalletAlias","daemon_state","aliasesChecked","aliases","status","getContactAlias","getRecentTransfers","offset","count","exclude_mining_txs","get_recent_transfers","getPoolInfo","get_tx_pool_info","getVersion","get_version","version","errorVersion","get_network_type","status_network","errorType","setLogLevel","level","set_log_level","async_call","job_id","dispatchAsyncCallResult","dispatch_async_call_result","json_resp","asyncCommandResults","response","run","dispatchAsyncCallResult$","handleCurrentActionState","handle_current_action_state","currentActionState","handleCurrentActionState$","setEnableTor","set_enable_tor","getOptions","get_options","disable_price_fetch","use_debug_mode","rpc_port","disable_price_fetch$","use_debug_mode$","addCustomAssetId","add_custom_asset_id","removeCustomAssetId","remove_custom_asset_id","getWalletInfo","get_wallet_info","call_rpc","call_wallet_rpc","informerRun","error_translate","instant","default_fee","currency","defaultCurrency","prepareModal","commandDebug","result","debug","_send_params","_result","e","response_data","error_code","resultStr","Result","core_busy","Status","undefined","res_error_code","setTimeout","current_wallet_id","currentWallet","Action","i0","factory","providedIn","Renderer2","StateKeys","take","takeUntil","paths","pathsChildrenAuth","hasOwnProperty","AppComponent","http","renderer","backendService","router","intToMoneyPipe","store","dialog","zanoLoadersService","addLangs","setDefaultLang","use","subscribe","translateUsed","language","ngOnInit","initMessage","st2","dd2","quit_requested","onQuitRequest","closeAll","needOpenWallets","saveFunction","recursionCloseWallets","lastIndex","splice","update_wallet_status","wallet_state","is_mining","getWallet","loaded","balances","mined_total","minied_total","alias_available","is_alias_operations_available","wallet_sync_progress","progress","sync_started","sync_wallets","addToStore","update_daemon_state","daemon_network_state","setExpMedTs","net_time_delta_median","last_build_available","last_build_displaymode","setHeightApp","height","setHeightMax","max_net_seen_height","setDownloadedBytes","downloaded_bytes","setTotalBytes","download_total_data_size","max","current","return_val","Math","floor","sync","progress_value","progress_value_text","toFixed","download","firstOnlineState","getAliases","status_fee","data_fee","money_transfer","ti","tr_info","history","tx_type","setRefreshStacking","tr_exists","excluded_history","some","elem","tx_hash","currentPage","prepareHistory","restore","total_history_item","totalPages","ceil","maxPages","pages","fill","index","exp_med_ts","height_app","contract","contracts","is_a","cancel_expiration_time","expiration_time","timestamp","searchResult2","notViewedContracts","find","j","viewedContracts","searchResult3","searchResult4","searchResult","is_new","findContract","prop","handle_deeplink_click","deeplink$","money_transfer_cancel","removeFromHistory","error_tr","events","method","enableAliasSearch","newAlias","concat","changeAliases","CurrentAlias","element","intervalUpdateContractsState","setInterval","expMedTsEvent","getExpMedTsEvent","newTimestamp","appUseTor","scale","setStyle","document","documentElement","appLog","navigate","auth","noWallet","then","statusPass","queryParams","appLogin","getInfo","pipe","destroy$","updateTime","updateMoneyEquivalent","intervalUpdatePriceState","clearInterval","ngOnDestroy","unsubscribe","get","moneyEquivalent","moneyEquivalentPercent","sort","a","b","boolean","filter","item","set","testnet","networkType","jsonrpc","info$","selectors","decls","vars","consts","template","inject","TranslateService","CREATE_NEW_WALLET_HELP_PAGE","filePathWalletValidator","AddWalletComponent","translateService","file_status","file_data","positionLastSlash","lastIndexOf","new_default_path","slice","text","errorText","openInBrowser","ctx","FormBuilder","Validators","regExpAliasName","AssignAliasComponent","backend","intToMoney","routerLink","fb","group","nonNullable","control","required","pattern","maxLength","maxCommentLength","price","rewardOriginal","exists","assignForm","valueChanges","canRegister","newName","toLowerCase","controls","errors","statusPrice","dataPrice","sum","unlocked_balance","getBalanceByTicker","_a","unlocked","notEnoughMoney","isGreaterThan","complete","assignAlias","wakeAlias","Wallet","BehaviorSubject","regExpPassword","ZanoValidators","LoginComponent","walletsService","route","password","confirmation","validators","formMatch","onSubmitCreatePass","regForm","valid","dataIsLoaded","appLockTime","startCountdown","onSkipCreatePass","resetJwtWalletRpc","zanoCompation","resetLoading$","closeAllWallets","onSubmitAuthPass","submitLoading$","authForm","prevUrl","setAuthPassError","wrong_password","getData","isEmptyObject","getWalletData","walletData","openWallets","runWallets","wallet_index","open_status","open_data","open_error","new_wallet","balance","tracking_hey","is_auditable","is_watch_only","recent_history","total_history_items","addWallet","run_status","setErrors","NonNullableFormBuilder","VariablesService","ModalService","Router","WalletsService","CreateWalletComponent","duplicate","walletNamesForComparisons","confirm","savedWalletName","createForm","substr","createWallet","loading$","selectedPath","getRawValue","generate_status","generate_data","errorCode","run_data","setCurrentWallet","errorTranslationKey","selectWalletLocation","patchValue","delay","DeeplinkComponent","notFileZanoWallet","wrongPassword","OpenWalletComponent","maxWalletNameLength","filePath","openWalletForm","filename","markAsTouched","openStatus","openData","open_from_exist","AssetDetailsComponent","ConfirmModalComponent","LOCKED_BALANCE_HELP_PAGE","defaultImgSrc","zanoAssetInfo","ctx_r6","$event","ctx_r4","asset_r5","_r7","ctx_r0","ctx_r1","AssetsComponent","paginatePipeArgs","paginationId","itemsPerPage","isShowPagination","listenChangeWallet","toggleDropDownMenu","trigger","asset","isOpenDropDownMenu","triggerOrigin","currentAsset","trackByAssets","asset_info","trackByPages","assetDetails","dialogConfig","open","beforeRemoveAsset","full_name","closed","confirmed","removeAsset","sendMoneyParams","updateWalletInfo","getBalanceTooltip","tooltip","createElement","scrollWrapper","classList","add","total","ticker","available","setAttribute","innerText","availableB","appendChild","locked","lockedB","minus","link","innerHTML","addEventListener","currentWalletChangedEvent","ElementRef","EventEmitter","successfulStatuses","STATE_SENDING","STATE_SENT_SUCCESS","STATE_INITIALIZING","STATE_DOWNLOADING_CONSENSUS","STATE_MAKING_TUNNEL_A","STATE_MAKING_TUNNEL_B","STATE_CREATING_STREAM","STATE_SUCCESS","failedStatuses","STATE_SEND_FAILED","STATE_FAILED","SendDetailsModalComponent","currentActionState$","currentActionStates","currentActionStates$","isSentSuccess","isSentFailed","isDetailsNotEmpty","responseData$","addClass","body","actionState","success","removeClass","toggleDetails","stateDetails$","scrollToBottomDetailsList","trackBy","isSuccess","action","isFailed","elDetailsList","nativeElement","scrollTop","scrollHeight","viewQuery","MIXIN","debounceTime","retry","tap","of","IntToMoneyPipe","insuficcientFunds","defaultSendMoneyParams","WrapInfoService","alias_r18","_r15","asset_r36","ctx_r9","ctx_r11","SendComponent","moneyToInt","isVisibleDropdownAliases$","aliasAddress","valid_status","isWrapShown","assign","address_not_valid","hasError","test","alias_not_valid","alias_status","alias_data","alias_not_found","min","zero","bigAmount","wrapInfo","wrap_info_null","unwraped_coins_left","great_than_unwraped_coins","isLessThan","tx_cost","zano_needed_for_erc20","less_than_zano_needed","sendMoneyParamsForm","_b","g","less_min","aliases$","getWrapInfo","listenSendActionData","patchSendMoneyParamsByCurrentWallet","saveSendMoneyParams","setAssetFromHistoryState","emitEvent","showDialog","isModalDialogVisible","onSend","aliasName","isModalDetailsDialogVisible","getReceivedValue","needed","handeCloseDetailsModal","reset","markAllAsTouched","disable","fillDeepLinkData","additionalOptions","comments","mixins","hide_sender","wrapInfoService","pasteListenAddressField","event","preventDefault","clipboardData","lowerCaseDisabled$","inputListenAddressField","target","filteredAliases","sendActionData$","CommonModule","RouterLinkWithHref","TranslateModule","BreadcrumbsComponent","DefaultImgModule","InputValidateModule","LowerCaseDirective","FormsModule","ReactiveFormsModule","IntToMoneyPipeModule","MoneyToIntPipe","MoneyToIntPipeModule","ShortStringPipe","NgSelectModule","startWith","assetHasNotBeenAddedToWallet","LoaderComponent","assetInfo_r20","ctx_r3","assetInfo_r23","alias_r33","_r30","CreateSwapComponent","allAssetsInfo","sending","form","receiving","disabled","isEmptyAssetsInfoWhitelist","receiverAddress","condition","sameAssetsId","setSendingAssetIdFromHistoryState","sendingAssetsInfo$","receivingAssetsInfo$","reverse","updateValueAndValidity","inputListenReceiverAddressField","pasteListenReceiverAddressField","beforeSubmit","invalid","submit","params1","params2","proposal","to_finalizer","to_initiator","fee_paid_by_a","navigateByUrl","hex_raw_proposal","errorRpc","standalone","features","i1","i2","i3","i4","i5","i6","i7","styles","ChangeDetectorRef","wrongAssetId","FlexModule","AddCustomTokenComponent","dialogRef","compose","hash","formGroup","asset_descriptor","awaiting_in","awaiting_out","close","cdr","detectChanges","_r2","i8","changeDetection","distinctUntilChanged","ExportHistoryModalComponent","NavigationCancel","NavigationEnd","NavigationError","NavigationStart","ctx_r2","objTabs","assets","icon","hidden","send","receive","swap","indicator","WalletComponent","walletLoaded","createTabs","setDisabledTabs","is_hardfok_active$","setHiddenTabs","navigationInterceptor","loader","conditionForHiding","tabs","onKeyPressed","openDropdown","walletSyncVisible","onKeyUpPressed","settingsButtonInterval","settingsButtonDisabled","select","Boolean","in_progress","values","getAliasChangedEvent","updateWalletStatus","toggleMenuDropdown","resyncCurrentWallet","addCustomToken","exportHistory","ids","tab","hostBindings","_r1","OpenWalletModalComponent","notFound","emptyPass","isWrongPassword$","skipWallet","hostVars","Idle","contextMenuService","info","whenNotInteractive","do","stopCountdown","hasAppPass","isCurrentWalletSync","isCurrentWalletLoaded","getHeightAppEvent","height_max","getHeightMaxEvent","bytes","downloaded","bytesToMb","getDownloadedAppEvent","getTotalEvent","getNotLoadedWallet","idle","within","start","stop","restartCountdown","restart","Number","pow","onContextMenu","toUpperCase","show","allContextMenu","x","y","stopPropagation","onContextMenuOnlyCopy","copyText","onlyCopyContextMenu","onContextMenuPasteSelect","pasteSelectContextMenu","loadAssetsWhitelist","getWalletById","assetsInfoWhitelist","w"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file +{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/api/models/wallet.model.ts","./src/app/api/services/backend.service.ts","./src/app/api/services/wrap-info.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/layouts/full-layout/full-layout.component.ts","./src/app/layouts/full-layout/full-layout.module.ts","./src/app/layouts/sidebar/sidebar.component.ts","./src/app/layouts/sidebar/sidebar.module.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.component.ts","./src/app/layouts/with-sidebar-layout/with-sidebar-layout.module.ts","./src/app/pages/add-wallet/add-wallet.component.ts","./src/app/pages/assign-alias/assign-alias.component.ts","./src/app/pages/auth/auth-routing.module.ts","./src/app/pages/auth/auth.module.ts","./src/app/pages/auth/login/login.component.ts","./src/app/pages/auth/no-wallet/no-wallet.component.ts","./src/app/pages/create-wallet/create-wallet.component.ts","./src/app/pages/deeplink/deeplink.component.ts","./src/app/pages/deeplink/deeplink.module.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.component.ts","./src/app/pages/deeplink/modals/deeplink-modal/deeplink-modal.module.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.component.ts","./src/app/pages/deeplink/modals/sync-modal/sync-modal.module.ts","./src/app/pages/edit-alias/edit-alias.component.ts","./src/app/pages/export-import/export-import.component.ts","./src/app/pages/open-wallet/open-wallet.component.ts","./src/app/pages/pages-routing.module.ts","./src/app/pages/pages.module.ts","./src/app/pages/paths.ts","./src/app/pages/restore-wallet/restore-wallet.component.ts","./src/app/pages/seed-phrase/seed-phrase.component.ts","./src/app/pages/settings/settings.component.ts","./src/app/pages/transfer-alias/transfer-alias.component.ts","./src/app/pages/wallet-details/wallet-details.component.ts","./src/app/pages/wallet/tabs/assets/assets.component.ts","./src/app/pages/wallet/tabs/history/history.component.ts","./src/app/pages/wallet/tabs/receive/receive.component.ts","./src/app/pages/wallet/tabs/send/modals/send-details-modal/send-details-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/send-modal/send-modal.component.ts","./src/app/pages/wallet/tabs/send/modals/wallet-modals.module.ts","./src/app/pages/wallet/tabs/send/send.component.ts","./src/app/pages/wallet/tabs/staking/staking.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.ts","./src/app/pages/wallet/tabs/swap/modals/swap-confirm-master-password/swap-confirm-master-password.component.html","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/confirm-swap/confirm-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/create-swap/create-swap.component.html","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component.html","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.ts","./src/app/pages/wallet/tabs/swap/pages/swap/swap.component.html","./src/app/pages/wallet/tabs/swap/parts/guards/swap-proposal-hex.guard.ts","./src/app/pages/wallet/wallet-routing.module.ts","./src/app/pages/wallet/wallet.module.ts","./src/app/pages/wallet/wallet/modals/add-custom-token/add-custom-token.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.component.ts","./src/app/pages/wallet/wallet/modals/export-history-modal/export-history-modal.module.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.ts","./src/app/pages/wallet/wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component.html","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.ts","./src/app/pages/wallet/wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component.html","./src/app/pages/wallet/wallet/wallet.component.ts","./src/app/parts/components/back-button/back-button.component.ts","./src/app/parts/components/back-button/back-button.component.html","./src/app/parts/components/breadcrumbs/breadcrumbs.component.ts","./src/app/parts/components/breadcrumbs/breadcrumbs.component.html","./src/app/parts/components/checkbox.component.ts","./src/app/parts/components/copy-button.component.ts","./src/app/parts/components/loader.component.ts","./src/app/parts/components/register-context-templates.component.ts","./src/app/parts/components/staking-switch.component.ts","./src/app/parts/components/switch.component.ts","./src/app/parts/components/synchronization-status.component.ts","./src/app/parts/components/transaction-details.component.ts","./src/app/parts/components/wallet-card.component.ts","./src/app/parts/data/assets.ts","./src/app/parts/data/constants.ts","./src/app/parts/data/scale-items.ts","./src/app/parts/directives/autofocus.directive.ts","./src/app/parts/directives/back-button/back-button.directive.ts","./src/app/parts/directives/back-button/back-button.module.ts","./src/app/parts/directives/default-img/default-img.directive.ts","./src/app/parts/directives/default-img/default-img.module.ts","./src/app/parts/directives/default-img/index.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.directive.ts","./src/app/parts/directives/disable-price-fetch/disable-price-fetch.module.ts","./src/app/parts/directives/disable-price-fetch/index.ts","./src/app/parts/directives/index.ts","./src/app/parts/directives/input-disable-selection/index.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.directive.ts","./src/app/parts/directives/input-disable-selection/input-disable-selection.module.ts","./src/app/parts/directives/input-validate/index.ts","./src/app/parts/directives/input-validate/input-validate.directive.ts","./src/app/parts/directives/input-validate/input-validate.module.ts","./src/app/parts/directives/lower-case.directive.ts","./src/app/parts/directives/tooltip/index.ts","./src/app/parts/directives/tooltip/tooltip.directive.ts","./src/app/parts/directives/tooltip/tooltip.module.ts","./src/app/parts/functions/hasOwnProperty.ts","./src/app/parts/modals/asset-details/asset-details.component.ts","./src/app/parts/modals/asset-details/asset-details.module.ts","./src/app/parts/modals/confirm-modal/confirm-modal.component.ts","./src/app/parts/modals/confirm-modal/confirm-modal.module.ts","./src/app/parts/modals/modal-container/modal-container.component.ts","./src/app/parts/modals/open-wallet-modal/open-wallet-modal.component.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages-pipe.module.ts","./src/app/parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe.ts","./src/app/parts/pipes/contract-status-messages-pipe/index.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left-pipe.module.ts","./src/app/parts/pipes/contract-time-left-pipe/contract-time-left.pipe.ts","./src/app/parts/pipes/contract-time-left-pipe/index.ts","./src/app/parts/pipes/get-asset-info.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages-pipe.module.ts","./src/app/parts/pipes/history-type-messages-pipe/history-type-messages.pipe.ts","./src/app/parts/pipes/history-type-messages-pipe/index.ts","./src/app/parts/pipes/index.ts","./src/app/parts/pipes/int-to-money-pipe/index.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money-pipe.module.ts","./src/app/parts/pipes/int-to-money-pipe/int-to-money.pipe.ts","./src/app/parts/pipes/is-available-alias-name-pipe/index.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name-pipe.module.ts","./src/app/parts/pipes/is-available-alias-name-pipe/is-available-alias-name.pipe.ts","./src/app/parts/pipes/money-to-int-pipe/index.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int-pipe.module.ts","./src/app/parts/pipes/money-to-int-pipe/money-to-int.pipe.ts","./src/app/parts/pipes/safe-html-pipe/index.ts","./src/app/parts/pipes/safe-html-pipe/safe-html-pipe.module.ts","./src/app/parts/pipes/safe-html-pipe/safe-html.pipe.ts","./src/app/parts/pipes/short-string.pipe.ts","./src/app/parts/services/back.service.ts","./src/app/parts/services/modal.service.ts","./src/app/parts/services/variables.service.ts","./src/app/parts/services/wallets.service.ts","./src/app/parts/services/zano-loaders.service.ts","./src/app/parts/utils/MIME-types.ts","./src/app/parts/utils/generate-random-string.ts","./src/app/parts/utils/zano-errors.ts","./src/app/parts/utils/zano-validators.ts","./src/app/store/pagination/pagination.service.ts","./src/app/store/pagination/pagination.store.ts","./src/app/store/store.ts","./src/environments/environment.ts","./src/main.ts"],"sourcesContent":["import { Contracts } from './contract.model';\nimport { Transaction, Transactions } from './transaction.model';\nimport { BigNumber } from 'bignumber.js';\nimport { AssetBalance, AssetInfo, AssetBalances, AssetsInfoWhitelist } from './assets.model';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { MIXIN } from '@parts/data/constants';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\nexport const defaultSendMoneyParams: SendMoneyParams = {\n asset_id: zanoAssetInfo.asset_id,\n wallet_id: undefined,\n address: '',\n amount: undefined,\n comment: '',\n mixin: MIXIN,\n fee: '0.01',\n hide: false,\n};\n\nexport class Wallet {\n open_from_exist: boolean;\n updated = false;\n wallet_id: number;\n name: string;\n pass: string;\n path: string;\n address: string;\n\n private _balances$ = new BehaviorSubject(undefined);\n\n private _assetsInfoWhitelist: AssetsInfoWhitelist = { global_whitelist: [], local_whitelist: [], own_assets: [] };\n\n set assetsInfoWhitelist(value: AssetsInfoWhitelist) {\n this._assetsInfoWhitelist = value;\n }\n\n get allAssetsInfoWhitelist(): AssetInfo[] {\n const { global_whitelist = [], local_whitelist= [], own_assets= [] } = this._assetsInfoWhitelist;\n return [\n ...global_whitelist,\n ...local_whitelist,\n ...own_assets\n ];\n }\n\n get isEmptyAssetsInfoWhitelist(): boolean {\n return !this.allAssetsInfoWhitelist.length;\n }\n\n get allAssetsInfo(): AssetInfo[] {\n return [\n zanoAssetInfo,\n ...this.allAssetsInfoWhitelist\n ];\n }\n\n get balances$(): Observable {\n return this._balances$.asObservable();\n }\n\n get balances(): AssetBalances | null | undefined {\n return this._balances$.value;\n }\n\n set balances(value: AssetBalances | null | undefined) {\n const sortedAssets: AssetBalances = [];\n if (value) {\n const assets = [...value];\n const indexZano = assets.findIndex(({ asset_info: { ticker } }) => ticker === 'ZANO');\n if (indexZano >= 0) {\n const assetZano = assets.splice(indexZano, 1)[0];\n sortedAssets.push(assetZano);\n }\n const sortedAssetsByBalance = assets.sort((a, b) => new BigNumber(b.total).minus(new BigNumber(a.total)).toNumber());\n sortedAssets.push(...sortedAssetsByBalance);\n }\n this._balances$.next(sortedAssets);\n }\n\n get isEmptyBalances(): boolean {\n if (!this.balances) {\n return true;\n }\n\n for (const asset of this.balances) {\n const value = asset.total || 0;\n const isEmpty = !Boolean(new BigNumber(value).toNumber());\n\n if (!isEmpty) {\n return false;\n }\n }\n\n return true;\n }\n\n mined_total: number;\n tracking_hey: string;\n is_auditable: boolean;\n is_watch_only: boolean;\n exclude_mining_txs: boolean;\n alias_available: boolean;\n has_bare_unspent_outputs = false;\n\n alias?: Partial;\n wakeAlias?: boolean;\n staking?: boolean;\n new_messages?: number;\n new_contracts?: number;\n\n history: Transactions = [];\n total_history_item?: number;\n pages = [];\n totalPages: number;\n currentPage: number;\n excluded_history: Transactions = [];\n\n contracts: Contracts = [];\n\n progress?: number;\n loaded?: boolean;\n restore?: boolean;\n\n sendMoneyParams: SendMoneyParams | null = null;\n\n constructor(id, name, pass, path, address, balances, unlocked_balance, mined = 0, tracking = '') {\n this.wallet_id = id;\n this.name = name;\n this.pass = pass;\n this.path = path;\n this.address = address;\n this.balances = balances;\n this.mined_total = mined;\n this.tracking_hey = tracking;\n\n this.alias = {};\n this.staking = false;\n this.new_messages = 0;\n this.new_contracts = 0;\n\n this.history = [];\n this.excluded_history = [];\n\n this.progress = 0;\n this.loaded = false;\n }\n\n getBalanceByTicker(searchTicker: string): AssetBalance | undefined {\n return this.balances?.find(({ asset_info: { ticker } }) => ticker === searchTicker);\n }\n\n getMoneyEquivalentForZano(equivalent): string {\n const balanceZano = this.getBalanceByTicker('ZANO')?.total || 0;\n return new BigNumber(balanceZano).multipliedBy(equivalent).toFixed(0);\n }\n\n prepareHistory(items: Transaction[]): void {\n for (let i = 0; i < items.length; i++) {\n if (\n (items[i].tx_type === 7 && items[i].subtransfers?.find(({ is_income }) => is_income)) ||\n (items[i].tx_type === 11 && items[i].subtransfers?.find(({ is_income }) => is_income))\n ) {\n let exists = false;\n for (let j = 0; j < this.excluded_history.length; j++) {\n if (this.excluded_history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.excluded_history[j].height !== items[i].height) {\n this.excluded_history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n this.excluded_history.push(items[i]);\n }\n } else {\n let exists = false;\n for (let j = 0; j < this.history.length; j++) {\n if (this.history[j].tx_hash === items[i].tx_hash) {\n exists = true;\n if (this.history[j].height !== items[i].height) {\n this.history[j] = items[i];\n }\n break;\n }\n }\n if (!exists) {\n if (this.history.length > 0 && items[i].timestamp >= this.history[0].timestamp) {\n this.history.unshift(items[i]);\n } else {\n this.history.push(items[i]);\n }\n }\n }\n }\n }\n\n removeFromHistory(hash: string): void {\n for (let i = 0; i < this.history.length; i++) {\n if (this.history[i].tx_hash === hash) {\n this.history.splice(i, 1);\n break;\n }\n }\n }\n}\n\nexport interface DeeplinkParams {\n action?: 'send' | string;\n address?: string;\n amount?: string;\n my_deposit?: string;\n seller_deposit?: string;\n seller_address?: string;\n hide_sender?: string;\n hide_receiver?: string;\n title?: string;\n description?: string;\n category?: string;\n price?: string;\n img_url?: string;\n url?: string;\n contact?: string;\n comment?: string;\n comments?: string;\n mixins?: string;\n fee?: string;\n}\n\nexport interface PushOffer {\n wallet_id: number;\n od: {\n ap: string;\n at: string;\n cat: string;\n cnt: string;\n com: string;\n do: string;\n et: number;\n fee: BigNumber;\n lci: string;\n lco: string;\n ot: number;\n pt: string;\n t: string;\n url: string;\n };\n}\n\nexport interface ResponseGetWalletInfo {\n address: string;\n balances: AssetBalances;\n is_auditable: boolean;\n is_watch_only: boolean;\n mined_total: number;\n path: string;\n view_sec_key: string;\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { TranslateService } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport JSONBigNumber from 'json-bignumber';\nimport { BigNumber } from 'bignumber.js';\nimport { ResponseGetWalletInfo } from '../models/wallet.model';\nimport {\n AssetInfo,\n ParamsAddCustomAssetId,\n ParamsRemoveCustomAssetId,\n ResponseAddCustomAssetId,\n ResponseRemoveCustomAssetId,\n} from '@api/models/assets.model';\nimport { Alias } from '@api/models/alias.model';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\nexport interface PramsObj {\n [key: string]: any;\n}\n\nexport type PramsArray = (string | PramsObj)[];\n\nexport type Params = string | PramsObj | PramsArray;\n\nexport enum ParamsType {\n array = 'array',\n object = 'object',\n string = 'string',\n}\n\nexport const getParamsType = (value: Params): ParamsType | null => {\n if (!value) {\n return null;\n }\n const array: false | ParamsType.array = Array.isArray(value) && ParamsType.array;\n const object: false | ParamsType = Object.keys(ParamsType).includes(typeof value) && ParamsType[typeof value];\n return array || object || null;\n};\n\nexport type ConvertersObjectForTypes = {\n [key in ParamsType]: (value: Params) => string | string[];\n};\n\nexport const convertersObjectForTypes: ConvertersObjectForTypes = {\n [ParamsType.string]: (value: string): string => value,\n [ParamsType.object]: (value: PramsObj): string => JSONBigNumber.stringify(value),\n [ParamsType.array]: (value: PramsArray): string[] =>\n value.map(v => {\n return typeof v === ParamsType.string ? (v as string) : JSONBigNumber.stringify(v);\n }),\n};\n\nexport const convertorParams = (value: Params): string | string[] => {\n const type: ParamsType = getParamsType(value);\n return convertersObjectForTypes[type](value);\n};\n\nexport interface ResponseAsyncTransfer {\n error_code: string | 'NOT_ENOUGH_MONEY' | 'OK';\n response_data: {\n success: boolean;\n tx_blob_size: number;\n tx_hash: string;\n };\n}\n\nexport interface AsyncCommandResults {\n job_id: number;\n response: ResponseAsyncTransfer;\n}\n\nexport enum StatusCurrentActionState {\n STATE_SENDING = 'STATE_SENDING',\n STATE_SENT_SUCCESS = 'STATE_SENT_SUCCESS',\n STATE_SEND_FAILED = 'STATE_SEND_FAILED',\n STATE_INITIALIZING = 'STATE_INITIALIZING',\n STATE_DOWNLOADING_CONSENSUS = 'STATE_DOWNLOADING_CONSENSUS',\n STATE_MAKING_TUNNEL_A = 'STATE_MAKING_TUNNEL_A',\n STATE_MAKING_TUNNEL_B = 'STATE_MAKING_TUNNEL_B',\n STATE_CREATING_STREAM = 'STATE_CREATING_STREAM',\n STATE_FAILED = 'STATE_FAILED',\n STATE_SUCCESS = 'STATE_SUCCESS',\n}\n\nexport interface CurrentActionState {\n status: StatusCurrentActionState;\n wallet_id: number;\n}\n\nexport enum Commands {\n money_transfer_cancel = 'money_transfer_cancel',\n handle_deeplink_click = 'handle_deeplink_click',\n money_transfer = 'money_transfer',\n update_daemon_state = 'update_daemon_state',\n wallet_sync_progress = 'wallet_sync_progress',\n update_wallet_status = 'update_wallet_status',\n quit_requested = 'quit_requested',\n on_core_event = 'on_core_event',\n get_wallet_info = 'get_wallet_info',\n remove_custom_asset_id = 'remove_custom_asset_id',\n add_custom_asset_id = 'add_custom_asset_id',\n get_options = 'get_options',\n handle_current_action_state = 'handle_current_action_state',\n set_enable_tor = 'set_enable_tor',\n dispatch_async_call_result = 'dispatch_async_call_result',\n async_call = 'async_call',\n set_log_level = 'set_log_level',\n get_network_type = 'get_network_type',\n get_version = 'get_version',\n get_tx_pool_info = 'get_tx_pool_info',\n get_recent_transfers = 'get_recent_transfers',\n resync_wallet = 'resync_wallet',\n get_alias_coast = 'get_alias_coast',\n get_alias_info_by_address = 'get_alias_info_by_address',\n get_alias_info_by_name = 'get_alias_info_by_name',\n get_all_aliases = 'get_all_aliases',\n request_alias_update = 'request_alias_update',\n webkit_launched_script = 'webkit_launched_script',\n on_request_quit = 'on_request_quit',\n get_app_data = 'get_app_data',\n store_app_data = 'store_app_data',\n get_secure_app_data = 'get_secure_app_data',\n set_master_password = 'set_master_password',\n check_master_password = 'check_master_password',\n get_is_disabled_notifications = 'get_is_disabled_notifications',\n set_is_disabled_notifications = 'set_is_disabled_notifications',\n store_secure_app_data = 'store_secure_app_data',\n drop_secure_app_data = 'drop_secure_app_data',\n have_secure_app_data = 'have_secure_app_data',\n show_savefile_dialog = 'show_savefile_dialog',\n show_openfile_dialog = 'show_openfile_dialog',\n store_to_file = 'store_to_file',\n load_from_file = 'load_from_file',\n push_offer = 'push_offer',\n generate_wallet = 'generate_wallet',\n export_wallet_history = 'export_wallet_history',\n open_wallet = 'open_wallet',\n close_wallet = 'close_wallet',\n get_smart_wallet_info = 'get_smart_wallet_info',\n get_seed_phrase_info = 'get_seed_phrase_info',\n run_wallet = 'run_wallet',\n is_valid_restore_wallet_text = 'is_valid_restore_wallet_text',\n restore_wallet = 'restore_wallet',\n transfer = 'transfer',\n validate_address = 'validate_address',\n set_clipboard = 'set_clipboard',\n get_clipboard = 'get_clipboard',\n create_proposal = 'create_proposal',\n get_contracts = 'get_contracts',\n accept_proposal = 'accept_proposal',\n release_contract = 'release_contract',\n request_cancel_contract = 'request_cancel_contract',\n accept_cancel_contract = 'accept_cancel_contract',\n get_mining_history = 'get_mining_history',\n start_pos_mining = 'start_pos_mining',\n stop_pos_mining = 'stop_pos_mining',\n open_url_in_browser = 'open_url_in_browser',\n start_backend = 'start_backend',\n get_default_fee = 'get_default_fee',\n set_localization_strings = 'set_localization_strings',\n request_alias_registration = 'request_alias_registration',\n call_rpc = 'call_rpc',\n call_wallet_rpc = 'call_wallet_rpc',\n setup_jwt_wallet_rpc = 'setup_jwt_wallet_rpc',\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BackendService {\n dispatchAsyncCallResult$ = new Subject();\n\n handleCurrentActionState$ = new Subject();\n\n backendObject: any;\n\n backendLoaded = false;\n\n constructor(\n private translate: TranslateService,\n private variablesService: VariablesService,\n private modalService: ModalService,\n private moneyToIntPipe: MoneyToIntPipe,\n private ngZone: NgZone\n ) {}\n\n static bigNumberParser(key, val): any {\n if (\n val.constructor.name === 'BigNumber' &&\n ['balance', 'unlocked_balance', 'amount', 'fee', 'b_fee', 'to_pay', 'a_pledge', 'b_pledge', 'coast', 'a'].indexOf(key) === -1\n ) {\n return val.toNumber();\n }\n if (key === 'rcv' || key === 'spn') {\n for (let i = 0; i < val.length; i++) {\n val[i] = new BigNumber(val[i]);\n }\n }\n return val;\n }\n\n static Debug(type, message): void {\n switch (type) {\n case 0:\n console.error(message);\n break;\n case 1:\n console.warn(message);\n break;\n case 2:\n console.log(message);\n break;\n default:\n console.log(message);\n break;\n }\n }\n\n eventSubscribe(command: Commands, callback): void {\n if (command === Commands.on_core_event) {\n this.backendObject[command].connect(callback);\n } else {\n this.backendObject[command].connect(str => {\n callback(JSONBigNumber.parse(str, BackendService.bigNumberParser));\n });\n }\n }\n\n initService(): Observable {\n return new Observable(observer => {\n if (!this.backendLoaded) {\n this.backendLoaded = true;\n (window).QWebChannel((window).qt.webChannelTransport, channel => {\n this.backendObject = channel.objects.mediator_object;\n observer.next('backendObject loaded');\n });\n } else {\n observer.error('backend not loaded');\n if (!this.backendObject) {\n observer.error('backendObject not loaded');\n }\n }\n });\n }\n\n webkitLaunchedScript(): void {\n this.runCommand(Commands.webkit_launched_script);\n }\n\n quitRequest(): void {\n this.runCommand(Commands.on_request_quit);\n }\n\n getAppData(callback): void {\n this.runCommand(Commands.get_app_data, {}, callback);\n }\n\n storeAppData(callback?): void {\n if (this.variablesService.wallets.length > 0) {\n this.variablesService.settings.wallets = [];\n this.variablesService.wallets.forEach(wallet => {\n this.variablesService.settings.wallets.push({\n name: wallet.name,\n path: wallet.path,\n });\n });\n }\n this.runCommand(Commands.store_app_data, this.variablesService.settings, callback);\n }\n\n getSecureAppData(pass, callback): void {\n this.runCommand(Commands.get_secure_app_data, pass, callback);\n }\n\n setMasterPassword(pass, callback): void {\n this.runCommand(Commands.set_master_password, pass, callback);\n }\n\n checkMasterPassword(pass, callback): void {\n this.runCommand(Commands.check_master_password, pass, callback);\n }\n\n getIsDisabledNotifications(callback): void {\n const params = {};\n this.runCommand(Commands.get_is_disabled_notifications, params, callback);\n }\n\n setIsDisabledNotifications(state): void {\n this.runCommand(Commands.set_is_disabled_notifications, state);\n }\n\n storeSecureAppData(callback?): void {\n const wallets = [];\n const contacts = [];\n this.variablesService.wallets.forEach(wallet => {\n wallets.push({\n name: wallet.name,\n pass: wallet.pass,\n path: wallet.path,\n staking: wallet.staking,\n });\n });\n this.variablesService.contacts.forEach(contact => {\n contacts.push({\n name: contact.name,\n address: contact.address,\n notes: contact.notes,\n });\n });\n const data = { wallets: wallets, contacts: contacts };\n this.backendObject[Commands.store_secure_app_data](JSON.stringify(data), this.variablesService.appPass, dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.store_secure_app_data);\n });\n }\n\n dropSecureAppData(callback?): void {\n this.backendObject[Commands.drop_secure_app_data](dataStore => {\n this.backendCallback(dataStore, {}, callback, Commands.drop_secure_app_data);\n });\n }\n\n haveSecureAppData(callback): void {\n this.runCommand(Commands.have_secure_app_data, {}, callback);\n }\n\n saveFileDialog(caption, fileMask, default_path, callback): void {\n const dir = default_path ? default_path : '/';\n const params = {\n caption: caption,\n filemask: fileMask,\n default_dir: dir,\n };\n this.runCommand(Commands.show_savefile_dialog, params, callback);\n }\n\n openFileDialog(caption, filemask, default_path, callback): void {\n const default_dir = default_path ? default_path : '/';\n const params = {\n caption,\n filemask,\n default_dir,\n };\n this.runCommand(Commands.show_openfile_dialog, params, callback);\n }\n\n storeFile(path, buff): void {\n this.backendObject[Commands.store_to_file](path, buff);\n }\n\n loadFile(path, callback): void {\n this.runCommand(Commands.load_from_file, path, callback);\n }\n\n push_offer(params, callback): void {\n this.runCommand(Commands.push_offer, params, callback);\n }\n\n generateWallet(path, pass, callback): void {\n const params = {\n path: path,\n pass: pass,\n };\n this.runCommand(Commands.generate_wallet, params, callback);\n }\n\n exportWalletHistory(json_string): void {\n this.runCommand(Commands.export_wallet_history, json_string);\n }\n\n openWallet(path, pass, txs_to_return, testEmpty, callback): void {\n const params = {\n path: path,\n pass: pass,\n txs_to_return: txs_to_return,\n };\n params['testEmpty'] = !!testEmpty;\n this.runCommand(Commands.open_wallet, params, callback);\n }\n\n closeWallet(wallet_id, callback?): void {\n this.runCommand(Commands.close_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n getSmartWalletInfo({ wallet_id, seed_password }, callback): void {\n this.runCommand(Commands.get_smart_wallet_info, { wallet_id: +wallet_id, seed_password }, callback);\n }\n\n getSeedPhraseInfo(param, callback): void {\n this.runCommand(Commands.get_seed_phrase_info, param, callback);\n }\n\n runWallet(wallet_id, callback?): void {\n this.runCommand(Commands.run_wallet, { wallet_id: +wallet_id }, callback);\n }\n\n isValidRestoreWalletText(param, callback): void {\n this.runCommand(Commands.is_valid_restore_wallet_text, param, callback);\n }\n\n restoreWallet(path, pass, seed_phrase, seed_pass, callback): void {\n const params = {\n seed_phrase: seed_phrase,\n path: path,\n pass: pass,\n seed_pass,\n };\n this.runCommand(Commands.restore_wallet, params, callback);\n }\n\n sendMoney({ wallet_id, address, amount, fee, mixin, comment, hide, asset_id }: SendMoneyParams, callback): void {\n const params = {\n wallet_id,\n destinations: [\n {\n address,\n amount,\n ...(asset_id && { asset_id }),\n },\n ],\n mixin_count: mixin ?? 0,\n lock_time: 0,\n fee: this.moneyToIntPipe.transform(fee),\n comment: comment,\n push_payer: !hide,\n };\n\n this.asyncCall(Commands.transfer, params, callback);\n }\n\n setupJwtWalletRpc(value: { zanoCompation: boolean; secret: string }): void {\n const { secret } = value;\n\n this.runCommand(Commands.setup_jwt_wallet_rpc, secret, () => {\n this.variablesService.settings.zanoCompanionForm = value;\n this.storeAppData();\n });\n }\n\n validateAddress(address, callback): void {\n this.runCommand(Commands.validate_address, address, callback);\n }\n\n setClipboard(str, callback?): void {\n this.runCommand(Commands.set_clipboard, str, callback);\n }\n\n getClipboard(callback): void {\n this.runCommand(Commands.get_clipboard, {}, callback);\n }\n\n createProposal(wallet_id, title, comment, a_addr, b_addr, to_pay, a_pledge, b_pledge, time, payment_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n details: {\n t: title,\n c: comment,\n a_addr: a_addr,\n b_addr: b_addr,\n to_pay: this.moneyToIntPipe.transform(to_pay),\n a_pledge: this.moneyToIntPipe.transform(a_pledge),\n b_pledge: this.moneyToIntPipe.transform(b_pledge),\n },\n payment_id: payment_id,\n expiration_period: parseInt(time, 10) * 60 * 60,\n fee: this.variablesService.default_fee_big,\n b_fee: this.variablesService.default_fee_big,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.create_proposal, params, callback);\n }\n\n getContracts(wallet_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.get_contracts, params, callback);\n }\n\n acceptProposal(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_proposal, params, callback);\n }\n\n releaseProposal(wallet_id, contract_id, release_type, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n release_type: release_type, // \"normal\" or \"burn\"\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.release_contract, params, callback);\n }\n\n requestCancelContract(wallet_id, contract_id, time, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n fee: this.variablesService.default_fee_big,\n expiration_period: parseInt(time, 10) * 60 * 60,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.request_cancel_contract, params, callback);\n }\n\n acceptCancelContract(wallet_id, contract_id, callback): void {\n const params = {\n wallet_id: parseInt(wallet_id, 10),\n contract_id: contract_id,\n };\n BackendService.Debug(1, params);\n this.runCommand(Commands.accept_cancel_contract, params, callback);\n }\n\n getMiningHistory(wallet_id, callback): void {\n this.runCommand(Commands.get_mining_history, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n startPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.start_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n stopPosMining(wallet_id, callback?): void {\n this.runCommand(Commands.stop_pos_mining, { wallet_id: parseInt(wallet_id, 10) }, callback);\n }\n\n openUrlInBrowser(url, callback?): void {\n this.runCommand(Commands.open_url_in_browser, url, callback);\n }\n\n start_backend(node, host, port, callback): void {\n const params = {\n configure_for_remote_node: node,\n remote_node_host: host,\n remote_node_port: parseInt(port, 10),\n };\n this.runCommand(Commands.start_backend, params, callback);\n }\n\n getDefaultFee(callback): void {\n this.runCommand(Commands.get_default_fee, {}, callback);\n }\n\n setBackendLocalization(stringsArray, title, callback?): void {\n const params = {\n strings: stringsArray,\n language_title: title,\n };\n this.runCommand(Commands.set_localization_strings, params, callback);\n }\n\n registerAlias(wallet_id, alias, address, fee, comment, reward, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias,\n address: address,\n tracking_key: '',\n comment: comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n reward: this.moneyToIntPipe.transform(reward),\n };\n this.runCommand(Commands.request_alias_registration, params, callback);\n }\n\n updateAlias(wallet_id, alias, fee, callback): void {\n const params = {\n wallet_id: wallet_id,\n alias: {\n alias: alias.name.replace('@', ''),\n address: alias.address,\n tracking_key: '',\n comment: alias.comment,\n },\n fee: this.moneyToIntPipe.transform(fee),\n };\n this.runCommand(Commands.request_alias_update, params, callback);\n }\n\n getAllAliases(callback): void {\n this.runCommand(Commands.get_all_aliases, {}, callback);\n }\n\n getAliasInfoByName(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_name, value, callback);\n }\n\n getAliasByAddress(value, callback): void {\n this.runCommand(Commands.get_alias_info_by_address, value, callback);\n }\n\n getAliasCoast(alias, callback): void {\n this.runCommand(Commands.get_alias_coast, { v: alias }, callback);\n }\n\n resyncWallet(id): void {\n this.runCommand(Commands.resync_wallet, { wallet_id: id });\n }\n\n getWalletAlias(address): Partial {\n if (address !== null && this.variablesService.daemon_state === 2) {\n if (this.variablesService.aliasesChecked[address] == null) {\n this.variablesService.aliasesChecked[address] = {};\n if (this.variablesService.aliases.length) {\n for (let i = 0, length = this.variablesService.aliases.length; i < length; i++) {\n if (i in this.variablesService.aliases && this.variablesService.aliases[i]['address'] === address) {\n this.variablesService.aliasesChecked[address]['name'] = this.variablesService.aliases[i].name;\n this.variablesService.aliasesChecked[address]['address'] = this.variablesService.aliases[i].address;\n this.variablesService.aliasesChecked[address]['comment'] = this.variablesService.aliases[i].comment;\n return this.variablesService.aliasesChecked[address];\n }\n }\n }\n this.getAliasByAddress(address, (status, data) => {\n if (status) {\n this.variablesService.aliasesChecked[data.address]['name'] = '@' + data.alias;\n this.variablesService.aliasesChecked[data.address]['address'] = data.address;\n this.variablesService.aliasesChecked[data.address]['comment'] = data.comment;\n }\n });\n }\n return this.variablesService.aliasesChecked[address];\n }\n return {};\n }\n\n getContactAlias(): void {\n if (this.variablesService.contacts.length > 0 && this.variablesService.daemon_state === 2) {\n this.variablesService.contacts.map(contact => {\n this.getAliasByAddress(contact.address, (status, data) => {\n if (status) {\n if (data.alias) {\n contact.alias = '@' + data.alias;\n }\n } else {\n contact.alias = null;\n }\n });\n });\n }\n }\n\n getRecentTransfers(id, offset, count, exclude_mining_txs, callback): void {\n const params = {\n wallet_id: id,\n offset: offset,\n count: count,\n exclude_mining_txs: exclude_mining_txs,\n };\n this.runCommand(Commands.get_recent_transfers, params, callback);\n }\n\n getPoolInfo(callback): void {\n this.runCommand(Commands.get_tx_pool_info, {}, callback);\n }\n\n getVersion(callback): void {\n this.runCommand(Commands.get_version, {}, (status, version, errorVersion) => {\n this.runCommand(Commands.get_network_type, {}, (status_network, type, errorType) => {\n callback(version, type, errorVersion ?? errorType);\n });\n });\n }\n\n setLogLevel(level): void {\n this.runCommand(Commands.set_log_level, { v: level });\n }\n\n asyncCall(command: string, params: PramsObj, callback?: (job_id?: number) => void | any): void {\n this.runCommand(Commands.async_call, [command, params], (status, { job_id }: { job_id: number }) => {\n callback(job_id);\n });\n }\n\n dispatchAsyncCallResult(): void {\n this.backendObject[Commands.dispatch_async_call_result].connect((job_id: string, json_resp: string) => {\n const asyncCommandResults: AsyncCommandResults = {\n job_id: +job_id,\n response: JSON.parse(json_resp),\n };\n this.ngZone.run(() => this.dispatchAsyncCallResult$.next(asyncCommandResults));\n });\n }\n\n handleCurrentActionState(): void {\n this.backendObject[Commands.handle_current_action_state].connect((response: string) => {\n const currentActionState: CurrentActionState = JSON.parse(response);\n this.ngZone.run(() => this.handleCurrentActionState$.next(currentActionState));\n });\n }\n\n setEnableTor(value: boolean): void {\n this.runCommand(Commands.set_enable_tor, <{ v: boolean }>{\n v: value,\n });\n }\n\n getOptions(): any {\n this.runCommand(\n Commands.get_options,\n {},\n (\n status,\n {\n disable_price_fetch,\n use_debug_mode,\n rpc_port,\n }: { disable_price_fetch: boolean; use_debug_mode: boolean; rpc_port: number }\n ) => {\n this.variablesService.disable_price_fetch$.next(disable_price_fetch);\n this.variablesService.use_debug_mode$.next(use_debug_mode);\n this.variablesService.rpc_port = rpc_port;\n }\n );\n }\n\n addCustomAssetId(\n params: ParamsAddCustomAssetId,\n callback: (\n status: boolean,\n response_data: ResponseAddCustomAssetId,\n res_error_code?: {\n error_code: 'FAILED' | string;\n response_data: {\n asset_descriptor: Partial;\n status: 'FAILED' | string;\n };\n }\n ) => void\n ): void {\n this.runCommand(Commands.add_custom_asset_id, params, callback);\n }\n\n removeCustomAssetId(\n params: ParamsRemoveCustomAssetId,\n callback?: (status: boolean, response_data: ResponseRemoveCustomAssetId) => void\n ): void {\n this.runCommand(Commands.remove_custom_asset_id, params, callback);\n }\n\n getWalletInfo(wallet_id, callback?: (status: boolean, response_data: ResponseGetWalletInfo) => void): void {\n this.runCommand(Commands.get_wallet_info, { wallet_id }, callback);\n }\n\n // Use for call rpc-api https://docs.zano.org/docs/build/rpc-api\n call_rpc(params: Partial, callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_rpc, params, callback);\n }\n\n call_wallet_rpc(params: [wallet_id: number, params: Partial], callback?: (status: boolean, response_data: any) => void): void {\n this.runCommand(Commands.call_wallet_rpc, params, callback);\n }\n\n private informerRun(error: string, params, command: string): void {\n let error_translate = '';\n switch (error) {\n case 'NOT_ENOUGH_MONEY':\n error_translate = 'ERRORS.NOT_ENOUGH_MONEY';\n // error_translate = 'ERRORS.NO_MONEY'; maybe that one?\n if (command === 'cancel_offer') {\n error_translate = this.translate.instant('ERRORS.NO_MONEY_REMOVE_OFFER', {\n fee: this.variablesService.default_fee,\n currency: this.variablesService.defaultCurrency,\n });\n }\n break;\n case 'CORE_BUSY':\n error_translate = 'ERRORS.CORE_BUSY';\n break;\n case 'BUSY':\n error_translate = 'ERRORS.DAEMON_BUSY';\n break;\n case 'OVERFLOW':\n if (command !== 'get_all_aliases') {\n error_translate = '';\n }\n break;\n case 'NOT_ENOUGH_OUTPUTS_FOR_MIXING':\n error_translate = 'ERRORS.NOT_ENOUGH_OUTPUTS_TO_MIX';\n break;\n case 'TX_IS_TOO_BIG':\n error_translate = 'ERRORS.TRANSACTION_IS_TO_BIG';\n break;\n case 'DISCONNECTED':\n error_translate = 'ERRORS.TRANSFER_ATTEMPT';\n break;\n case 'ACCESS_DENIED':\n error_translate = 'ERRORS.ACCESS_DENIED';\n break;\n case 'TX_REJECTED':\n // if (command === 'request_alias_registration') {\n // error_translate = 'INFORMER.ALIAS_IN_REGISTER';\n // } else {\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n // }\n break;\n case 'INTERNAL_ERROR':\n error_translate = 'ERRORS.TRANSACTION_ERROR';\n break;\n case 'BAD_ARG':\n error_translate = 'ERRORS.BAD_ARG';\n break;\n case 'WALLET_WRONG_ID':\n error_translate = 'ERRORS.WALLET_WRONG_ID';\n break;\n case 'WALLET_WATCH_ONLY_NOT_SUPPORTED':\n error_translate = 'ERRORS.WALLET_WATCH_ONLY_NOT_SUPPORTED';\n break;\n // case 'WRONG_PASSWORD':\n // params = JSON.parse(params);\n // if (!params.testEmpty) {\n // error_translate = 'ERRORS.WRONG_PASSWORD';\n // }\n // break;\n case 'FILE_RESTORED':\n if (command === 'open_wallet') {\n error_translate = 'ERRORS.FILE_RESTORED';\n }\n break;\n case 'FILE_NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'NOT_FOUND':\n if (command !== 'open_wallet' && command !== 'get_alias_info_by_name' && command !== 'get_alias_info_by_address') {\n error_translate = this.translate.instant('ERRORS.FILE_NOT_FOUND');\n params = JSON.parse(params);\n if (params.path) {\n error_translate += ': ' + params.path;\n }\n }\n break;\n case 'CANCELED':\n case '':\n break;\n case 'FAIL':\n if (\n command === 'create_proposal' ||\n command === 'accept_proposal' ||\n command === 'release_contract' ||\n command === 'request_cancel_contract' ||\n command === 'accept_cancel_contract'\n ) {\n error_translate = ' ';\n }\n break;\n case 'ALREADY_EXISTS':\n error_translate = 'ERRORS.FILE_EXIST';\n break;\n case 'FAILED':\n BackendService.Debug(0, `Error: (${error}) was triggered by command: ${command}`);\n break;\n default:\n error_translate = '';\n }\n if (error.indexOf('FAIL:failed to save file') > -1) {\n error_translate = 'ERRORS.FILE_NOT_SAVED';\n }\n if (error.indexOf('FAILED:failed to open binary wallet file for saving') > -1 && command === 'generate_wallet') {\n error_translate = '';\n }\n\n if (error_translate !== '') {\n this.modalService.prepareModal('error', error_translate);\n }\n }\n\n private commandDebug(command: Commands, params: Params, result: any): void {\n BackendService.Debug(2, '----------------- ' + command + ' -----------------');\n const debug = {\n _send_params: params,\n _result: result,\n };\n BackendService.Debug(2, debug);\n try {\n BackendService.Debug(2, JSONBigNumber.parse(result, BackendService.bigNumberParser));\n } catch (e) {\n BackendService.Debug(2, { response_data: result, error_code: 'OK' });\n }\n }\n\n private backendCallback(resultStr, params, callback, command: Commands): any {\n let Result = resultStr;\n if (command !== Commands.get_clipboard) {\n if (!resultStr || resultStr === '') {\n Result = {};\n } else {\n try {\n Result = JSONBigNumber.parse(resultStr, BackendService.bigNumberParser);\n } catch (e) {\n Result = { response_data: resultStr, error_code: 'OK' };\n }\n }\n } else {\n Result = {\n error_code: 'OK',\n response_data: Result,\n };\n }\n\n const core_busy = Result.error_code === 'CORE_BUSY';\n const Status = Result.error_code === 'OK' || Result.error_code === 'TRUE';\n\n if (!Status && Status !== undefined && Result.error_code !== undefined) {\n BackendService.Debug(1, 'API error for command: \"' + command + '\". Error code: ' + Result.error_code);\n }\n const data = typeof Result === 'object' && 'response_data' in Result ? Result.response_data : Result;\n\n let res_error_code = false;\n if (\n typeof Result === 'object' &&\n 'error_code' in Result &&\n Result.error_code !== 'OK' &&\n Result.error_code !== 'TRUE' &&\n Result.error_code !== 'FALSE' &&\n Result.error_code !== 'WRAP'\n ) {\n if (core_busy) {\n setTimeout(() => {\n // this is will avoid update data when user\n // on other wallet after CORE_BUSY (blink of data)\n if (command !== Commands.get_recent_transfers) {\n this.runCommand(command, params, callback);\n } else {\n const current_wallet_id = this.variablesService.currentWallet.wallet_id;\n if (current_wallet_id === params.wallet_id) {\n this.runCommand(command, params, callback);\n }\n }\n }, 50);\n } else {\n this.informerRun(Result.error_code, params, command);\n res_error_code = Result.error_code;\n }\n }\n\n if (!core_busy) {\n if (typeof callback === 'function') {\n callback(Status, data, res_error_code);\n } else {\n return data;\n }\n }\n }\n\n private runCommand(command: Commands, params?: Params, callback?): any {\n if (!this.backendObject) {\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = true;\n }\n\n const Action = this.backendObject[command];\n\n if (!Action) {\n BackendService.Debug(0, 'Run Command Error! Command \"' + command + '\" don\\'t found in backendObject');\n return;\n }\n\n const type: ParamsType = getParamsType(params);\n params = params && convertorParams(params);\n\n if (type === ParamsType.array) {\n Action(...(params as string[]), resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n return;\n }\n\n if (command === Commands.get_recent_transfers) {\n this.variablesService.get_recent_transfers = false;\n }\n Action(params, resultStr => {\n this.commandDebug(command, params, resultStr);\n return this.backendCallback(resultStr, params, callback, command);\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { WrapInfo } from '@api/models/wrap-info';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WrapInfoService {\n private httpClient = inject(HttpClient);\n\n getWrapInfo(): Observable {\n return this.httpClient.get('https://wrapped.zano.org/api2/get_wrap_info');\n }\n}\n","import { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [RouterModule.forRoot([], { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { BigNumber } from 'bignumber.js';\nimport { ModalService } from '@parts/services/modal.service';\nimport { StateKeys, Store } from '@store/store';\nimport { shareReplay, Subject, switchMap, take } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { paths, pathsChildrenAuth } from './pages/paths';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\n\n@Component({\n selector: 'app-root',\n template: `\n \n\n
\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n

\n

\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n

\n
\n
\n\n
\n

\n {{ zanoLoadersService.getMessage('fullScreen') | async | translate }}\n

\n
\n
\n\n \n\n \n `,\n})\nexport class AppComponent implements OnInit, OnDestroy {\n intervalUpdatePriceState;\n\n intervalUpdateContractsState;\n\n expMedTsEvent;\n\n onQuitRequest = false;\n\n firstOnlineState = false;\n\n translateUsed = false;\n\n needOpenWallets = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public translate: TranslateService,\n private http: HttpClient,\n private renderer: Renderer2,\n private backendService: BackendService,\n private router: Router,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private modalService: ModalService,\n private store: Store,\n private dialog: Dialog,\n public zanoLoadersService: ZanoLoadersService\n ) {\n translate.addLangs(['en', 'fr', 'de', 'it', 'pt']);\n translate.setDefaultLang('en');\n translate.use('en').subscribe({\n next: () => {\n this.translateUsed = true;\n },\n });\n }\n\n setBackendLocalization(): void {\n if (this.translateUsed) {\n const stringsArray = [\n this.translate.instant('BACKEND_LOCALIZATION.QUIT'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_RECEIVED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_UNCONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.INCOME_TRANSFER_CONFIRMED'),\n this.translate.instant('BACKEND_LOCALIZATION.MINED'),\n this.translate.instant('BACKEND_LOCALIZATION.LOCKED'),\n this.translate.instant('BACKEND_LOCALIZATION.IS_MINIMIZE'),\n this.translate.instant('BACKEND_LOCALIZATION.RESTORE'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_SHOW'),\n this.translate.instant('BACKEND_LOCALIZATION.TRAY_MENU_MINIMIZE'),\n ];\n this.backendService.setBackendLocalization(stringsArray, this.variablesService.settings.language);\n } else {\n console.warn('wait translate use');\n setTimeout(() => {\n this.setBackendLocalization();\n }, 10000);\n }\n }\n\n ngOnInit(): void {\n this.backendService.initService().subscribe({\n next: initMessage => {\n console.log('Init message: ', initMessage);\n this.backendService.getOptions();\n this.backendService.webkitLaunchedScript();\n\n this.backendService.start_backend(false, '127.0.0.1', 11512, (st2, dd2) => {\n console.log(st2, dd2);\n });\n\n this.backendService.eventSubscribe(Commands.quit_requested, async () => {\n if (this.onQuitRequest) {\n return;\n }\n\n // await this.ngZone.run(async () => {\n // await this.router.navigate(['/']);\n // });\n\n this.dialog.closeAll();\n this.needOpenWallets = [];\n this.variablesService.daemon_state = 5;\n\n const saveFunction = (): void => {\n this.backendService.storeAppData((): void => {\n const recursionCloseWallets = (): void => {\n if (this.variablesService.wallets.length > 0) {\n const lastIndex = this.variablesService.wallets.length - 1;\n this.backendService.closeWallet(this.variablesService.wallets[lastIndex].wallet_id, () => {\n this.variablesService.wallets.splice(lastIndex, 1);\n recursionCloseWallets();\n });\n } else {\n this.ngZone.run(() => {\n this.backendService.quitRequest();\n });\n }\n };\n recursionCloseWallets();\n });\n };\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData(saveFunction);\n } else {\n saveFunction();\n }\n\n this.onQuitRequest = true;\n });\n\n this.backendService.eventSubscribe(Commands.update_wallet_status, data => {\n console.log('----------------- update_wallet_status -----------------');\n console.log(data);\n\n const wallet_state = data.wallet_state;\n const is_mining = data.is_mining;\n const wallet = this.variablesService.getWallet(data.wallet_id);\n // 1-synch, 2-ready, 3 - error\n if (wallet) {\n this.ngZone.run(() => {\n wallet.loaded = false;\n wallet.staking = is_mining;\n if (wallet_state === 2) {\n // ready\n wallet.loaded = true;\n }\n if (wallet_state === 3) {\n // error\n // wallet.error = true;\n }\n wallet.balances = data.balances;\n wallet.mined_total = data.minied_total;\n wallet.alias_available = data.is_alias_operations_available;\n wallet.has_bare_unspent_outputs = data.has_bare_unspent_outputs;\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.wallet_sync_progress, data => {\n console.log('----------------- wallet_sync_progress -----------------');\n console.log(data);\n const wallet = this.variablesService.getWallet(data.wallet_id);\n if (wallet) {\n this.ngZone.run(() => {\n wallet.progress = data.progress < 0 ? 0 : data.progress > 100 ? 100 : data.progress;\n if (!this.variablesService.sync_started) {\n this.variablesService.sync_started = true;\n this.variablesService.sync_wallets[wallet.wallet_id] = true;\n }\n this.addToStore(wallet, true); // subscribe on data\n if (wallet.progress === 0) {\n wallet.loaded = false;\n } else if (wallet.progress === 100) {\n wallet.loaded = true;\n this.addToStore(wallet, false);\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[wallet.wallet_id] = false;\n }\n });\n }\n });\n\n this.backendService.eventSubscribe(Commands.update_daemon_state, data => {\n console.log('----------------- update_daemon_state -----------------');\n console.log('DAEMON:' + data.daemon_network_state);\n console.log(data);\n // this.variablesService.exp_med_ts = data['expiration_median_timestamp'] + 600 + 1;\n this.variablesService.setExpMedTs(data['expiration_median_timestamp'] + 600 + 1);\n this.variablesService.net_time_delta_median = data.net_time_delta_median;\n this.variablesService.last_build_available = data.last_build_available;\n this.variablesService.last_build_displaymode = data.last_build_displaymode;\n this.variablesService.setHeightApp(data.height);\n this.variablesService.setHeightMax(data.max_net_seen_height);\n\n this.variablesService.setDownloadedBytes(data.downloaded_bytes);\n this.variablesService.setTotalBytes(data.download_total_data_size);\n\n this.backendService.getContactAlias();\n this.ngZone.run(() => {\n this.variablesService.daemon_state = data['daemon_network_state'];\n if (data['daemon_network_state'] === 1) {\n const max = data['max_net_seen_height'] - data['synchronization_start_height'];\n const current = data.height - data['synchronization_start_height'];\n const return_val = Math.floor(((current * 100) / max) * 100) / 100;\n if (max === 0 || return_val < 0) {\n this.variablesService.sync.progress_value = 0;\n this.variablesService.sync.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.sync.progress_value = 100;\n this.variablesService.sync.progress_value_text = '99.99';\n } else {\n this.variablesService.sync.progress_value = return_val;\n this.variablesService.sync.progress_value_text = return_val.toFixed(2);\n }\n }\n\n if (data['daemon_network_state'] === 6) {\n const max = data['download_total_data_size'];\n const current = data['downloaded_bytes'];\n const return_val = Math.floor((current / max) * 100);\n if (max === 0 || return_val < 0) {\n this.variablesService.download.progress_value = 0;\n this.variablesService.download.progress_value_text = '0.00';\n } else if (return_val >= 100) {\n this.variablesService.download.progress_value = 100;\n this.variablesService.download.progress_value_text = '99.99';\n } else {\n this.variablesService.download.progress_value = return_val;\n this.variablesService.download.progress_value_text = return_val.toFixed(2);\n }\n }\n });\n if (!this.firstOnlineState && data['daemon_network_state'] === 2) {\n this.getAliases();\n this.backendService.getContactAlias();\n this.backendService.getDefaultFee((status_fee, data_fee) => {\n this.variablesService.default_fee_big = new BigNumber(data_fee);\n this.variablesService.default_fee = this.intToMoneyPipe.transform(data_fee);\n });\n this.firstOnlineState = true;\n }\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer, data => {\n console.log('----------------- money_transfer -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n\n const wallet = this.variablesService.getWallet(wallet_id);\n if (wallet) {\n if (wallet.history.length > 40) {\n wallet.history.splice(40, 1);\n }\n this.ngZone.run(() => {\n wallet.balances = data.balances;\n\n if (tr_info.tx_type === 6) {\n this.variablesService.setRefreshStacking(wallet_id);\n }\n\n let tr_exists = wallet.excluded_history.some(elem => elem.tx_hash === tr_info.tx_hash);\n tr_exists = !tr_exists ? wallet.history.some(elem => elem.tx_hash === tr_info.tx_hash) : tr_exists;\n\n if (wallet.currentPage === 1) {\n wallet.prepareHistory([tr_info]);\n if (wallet.restore) {\n wallet.total_history_item = wallet.history.length;\n wallet.totalPages = Math.ceil(wallet.total_history_item / this.variablesService.count);\n wallet.totalPages > this.variablesService.maxPages\n ? (wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (wallet.pages = new Array(wallet.totalPages).fill(1).map((value, index) => value + index));\n }\n }\n\n if (hasOwnProperty(tr_info, 'contract')) {\n const exp_med_ts = this.variablesService.exp_med_ts;\n const height_app = this.variablesService.height_app;\n const contract = tr_info.contract[0];\n if (tr_exists) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n wallet.contracts[i].cancel_expiration_time = contract.cancel_expiration_time;\n wallet.contracts[i].expiration_time = contract.expiration_time;\n wallet.contracts[i].height = contract.height;\n wallet.contracts[i].timestamp = contract.timestamp;\n break;\n }\n }\n // $rootScope.getContractsRecount();\n return;\n }\n\n if (contract.state === 1 && contract.expiration_time < exp_med_ts) {\n contract.state = 110;\n } else if (contract.state === 5 && contract.cancel_expiration_time < exp_med_ts) {\n contract.state = 130;\n } else if (contract.state === 1) {\n const searchResult2 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 110 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult2) {\n if (searchResult2.time === contract.expiration_time) {\n contract.state = 110;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 2 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 201;\n } else if (contract.state === 2) {\n const searchResult3 = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === 120 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult3) {\n contract.state = 120;\n }\n } else if (contract.state === 5) {\n const searchResult4 = this.variablesService.settings.notViewedContracts.find(\n elem =>\n elem.state === 130 && elem.is_a === contract.is_a && elem.contract_id === contract.contract_id\n );\n if (searchResult4) {\n if (searchResult4.time === contract.cancel_expiration_time) {\n contract.state = 130;\n } else {\n for (let j = 0; j < this.variablesService.settings.notViewedContracts.length; j++) {\n if (\n this.variablesService.settings.notViewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.notViewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.notViewedContracts.splice(j, 1);\n break;\n }\n }\n for (let j = 0; j < this.variablesService.settings.viewedContracts.length; j++) {\n if (\n this.variablesService.settings.viewedContracts[j].contract_id ===\n contract.contract_id &&\n this.variablesService.settings.viewedContracts[j].is_a === contract.is_a\n ) {\n this.variablesService.settings.viewedContracts.splice(j, 1);\n break;\n }\n }\n }\n }\n } else if (contract.state === 6 && (contract.height === 0 || height_app - contract.height < 10)) {\n contract.state = 601;\n }\n\n const searchResult = this.variablesService.settings.viewedContracts.some(\n elem =>\n elem.state === contract.state &&\n elem.is_a === contract.is_a &&\n elem.contract_id === contract.contract_id\n );\n contract.is_new = !searchResult;\n\n let findContract = false;\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === contract.contract_id &&\n wallet.contracts[i].is_a === contract.is_a\n ) {\n for (const prop in contract) {\n if (hasOwnProperty(contract, prop)) {\n wallet.contracts[i][prop] = contract[prop];\n }\n }\n findContract = true;\n break;\n }\n }\n if (findContract === false) {\n wallet.contracts.push(contract);\n }\n // wallet.recountNewContracts();\n }\n });\n }\n });\n\n this.backendService.backendObject[Commands.handle_deeplink_click].connect(data => {\n console.log('----------------- handle_deeplink_click -----------------');\n console.log(data);\n this.ngZone.run(() => {\n if (data) {\n this.variablesService.deeplink$.next(data);\n }\n });\n });\n\n this.backendService.eventSubscribe(Commands.money_transfer_cancel, data => {\n console.log('----------------- money_transfer_cancel -----------------');\n console.log(data);\n\n if (!data.ti) {\n return;\n }\n\n const wallet_id = data.wallet_id;\n const tr_info = data.ti;\n const wallet = this.variablesService.getWallet(wallet_id);\n\n if (wallet) {\n if (hasOwnProperty(tr_info, 'contract')) {\n for (let i = 0; i < wallet.contracts.length; i++) {\n if (\n wallet.contracts[i].contract_id === tr_info.contract[0].contract_id &&\n wallet.contracts[i].is_a === tr_info.contract[0].is_a\n ) {\n if (wallet.contracts[i].state === 1 || wallet.contracts[i].state === 110) {\n wallet.contracts[i].is_new = true;\n wallet.contracts[i].state = 140;\n // wallet.recountNewContracts();\n }\n break;\n }\n }\n }\n\n wallet.removeFromHistory(tr_info.tx_hash);\n\n let error_tr = '';\n switch (tr_info.tx_type) {\n case 0:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NORMAL') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_TO') +\n ' ' +\n this.intToMoneyPipe.transform(tr_info.amount) +\n ' ' +\n this.translate.instant('ERRORS.TX_TYPE_NORMAL_END');\n break;\n case 1:\n // this.translate.instant('ERRORS.TX_TYPE_PUSH_OFFER');\n break;\n case 2:\n // this.translate.instant('ERRORS.TX_TYPE_UPDATE_OFFER');\n break;\n case 3:\n // this.translate.instant('ERRORS.TX_TYPE_CANCEL_OFFER');\n break;\n case 4:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 5:\n error_tr =\n this.translate.instant('ERRORS.TX_TYPE_UPDATE_ALIAS') +\n '
' +\n tr_info.tx_hash +\n '
' +\n wallet.name +\n '
' +\n wallet.address +\n '
' +\n this.translate.instant('ERRORS.TX_TYPE_NEW_ALIAS_END');\n break;\n case 6:\n error_tr = this.translate.instant('ERRORS.TX_TYPE_COIN_BASE');\n break;\n }\n if (error_tr) {\n this.modalService.prepareModal('error', error_tr);\n }\n }\n });\n\n this.backendService.eventSubscribe(Commands.on_core_event, data => {\n console.log('----------------- on_core_event -----------------');\n console.log(data);\n\n data = JSON.parse(data);\n\n if (data.events != null) {\n for (let i = 0, length = data.events.length; i < length; i++) {\n switch (data.events[i].method) {\n case 'CORE_EVENT_BLOCK_ADDED':\n break;\n case 'CORE_EVENT_ADD_ALIAS':\n if (this.variablesService.aliasesChecked[data.events[i].details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.address]['address'] =\n data.events[i].details.address;\n this.variablesService.aliasesChecked[data.events[i].details.address]['comment'] =\n data.events[i].details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const newAlias = {\n name: '@' + data.events[i].details.alias,\n address: data.events[i].details.address,\n comment: data.events[i].details.comment,\n };\n this.variablesService.aliases = this.variablesService.aliases.concat(newAlias);\n this.variablesService.changeAliases();\n }\n break;\n case 'CORE_EVENT_UPDATE_ALIAS':\n for (const address in this.variablesService.aliasesChecked) {\n if (hasOwnProperty(this.variablesService.aliasesChecked, address)) {\n if (this.variablesService.aliasesChecked[address].name === '@' + data.events[i].details.alias) {\n if (\n this.variablesService.aliasesChecked[address].address !==\n data.events[i].details.details.address\n ) {\n delete this.variablesService.aliasesChecked[address]['name'];\n delete this.variablesService.aliasesChecked[address]['address'];\n delete this.variablesService.aliasesChecked[address]['comment'];\n } else {\n this.variablesService.aliasesChecked[address].comment =\n data.events[i].details.details.comment;\n }\n break;\n }\n }\n }\n if (this.variablesService.aliasesChecked[data.events[i].details.details.address] != null) {\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['name'] =\n '@' + data.events[i].details.alias;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['address'] =\n data.events[i].details.details.address;\n this.variablesService.aliasesChecked[data.events[i].details.details.address]['comment'] =\n data.events[i].details.details.comment;\n }\n if (this.variablesService.enableAliasSearch) {\n const CurrentAlias = this.variablesService.aliases.find(\n element => element.name === '@' + data.events[i].details.alias\n );\n if (CurrentAlias) {\n CurrentAlias.address = data.events[i].details.details.address;\n CurrentAlias.comment = data.events[i].details.details.comment;\n }\n }\n this.variablesService.changeAliases();\n break;\n default:\n break;\n }\n }\n }\n });\n\n this.intervalUpdateContractsState = setInterval(() => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (\n contract.state === 201 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 2;\n contract.is_new = true;\n console.warn('need check state in contracts');\n } else if (\n contract.state === 601 &&\n contract.height !== 0 &&\n this.variablesService.height_app - contract.height >= 10\n ) {\n contract.state = 6;\n contract.is_new = true;\n }\n });\n });\n }, 30000);\n\n this.expMedTsEvent = this.variablesService.getExpMedTsEvent.subscribe({\n next: (newTimestamp: number) => {\n this.variablesService.wallets.forEach(wallet => {\n wallet.contracts.forEach(contract => {\n if (contract.state === 1 && contract.expiration_time <= newTimestamp) {\n contract.state = 110;\n contract.is_new = true;\n } else if (contract.state === 5 && contract.cancel_expiration_time <= newTimestamp) {\n contract.state = 130;\n contract.is_new = true;\n }\n });\n });\n },\n });\n\n this.backendService.getAppData((status, data) => {\n if (data && Object.keys(data).length > 0) {\n for (const key in data) {\n if (hasOwnProperty(data, key) && hasOwnProperty(this.variablesService.settings, key)) {\n this.variablesService.settings[key] = data[key];\n }\n }\n // TODO: Delete this line after return appUseTor\n this.variablesService.settings.appUseTor = false;\n if (\n hasOwnProperty(this.variablesService.settings, 'scale') &&\n ['8px', '10px', '12px', '14px'].indexOf(this.variablesService.settings.scale) !== -1\n ) {\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale);\n } else {\n this.variablesService.settings.scale = '10px';\n this.renderer.setStyle(document.documentElement, 'font-size', this.variablesService.settings.scale);\n }\n }\n this.translate.use(this.variablesService.settings.language);\n this.setBackendLocalization();\n\n this.backendService.setLogLevel(this.variablesService.settings.appLog);\n this.backendService.setEnableTor(this.variablesService.settings.appUseTor);\n\n if (!this.variablesService.settings.wallets || this.variablesService.settings.wallets.length === 0) {\n return this.router.navigate([`${paths.auth}/${pathsChildrenAuth.noWallet}`]).then();\n }\n\n if (this.router.url !== '/login') {\n this.backendService.haveSecureAppData(statusPass => {\n if (statusPass) {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n } else {\n if (Object.keys(data).length !== 0) {\n this.needOpenWallets = JSON.parse(JSON.stringify(this.variablesService.settings.wallets));\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/login'], {\n queryParams: { type: 'reg' },\n });\n });\n }\n }\n });\n }\n });\n\n this.backendService.dispatchAsyncCallResult();\n\n this.backendService.handleCurrentActionState();\n\n this.getVersion();\n\n setTimeout(() => {\n this.getInfo();\n }, 10 * 1000);\n },\n error: error => {\n console.log(error);\n },\n });\n\n this.variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: disable_price_fetch => {\n const updateTime = 10 * 60 * 1000;\n if (!disable_price_fetch) {\n this.updateMoneyEquivalent();\n this.intervalUpdatePriceState = setInterval(() => {\n this.updateMoneyEquivalent();\n }, updateTime);\n } else {\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n if (this.intervalUpdateContractsState) {\n clearInterval(this.intervalUpdateContractsState);\n }\n if (this.intervalUpdatePriceState) {\n clearInterval(this.intervalUpdatePriceState);\n }\n this.expMedTsEvent.unsubscribe();\n }\n\n updateMoneyEquivalent(): void {\n this.http\n .get('https://explorer.zano.org/api/price?asset=zano')\n .pipe(take(1))\n .subscribe({\n next: ({ data }: { data: { zano: { usd: number, usd_24h_change: number }, success: boolean} }): void => {\n this.variablesService.moneyEquivalent = data['zano']['usd'];\n this.variablesService.moneyEquivalentPercent = data['zano']['usd_24h_change'];\n },\n error: error => {\n console.warn('api.coingecko.com price error: ', error);\n },\n });\n }\n\n getAliases(): void {\n this.backendService.getAllAliases((status, data, error) => {\n console.warn(error);\n\n if (error === 'CORE_BUSY') {\n window.setTimeout(() => {\n this.getAliases();\n }, 10000);\n } else if (error === 'OVERFLOW') {\n this.variablesService.aliases = [];\n this.variablesService.enableAliasSearch = false;\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n } else {\n this.variablesService.enableAliasSearch = true;\n if (data.aliases && data.aliases.length) {\n this.variablesService.aliases = [];\n data.aliases.forEach(alias => {\n const newAlias = {\n name: '@' + alias.alias,\n address: alias.address,\n comment: alias.comment,\n };\n this.variablesService.aliases.push(newAlias);\n });\n this.variablesService.wallets.forEach(wallet => {\n wallet.alias = this.backendService.getWalletAlias(wallet.address);\n });\n this.variablesService.aliases = this.variablesService.aliases.sort((a, b) => {\n if (a.name.length > b.name.length) {\n return 1;\n }\n if (a.name.length < b.name.length) {\n return -1;\n }\n if (a.name > b.name) {\n return 1;\n }\n if (a.name < b.name) {\n return -1;\n }\n return 0;\n });\n this.variablesService.changeAliases();\n }\n }\n });\n }\n\n addToStore(wallet, boolean): void {\n const value = this.store.state.sync;\n if (value && value.length > 0) {\n const sync = value.filter(item => item.wallet_id === wallet.wallet_id);\n if (sync && sync.length > 0) {\n const result = value.map(item => {\n if (item.wallet_id === wallet.wallet_id) {\n return { sync: boolean, wallet_id: wallet.wallet_id };\n } else {\n return item;\n }\n });\n this.store.set(StateKeys.sync, result);\n } else {\n value.push({ sync: boolean, wallet_id: wallet.wallet_id });\n this.store.set(StateKeys.sync, value);\n }\n } else {\n this.store.set(StateKeys.sync, [{ sync: boolean, wallet_id: wallet.wallet_id }]);\n }\n }\n\n getVersion(): void {\n this.backendService.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n console.log('----------------- version -----------------', version);\n console.log('----------------- type -----------------', type);\n this.variablesService.testnet = type === 'testnet';\n this.variablesService.networkType = type;\n }\n });\n });\n }\n\n getInfo(): void {\n const updateTime = 60 * 1000;\n const getInfo = () => {\n const params = {\n jsonrpc: '2.0',\n method: 'getinfo',\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.variablesService.info$.next(response_data.result);\n });\n };\n getInfo();\n setInterval(getInfo, updateTime);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { PagesModule } from './pages/pages.module';\nimport { CommonModule } from '@angular/common';\nimport { TranslateLoader, TranslateModule, TranslateModuleConfig } from '@ngx-translate/core';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { ChartModule, HIGHCHARTS_MODULES } from 'angular-highcharts';\nimport * as highcharts from 'highcharts';\nimport exporting from 'highcharts/modules/exporting.src';\nimport { MoneyToIntPipeModule } from '@parts/pipes';\nimport { OpenWalletModalComponent } from '@parts/modals/open-wallet-modal/open-wallet-modal.component';\nimport { FlexModule } from '@angular/flex-layout';\nimport { FormsModule } from '@angular/forms';\nimport { RegisterContextTemplatesComponent } from '@parts/components/register-context-templates.component';\n\nexport function highchartsFactory(): any[] {\n highcharts.setOptions({\n time: {\n useUTC: false,\n },\n });\n\n return [exporting];\n}\n\nexport const provideHighchartsFactory = {\n provide: HIGHCHARTS_MODULES,\n useFactory: highchartsFactory,\n};\n\nexport function HttpLoaderFactory(httpClient: HttpClient): TranslateHttpLoader {\n return new TranslateHttpLoader(httpClient, './assets/i18n/', '.json');\n}\n\nexport const translateModuleConfig: TranslateModuleConfig = {\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient],\n },\n};\n\n@NgModule({\n declarations: [AppComponent, OpenWalletModalComponent],\n imports: [\n CommonModule,\n BrowserModule,\n BrowserAnimationsModule,\n HttpClientModule,\n TranslateModule.forRoot(translateModuleConfig),\n AppRoutingModule,\n PagesModule,\n ChartModule,\n MoneyToIntPipeModule,\n FlexModule,\n FormsModule,\n RegisterContextTemplatesComponent,\n ],\n providers: [provideHighchartsFactory],\n bootstrap: [AppComponent],\n})\nexport class AppModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-full-layout',\n template: `\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class FullLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FullLayoutComponent } from './full-layout.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [FullLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule],\n exports: [FullLayoutComponent],\n})\nexport class FullLayoutModule {}\n","import { Component, NgZone, OnDestroy } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { ZanoLoadersService } from '@parts/services/zano-loaders.service';\n\n@Component({\n selector: 'app-sidebar',\n template: `\n
\n
\n \"zano-logo\"\n
\n
\n\n
\n
\n \n
\n\n
\n \n \n {{ 'SIDEBAR.ADD_NEW' | translate }}\n \n\n \n \n {{ 'SIDEBAR.SETTINGS' | translate }}\n \n\n \n \n \n {{ 'SIDEBAR.LOG_OUT' | translate }}\n \n \n\n \n \n \n
\n
\n\n
\n \n
\n\n \n `,\n styles: [],\n})\nexport class SidebarComponent implements OnDestroy {\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private ngZone: NgZone,\n private dialog: Dialog,\n public zanoLoadersService: ZanoLoadersService\n ) {}\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n goMainPage(): void {\n if (this.route.snapshot.queryParams && this.route.snapshot.queryParams.prevUrl === 'login') {\n this.ngZone.run(() => {\n this.router.navigate(['/'], { queryParams: { prevUrl: 'login' } });\n });\n } else {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n\n selectWallet(id: number): void {\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(id);\n this.router.navigate(['/wallet/assets']);\n });\n }\n\n drop(event: CdkDragDrop): void {\n moveItemInArray(this.variablesService.wallets, event.previousIndex, event.currentIndex);\n }\n\n beforeClose(wallet_id): void {\n const dialogConfig: DialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.closeWallet(wallet_id),\n });\n }\n\n closeWallet(wallet_id): void {\n this.walletsService.closeWallet(wallet_id);\n }\n\n logOut(): void {\n this.zanoLoadersService.open('fullScreen', 'SIDEBAR.SYNCHRONIZATION.LOGGING_OUT');\n\n setTimeout(() => {\n this.variablesService.stopCountdown();\n this.variablesService.appLogin = false;\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.router.navigate(['/login'], { queryParams: { type: 'auth' } }).then(() => {\n this.zanoLoadersService.close('fullScreen');\n });\n });\n }, 500);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SidebarComponent } from './sidebar.component';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { RouterModule } from '@angular/router';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from '../../pages/deeplink/deeplink.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { WalletCardComponent } from '@parts/components/wallet-card.component';\n\n@NgModule({\n declarations: [SidebarComponent],\n imports: [\n CommonModule,\n RouterModule,\n DragDropModule,\n TooltipModule,\n TranslateModule,\n DisablePriceFetchModule,\n ConfirmModalModule,\n SynchronizationStatusComponent,\n DeeplinkModule,\n StakingSwitchComponent,\n FlexLayoutModule,\n IntToMoneyPipeModule,\n WalletCardComponent,\n ],\n exports: [SidebarComponent],\n})\nexport class SidebarModule {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'app-with-sidebar-layout',\n template: `\n \n\n
\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n display: flex;\n }\n `,\n ],\n})\nexport class WithSidebarLayoutComponent {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WithSidebarLayoutComponent } from './with-sidebar-layout.component';\nimport { SidebarModule } from '../sidebar/sidebar.module';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { RouterOutlet } from '@angular/router';\n\n@NgModule({\n declarations: [WithSidebarLayoutComponent],\n imports: [CommonModule, RouterOutlet, FlexLayoutModule, SidebarModule],\n exports: [WithSidebarLayoutComponent],\n})\nexport class WithSidebarLayoutModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { filePathWalletValidator } from '@parts/utils/zano-validators';\nimport { ModalService } from '@parts/services/modal.service';\n\n@Component({\n selector: 'app-add-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n \n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n
\n
\n
\n
\n `,\n})\nexport class AddWalletComponent {\n private translateService = inject(TranslateService);\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private modalService: ModalService,\n private backendService: BackendService,\n private ngZone: NgZone\n ) {}\n\n openWallet(): void {\n const caption = this.translateService.instant('MAIN.CHOOSE_PATH');\n const default_path = this.variablesService.settings.default_path;\n this.backendService.openFileDialog(caption, '*', default_path, async (file_status, file_data) => {\n if (!file_status) {\n if (file_data['error_code'] !== 'CANCELED') {\n this.modalService.prepareModal('error', file_data['error_code']);\n }\n return;\n }\n const positionLastSlash = file_data.path.lastIndexOf('/');\n const new_default_path = file_data.path.slice(0, positionLastSlash);\n const error = filePathWalletValidator(file_data.path);\n\n if (error) {\n const text = this.translateService.instant(error.errorText);\n this.modalService.prepareModal('error', text);\n return;\n }\n\n this.variablesService.settings.default_path = new_default_path;\n await this.ngZone.run(async () => {\n await this.router.navigate(['/open'], {\n queryParams: { path: file_data.path },\n });\n });\n });\n }\n\n openInBrowser(): void {\n this.backendService.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport BigNumber from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-assign-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ASSIGN_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n {{ 'ASSIGN_ALIAS.NAME.LABEL' | translate }}\n \n
\n \n
\n \n 6 &&\n assignForm.get('name').value.length <= 25\n \"\n >\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_WRONG' | translate }}\n
\n
25\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_LENGTH' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NAME_EXISTS' | translate }}\n
\n
\n
\n
\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n \n {{ 'ASSIGN_ALIAS.COMMENT.LABEL' | translate }}\n \n \n \n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'ASSIGN_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n

\n {{\n 'ASSIGN_ALIAS.COST'\n | translate\n : {\n value: alias.price | intToMoney,\n currency: variablesService.defaultCurrency\n }\n }}\n

\n\n \n {{ 'ASSIGN_ALIAS.BUTTON_ASSIGN' | translate }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class AssignAliasComponent implements OnInit, OnDestroy {\n wallet: Wallet;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.ASSIGN_ALIAS',\n },\n ];\n\n fb = inject(FormBuilder);\n\n assignForm = this.fb.group({\n name: this.fb.nonNullable.control('', [Validators.required, Validators.pattern(regExpAliasName)]),\n comment: this.fb.nonNullable.control('', [Validators.maxLength(this.variablesService.maxCommentLength)]),\n });\n\n alias = {\n name: '',\n fee: this.variablesService.default_fee,\n price: new BigNumber(0),\n reward: '0',\n rewardOriginal: '0',\n comment: '',\n exists: false,\n };\n\n canRegister = false;\n\n notEnoughMoney = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private intToMoney: IntToMoneyPipe\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n this.assignForm\n .get('name')\n .valueChanges.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: value => {\n this.canRegister = false;\n this.alias.exists = false;\n const newName = value.toLowerCase().replace('@', '');\n if (\n !(this.assignForm.controls['name'].errors && hasOwnProperty(this.assignForm.controls['name'].errors, 'pattern')) &&\n newName.length >= 6 &&\n newName.length <= 25\n ) {\n this.backend.getAliasInfoByName(newName, status => {\n this.ngZone.run(() => {\n this.alias.exists = status;\n });\n if (!status) {\n this.alias.price = new BigNumber(0);\n this.backend.getAliasCoast(newName, (statusPrice, dataPrice) => {\n this.ngZone.run(() => {\n if (statusPrice) {\n this.alias.price = BigNumber.sum(dataPrice['coast'], this.variablesService.default_fee_big);\n }\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = this.alias.price.isGreaterThan(unlocked_balance);\n this.alias.reward = this.intToMoney.transform(this.alias.price, false);\n this.alias.rewardOriginal = this.intToMoney.transform(dataPrice['coast'], false);\n this.canRegister = !this.notEnoughMoney;\n });\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n });\n } else {\n this.notEnoughMoney = false;\n this.alias.reward = '0';\n this.alias.rewardOriginal = '0';\n }\n this.alias.name = newName;\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n assignAlias(): void {\n const alias = this.backend.getWalletAlias(this.wallet.address);\n if (hasOwnProperty(alias, 'name')) {\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.ONE_ALIAS');\n } else {\n this.alias.comment = this.assignForm.get('comment').value;\n this.backend.registerAlias(\n this.wallet.wallet_id,\n this.alias.name,\n this.wallet.address,\n this.alias.fee,\n this.alias.comment,\n this.alias.rewardOriginal,\n async status => {\n if (status) {\n this.wallet.wakeAlias = true;\n this.modalService.prepareModal('info', 'ASSIGN_ALIAS.REQUEST_ADD_REG');\n await this.ngZone.run(async () => {\n await this.router.navigate(['/wallet/']);\n });\n }\n }\n );\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { paths, pathsChildrenAuth } from '../paths';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { FullLayoutComponent } from '../../layouts/full-layout/full-layout.component';\n\nconst routes: Routes = [\n {\n path: paths.auth,\n component: FullLayoutComponent,\n children: [\n {\n path: pathsChildrenAuth.noWallet,\n component: NoWalletComponent,\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AuthRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { NoWalletComponent } from './no-wallet/no-wallet.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\n\n@NgModule({\n declarations: [NoWalletComponent],\n imports: [CommonModule, AuthRoutingModule, TranslateModule, FlexLayoutModule, SynchronizationStatusComponent],\n})\nexport class AuthModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\n\n@Component({\n selector: 'app-login',\n template: `\n
\n
\n \n\n
\n
\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.MISMATCH' | translate }}\n
\n
\n
\n
\n\n \n {{ 'LOGIN.BUTTON_NEXT' | translate }}\n \n\n \n {{ 'LOGIN.BUTTON_SKIP' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'LOGIN.FORM_ERRORS.INVALID_PASS' | translate }}\n
\n
\n
\n
\n \n\n \n \n \n\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class LoginComponent implements OnInit, OnDestroy {\n submitLoading$ = new BehaviorSubject(false);\n\n resetLoading$ = new BehaviorSubject(false);\n\n fb = inject(FormBuilder);\n\n regForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmation: this.fb.nonNullable.control(''),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmation')],\n }\n );\n\n authForm = this.fb.group({\n password: this.fb.nonNullable.control(''),\n });\n\n type = 'reg';\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.type) {\n this.type = params.type;\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n onSubmitCreatePass(): void {\n if (this.regForm.valid) {\n this.variablesService.appPass = this.regForm.get('password').value; // the pass what was written in input of login form by user\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n } else {\n console.log(data['error_code']);\n }\n });\n }\n }\n\n onSkipCreatePass(): void {\n this.variablesService.appPass = '';\n this.ngZone.run(() => {\n this.variablesService.appLogin = true;\n this.router.navigate(['/']);\n });\n }\n\n resetJwtWalletRpc(): void {\n this.backend.setupJwtWalletRpc({ secret: '', zanoCompation: false });\n }\n\n dropSecureAppData(): void {\n this.resetLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n this.resetJwtWalletRpc();\n this.backend.dropSecureAppData(() => {\n this.resetLoading$.next(false);\n this.onSkipCreatePass();\n });\n this.closeAllWallets();\n this.variablesService.contacts = [];\n }, 500);\n }\n\n onSubmitAuthPass(): void {\n this.submitLoading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n if (this.authForm.valid) {\n this.variablesService.appPass = this.authForm.get('password').value;\n if (this.variablesService.dataIsLoaded) {\n this.backend.checkMasterPassword({ pass: this.variablesService.appPass }, status => {\n if (status) {\n this.variablesService.appLogin = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/'], {\n queryParams: { prevUrl: 'login' },\n });\n });\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n } else {\n this.getData(this.variablesService.appPass);\n }\n } else {\n this.submitLoading$.next(false);\n }\n }, 500);\n }\n\n getData(appPass): void {\n this.backend.getSecureAppData({ pass: appPass }, (status, data) => {\n if (!data.error_code) {\n this.setAuthPassError(null);\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.variablesService.appPass = appPass;\n const isEmptyObject = Object.keys(data).length === 0 && data.constructor === Object;\n\n if (this.variablesService.wallets.length > 0) {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/wallet/']);\n });\n return;\n }\n if (hasOwnProperty(data, 'contracts')) {\n if (Object.keys(data['contacts']).length !== 0) {\n data['contacts'].map(contact => {\n this.variablesService.contacts.push(contact);\n });\n }\n }\n if (hasOwnProperty(data, 'wallets')) {\n if (Object.keys(data['wallets']).length !== 0) {\n this.getWalletData(data['wallets']);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n if (!hasOwnProperty(data, 'wallets') && !hasOwnProperty(data, 'contracts')) {\n if (data.length !== 0 && !isEmptyObject) {\n this.getWalletData(data);\n } else {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.router.navigate(['/']);\n });\n }\n }\n }\n\n if (data.error_code === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.submitLoading$.next(false);\n this.setAuthPassError({ wrong_password: true });\n });\n }\n });\n }\n\n getWalletData(walletData): void {\n let openWallets = 0;\n let runWallets = 0;\n walletData.forEach((wallet, wallet_index) => {\n this.backend.openWallet(wallet.path, wallet.pass, this.variablesService.count, true, (open_status, open_data, open_error) => {\n if (open_status || open_error === 'FILE_RESTORED') {\n openWallets++;\n this.ngZone.run(() => {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n wallet.name,\n wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n if (wallet.staking) {\n new_wallet.staking = true;\n this.backend.startPosMining(new_wallet.wallet_id);\n } else {\n new_wallet.staking = false;\n }\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(open_data.recent_history.total_history_items / this.variablesService.count);\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n if (this.variablesService.wallets.length === 1) {\n this.router.navigate(['/wallet/']);\n }\n });\n this.backend.runWallet(open_data.wallet_id, run_status => {\n if (run_status) {\n runWallets++;\n } else {\n if (wallet_index === walletData.length - 1 && runWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n } else {\n if (wallet_index === walletData.length - 1 && openWallets === 0) {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n }\n }\n });\n });\n this.submitLoading$.next(false);\n }\n\n closeAllWallets(): void {\n this.variablesService.wallets.forEach(({ wallet_id }) => this.closeWallet(wallet_id));\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n }\n\n closeWallet(wallet_id) {\n this.backend.closeWallet(wallet_id, () => {\n for (let i = this.variablesService.wallets.length - 1; i >= 0; i--) {\n this.variablesService.wallets.splice(i, 1);\n }\n });\n }\n\n private setAuthPassError(errors: ValidationErrors | null): void {\n this.authForm.controls['password'].setErrors(errors);\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { CREATE_NEW_WALLET_HELP_PAGE } from '@parts/data/constants';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { paths } from '../../paths';\n\n@Component({\n selector: 'app-no-wallet',\n template: `\n
\n
\n \n\n

{{ 'MAIN.TITLE' | translate }}

\n\n \n\n \n\n \n\n

\n \n {{ 'MAIN.HELP' | translate }}\n

\n
\n\n \n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class NoWalletComponent {\n paths = paths;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n openWallet(): void {\n this.backend.openFileDialog(\n this.translate.instant('MAIN.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n this.ngZone.run(() => {\n this.router\n .navigate(['/' + paths.open], {\n queryParams: { path: file_data.path },\n })\n .then();\n });\n } else {\n console.log(file_data['error_code']);\n }\n }\n );\n }\n\n openInBrowser(): void {\n this.backend.openUrlInBrowser(CREATE_NEW_WALLET_HELP_PAGE);\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-create-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'CREATE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
variablesService.maxWalletNameLength\" class=\"error\">\n {{ 'CREATE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\"\n [readonly]=\"createForm.controls.path.valid\"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'CREATE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n\n \n\n \n {{ 'CREATE_WALLET.BUTTON_SELECT' | translate }}\n \n\n \n \n
\n \n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class CreateWalletComponent {\n variablesService = inject(VariablesService);\n\n loading$ = new BehaviorSubject(false);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.CREATE_WALLET',\n },\n ];\n\n walletsService = inject(WalletsService);\n\n fb = inject(NonNullableFormBuilder);\n\n createForm = this.fb.group(\n {\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.control(''),\n path: this.fb.control('', Validators.required),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n private router = inject(Router);\n\n private backend = inject(BackendService);\n\n private modalService = inject(ModalService);\n\n private ngZone = inject(NgZone);\n\n private translate = inject(TranslateService);\n\n get savedWalletName(): string {\n const path = this.createForm.get('path').value;\n return path.substr(path.lastIndexOf('/') + 1, path.length - 1);\n }\n\n createWallet(): void {\n this.loading$.next(true);\n\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { path: selectedPath, password, name } = this.createForm.getRawValue();\n this.backend.generateWallet(selectedPath, password, async (generate_status, generate_data, errorCode) => {\n if (generate_status) {\n const { wallet_id } = generate_data;\n const { path, address, balance, unlocked_balance, mined_total, tracking_hey } = generate_data['wi'];\n const wallet = new Wallet(wallet_id, name, password, path, address, balance, unlocked_balance, mined_total, tracking_hey);\n wallet.alias = this.backend.getWalletAlias(address);\n wallet.total_history_item = 0;\n wallet.pages = new Array(1).fill(1);\n wallet.totalPages = 1;\n wallet.currentPage = 1;\n await this.backend.runWallet(wallet_id, async (run_status, run_data) => {\n if (run_status) {\n await this.ngZone.run(async () => {\n this.walletsService.addWallet(wallet);\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.variablesService.setCurrentWallet(wallet_id);\n this.loading$.next(false);\n await this.router.navigate(['/seed-phrase'], { queryParams: { wallet_id } });\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n } else {\n const errorTranslationKey =\n errorCode === 'ALREADY_EXISTS' ? 'CREATE_WALLET.ERROR_CANNOT_SAVE_TOP' : 'CREATE_WALLET.ERROR_CANNOT_SAVE_SYSTEM';\n this.modalService.prepareModal('error', errorTranslationKey);\n\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }, 500);\n }\n\n selectWalletLocation(): void {\n const caption = this.translate.instant('CREATE_WALLET.TITLE_SAVE');\n const fileMask = '*';\n const { default_path } = this.variablesService.settings;\n this.backend.saveFileDialog(caption, fileMask, default_path, (file_status, file_data) => {\n if (file_status) {\n this.ngZone.run(() => {\n const { path } = file_data;\n this.createForm.get('path').patchValue(path);\n this.variablesService.settings.default_path = path.substr(0, path.lastIndexOf('/'));\n });\n }\n });\n }\n}\n","import { delay, takeUntil } from 'rxjs/operators';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-deeplink',\n template: `\n \n \n\n \n \n `,\n styles: [],\n})\nexport class DeeplinkComponent implements OnInit, OnDestroy {\n deeplink$ = new BehaviorSubject(null);\n\n private destroy$ = new Subject();\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.variablesService.deeplink$.pipe(delay(200), takeUntil(this.destroy$)).subscribe({\n next: data => {\n this.deeplink$.next(data);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalModule } from './modals/deeplink-modal/deeplink-modal.module';\nimport { DeeplinkComponent } from './deeplink.component';\nimport { SyncModalModule } from './modals/sync-modal/sync-modal.module';\n\n@NgModule({\n declarations: [DeeplinkComponent],\n imports: [CommonModule, DeeplinkModalModule, SyncModalModule],\n exports: [DeeplinkComponent, DeeplinkModalModule, SyncModalModule],\n})\nexport class DeeplinkModule {}\n","import { Component, HostBinding, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DeeplinkParams, PushOffer, Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { Subject } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-deeplink-modal',\n template: `\n
\n 1 && !secondStep\">\n
\n
\n \n \n \n {{ item.name }}\n \n \n {{ item.name }}\n \n \n
\n
\n\n
\n \n \n
\n
\n\n \n

Creating a marketplace offer

\n
\n
\n
\n
\n {{ 'Offer title' | translate }}\n
\n
{{ actionData.title }}
\n
\n\n
\n\n
\n
\n {{ 'Description' | translate }}\n
\n
{{ actionData.description }}
\n
\n\n
\n\n
\n
\n {{ 'Category' | translate }}\n
\n
{{ actionData.category }}
\n
\n\n
\n\n
\n
\n {{ 'Price' | translate }}\n
\n
\n {{ actionData.price }}\n {{ this.variablesService.defaultCurrency }}\n
\n
\n\n
\n\n
\n
\n {{ 'Preview url' | translate }}\n
\n
{{ actionData.url || actionData.img_url }}
\n
\n\n
\n\n
\n
\n {{ 'Contacts' | translate }}\n
\n
{{ actionData.contact }}
\n
\n\n
\n\n
\n
\n {{ 'Comments' | translate }}\n
\n
\n {{ actionData.comment || actionData.comments }}\n
\n
\n\n
\n\n
\n
\n {{ 'Mixins' | translate }}\n
\n
{{ actionData.mixins || defaultMixin }}
\n
\n\n
\n\n
\n
\n {{ 'Transaction fee' | translate }}\n
\n
\n {{ actionData.price * (actionData.fee || this.variablesService.default_fee) }}\n {{ this.variablesService.defaultCurrency }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n\n \n

Operation successful

\n\n
\n
\n
\n
\n {{ 'Operation hash' | translate }}\n
\n \n {{ marketplaceConfirmHash }}\n \n
\n
\n
\n
\n\n
\n \n
\n \n\n \n

Your wallets have not loaded yet. Try this action a little later.

\n\n
\n \n
\n
\n \n `,\n styles: [],\n})\nexport class DeeplinkModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n secondStep = false;\n\n walletToPayId = 0;\n\n nextStepInterval;\n\n marketplaceModalShow = true;\n\n copyAnimation = false;\n\n marketplaceConfirmHash: any = null;\n\n actionData: DeeplinkParams = {};\n\n defaultMixin = MIXIN;\n\n walletsToPay: Array = [];\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private _router: Router,\n private backend: BackendService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {\n this.walletsToPay = this.variablesService.wallets.filter(wallet => !wallet.is_watch_only || !wallet.is_auditable);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n\n this.variablesService.deeplink$.pipe(takeUntil(this.destroy$)).subscribe({\n next: deeplink => {\n this.actionData = {};\n\n if (deeplink) {\n if (this.walletsToPay.length === 0) {\n this.canselAction();\n return;\n }\n this.actionData = this.parseDeeplink(deeplink);\n if (this.walletsToPay.length === 1) {\n this.walletToPayId = this.walletsToPay[0].wallet_id;\n const { daemon_state, sync_started } = this.variablesService;\n\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n } else {\n this.nextStepInterval = setInterval(() => {\n if (daemon_state === 2 && sync_started === false) {\n this.nextStep();\n clearInterval(this.nextStepInterval);\n }\n }, 1500);\n }\n }\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.variablesService.deeplink$.next(null);\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n parseDeeplink(deeplink): DeeplinkParams {\n const quotesRex = new RegExp(/'|\"|”|%E2%80%9D|%22/g);\n const spaceSymbolRex = new RegExp(/%20/g);\n const newObj = {};\n\n const newString = deeplink.substr(5); // delete zano:;\n newString.split('&').forEach(str => {\n const [key, value] = str.split('=');\n newObj[key] = value.replace(quotesRex, '').replace(spaceSymbolRex, ' ').trim();\n });\n return newObj;\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n this.actionData = {};\n this.secondStep = false;\n }\n\n marketplaceSend(): void {\n const offerObject: PushOffer = {\n wallet_id: this.walletToPayId,\n od: {\n ap: this.actionData.price || '',\n at: '1',\n cat: this.actionData.category || '',\n cnt: this.actionData.contact || '',\n com: this.actionData.comment || this.actionData.comments || '',\n do: this.actionData.description || '',\n et: 10,\n fee: new BigNumber('' + (+this.actionData.fee || +this.variablesService.default_fee) * 1000000000000),\n lci: '',\n lco: 'World Wide',\n ot: 1,\n pt: 'Credit cards, BTC, ZANO, ETH',\n t: this.actionData.title || '',\n url: this.actionData.url || this.actionData.img_url || '',\n },\n };\n this.backend.push_offer(offerObject, (status, data) => {\n this.ngZone.run(() => {\n if (data.success) {\n this.marketplaceModalShow = false;\n this.marketplaceConfirmHash = data.tx_hash;\n } else {\n this.canselAction();\n }\n });\n });\n }\n\n copyHash(): void {\n this.backend.setClipboard(this.marketplaceConfirmHash);\n this.copyAnimation = true;\n setTimeout(() => (this.copyAnimation = false), 2000);\n }\n\n nextStep(): void {\n if (this.actionData.action === 'send') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/send']).then();\n this.secondStep = false;\n } else if (this.actionData.action === 'escrow') {\n this.variablesService.sendActionData$.next(this.actionData);\n this.variablesService.deeplink$.next(null);\n this.variablesService.setCurrentWallet(this.walletToPayId);\n this._router.navigate(['/wallet/contracts/purchase']).then();\n this.secondStep = false;\n } else {\n this.secondStep = true;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DeeplinkModalComponent } from './deeplink-modal.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [DeeplinkModalComponent],\n imports: [CommonModule, NgSelectModule, FormsModule, FlexLayoutModule, TranslateModule],\n exports: [DeeplinkModalComponent],\n})\nexport class DeeplinkModalModule {}\n","import { Component, HostBinding, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\n\n@Component({\n selector: 'app-sync-modal',\n template: `\n
\n
\n

This action is not available during synchronization...

\n \n
\n
\n `,\n styles: [],\n})\nexport class SyncModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n constructor(private renderer: Renderer2, public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n canselAction(): void {\n this.variablesService.deeplink$.next(null);\n this.variablesService.sendActionData$.next({});\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SyncModalComponent } from './sync-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [SyncModalComponent],\n imports: [CommonModule, FlexLayoutModule],\n exports: [SyncModalComponent],\n})\nexport class SyncModalModule {}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BigNumber } from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-edit-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.EDIT_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n \n
0 && notEnoughMoney\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
= variablesService.maxCommentLength\" class=\"error\">\n {{ 'EDIT_ALIAS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n\n
\n {{\n 'EDIT_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultCurrency\n }\n }}\n
\n\n variablesService.maxCommentLength\n \"\n class=\"primary big w-100\"\n type=\"button\"\n >\n {{ 'EDIT_ALIAS.BUTTON_EDIT' | translate }}\n \n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class EditAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.EDIT_ALIAS',\n },\n ];\n\n oldAliasComment: string;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n };\n this.oldAliasComment = alias.comment;\n const balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n updateAlias(): void {\n if (\n this.requestProcessing ||\n this.notEnoughMoney ||\n this.oldAliasComment === this.alias.comment ||\n this.alias.comment.length > this.variablesService.maxCommentLength\n ) {\n return;\n }\n this.requestProcessing = true;\n this.backend.updateAlias(this.wallet.wallet_id, this.alias, this.variablesService.default_fee, status => {\n if (status) {\n this.modalService.prepareModal('success', '');\n this.wallet.alias['comment'] = this.alias.comment;\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Contact } from '@api/models/contact.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Papa } from 'ngx-papaparse';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-export-import',\n template: `\n
\n
\n
\n \n

{{ 'CONTACTS.IMPORT_EXPORT' | translate }}

\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n\n .head {\n justify-content: flex-end;\n }\n\n .contacts-title {\n font-size: 1.7rem;\n margin-bottom: 1rem;\n }\n\n .btn-wrapper {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin: 0 -0.5rem;\n padding: 1.5rem 0;\n }\n\n .btn-wrapper button {\n flex: 1 0 auto;\n margin: 0 0.5rem;\n }\n `,\n ],\n})\nexport class ExportImportComponent {\n constructor(\n private variablesService: VariablesService,\n private backend: BackendService,\n private modalService: ModalService,\n private papa: Papa,\n private translate: TranslateService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n import(): void {\n this.backend.openFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (file_status) {\n this.variablesService.settings.default_path = file_data.path.substr(0, file_data.path.lastIndexOf('/'));\n if (this.isValid(file_data.path)) {\n this.backend.loadFile(file_data.path, (status, data) => {\n if (!status) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT_EMPTY');\n } else {\n const options = {\n header: true,\n };\n const elements = this.papa.parse(data, options);\n const isArray = Array.isArray(elements.data);\n if (isArray && elements.data.length !== 0 && elements.errors.length === 0) {\n if (this.variablesService.contacts.length === 0) {\n elements.data.forEach(element => {\n this.variablesService.contacts.push(element);\n });\n } else {\n elements.data.forEach(element => {\n const indexName = this.variablesService.contacts.findIndex(\n contact => contact.name === element.name\n );\n const indexAddress = this.variablesService.contacts.findIndex(\n contact => contact.address === element.address\n );\n if (indexAddress === -1 && indexName === -1) {\n this.variablesService.contacts.push(element);\n }\n if (indexName !== -1 && indexAddress === -1) {\n this.variablesService.contacts.push({\n name: `${(element.name as string) || '---'} ${\n this.translate.instant('CONTACTS.COPY') as string\n }`,\n address: element.address,\n notes: element.notes,\n });\n }\n });\n }\n this.backend.getContactAlias();\n this.ngZone.run(() => {\n this.router.navigate(['/contacts']);\n });\n }\n if (elements.errors.length > 0) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_IMPORT');\n console.log(elements.errors);\n }\n }\n });\n } else {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_TYPE_FILE');\n }\n }\n });\n }\n\n export(): void {\n const contacts: Array = [];\n this.variablesService.contacts.forEach(contact => {\n delete contact.alias;\n contacts.push(contact);\n });\n\n this.backend.saveFileDialog('', '*', this.variablesService.settings.default_path, (file_status, file_data) => {\n if (this.variablesService.contacts.length === 0 && !(file_data.error_code === 'CANCELED')) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EMPTY_LIST');\n }\n const path = this.isValid(file_data.path) ? file_data.path : `${(file_data.path as string) || 'base-name'}.csv`;\n if (file_status && this.isValid(path) && this.variablesService.contacts.length > 0) {\n this.backend.storeFile(path, this.papa.unparse(contacts));\n }\n if (!(file_data.error_code === 'CANCELED') && !this.isValid(path)) {\n this.modalService.prepareModal('error', 'CONTACTS.ERROR_EXPORT');\n }\n });\n }\n\n isValid(file): boolean {\n return file.endsWith('.csv');\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { notFileZanoWallet, wrongPassword } from '@parts/utils/zano-errors';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-open-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.OPEN_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n {{ 'OPEN_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ openWalletForm.controls.password.errors['wrongPassword'].errorText | translate }}\n
\n
\n
\n \n \n
\n \n \n\n \n `,\n})\nexport class OpenWalletComponent implements OnInit, OnDestroy {\n loading$ = new BehaviorSubject(false);\n\n fb = inject(NonNullableFormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.OPEN_WALLET',\n },\n ];\n\n openWalletForm = this.fb.group({\n name: this.fb.control('', [\n Validators.required,\n Validators.maxLength(this.variablesService.maxWalletNameLength),\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n password: this.fb.control('', [Validators.pattern(regExpPassword)]),\n filePath: this.fb.control('', Validators.required),\n });\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (!params.path) {\n return;\n }\n\n this.openWalletForm.controls.filePath.patchValue(params.path);\n\n let filename = '';\n if (params.path.lastIndexOf('.') === -1) {\n filename = params.path.substr(params.path.lastIndexOf('/') + 1);\n } else {\n filename = params.path.substr(\n params.path.lastIndexOf('/') + 1,\n params.path.lastIndexOf('.') - 1 - params.path.lastIndexOf('/')\n );\n }\n if (filename.length > 25) {\n filename = filename.slice(0, 25);\n }\n this.openWalletForm.controls.name.patchValue(filename);\n this.openWalletForm.controls.name.markAsTouched();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n openWallet(): void {\n this.loading$.next(true);\n\n if (this.openWalletForm.valid) {\n // This delay is necessary for the loader to display, as the application freezes for a few seconds\n setTimeout(() => {\n const { filePath, password, name } = this.openWalletForm.getRawValue();\n const { count: txs_to_return } = this.variablesService;\n this.backend.openWallet(\n filePath,\n password,\n txs_to_return,\n false,\n (openStatus, openData, errorCode: 'WRONG_PASSWORD' | 'FILE_NOT_FOUND' | 'INVALID_FILE' | 'ALREADY_EXISTS' | string) => {\n console.log('openData', openData);\n if (errorCode === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.openWalletForm.controls.password.setErrors({\n wrongPassword,\n });\n this.loading$.next(false);\n });\n return;\n }\n\n let errorText = errorCode;\n\n if (errorCode === 'FILE_NOT_FOUND') {\n errorText = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n errorText += ':
' + filePath;\n errorText += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n }\n\n if (errorCode === 'INVALID_FILE') {\n errorText = this.translate.instant(notFileZanoWallet.errorText);\n }\n\n if (['INVALID_FILE', 'FILE_NOT_FOUND'].includes(errorCode)) {\n this.modalService.prepareModal('error', errorText);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n return;\n }\n\n if (openStatus || errorCode === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === openData['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(openData.wallet_id, () => {\n this.ngZone.run(() => {\n this.loading$.next(false);\n this.router.navigate(['/']);\n });\n });\n } else {\n const new_wallet = new Wallet(\n openData.wallet_id,\n name,\n password,\n openData['wi'].path,\n openData['wi'].address,\n openData['wi'].balance,\n openData['wi'].unlocked_balance,\n openData['wi'].mined_total,\n openData['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.currentPage = 1;\n new_wallet.open_from_exist = true;\n new_wallet.exclude_mining_txs = false;\n new_wallet.is_auditable = openData['wi'].is_auditable;\n new_wallet.is_watch_only = openData['wi'].is_watch_only;\n if (openData.recent_history && openData.recent_history.history) {\n new_wallet.total_history_item = openData.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n openData.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(openData.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(openData.wallet_id, (run_status, run_data) => {\n if (run_status) {\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(openData.wallet_id);\n this.router.navigate(['/wallet/']);\n this.loading$.next(false);\n });\n } else {\n console.log(run_data['error_code']);\n this.ngZone.run(() => {\n this.loading$.next(false);\n });\n }\n });\n }\n }\n }\n );\n }, 500);\n } else {\n this.loading$.next(false);\n }\n\n }\n}\n","import { RouterModule, Routes } from '@angular/router';\nimport { paths } from './paths';\nimport { WithSidebarLayoutComponent } from '../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { WalletDetailsComponent } from './wallet-details/wallet-details.component';\nimport { FullLayoutComponent } from '../layouts/full-layout/full-layout.component';\nimport { LoginComponent } from './auth/login/login.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { DeeplinkComponent } from './deeplink/deeplink.component';\nimport { NgModule } from '@angular/core';\nimport { ExportImportComponent } from './export-import/export-import.component';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\n\nconst routes: Routes = [\n {\n path: paths.addWallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AddWalletComponent,\n },\n ],\n },\n {\n path: paths.details,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletDetailsComponent,\n },\n ],\n },\n {\n path: paths.login,\n component: FullLayoutComponent,\n children: [\n {\n path: '',\n component: LoginComponent,\n },\n ],\n },\n {\n path: paths.create,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: CreateWalletComponent,\n },\n ],\n },\n {\n path: paths.open,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: OpenWalletComponent,\n },\n ],\n },\n {\n path: paths.restore,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: RestoreWalletComponent,\n },\n ],\n },\n {\n path: paths.seedPhrase,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SeedPhraseComponent,\n },\n ],\n },\n {\n path: paths.assignAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: AssignAliasComponent,\n },\n ],\n },\n {\n path: paths.editAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: EditAliasComponent,\n },\n ],\n },\n {\n path: paths.transferAlias,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: TransferAliasComponent,\n },\n ],\n },\n {\n path: paths.settings,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: SettingsComponent,\n },\n ],\n },\n {\n path: paths.import,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: ExportImportComponent,\n },\n ],\n },\n {\n path: paths.deeplink,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: DeeplinkComponent,\n },\n ],\n },\n {\n path: '',\n redirectTo: paths.addWallet,\n pathMatch: 'full',\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AuthModule } from './auth/auth.module';\nimport { WalletModule } from './wallet/wallet.module';\nimport { PagesRoutingModule } from './pages-routing.module';\nimport { LoginComponent } from './auth/login/login.component';\nimport { SettingsComponent } from './settings/settings.component';\nimport { AddWalletComponent } from './add-wallet/add-wallet.component';\nimport { CreateWalletComponent } from './create-wallet/create-wallet.component';\nimport { OpenWalletComponent } from './open-wallet/open-wallet.component';\nimport { RestoreWalletComponent } from './restore-wallet/restore-wallet.component';\nimport { SeedPhraseComponent } from './seed-phrase/seed-phrase.component';\nimport { AssignAliasComponent } from './assign-alias/assign-alias.component';\nimport { EditAliasComponent } from './edit-alias/edit-alias.component';\nimport { ModalContainerComponent } from '@parts/modals/modal-container/modal-container.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DefaultImgModule, DisablePriceFetchModule } from '@parts/directives';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { DeeplinkModule } from './deeplink/deeplink.module';\nimport { FullLayoutModule } from '../layouts/full-layout/full-layout.module';\nimport { WithSidebarLayoutModule } from '../layouts/with-sidebar-layout/with-sidebar-layout.module';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TransferAliasComponent } from './transfer-alias/transfer-alias.component';\nimport {\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule, ShortStringPipe,\n} from '@parts/pipes';\nimport { InputValidateModule } from '@parts/directives/input-validate';\nimport { InputDisableSelectionModule } from '@parts/directives/input-disable-selection';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { SynchronizationStatusComponent } from '@parts/components/synchronization-status.component';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { AutoFocusDirective } from '@parts/directives/autofocus.directive';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\n\n@NgModule({\n declarations: [\n LoginComponent,\n SettingsComponent,\n AddWalletComponent,\n CreateWalletComponent,\n OpenWalletComponent,\n RestoreWalletComponent,\n SeedPhraseComponent,\n AssignAliasComponent,\n EditAliasComponent,\n TransferAliasComponent,\n ModalContainerComponent,\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PagesRoutingModule,\n AuthModule,\n WalletModule,\n NgSelectModule,\n TranslateModule.forChild(),\n FlexLayoutModule,\n DisablePriceFetchModule,\n TooltipModule,\n ConfirmModalModule,\n DeeplinkModule,\n FullLayoutModule,\n WithSidebarLayoutModule,\n OverlayModule,\n DefaultImgModule,\n ContractStatusMessagesPipeModule,\n ContractTimeLeftPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule,\n MoneyToIntPipeModule,\n SafeHtmlPipeModule,\n ShortStringPipe,\n InputValidateModule,\n InputDisableSelectionModule,\n CheckboxComponent,\n CopyButtonComponent,\n StakingSwitchComponent,\n SwitchComponent,\n SynchronizationStatusComponent,\n LoaderComponent,\n AutoFocusDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n ],\n})\nexport class PagesModule {}\n","export enum paths {\n auth = 'auth',\n addWallet = 'add-wallet',\n login = 'login',\n wallet = 'wallet',\n create = 'create',\n open = 'open',\n restore = 'restore',\n seedPhrase = 'seed-phrase',\n details = 'details',\n assignAlias = 'assign-alias',\n editAlias = 'edit-alias',\n transferAlias = 'transfer-alias',\n settings = 'settings',\n import = 'import',\n deeplink = 'deeplink',\n}\n\nexport enum pathsChildrenAuth {\n noWallet = 'no-wallet',\n}\n\nexport enum pathsChildrenWallet {\n assets = 'assets',\n send = 'send',\n receive = 'receive',\n history = 'history',\n contracts = 'contracts',\n staking = 'staking',\n}\n\nexport enum pathsChildrenContracts {\n purchase = 'purchase',\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { TranslateService } from '@ngx-translate/core';\nimport { pairwise, startWith, takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-restore-wallet',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'RESTORE_WALLET.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirm\"\n id=\"confirm-wallet-password\"\n placeholder=\"{{ 'PLACEHOLDERS.CONFIRM_WALET_PASSWORD_PLACEHOLDER' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n
\n \n \n \n
\n {{ 'RESTORE_WALLET.FORM_ERRORS.KEY_REQUIRED' | translate }}\n
\n
\n \n {{ 'RESTORE_WALLET.FORM_ERRORS.SEED_PHRASE_IS_NO_VALID' | translate }}\n
\n \n
\n \n \n \n {{ 'RESTORE_WALLET.FORM_ERRORS.INCORRECT_PASSWORD' | translate }}\n
\n
\n {{ 'RESTORE_WALLET.OK' | translate }}\n
\n \n\n \n \n {{ 'RESTORE_WALLET.BUTTON_SELECT' | translate }}\n \n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class RestoreWalletComponent implements OnInit, OnDestroy {\n fb = inject(FormBuilder);\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.RESTORE_WALLET',\n },\n ];\n\n restoreForm = this.fb.group(\n {\n name: this.fb.nonNullable.control('', [\n Validators.required,\n ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons),\n ]),\n key: this.fb.nonNullable.control('', Validators.required),\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirm: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n seedPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirm')],\n }\n );\n\n wallet = {\n id: '',\n };\n\n walletSaved = false;\n\n walletSavedName = '';\n\n progressWidth = '9rem';\n\n seedPhraseInfo = null;\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.checkValidSeedPhrasePassword();\n this.changeDetectionSeedPhrasePassword();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n changeDetectionSeedPhrasePassword(): void {\n this.restoreForm.controls.seedPassword.valueChanges.pipe(startWith(null), pairwise(), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.checkValidSeedPhrasePassword();\n },\n });\n this.restoreForm.controls.key.valueChanges.pipe(startWith(null), pairwise(), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.checkValidSeedPhrasePassword();\n },\n });\n }\n\n checkValidSeedPhrasePassword(): void {\n const seed_password = this.restoreForm.controls.seedPassword.value;\n const seed_phrase = this.restoreForm.controls.key.value;\n this.backend.getSeedPhraseInfo({ seed_phrase, seed_password }, (status, data) => {\n this.ngZone.run(() => {\n this.seedPhraseInfo = data;\n });\n });\n }\n\n createWallet(): void {\n this.ngZone.run(() => {\n this.progressWidth = '100%';\n this.runWallet();\n });\n }\n\n saveWallet(): void {\n if (this.restoreForm.valid && this.restoreForm.get('name').value.length <= this.variablesService.maxWalletNameLength) {\n this.backend.isValidRestoreWalletText(\n {\n seed_phrase: this.restoreForm.get('key').value,\n seed_password: this.restoreForm.get('seedPassword').value,\n },\n (valid_status, valid_data) => {\n if (valid_data !== 'TRUE') {\n this.ngZone.run(() => {\n this.restoreForm.get('key').setErrors({ key_not_valid: true });\n });\n } else {\n this.backend.saveFileDialog(\n this.translate.instant('RESTORE_WALLET.CHOOSE_PATH'),\n '*',\n this.variablesService.settings.default_path,\n (save_status, save_data) => {\n if (save_status) {\n this.variablesService.settings.default_path = save_data.path.substr(0, save_data.path.lastIndexOf('/'));\n this.walletSavedName = save_data.path.substr(\n save_data.path.lastIndexOf('/') + 1,\n save_data.path.length - 1\n );\n this.backend.restoreWallet(\n save_data.path,\n this.restoreForm.get('password').value,\n this.restoreForm.get('key').value,\n this.restoreForm.get('seedPassword').value,\n (restore_status, restore_data) => {\n if (restore_status) {\n this.wallet.id = restore_data.wallet_id;\n this.variablesService.opening_wallet = new Wallet(\n restore_data.wallet_id,\n this.restoreForm.get('name').value,\n this.restoreForm.get('password').value,\n restore_data['wi'].path,\n restore_data['wi'].address,\n restore_data['wi'].balance,\n restore_data['wi'].unlocked_balance,\n restore_data['wi'].mined_total,\n restore_data['wi'].tracking_hey\n );\n this.variablesService.opening_wallet.is_auditable = restore_data['wi'].is_auditable;\n this.variablesService.opening_wallet.is_watch_only = restore_data['wi'].is_watch_only;\n this.variablesService.opening_wallet.currentPage = 1;\n this.variablesService.opening_wallet.alias = this.backend.getWalletAlias(\n this.variablesService.opening_wallet.address\n );\n this.variablesService.opening_wallet.pages = new Array(1).fill(1);\n this.variablesService.opening_wallet.totalPages = 1;\n this.variablesService.opening_wallet.currentPage = 1;\n this.variablesService.opening_wallet.total_history_item = 0;\n this.variablesService.opening_wallet.restore = true;\n if (restore_data.recent_history && restore_data.recent_history.history) {\n this.variablesService.opening_wallet.totalPages = Math.ceil(\n restore_data.recent_history.total_history_items / this.variablesService.count\n );\n this.variablesService.opening_wallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.opening_wallet.pages = new Array(5)\n .fill(1)\n .map((value, index) => value + index))\n : (this.variablesService.opening_wallet.pages = new Array(\n this.variablesService.opening_wallet.totalPages\n )\n .fill(1)\n .map((value, index) => value + index));\n this.variablesService.opening_wallet.prepareHistory(\n restore_data.recent_history.history\n );\n }\n this.ngZone.run(() => {\n this.walletSaved = true;\n this.progressWidth = '50%';\n });\n } else {\n this.modalService.prepareModal('error', 'RESTORE_WALLET.NOT_CORRECT_FILE_OR_PASSWORD');\n }\n }\n );\n }\n }\n );\n }\n }\n );\n }\n }\n\n runWallet(): void {\n // add flag when wallet was restored form seed\n this.variablesService.after_sync_request[this.wallet.id] = true;\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === this.variablesService.opening_wallet.address) {\n exists = true;\n }\n });\n if (!exists) {\n this.backend.runWallet(this.wallet.id, (run_status, run_data) => {\n if (run_status) {\n this.walletsService.addWallet(this.variablesService.opening_wallet);\n if (this.variablesService.appPass) {\n this.backend.storeSecureAppData();\n }\n this.ngZone.run(() => {\n this.variablesService.setCurrentWallet(this.wallet.id);\n this.router.navigate(['/wallet/']);\n });\n } else {\n console.log(run_data['error_code']);\n }\n });\n } else {\n this.variablesService.opening_wallet = null;\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(this.wallet.id, () => {\n this.ngZone.run(() => {\n this.router.navigate(['/']);\n });\n });\n }\n }\n}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { FormBuilder, Validators } from '@angular/forms';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-seed-phrase',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.ADD_WALLET' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n \n
\n \n\n \n
\n
\n \n \n
\n\n
\n \n 0\"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n
0\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n
\n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n
\n
\n
\n \n
\n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n
\n \n \n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class SeedPhraseComponent implements OnInit, OnDestroy {\n seedPhrase = '';\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/add-wallet',\n title: 'BREADCRUMBS.ADD_WALLET',\n },\n {\n title: 'BREADCRUMBS.SAVE_PHRASE',\n },\n ];\n\n showSeed = false;\n\n wallet_id: number;\n\n wallet!: Wallet;\n\n seedPhraseCopied = false;\n\n progressWidth = '66%';\n\n fb = inject(FormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.nonNullable.control('', [ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.nonNullable.control(''),\n });\n\n seedPhraseForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.nonNullable.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n private destroy$ = new Subject();\n\n constructor(\n public walletsService: WalletsService,\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.showSeed = false;\n this.getWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n showSeedPhrase(): void {\n this.showSeed = true;\n this.progressWidth = '100%';\n }\n\n onSubmitSeed(): void {\n if (this.seedPhraseForm.valid) {\n this.showSeedPhrase();\n const wallet_id = this.wallet_id;\n const seed_password = this.seedPhraseForm.controls.password.value;\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n }\n\n private setWalletInfoNamePath(): void {\n this.detailsForm.get('name').setValue(this.wallet.name);\n this.detailsForm.get('path').setValue(this.wallet.path);\n }\n\n private getWallet(): void {\n this.route.queryParams.pipe(takeUntil(this.destroy$)).subscribe({\n next: params => {\n if (params.wallet_id) {\n this.wallet_id = +params.wallet_id;\n this.wallet = this.walletsService.getWalletById(this.wallet_id);\n if (this.wallet) {\n this.setWalletInfoNamePath();\n }\n }\n },\n });\n }\n}\n","import { Component, inject, NgZone, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\nimport { TranslateService } from '@ngx-translate/core';\nimport { scaleItems } from '@parts/data/scale-items';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { generateRandomString } from '@parts/utils/generate-random-string';\nimport { debounceTime } from 'rxjs/operators';\n\n@Component({\n selector: 'app-settings',\n template: `\n
\n
\n
\n \n

{{ 'SETTINGS.TITLE' | translate }}

\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n {{ item.language | translate }}\n \n \n {{ item.language | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.translationKey | translate }}\n \n \n {{ item.translationKey | translate }}\n \n \n
\n\n
\n \n \n \n {{ item.name | translate }}\n \n \n {{ item.name | translate }}\n \n \n
\n\n
\n \n \n \n
\n\n
\n \n \n
\n\n
\n \n \n
\n\n\n
\n
\n \n \n
\n \n
\n
\n \n \n \n
\n\n
\n \n \n
\n
\n
\n
\n\n\n
\n

\n {{ 'SETTINGS.MASTER_PASSWORD.TITLE' | translate }}\n

\n\n
\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"password\"\n id=\"old-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_OLD' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CURRENT_PASS_NOT_MATCH' | translate }}\n
\n
\n\n
\n \n \n \n
\n {{ 'ERRORS.WRONG_PASSWORD_MUST_BE' | translate }} a-zA-Z0-9_.*|~!?@#$%^&+{}()<>:;\"'-=,/[]*$\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"new_confirmation\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n 0\n \"\n class=\"error\"\n >\n {{ 'SETTINGS.FORM_ERRORS.CONFIRM_NOT_MATCH' | translate }}\n
\n
\n
\n\n
\n \n {{\n 'SETTINGS.SETTINGS_SAVED' | translate\n }}\n
\n \n\n

Build version: {{ currentBuild }}

\n
\n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n\n .form__field--secret .form__field--input {\n padding-right: 4rem;\n }\n\n .btn--regenerate {\n padding: 4px;\n border-radius: 4px;\n position: absolute;\n right: 0.6rem;\n top: 3.6rem;\n background: #ffffff1a;\n cursor: pointer;\n }\n `,\n ],\n})\nexport class SettingsComponent implements OnInit {\n ifSaved = false;\n\n scale: string;\n\n appUseTor: boolean;\n\n fb = inject(FormBuilder);\n\n changeForm = this.fb.group(\n {\n password: this.fb.nonNullable.control('', Validators.compose([Validators.pattern(regExpPassword)])),\n new_password: this.fb.nonNullable.control('', Validators.compose([Validators.required, Validators.pattern(regExpPassword)])),\n new_confirmation: this.fb.nonNullable.control(''),\n appPass: this.fb.nonNullable.control(this.variablesService.appPass ?? ''),\n },\n {\n validators: [\n ZanoValidators.formMatch('new_password', 'new_confirmation'),\n ZanoValidators.formMatch('password', 'appPass', 'pass_mismatch'),\n ],\n }\n );\n\n zanoCompanionForm: FormGroup<{\n zanoCompation: FormControl,\n secret: FormControl\n }> = this.fb.group({\n zanoCompation: this.fb.nonNullable.control({ value: false, disabled: !this.variablesService.hasAppPass }),\n secret: this.fb.nonNullable.control(\n { value: '', disabled: false },\n {\n validators: Validators.compose([]),\n }\n ),\n });\n\n public currentNotificationsState;\n\n languagesOptions = [\n {\n name: 'en',\n language: 'SETTINGS.LANGUAGE.EN',\n },\n {\n name: 'fr',\n language: 'SETTINGS.LANGUAGE.FR',\n },\n {\n name: 'de',\n language: 'SETTINGS.LANGUAGE.DE',\n },\n {\n name: 'id',\n language: 'SETTINGS.LANGUAGE.ID',\n },\n {\n name: 'it',\n language: 'SETTINGS.LANGUAGE.IT',\n },\n {\n name: 'pt',\n language: 'SETTINGS.LANGUAGE.PT',\n },\n ];\n\n appLockOptions = [\n {\n time: 5,\n translationKey: 'SETTINGS.APP_LOCK.TIME1',\n },\n {\n time: 15,\n translationKey: 'SETTINGS.APP_LOCK.TIME2',\n },\n {\n time: 60,\n translationKey: 'SETTINGS.APP_LOCK.TIME3',\n },\n {\n time: 0,\n translationKey: 'SETTINGS.APP_LOCK.TIME4',\n },\n ];\n\n appScaleOptions = scaleItems;\n\n appLogOptions = [\n {\n id: -1,\n },\n {\n id: 0,\n },\n {\n id: 1,\n },\n {\n id: 2,\n },\n {\n id: 3,\n },\n {\n id: 4,\n },\n ];\n\n currentBuild = '';\n\n appPass: any;\n\n constructor(\n public translate: TranslateService,\n public variablesService: VariablesService,\n private renderer: Renderer2,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n this.scale = this.variablesService.settings.scale;\n this.appUseTor = this.variablesService.settings.appUseTor;\n this.zanoCompanionForm.setValue(this.variablesService.settings.zanoCompanionForm, { emitEvent: false });\n }\n\n ngOnInit(): void {\n this.backend.getVersion((version, type, error) => {\n this.ngZone.run(() => {\n if (!error) {\n this.currentBuild = version;\n this.variablesService.testnet = false;\n if (type === 'testnet') {\n this.currentBuild += ' TESTNET';\n this.variablesService.testnet = true;\n }\n this.variablesService.networkType = type;\n } else {\n this.currentBuild = 'There was an error getting the build version';\n }\n });\n });\n this.backend.getIsDisabledNotifications(res => {\n this.currentNotificationsState = res;\n });\n\n this.zanoCompanionForm.valueChanges.pipe(debounceTime(200)).subscribe({\n next: () => {\n const value = this.zanoCompanionForm.getRawValue();\n const { zanoCompation, secret } = value;\n\n if (zanoCompation && !secret) {\n this.generateSecret();\n return;\n }\n\n if (!zanoCompation && secret) {\n this.zanoCompanionForm.controls.secret.patchValue('');\n return;\n }\n\n if (zanoCompation && secret || !zanoCompation && !secret) {\n this.backend.setupJwtWalletRpc(value);\n return;\n }\n }\n });\n }\n\n private generateSecret(): void {\n this.zanoCompanionForm.get('secret').setValue(generateRandomString(40));\n }\n\n regenerateSecret(): void {\n this.generateSecret();\n }\n\n setScale(): void {\n this.scale = this.variablesService.settings.scale;\n this.renderer.setStyle(document.documentElement, 'font-size', this.scale);\n this.backend.storeAppData();\n }\n\n onSubmitChangePass(): void {\n if (this.changeForm.valid) {\n this.variablesService.appPass = this.changeForm.get('new_password').value;\n\n this.backend.setMasterPassword({ pass: this.variablesService.appPass }, (status, data) => {\n if (status) {\n this.backend.storeSecureAppData({\n pass: this.variablesService.appPass,\n });\n this.variablesService.appLogin = true;\n this.variablesService.dataIsLoaded = true;\n if (this.variablesService.settings.appLockTime) {\n this.variablesService.startCountdown();\n }\n this.ngZone.run(() => {\n this.zanoCompanionForm.controls.zanoCompation.enable({ emitEvent: false });\n this.onSave();\n });\n } else {\n console.log(data['error_code']);\n }\n });\n\n this.changeForm.reset();\n }\n }\n\n toggleNotifications(): void {\n if (!this.currentNotificationsState) {\n this.backend.setIsDisabledNotifications('true');\n this.currentNotificationsState = true;\n } else {\n this.backend.setIsDisabledNotifications('false');\n this.currentNotificationsState = false;\n }\n }\n\n toggleUseTor(): void {\n this.appUseTor = !this.appUseTor;\n this.variablesService.settings.appUseTor = this.appUseTor;\n this.backend.setEnableTor(this.appUseTor);\n this.backend.storeAppData();\n }\n\n onSave(): void {\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n onLockChange(): void {\n this.variablesService.restartCountdown();\n }\n\n onLogChange(): void {\n this.backend.setLogLevel(this.variablesService.settings.appLog);\n this.backend.storeAppData();\n }\n\n onLanguageChange(): void {\n this.translate.use(this.variablesService.settings.language);\n this.backend.storeAppData();\n }\n}\n","import { Component, NgZone, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ModalService } from '@parts/services/modal.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport BigNumber from 'bignumber.js';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-transfer-alias',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.TRANSFER_ALIAS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n \n \n
\n\n
\n \n \n
\n\n
\n \n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"form__field--input\"\n id=\"alias-transfer\"\n name=\"alias-transfer\"\n placeholder=\"{{ 'TRANSFER_ALIAS.ADDRESS.PLACEHOLDER' | translate }}\"\n type=\"text\"\n />\n 0 &&\n (transferAddressAlias ||\n !transferAddressValid ||\n (transferAddressValid && !permissionSend) ||\n notEnoughMoney)\n \"\n class=\"error\"\n >\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.WRONG_ADDRESS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.ALIAS_EXISTS' | translate }}\n
\n
\n {{ 'TRANSFER_ALIAS.FORM_ERRORS.NO_MONEY' | translate }}\n
\n
\n
\n\n
\n {{\n 'TRANSFER_ALIAS.COST'\n | translate\n : {\n value: variablesService.default_fee,\n currency: variablesService.defaultCurrency\n }\n }}\n
\n\n \n {{ 'TRANSFER_ALIAS.BUTTON_TRANSFER' | translate }}\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: 100%;\n overflow: hidden;\n }\n `,\n ],\n})\nexport class TransferAliasComponent implements OnInit {\n wallet: Wallet;\n\n alias: any;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.TRANSFER_ALIAS',\n },\n ];\n\n transferAddress = '';\n\n transferAddressValid: boolean;\n\n transferAddressAlias: boolean;\n\n permissionSend: boolean;\n\n notEnoughMoney: boolean;\n\n requestProcessing = false;\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private modalService: ModalService,\n private ngZone: NgZone\n ) {}\n\n ngOnInit(): void {\n this.wallet = this.variablesService.currentWallet;\n const alias = this.backend.getWalletAlias(this.wallet.address);\n this.alias = {\n name: alias.name,\n address: alias.address,\n comment: alias.comment,\n tracking_key: alias.tracking_key,\n };\n const unlocked_balance = new BigNumber(this.wallet.getBalanceByTicker('ZANO')?.unlocked || 0);\n this.notEnoughMoney = unlocked_balance.isLessThan(this.variablesService.default_fee_big);\n }\n\n changeAddress(): void {\n this.backend.validateAddress(this.transferAddress, status => {\n this.transferAddressValid = status;\n if (status) {\n this.backend.getPoolInfo((statusPool, dataPool) => {\n if (hasOwnProperty(dataPool, 'aliases_que') && dataPool.aliases_que.length) {\n this.setStatus(!dataPool.aliases_que.some(el => el.address === this.transferAddress));\n } else {\n this.setStatus(status);\n }\n });\n } else {\n this.setStatus(false);\n }\n });\n }\n\n setStatus(statusSet): void {\n this.permissionSend = statusSet;\n if (statusSet) {\n this.backend.getAliasByAddress(this.transferAddress, status => {\n this.ngZone.run(() => {\n if (status) {\n this.transferAddressAlias = true;\n this.permissionSend = false;\n } else {\n this.transferAddressAlias = false;\n }\n });\n });\n } else {\n this.ngZone.run(() => {\n this.transferAddressAlias = false;\n });\n }\n }\n\n transferAlias(): void {\n if (this.requestProcessing || !this.permissionSend || !this.transferAddressValid || this.notEnoughMoney) {\n return;\n }\n this.requestProcessing = true;\n const newAlias = {\n name: this.alias.name,\n address: this.transferAddress,\n comment: this.alias.comment,\n tracking_key: this.alias.tracking_key,\n };\n this.backend.updateAlias(this.wallet.wallet_id, newAlias, this.variablesService.default_fee, (status, data) => {\n if (status && hasOwnProperty(data, 'success') && data.success) {\n this.modalService.prepareModal('info', 'TRANSFER_ALIAS.REQUEST_SEND_REG');\n this.ngZone.run(() => {\n this.router.navigate(['/wallet/']);\n });\n }\n this.requestProcessing = false;\n });\n }\n}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Router } from '@angular/router';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { regExpPassword, ZanoValidators } from '@parts/utils/zano-validators';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-wallet-details',\n template: `\n
\n
\n
\n \n

{{ 'BREADCRUMBS.WALLET_DETAILS' | translate }}

\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n \n \n \n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_DUPLICATE' | translate }}\n
\n
= variablesService.maxWalletNameLength\">\n {{ 'WALLET_DETAILS.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n {{ 'WALLET_DETAILS.FORM_ERRORS.NAME_REQUIRED' | translate }}\n
\n
\n
\n
\n \n

Saved!

\n
\n
\n \n \n
\n \n\n \n \n \n
\n \n \n
\n\n
\n \n 0\n \"\n class=\"form__field--input\"\n formControlName=\"confirmPassword\"\n id=\"confirm-password\"\n placeholder=\"{{ 'PLACEHOLDERS.PLACEHOLDER_CONFIRM' | translate }}\"\n type=\"password\"\n />\n \n 0\n \"\n >\n {{ 'WALLET_DETAILS.FORM_ERRORS.PASSWORDS_DONT_MATCH' | translate }}\n
\n
\n
\n\n \n\n

\n \n {{ 'WALLET_DETAILS.FORM.SECURED_SEED_WILL_REQUIRE' | translate }}\n

\n \n \n\n \n \n
\n
\n {{ 'WALLET_DETAILS.LABEL_SEED_PHRASE' | translate }}\n
\n
\n \n {{ 'WALLET_DETAILS.SEED_IS_UNSECURED' | translate }}\n \n \n 0\"\n class=\"status color-aqua\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n >\n {{ 'WALLET_DETAILS.SEED_IS_SECURED' | translate }}\n \n \n
\n
\n \n \n \n
\n {{ index + 1 }}\n
\n {{ word }}\n
\n \n \n
\n \n

0\" class=\"text-align-center\">\n \n {{ 'WALLET_DETAILS.REMEMBER_YOU_WILL_REQUIRE' | translate }}\n

\n
\n \n \n \n \n \n \n \n `,\n})\nexport class WalletDetailsComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/history',\n title: this.variablesService.currentWallet.name,\n },\n {\n title: 'BREADCRUMBS.WALLET_DETAILS',\n },\n ];\n\n seedPhrase = '';\n\n showSeed = false;\n\n seedPhraseCopied = false;\n\n ifSaved = false;\n\n fb = inject(NonNullableFormBuilder);\n\n detailsForm = this.fb.group({\n name: this.fb.control('', [Validators.required, ZanoValidators.duplicate(this.variablesService.walletNamesForComparisons)]),\n path: this.fb.control(''),\n });\n\n passwordSeedPhraseForm = this.fb.group(\n {\n password: this.fb.control('', Validators.pattern(regExpPassword)),\n confirmPassword: this.fb.control('', Validators.pattern(regExpPassword)),\n },\n {\n validators: [ZanoValidators.formMatch('password', 'confirmPassword')],\n }\n );\n\n constructor(\n public variablesService: VariablesService,\n private router: Router,\n private backend: BackendService,\n private ngZone: NgZone\n ) {\n const { currentWallet } = this.variablesService;\n const { name, path } = currentWallet;\n this.detailsForm.patchValue(\n {\n name,\n path,\n },\n {\n emitEvent: false,\n }\n );\n }\n\n beforeSubmitPasswordSeedPhrase(): void {\n if (this.passwordSeedPhraseForm.invalid) {\n this.passwordSeedPhraseForm.updateValueAndValidity();\n this.passwordSeedPhraseForm.markAllAsTouched();\n return;\n }\n\n this.submitPasswordSeedPhrase();\n }\n\n submitPasswordSeedPhrase(): void {\n const { wallet_id } = this.variablesService.currentWallet;\n const { password: seed_password } = this.passwordSeedPhraseForm.getRawValue();\n this.backend.getSmartWalletInfo({ wallet_id, seed_password }, (status, data) => {\n if (hasOwnProperty(data, 'seed_phrase')) {\n this.ngZone.run(() => {\n this.showSeed = true;\n this.seedPhrase = data['seed_phrase'].trim();\n });\n }\n });\n }\n\n beforeSubmitDetails(): void {\n if (this.detailsForm.invalid) {\n this.detailsForm.updateValueAndValidity();\n this.detailsForm.markAllAsTouched();\n return;\n }\n\n this.submitDetails();\n }\n\n submitDetails(): void {\n const getRawValue = this.detailsForm.getRawValue();\n const { name } = getRawValue;\n this.variablesService.currentWallet.name = name;\n this.detailsForm.reset(getRawValue);\n this.refreshDetailsFormValidators();\n this.ifSaved = true;\n setTimeout(() => {\n this.ifSaved = false;\n }, 3000);\n }\n\n copySeedPhrase(): void {\n this.backend.setClipboard(this.seedPhrase, () => {\n this.ngZone.run(() => {\n setTimeout(() => {\n this.seedPhraseCopied = false;\n }, 4000);\n this.seedPhraseCopied = true;\n });\n });\n }\n\n private refreshDetailsFormValidators(): void {\n const walletNamesForComparisons = this.variablesService.walletNamesForComparisons;\n const validatorsForName = [Validators.required, ZanoValidators.duplicate(walletNamesForComparisons)];\n this.detailsForm.controls.name.clearValidators();\n this.detailsForm.controls.name.setValidators(validatorsForName);\n this.detailsForm.controls.name.updateValueAndValidity();\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Subject } from 'rxjs';\nimport { AssetBalance, ParamsRemoveCustomAssetId } from '@api/models/assets.model';\nimport { PaginatePipeArgs } from 'ngx-pagination';\nimport { takeUntil } from 'rxjs/operators';\nimport { CdkOverlayOrigin } from '@angular/cdk/overlay';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { TranslateService } from '@ngx-translate/core';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-assets',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n
\n
\n {{ 'ASSETS.TABLE.LABELS.NAME' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.BALANCE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.VALUE' | translate }}\n
\n
\n
\n {{ 'ASSETS.TABLE.LABELS.PRICE' | translate }}\n
\n
\n
 
\n
\n
\n \n {{ asset.asset_info.full_name }}\n
\n
\n
\n \n {{ asset.total | intToMoney }}\n {{ asset.asset_info.ticker }}\n \n
\n
\n
\n {{\n (asset.total | intToMoney) * variablesService.moneyEquivalent | currency : 'USD'\n }}\n
\n
\n
\n {{ variablesService.moneyEquivalent | currency : 'USD' }}\n 0\"\n [class.color-red]=\"variablesService.moneyEquivalentPercent < 0\"\n >\n {{ variablesService.moneyEquivalentPercent | number : '1.2-2' }}%\n \n
\n
\n
\n \n \n \n
\n
\n
\n\n \n \n\n
\n \n {{ page.label }}\n \n
\n {{ page.label }}\n
\n
\n\n \n \n
\n\n \n \n \n `,\n})\nexport class AssetsComponent implements OnInit, OnDestroy {\n currentPage = 1;\n\n itemsPerPage = 10;\n\n paginationId = 'pagination-assets-id';\n\n get paginatePipeArgs(): PaginatePipeArgs {\n return {\n id: this.paginationId,\n itemsPerPage: this.itemsPerPage,\n currentPage: this.currentPage,\n };\n }\n\n get isShowPagination(): boolean {\n const { currentWallet } = this.variablesService;\n if (currentWallet) {\n const { balances } = currentWallet;\n return (balances?.length || 0) > this.itemsPerPage;\n }\n return false;\n }\n\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n triggerOrigin!: CdkOverlayOrigin;\n\n currentAsset!: AssetBalance;\n\n isOpenDropDownMenu = false;\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private backendService: BackendService,\n private walletsService: WalletsService,\n private dialog: Dialog,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n ngOnInit(): void {\n this.listenChangeWallet();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDropDownMenu(trigger: CdkOverlayOrigin, asset: AssetBalance): void {\n this.isOpenDropDownMenu = !this.isOpenDropDownMenu;\n this.triggerOrigin = trigger;\n this.currentAsset = asset;\n }\n\n trackByAssets(index: number, { asset_info: { asset_id } }: AssetBalance): number | string {\n return asset_id || index;\n }\n\n trackByPages(index: number): number | string {\n return index;\n }\n\n assetDetails(): void {\n const dialogConfig: DialogConfig = {\n data: {\n asset: this.currentAsset,\n },\n };\n this.dialog.open(AssetDetailsComponent, dialogConfig);\n }\n\n beforeRemoveAsset(): void {\n if (!this.currentAsset) {\n return;\n }\n const {\n asset_info: { full_name },\n } = this.currentAsset;\n const dialogConfig: DialogConfig = {\n data: {\n title: `Do you want delete \"${full_name}\"`,\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed.pipe(takeUntil(this.destroy$))\n .subscribe({\n next: confirmed => confirmed && this.removeAsset(),\n });\n }\n\n removeAsset(): void {\n const { wallet_id, sendMoneyParams } = this.variablesService.currentWallet;\n const {\n asset_info: { asset_id },\n } = this.currentAsset;\n const params: ParamsRemoveCustomAssetId = {\n wallet_id,\n asset_id,\n };\n this.backendService.removeCustomAssetId(params, () => {\n this.walletsService.updateWalletInfo(wallet_id);\n this.currentAsset = undefined;\n\n if (sendMoneyParams) {\n this.walletsService.currentWallet.sendMoneyParams.asset_id = zanoAssetInfo.asset_id;\n }\n });\n }\n\n getBalanceTooltip(balance: AssetBalance): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!balance) {\n return null;\n }\n\n scrollWrapper.classList.add('balance-scroll-list');\n [balance].forEach(({ unlocked, total, asset_info: { ticker } }: AssetBalance) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${ this.intToMoneyPipe.transform(unlocked) } ${ ticker || '---' }`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${ this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked)) } ${ ticker || '---' }`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backendService.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n\n private listenChangeWallet(): void {\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.currentPage = 0;\n },\n });\n }\n}\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subtransfer, Transaction } from '@api/models/transaction.model';\nimport BigNumber from 'bignumber.js';\nimport { PaginationService } from '@store/pagination/pagination.service';\nimport { PaginationStore } from '@store/pagination/pagination.store';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { collapseOnLeaveAnimation, expandOnEnterAnimation } from 'angular-animations';\nimport { zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-history',\n template: `\n
\n
\n \n \n \n \n \n \n \n \n \n
\n \n \n \n 0\"\n >\n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n
\n
{{ 'HISTORY.STATUS' | translate }}
\n
\n
{{ 'HISTORY.AMOUNT' | translate }}
\n
\n
{{ 'HISTORY.FEE' | translate }}
\n
\n
{{ 'HISTORY.ADDRESS' | translate }}
\n
\n
{{ 'HISTORY.DATE' | translate }}
\n
\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n\n {{\n (subtransfer.is_income ? 'HISTORY.RECEIVED' : 'HISTORY.SEND') | translate\n }}\n\n \n \n \n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate : { date: time(transaction) | date : 'MM.dd.yy' }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n 500000000\">\n 0)\n \"\n [delay]=\"500\"\n class=\"icon lock-transaction mr-1\"\n placement=\"bottom-left\"\n tooltip=\"{{\n 'HISTORY.LOCK_TOOLTIP'\n | translate\n : {\n date:\n transaction.unlock_time * 1000 | date : 'MM.dd.yy'\n }\n }}\"\n tooltipClass=\"table-tooltip\"\n >\n \n \n \n 0)\n \"\n class=\"icon unlock-transaction mr-1\"\n >\n \n \n \n \n \n \n\n \n
\n \"\"\n\n {{ 'HISTORY.RECEIVED' | translate }}\n
\n
\n
\n \n \n \n \n
\n \n {{ subtransfer.amount.minus(transaction.fee ?? 0).negated() | intToMoney }}\n \n \n {{ subtransfer.amount | intToMoney }}\n \n {{ (subtransfer.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n \n \n
\n \n {{ subtransfer.amount.negated() | intToMoney }}\n \n \n {{ subtransfer.amount | intToMoney }}\n \n {{ (subtransfer.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n \n\n \n \n {{ 0 | intToMoney }}\n {{ variablesService.defaultCurrency }}\n \n \n
\n
\n \n \n \n {{ transaction.fee | intToMoney }}\n {{ variablesService.defaultCurrency }}\n \n \n {{ 'HISTORY.NO_FEE' | translate }}\n \n \n
\n
\n \n \n
\n \n {{ transaction | historyTypeMessages }}\n \n
\n
\n\n \n \n \n {{ transaction.remote_addresses[0] | zanoShortString }}\n \n \n \n
\n \n \n = 1 && alias.length <= 5\"\n [class.mb-0_5]=\"transaction.remote_aliases.length >= 2\"\n [class.mr-0_5]=\"transaction.remote_aliases.length >= 2\"\n class=\"alias\"\n fxLayout=\"row inline\"\n >\n {{ '@' + alias }}\n
\n
\n
\n \n \n \n\n \n {{ 'HISTORY.HIDDEN' | translate }}\n \n \n
\n
\n {{ transaction.timestamp * 1000 | date : 'dd-MM-yyyy HH:mm' }}\n
\n
\n \n
\n
\n\n
\n
\n
\n \n \n \n\n \n \n {{ page }}\n \n \n\n \n \n {{ variablesService.currentWallet.currentPage }}\n \n \n\n \n \n \n
\n
\n Hide mining transactions\n \n
\n
\n
\n
\n `,\n styles: [\n `\n .cell-fee {\n display: inline-flex;\n }\n `,\n ],\n animations: [expandOnEnterAnimation(), collapseOnLeaveAnimation()],\n})\nexport class HistoryComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n openedDetails = '';\n\n stop_paginate = false;\n\n mining = false;\n\n wallet: Wallet;\n\n x = new BigNumber(3);\n\n y = new BigNumber(0.2);\n\n private destroy$ = new Subject();\n\n constructor(\n private route: ActivatedRoute,\n public variablesService: VariablesService,\n private pagination: PaginationService,\n private backend: BackendService,\n private ngZone: NgZone,\n private paginationStore: PaginationStore\n ) {}\n\n ngOnInit(): void {\n this.route.parent.params.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.openedDetails = '';\n },\n });\n\n this.init();\n\n this.variablesService.currentWalletChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.getRecentTransfers();\n },\n });\n\n this.variablesService.currentWalletChangedEvent\n .pipe(\n filter(w => !!w),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: (currentWallet: Wallet) => {\n this.mining = currentWallet.exclude_mining_txs;\n },\n });\n }\n\n isVisibleSubtransferStatus(subtransfer: Subtransfer, { fee }: Transaction): boolean {\n const { amount, asset_id, is_income } = subtransfer;\n return !(asset_id === zanoAssetInfo.asset_id && is_income === false && amount.eq(fee));\n\n }\n\n init(): void {\n let restore = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n restore = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (!this.variablesService.sync_started && restore && this.variablesService.currentWallet.wallet_id) {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n // if this is was restore wallet, and it was selected on moment when sync completed\n this.getRecentTransfers();\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n let after_sync_request = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n after_sync_request = this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id];\n }\n if (after_sync_request && !this.variablesService.sync_started) {\n // if user click on the wallet at the first time after restore.\n this.getRecentTransfers();\n }\n\n if (hasOwnProperty(this.variablesService.stop_paginate, String(this.variablesService.currentWallet.wallet_id))) {\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n } else {\n this.stop_paginate = false;\n }\n // this will hide pagination a bit earlier\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (this.wallet) {\n this.tick();\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n isVisibleFee(transaction: Transaction): boolean {\n const { subtransfers } = transaction;\n return subtransfers ? !subtransfers?.every(({ is_income }) => is_income) : false;\n }\n\n strokeSize(item): number {\n const rem = this.variablesService.settings.scale;\n if ((this.variablesService.height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 0;\n } else {\n if (item.height === 0 || this.variablesService.height_app - item.height < 0) {\n return 4.5 * parseInt(rem, 10);\n } else {\n return (\n 4.5 * parseInt(rem, 10) - ((4.5 * parseInt(rem, 10)) / 100) * ((this.variablesService.height_app - item.height) * 10)\n );\n }\n }\n }\n\n resetPaginationValues(): void {\n this.ngZone.run(() => {\n const total_history_item = this.variablesService.currentWallet.total_history_item;\n const count = this.variablesService.count;\n this.variablesService.currentWallet.totalPages = Math.ceil(total_history_item / count);\n this.variablesService.currentWallet.exclude_mining_txs = this.mining;\n this.variablesService.currentWallet.currentPage = 1;\n\n if (!this.variablesService.currentWallet.totalPages) {\n this.variablesService.currentWallet.totalPages = 1;\n }\n this.variablesService.currentWallet.totalPages > this.variablesService.maxPages\n ? (this.variablesService.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variablesService.currentWallet.pages = new Array(this.variablesService.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n });\n }\n\n setPage(pageNumber: number): void {\n // this is will allow pagination for wallets that was open from existed wallets'\n if (pageNumber === this.variablesService.currentWallet.currentPage) {\n return;\n }\n if (this.variablesService.currentWallet.open_from_exist && !this.variablesService.currentWallet.updated) {\n this.variablesService.get_recent_transfers = false;\n this.variablesService.currentWallet.updated = true;\n }\n // if not running get_recent_transfers callback\n if (!this.variablesService.get_recent_transfers) {\n this.variablesService.currentWallet.currentPage = pageNumber;\n }\n if (!this.variablesService.get_recent_transfers) {\n this.getRecentTransfers();\n }\n }\n\n toggleMiningTransactions(): void {\n if (!this.variablesService.sync_started && !this.wallet) {\n const value = this.paginationStore.value;\n if (!value) {\n this.paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n } else {\n const pages = value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id);\n if (pages.length === 0) {\n this.paginationStore.setPage(1, 0, this.variablesService.currentWallet.wallet_id); // add back page for the first page\n }\n }\n this.mining = !this.mining;\n this.resetPaginationValues();\n this.getRecentTransfers();\n }\n }\n\n getRecentTransfers(): void {\n const offset = this.pagination.getOffset(this.variablesService.currentWallet.wallet_id);\n const value = this.paginationStore.value;\n const pages = value ? value.filter(item => item.walletID === this.variablesService.currentWallet.wallet_id) : [];\n this.backend.getRecentTransfers(\n this.variablesService.currentWallet.wallet_id,\n offset,\n this.variablesService.count,\n this.variablesService.currentWallet.exclude_mining_txs,\n (status, data) => {\n const isForward = this.paginationStore.isForward(pages, this.variablesService.currentWallet.currentPage);\n if (this.mining && isForward && pages && pages.length === 1) {\n this.variablesService.currentWallet.currentPage = 1; // set init page after navigation back\n }\n\n const history = data && data.history;\n this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id] =\n (history && history.length < this.variablesService.count) || !history;\n this.stop_paginate = this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id];\n if (!this.variablesService.stop_paginate[this.variablesService.currentWallet.wallet_id]) {\n const page = this.variablesService.currentWallet.currentPage + 1;\n if (isForward && this.mining && history && history.length === this.variablesService.count) {\n this.paginationStore.setPage(page, data.last_item_index, this.variablesService.currentWallet.wallet_id); // add back page for current page\n }\n }\n\n this.pagination.calcPages(data);\n this.pagination.prepareHistory(data, status);\n\n this.ngZone.run(() => {\n this.variablesService.get_recent_transfers = false;\n if (hasOwnProperty(this.variablesService.after_sync_request, String(this.variablesService.currentWallet.wallet_id))) {\n // this is will complete get_recent_transfers request\n // this will switch of\n this.variablesService.after_sync_request[this.variablesService.currentWallet.wallet_id] = false;\n }\n });\n }\n );\n }\n\n tick(): void {\n const walletInterval = setInterval(() => {\n this.wallet = this.variablesService.getNotLoadedWallet();\n if (!this.wallet) {\n clearInterval(walletInterval);\n }\n }, 1000);\n }\n\n getHeight(item): number {\n const { height_app } = this.variablesService;\n if ((height_app - item.height >= 10 && item.height !== 0) || (item.is_mining === true && item.height === 0)) {\n return 10;\n } else {\n if (item.height === 0 || height_app - item.height < 0) {\n return 0;\n } else {\n return height_app - item.height;\n }\n }\n }\n\n openDetails(tx_hash): void {\n if (tx_hash === this.openedDetails) {\n this.openedDetails = '';\n } else {\n this.openedDetails = tx_hash;\n }\n }\n\n time(item: Transaction): number {\n const now = new Date().getTime();\n return now + (item.unlock_time - this.variablesService.height_max) * 60 * 1000;\n }\n\n isLocked(item: Transaction): boolean {\n if (item.unlock_time > 500000000 && item.unlock_time > new Date().getTime() / 1000) {\n return true;\n }\n return item.unlock_time < 500000000 && item.unlock_time > this.variablesService.height_max;\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport QRCode from 'qrcode';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { RCV_ADDR_QR_SCALE } from '@parts/data/constants';\n\n@Component({\n selector: 'app-receive',\n template: `\n
\n \n \"qr-code\"\n
\n\n \n {{ variablesService.currentWallet.address | zanoShortString : 9 : 9 }}\n \n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class ReceiveComponent implements OnInit {\n qrImageSrc: string;\n\n constructor(public variablesService: VariablesService) {}\n\n ngOnInit(): void {\n QRCode.toDataURL(this.variablesService.currentWallet.address, {\n width: 200 * RCV_ADDR_QR_SCALE,\n height: 200 * RCV_ADDR_QR_SCALE,\n })\n .then(url => {\n this.qrImageSrc = url;\n })\n .catch(err => {\n console.error(err);\n });\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n AsyncCommandResults,\n BackendService,\n CurrentActionState,\n ResponseAsyncTransfer,\n StatusCurrentActionState,\n} from '@api/services/backend.service';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { filter, takeUntil } from 'rxjs/operators';\n\nconst successfulStatuses: string[] = [\n StatusCurrentActionState.STATE_SENDING,\n StatusCurrentActionState.STATE_SENT_SUCCESS,\n StatusCurrentActionState.STATE_INITIALIZING,\n StatusCurrentActionState.STATE_DOWNLOADING_CONSENSUS,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_A,\n StatusCurrentActionState.STATE_MAKING_TUNNEL_B,\n StatusCurrentActionState.STATE_CREATING_STREAM,\n StatusCurrentActionState.STATE_SUCCESS,\n];\n\nconst failedStatuses: string[] = [StatusCurrentActionState.STATE_SEND_FAILED, StatusCurrentActionState.STATE_FAILED];\n\n@Component({\n selector: 'app-send-details-modal',\n template: `\n
\n
\n

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n
\n
\n
\n \"success\"\n
\n\n
\n \"failed\"\n
\n\n
\n\n

\n {{\n (currentActionState\n ? 'TOR_LIB_STATE' + '.' + currentActionState.status\n : 'TOR_LIB_STATE.STATE_INITIALIZING'\n ) | translate\n }}\n {{ !isSentSuccess && !isSentFailed ? '...' : '' }}\n

\n\n \n \n \n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n {{ 'TOR_LIB_STATE' + '.' + action?.status | translate\n }}{{ last && !isSentSuccess && !isSentFailed ? '...' : '' }}\n \n \n\n \n \n\n \n \n\n \n \n \n\n \n
  • \n tx id: {{ data.response_data.tx_hash || '---' }} \n \n \n
  • \n
  • \n
    \n tx size:\n {{ data.response_data.tx_blob_size }}\n bytes\n
    \n
  • \n
  • \n \n
  • \n
    \n
\n
\n
\n
\n
\n \n
\n \n \n\n \n \n \n

{{ prefix }} {{ 'SEND.ERROR_CODES' + '.' + error_code | translate }}

\n
\n \n \n

{{ prefix }} {{ error_code }}

\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendDetailsModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() job_id: number;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('elDetailsList', { static: true }) elDetailsList: ElementRef;\n\n responseData$ = new BehaviorSubject(null);\n\n stateDetails$ = new BehaviorSubject(false);\n\n currentActionState$ = new BehaviorSubject(null);\n\n currentActionStates$ = new BehaviorSubject([]);\n\n success = false;\n\n private destroy$: Subject = new Subject();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService, private renderer: Renderer2) {}\n\n get currentActionState(): CurrentActionState {\n return this.currentActionState$.value;\n }\n\n get currentActionStates(): CurrentActionState[] {\n return this.currentActionStates$.value;\n }\n\n get isSentSuccess(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SENT_SUCCESS;\n }\n\n get isSentFailed(): boolean {\n return this.currentActionState && this.currentActionState.status === StatusCurrentActionState.STATE_SEND_FAILED;\n }\n\n get isDetailsNotEmpty(): boolean {\n return !!(this.responseData$.value || this.currentActionStates$.value.length > 0);\n }\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const {\n currentWallet: { wallet_id },\n settings: { appUseTor },\n } = this.variablesService;\n\n if (appUseTor) {\n this.backendService.handleCurrentActionState$.pipe(takeUntil(this.destroy$)).subscribe({\n next: (currentActionState: CurrentActionState) => {\n this.currentActionState$.next(currentActionState);\n this.currentActionStates$.next([...this.currentActionStates, currentActionState]);\n },\n });\n } else {\n const actionState: CurrentActionState = {\n status: StatusCurrentActionState.STATE_INITIALIZING,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n }\n\n this.backendService.dispatchAsyncCallResult$\n .pipe(\n filter(({ job_id, response }: AsyncCommandResults) => this.job_id === job_id && !!response),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: ({ response }: AsyncCommandResults) => {\n const { response_data } = response;\n const success = response_data?.success ?? false;\n this.success = success;\n\n const actionState: CurrentActionState = {\n status: success ? StatusCurrentActionState.STATE_SENT_SUCCESS : StatusCurrentActionState.STATE_SEND_FAILED,\n wallet_id,\n };\n this.currentActionState$.next(actionState);\n this.currentActionStates$.next([...this.currentActionStates, actionState]);\n\n this.responseData$.next(response);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n toggleDetails(): void {\n this.stateDetails$.next(!this.stateDetails$.value);\n setTimeout(() => this.scrollToBottomDetailsList(), 100);\n }\n\n trackBy(index: number): number {\n return index;\n }\n\n isSuccess(action: CurrentActionState): boolean {\n return successfulStatuses.includes(action && action.status);\n }\n\n isFailed(action: CurrentActionState): boolean {\n return failedStatuses.includes(action && action.status);\n }\n\n private scrollToBottomDetailsList(): void {\n if (this.elDetailsList) {\n const { nativeElement } = this.elDetailsList;\n nativeElement.scrollTop = nativeElement.scrollHeight;\n }\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { NonNullableFormBuilder, Validators } from '@angular/forms';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\n\n@Component({\n selector: 'app-send-modal',\n template: `\n
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM.MESSAGE.SEND' | translate }}\n
\n
\n {{ sendMoneyParams.amount }}\n {{ (sendMoneyParams.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.FROM' | translate }}\n
\n
\n {{ variablesService.currentWallet.address }}\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.TO' | translate }}\n
\n
{{ sendMoneyParams.address }}
\n
\n
\n\n \n
\n\n
\n
\n {{ 'CONFIRM.MESSAGE.COMMENT' | translate }}\n
\n
{{ sendMoneyParams.comment }}
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class SendModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() sendMoneyParams: SendMoneyParams;\n\n @Output() confirmed: EventEmitter = new EventEmitter();\n\n cdr = inject(ChangeDetectorRef);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group({\n password: this.fb.control(''),\n appPass: this.fb.control(''),\n });\n\n constructor(public variablesService: VariablesService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n const { appPass } = this.variablesService;\n if (appPass) {\n this.confirmForm.controls.appPass.patchValue(appPass, {\n emitEvent: false,\n });\n this.confirmForm.setValidators([ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')]);\n this.confirmForm.controls.password.setValidators([Validators.required]);\n this.confirmForm.updateValueAndValidity();\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n beforeSubmit(): void {\n if (this.confirmForm.invalid) {\n this.confirmForm.markAsTouched();\n this.confirmForm.updateValueAndValidity();\n this.cdr.detectChanges();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.confirmed.emit(true);\n }\n\n onClose(): void {\n this.confirmed.emit(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SendModalComponent } from './send-modal/send-modal.component';\nimport { SendDetailsModalComponent } from './send-details-modal/send-details-modal.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { GetAssetInfoPipe } from '@parts/pipes';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\n\n@NgModule({\n declarations: [SendModalComponent, SendDetailsModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule, ReactiveFormsModule, GetAssetInfoPipe, CopyButtonComponent],\n exports: [SendModalComponent, SendDetailsModalComponent],\n})\nexport class WalletModalsModule {}\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ValidationErrors, Validators } from '@angular/forms';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BigNumber } from 'bignumber.js';\nimport { MIXIN } from '@parts/data/constants';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\nimport { debounceTime, delay, filter, retry, take, takeUntil, tap } from 'rxjs/operators';\nimport { BehaviorSubject, of, Subject } from 'rxjs';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { IntToMoneyPipe } from '@parts/pipes';\nimport { insuficcientFunds } from '@parts/utils/zano-errors';\nimport { Aliases } from '@api/models/alias.model';\nimport { DeeplinkParams, defaultSendMoneyParams } from '@api/models/wallet.model';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { SendMoneyParams } from '@api/models/send-money.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\n\n@Component({\n selector: 'app-send',\n template: `\n
\n \n
\n
\n \n \n\n \n \n \n \n = 2 && alias.name.length <= 6\"\n [class.pl-1]=\"alias.name.length > 6\"\n class=\"alias\"\n >\n
{{ alias.name }}
\n
\n
\n \n \n
Not found aliases
\n
\n \n
\n\n \n
\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n \n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.WRAP_INFO_NULL' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ sendMoneyParamsForm.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n \n \n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.MAX_LENGTH' | translate }}\n
\n
\n \n\n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : 3 }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n\n
\n \n \n \n \n {{ asset.asset_info.full_name || '---' }}\n ({{ asset.total | intToMoney }} {{ asset.asset_info.ticker }})\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n \n\n
\n \n {{ 'SEND.DETAILS' | translate }}\n \n \n\n
\n
\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'Min' }} {{ sendMoneyParamsForm.controls.mixin.getError('min')['min'] }}\n
\n
\n {{ 'Max' }} {{ sendMoneyParamsForm.controls.mixin.getError('max')['max'] }}\n
\n
\n
\n\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.FEE_MINIMUM' | translate : { fee: variablesService.default_fee } }}\n
\n
\n {{ 'SEND.FORM_ERRORS.FEE_REQUIRED' | translate }}\n
\n
\n
\n
\n\n \n \n \n\n \n {{ 'SEND.BUTTON' | translate }}\n \n \n \n\n \n\n \n `,\n styles: [\n `\n :host {\n width: 100%;\n }\n `,\n ],\n})\nexport class SendComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n job_id: number;\n\n isVisibleDropdownAliases$ = new BehaviorSubject(false);\n\n isVisibleDropdownAliasesObservable$ = this.isVisibleDropdownAliases$.pipe(delay(250));\n\n isModalDialogVisible = false;\n\n isModalDetailsDialogVisible = false;\n\n hideWalletAddress = false;\n\n wrapInfo: WrapInfo;\n\n loading$ = new BehaviorSubject(true);\n\n isWrapShown = false;\n\n aliasAddress: string;\n\n additionalOptions = false;\n\n fb = inject(NonNullableFormBuilder);\n\n intToMoneyPipe = inject(IntToMoneyPipe);\n\n variablesService = inject(VariablesService);\n\n wrapInfoService = inject(WrapInfoService);\n\n aliases$ = new BehaviorSubject([]);\n\n lowerCaseDisabled$ = new BehaviorSubject(true);\n\n sendMoneyParamsForm = this.fb.group({\n wallet_id: this.fb.control(undefined, {\n validators: [Validators.required],\n }),\n address: this.fb.control('', {\n validators: [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this.backendService.validateAddress(control.value, (valid_status, data) => {\n this.ngZone.run(() => {\n this.isWrapShown = data.error_code === 'WRAP';\n if (valid_status === false && !this.isWrapShown) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this.backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this.ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ],\n }),\n amount: this.fb.control(undefined, {\n validators: [\n Validators.required,\n Validators.min(0.000000000001),\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n const bigAmount = this.moneyToInt.transform(control.value) as BigNumber;\n if (this.isWrapShown) {\n if (!this.wrapInfo) {\n return { wrap_info_null: true };\n }\n if (bigAmount.isGreaterThan(new BigNumber(this.wrapInfo.unwraped_coins_left))) {\n return { great_than_unwraped_coins: true };\n }\n if (bigAmount.isLessThan(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20))) {\n return { less_than_zano_needed: true };\n }\n }\n return null;\n },\n\n (control: FormControl): ValidationErrors | null => {\n const asset_id = this.sendMoneyParamsForm?.controls.asset_id.value;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const unlocked = +this.intToMoneyPipe.transform(asset.unlocked);\n return +control.value > unlocked ? { insuficcientFunds } : null;\n }\n return null;\n },\n ],\n }),\n comment: this.fb.control('', {\n validators: [Validators.maxLength(this.variablesService.maxCommentLength)],\n }),\n asset_id: this.fb.control(undefined, {\n validators: [Validators.required],\n }),\n mixin: this.fb.control(MIXIN, {\n validators: [Validators.required, Validators.min(0), Validators.max(1000)],\n }),\n fee: this.fb.control(this.variablesService.default_fee, {\n validators: [\n Validators.required,\n (g: FormControl): ValidationErrors | null => {\n if (new BigNumber(g.value).isLessThan(this.variablesService.default_fee)) {\n return { less_min: true };\n }\n return null;\n },\n ],\n }),\n hide: this.fb.control(false),\n });\n\n get sendMoneyParams(): SendMoneyParams {\n return this.sendMoneyParamsForm.getRawValue() as SendMoneyParams;\n }\n\n private destroy$ = new Subject();\n\n constructor(private backendService: BackendService, private ngZone: NgZone, private moneyToInt: MoneyToIntPipe) {}\n\n ngOnInit(): void {\n const { aliases } = this.variablesService;\n this.aliases$.next(aliases);\n\n this.getWrapInfo();\n this.listenSendActionData();\n this.patchSendMoneyParamsByCurrentWallet();\n this.saveSendMoneyParams();\n this.setAssetFromHistoryState();\n }\n\n setAssetFromHistoryState(): void {\n const state = history.state || {};\n const asset: AssetBalance = state['asset'];\n if (asset) {\n const {\n asset_info: { asset_id },\n } = asset;\n this.sendMoneyParamsForm.controls.asset_id.patchValue(asset_id, { emitEvent: false });\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n showDialog(): void {\n this.isModalDialogVisible = true;\n }\n\n confirmed(confirmed: boolean): void {\n this.isModalDialogVisible = false;\n if (confirmed) {\n this.onSend();\n }\n }\n\n onSend(): void {\n if (this.sendMoneyParamsForm.valid) {\n const { address } = this.sendMoneyParamsForm.getRawValue();\n let sendMoneyParams: SendMoneyParams = {\n ...this.sendMoneyParamsForm.getRawValue(),\n };\n\n if (address.indexOf('@') === 0) {\n const aliasName = address;\n const alias = this.aliases$.value.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.sendMoneyParamsForm.controls.address.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n sendMoneyParams = {\n ...sendMoneyParams,\n address: alias.address,\n };\n }\n\n this.backendService.sendMoney(sendMoneyParams, job_id => {\n this.ngZone.run(() => {\n this.job_id = job_id;\n this.isModalDetailsDialogVisible = true;\n this.variablesService.currentWallet.sendMoneyParams = null;\n });\n });\n }\n }\n\n getReceivedValue(): number | BigNumber {\n const amount = this.moneyToInt.transform(this.sendMoneyParamsForm.value.amount);\n const needed = new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20);\n if (amount && needed) {\n return (amount as BigNumber).minus(needed);\n }\n return 0;\n }\n\n handeCloseDetailsModal(success: boolean): void {\n this.isModalDetailsDialogVisible = false;\n this.job_id = null;\n\n if (success) {\n const {\n currentWallet: { wallet_id },\n } = this.variablesService;\n this.variablesService.currentWallet.sendMoneyParams = null;\n this.sendMoneyParamsForm.reset({ ...defaultSendMoneyParams, wallet_id }, { emitEvent: false });\n }\n }\n\n private patchSendMoneyParamsByCurrentWallet(): void {\n const { currentWallet, default_fee } = this.variablesService;\n\n let sendMoneyParams: SendMoneyParams;\n\n if (currentWallet.sendMoneyParams) {\n sendMoneyParams = currentWallet.sendMoneyParams;\n this.sendMoneyParamsForm.markAllAsTouched();\n } else {\n sendMoneyParams = {\n ...defaultSendMoneyParams,\n fee: default_fee,\n };\n }\n\n if (currentWallet.is_auditable && !currentWallet.is_watch_only) {\n sendMoneyParams.hide = true;\n this.sendMoneyParamsForm.controls['hide'].disable();\n }\n\n if (currentWallet.is_auditable) {\n sendMoneyParams.mixin = 0;\n this.sendMoneyParamsForm.controls['mixin'].disable();\n }\n\n sendMoneyParams.wallet_id = currentWallet.wallet_id;\n\n this.sendMoneyParamsForm.patchValue(sendMoneyParams, { emitEvent: false });\n }\n\n private fillDeepLinkData(value: DeeplinkParams): void {\n this.additionalOptions = true;\n this.sendMoneyParamsForm.patchValue({\n address: value.address,\n amount: value.amount || null,\n comment: value.comment || value.comments || '',\n mixin: +value.mixins || MIXIN,\n asset_id: zanoAssetInfo.asset_id,\n fee: value.fee || this.variablesService.default_fee,\n hide: value.hide_sender === 'true',\n });\n }\n\n private getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loading$.next(true)),\n retry(5),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: value => {\n this.wrapInfo = value;\n this.loading$.next(false);\n },\n error: () => {\n this.loading$.next(false);\n },\n });\n }\n\n pasteListenAddressField(event: any): void {\n event.preventDefault();\n const { clipboardData } = event;\n let value = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n this.sendMoneyParamsForm.controls.address.patchValue(value);\n }\n\n inputListenAddressField(event: any): void {\n const {\n target: { value },\n } = event;\n of((value ?? '') as string)\n .pipe(\n tap(v => this.lowerCaseDisabled$.next(v.indexOf('@') !== 0)),\n tap(v => this.isVisibleDropdownAliases$.next(!!v.length && v.indexOf('@') === 0)),\n filter(v => v.indexOf('@') === 0),\n take(1)\n )\n .subscribe({\n next: v => {\n const filteredAliases = this.variablesService.aliases.filter(({ name }) => {\n return name.indexOf(v) > -1;\n });\n this.aliases$.next(filteredAliases);\n },\n });\n }\n\n private listenSendActionData(): void {\n this.variablesService.sendActionData$.pipe(takeUntil(this.destroy$)).subscribe({\n next: value => {\n if (value && value.action === 'send') {\n setTimeout(() => {\n this.fillDeepLinkData(value);\n }, 100);\n this.variablesService.sendActionData$.next({});\n }\n },\n });\n }\n\n private saveSendMoneyParams(): void {\n this.sendMoneyParamsForm.valueChanges.pipe(debounceTime(200), takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.variablesService.currentWallet.sendMoneyParams = this.sendMoneyParamsForm.getRawValue();\n },\n });\n }\n}\n","import { Component, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { Chart } from 'angular-highcharts';\nimport { BackendService } from '@api/services/backend.service';\nimport { ActivatedRoute } from '@angular/router';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BigNumber } from 'bignumber.js';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'app-staking',\n template: `\n
\n
\n
\n
\n \n
\n \n
\n {{ 'STAKING.TITLE' | translate }}\n
\n\n
\n \n \n
\n
\n \n
\n {{ 'STAKING.TITLE_PENDING' | translate }}\n :\n
\n
\n
\n {{ pending.total | intToMoney }}\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n \n
\n {{ 'STAKING.TITLE_TOTAL' | translate }}\n :\n
\n
\n
\n {{ total | intToMoney }}\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n
\n
\n
\n
\n
\n {{ selectedDate.date | date : 'EEEE, MMMM d, y' }}\n {{ selectedDate.amount }}\n
\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n\n \n \n Sort by {{ (item.title | translate | lowercase) + 's' }}\n \n \n {{ item.title | translate }}\n \n \n
\n \n \n
\n
\n
\n
\n
\n {{ selectedDate.date | date : 'EEEE, MMMM d, y' }}\n {{ selectedDate.amount }}\n
\n
\n {{ variablesService.defaultCurrency }}\n
\n
\n
\n
\n \n \n\n
\n
\n
\n\n
\n \n \n {{ period.title }}\n \n \n
\n \n \n `,\n styles: [\n `\n :host {\n width: 100%;\n height: auto;\n }\n `,\n ],\n})\nexport class StakingComponent implements OnInit, OnDestroy {\n periods = [\n {\n title: this.translate.instant('STAKING.PERIOD.WEEK1'),\n key: '1 week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.WEEK2'),\n key: '2 week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH1'),\n key: '1 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH3'),\n key: '3 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.MONTH6'),\n key: '6 month',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.YEAR'),\n key: '1 year',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.PERIOD.ALL'),\n key: 'All',\n active: true,\n },\n ];\n\n groups = [\n {\n title: this.translate.instant('STAKING.GROUP.DAY'),\n key: 'day',\n active: true,\n },\n {\n title: this.translate.instant('STAKING.GROUP.WEEK'),\n key: 'week',\n active: false,\n },\n {\n title: this.translate.instant('STAKING.GROUP.MONTH'),\n key: 'month',\n active: false,\n },\n ];\n\n selectedGroup = this.groups[0].key;\n\n selectedDate = {\n date: null,\n amount: null,\n };\n\n originalData = [];\n\n chart: Chart;\n\n total = new BigNumber(0);\n\n pending = {\n list: [],\n total: new BigNumber(0),\n };\n\n private destroy$ = new Subject();\n\n constructor(\n public variablesService: VariablesService,\n private route: ActivatedRoute,\n private backend: BackendService,\n private ngZone: NgZone,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService\n ) {}\n\n static makeGroupTime(key, date): number {\n if (key === 'day') {\n return date.setHours(0, 0, 0, 0);\n } else if (key === 'week') {\n return new Date(date.setDate(date.getDate() - date.getDay())).setHours(0, 0, 0, 0);\n } else {\n return new Date(date.setDate(1)).setHours(0, 0, 0, 0);\n }\n }\n\n ngOnInit(): void {\n this.route.parent.params.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n this.getMiningHistory();\n },\n });\n this.variablesService.getHeightAppEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (newHeight: number) => {\n if (!this.pending.total.isZero()) {\n const pendingCount = this.pending.list.length;\n for (let i = pendingCount - 1; i >= 0; i--) {\n if (newHeight - this.pending.list[i].h >= 10) {\n this.pending.list.splice(i, 1);\n }\n }\n if (pendingCount !== this.pending.list.length) {\n this.pending.total = new BigNumber(0);\n for (let i = 0; i < this.pending.list.length; i++) {\n this.pending.total = this.pending.total.plus(this.pending.list[i].a);\n }\n }\n }\n },\n });\n this.variablesService.getRefreshStackingEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: (wallet_id: number) => {\n if (this.variablesService.currentWallet.wallet_id === wallet_id) {\n this.getMiningHistory();\n }\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n drawChart(data): void {\n this.chart = new Chart({\n title: { text: '' },\n credits: { enabled: false },\n exporting: { enabled: false },\n legend: { enabled: false },\n chart: {\n type: 'line',\n backgroundColor: 'transparent',\n height: null,\n events: {\n load: (): void => {\n this.changePeriod();\n },\n },\n },\n\n yAxis: {\n min: 0,\n tickAmount: 5,\n title: {\n text: '',\n },\n gridLineColor: '#2b3644',\n gridLineWidth: 2,\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 120,\n tickColor: '#2b3644',\n labels: {\n y: -8,\n align: 'left',\n x: -120,\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n format: '{value} ' + this.variablesService.defaultCurrency,\n },\n },\n\n xAxis: {\n type: 'datetime',\n gridLineColor: '#2b3644',\n lineColor: '#2b3644',\n lineWidth: 2,\n tickWidth: 2,\n tickLength: 10,\n tickColor: '#2b3644',\n labels: {\n style: {\n color: '#e0e0e0',\n fontSize: '13px',\n },\n },\n minPadding: 0,\n maxPadding: 0,\n minRange: 86400000,\n // tickInterval: 86400000,\n minTickInterval: 3600000,\n },\n\n tooltip: {\n enabled: false,\n },\n\n plotOptions: {\n area: {\n fillColor: {\n linearGradient: {\n x1: 0,\n y1: 0,\n x2: 0,\n y2: 1,\n },\n stops: [\n [0, 'rgba(124,181,236,0.2)'],\n [1, 'rgba(124,181,236,0)'],\n ],\n },\n marker: {\n enabled: false,\n radius: 2,\n },\n lineWidth: 2,\n threshold: null,\n },\n\n series: {\n point: {\n events: {\n mouseOver: (obj): void => {\n this.selectedDate.date = obj.target['x'];\n this.selectedDate.amount = obj.target['y'];\n },\n },\n },\n events: {\n mouseOut: (): void => {\n this.selectedDate.date = null;\n this.selectedDate.amount = null;\n },\n },\n },\n },\n series: [\n {\n type: 'area',\n data: data,\n },\n ],\n });\n }\n\n getMiningHistory(): void {\n if (this.variablesService.currentWallet.loaded) {\n this.backend.getMiningHistory(this.variablesService.currentWallet.wallet_id, (status, data) => {\n this.total = new BigNumber(0);\n this.pending.list = [];\n this.pending.total = new BigNumber(0);\n this.originalData = [];\n if (data.mined_entries) {\n data.mined_entries.forEach((item, key) => {\n if (item.t.toString().length === 10) {\n data.mined_entries[key].t = new Date(item.t * 1000).setUTCMilliseconds(0);\n }\n });\n data.mined_entries.forEach(item => {\n this.total = this.total.plus(item.a);\n if (this.variablesService.height_app - item.h < 10) {\n this.pending.list.push(item);\n this.pending.total = this.pending.total.plus(item.a);\n }\n this.originalData.push([parseInt(item.t, 10), parseFloat(this.intToMoneyPipe.transform(item.a))]);\n });\n this.originalData = this.originalData.sort(function (a, b) {\n return a[0] - b[0];\n });\n }\n this.ngZone.run(() => {\n this.drawChart([]);\n });\n });\n }\n }\n\n changePeriod(period?): void {\n if (!this.chart) { return; }\n\n if (period) {\n this.periods.forEach(p => {\n p.active = false;\n });\n period.active = true;\n } else {\n period = this.periods.find(p => p.active);\n }\n\n const d = new Date();\n let min = null;\n const newData = [];\n\n const group = this.groups.find(g => g.active);\n\n if (period.key === '1 week') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 7, 0, 0, 0, 0);\n } else if (period.key === '2 week') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth(), d.getDate() - 14, 0, 0, 0, 0);\n } else if (period.key === '1 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 1, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '3 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 3, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '6 month') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear(), d.getMonth() - 6, d.getDate(), 0, 0, 0, 0);\n } else if (period.key === '1 year') {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n min = Date.UTC(d.getFullYear() - 1, d.getMonth(), d.getDate(), 0, 0, 0, 0);\n } else {\n this.originalData.forEach(item => {\n const time = StakingComponent.makeGroupTime(group.key, new Date(item[0]));\n const find = newData.find(itemNew => itemNew[0] === time);\n if (find) {\n find[1] = new BigNumber(find[1]).plus(item[1]).toNumber();\n } else {\n newData.push([time, item[1]]);\n }\n });\n this.chart.ref?.series[0].setData(newData, true);\n }\n\n this.chart.ref?.xAxis[0].setExtremes(min, null);\n }\n\n changeGroup(group): void {\n this.groups.forEach(g => {\n g.active = false;\n });\n group.active = true;\n this.changePeriod();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { GetAssetInfoPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { ProposalDetails } from '@api/models/swap.model';\n\n@Component({\n selector: 'app-swap-confirm-master-password',\n standalone: true,\n imports: [CommonModule, FlexModule, ReactiveFormsModule, TranslateModule, IntToMoneyPipeModule, GetAssetInfoPipe],\n templateUrl: './swap-confirm-master-password.component.html',\n styleUrls: ['./swap-confirm-master-password.component.scss'],\n})\nexport class SwapConfirmMasterPasswordComponent {\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n confirmForm = this.fb.group(\n {\n password: this.fb.control(''),\n appPass: this.fb.control(this.variablesService.appPass || ''),\n },\n { validators: [ZanoValidators.formMatch('password', 'appPass', 'passwordNotMatch')] }\n );\n\n data: { proposalDetails: ProposalDetails } = inject(DIALOG_DATA);\n\n dialogRef = inject(DialogRef);\n}\n","
\n
\n
\n

\n {{ 'CONFIRM.TITLE' | translate }}\n

\n\n
\n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n \n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n
\n
\n
\n
\n
\n\n
\n \n \n
\n
\n {{ 'LOGIN.FORM_ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n {{ 'LOGIN.FORM_ERRORS.PASS_REQUIRED' | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { Subject } from 'rxjs';\nimport { debounceTime, distinctUntilChanged, filter, take, takeUntil } from 'rxjs/operators';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { IntToMoneyPipeModule } from '@parts/pipes';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { SwapConfirmMasterPasswordComponent } from '../../modals/swap-confirm-master-password/swap-confirm-master-password.component';\nimport { ProposalDetails } from '@api/models/swap.model';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\n\n@Component({\n selector: 'app-confirm-swap',\n standalone: true,\n imports: [\n CommonModule,\n BreadcrumbsComponent,\n RouterLinkWithHref,\n InputValidateModule,\n TranslateModule,\n ReactiveFormsModule,\n IntToMoneyPipeModule,\n GetAssetInfoPipe,\n ],\n templateUrl: './confirm-swap.component.html',\n styleUrls: ['./confirm-swap.component.scss'],\n})\nexport class ConfirmSwapComponent implements OnInit, OnDestroy {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CONFIRM_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n errorRpc: { code: number; message: string } | undefined;\n\n variablesService = inject(VariablesService);\n\n fb = inject(NonNullableFormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n proposalDetails: ProposalDetails | undefined;\n\n hex_raw_proposal: string | undefined;\n\n private backendService = inject(BackendService);\n\n private router = inject(Router);\n\n private ngZone = inject(NgZone);\n\n private dialog = inject(Dialog);\n\n private destroy$ = new Subject();\n\n ngOnInit(): void {\n this.form.controls.hex_raw_proposal.valueChanges\n .pipe(distinctUntilChanged(), debounceTime(500), takeUntil(this.destroy$))\n .subscribe({\n next: (hex_raw_proposal: string) => {\n this.hex_raw_proposal = hex_raw_proposal;\n this.getProposalDetails(hex_raw_proposal);\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n swapConfirmMasterPasswordDialog(): void {\n const proposalDetails = this.proposalDetails;\n const config: DialogConfig = {\n data: {\n proposalDetails,\n },\n disableClose: true,\n width: '54rem',\n maxHeight: '90vh',\n };\n this.dialog\n .open(SwapConfirmMasterPasswordComponent, config)\n .closed.pipe(filter(Boolean), take(1))\n .subscribe({\n next: () => this.acceptProposal(),\n });\n }\n\n acceptProposal(): void {\n if (!this.hex_raw_proposal) {\n return;\n }\n const { wallet_id } = this.variablesService.currentWallet;\n const hex_raw_proposal = this.hex_raw_proposal;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_accept_proposal',\n params: { hex_raw_proposal },\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n if (response_data.result?.['result_tx_id']) {\n this.router.navigate(['/wallet/history']).then();\n } else {\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n\n private getProposalDetails(hex_raw_proposal: string): void {\n const { wallet_id } = this.variablesService.currentWallet;\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_get_proposal_info',\n params: { hex_raw_proposal },\n };\n\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n const proposal = response_data?.result?.['proposal'];\n if (proposal) {\n this.proposalDetails = proposal;\n this.errorRpc = undefined;\n } else {\n this.proposalDetails = undefined;\n this.errorRpc = response_data.error;\n }\n });\n });\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n
\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL1' | translate }}\n
\n\n
\n

{{ item.amount | intToMoney }} {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}

\n
\n
\n\n
\n\n
\n
\n {{ 'CONFIRM_SWAP.FORM.TABLE.LABELS.LABEL2' | translate }}\n
\n
\n

\n {{ item.amount | intToMoney }}\n {{ (item.asset_id | getAssetInfo)?.ticker || '???' }}\n

\n
\n
\n
\n
\n\n
\n \n\n \n {{ 'CONFIRM_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n\n
\n Error code: {{ errorRpc.code }}
\n Error message: {{ errorRpc.message || 'hex_raw_proposal not decoded' }}\n
\n
\n
\n","import { Component, inject, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Router, RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { AbstractControl, FormBuilder, FormControl, FormsModule, ReactiveFormsModule, ValidationErrors, Validators } from '@angular/forms';\nimport {\n IntToMoneyPipe,\n IntToMoneyPipeModule,\n MoneyToIntPipe,\n MoneyToIntPipeModule,\n ShortStringPipe\n} from '@parts/pipes';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance, AssetInfo } from '@api/models/assets.model';\nimport { defaultImgSrc, zanoAssetInfo } from '@parts/data/assets';\nimport { regExpAliasName } from '@parts/utils/zano-validators';\nimport { BackendService } from '@api/services/backend.service';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { delay, filter, map, retry, startWith, take, takeUntil, tap } from 'rxjs/operators';\nimport { Aliases } from '@api/models/alias.model';\nimport { WrapInfoService } from '@api/services/wrap-info.service';\nimport { WrapInfo } from '@api/models/wrap-info';\nimport { BigNumber } from 'bignumber.js';\nimport { assetHasNotBeenAddedToWallet, insuficcientFunds } from '@parts/utils/zano-errors';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { LoaderComponent } from '@parts/components/loader.component';\nimport { Wallet } from '@api/models/wallet.model';\n\n@Component({\n selector: 'app-create-swap',\n standalone: true,\n imports: [\n CommonModule,\n RouterLinkWithHref,\n TranslateModule,\n BreadcrumbsComponent,\n InputValidateModule,\n ReactiveFormsModule,\n DefaultImgModule,\n NgSelectModule,\n LowerCaseDirective,\n ShortStringPipe,\n FormsModule,\n IntToMoneyPipeModule,\n MoneyToIntPipeModule,\n LoaderComponent,\n ],\n templateUrl: './create-swap.component.html',\n styleUrls: ['./create-swap.component.scss'],\n})\nexport class CreateSwapComponent implements OnInit, OnDestroy {\n zanoAssetInfo = zanoAssetInfo;\n\n defaultImgSrc = defaultImgSrc;\n\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM1',\n },\n {\n title: 'CREATE_SWAP.BREADCRUMBS.ITEM2',\n },\n ];\n\n variablesService = inject(VariablesService);\n\n fb = inject(FormBuilder);\n\n aliasAddress: string;\n\n loading$ = new BehaviorSubject(false);\n\n isWrapShown = false;\n\n aliases$ = new BehaviorSubject([]);\n\n isVisibleDropdownAliases$ = new BehaviorSubject(false);\n\n isVisibleDropdownAliasesObservable$ = this.isVisibleDropdownAliases$.pipe(delay(150));\n\n lowerCaseDisabled$ = new BehaviorSubject(true);\n\n intToMoneyPipe = inject(IntToMoneyPipe);\n\n moneyToIntPipe = inject(MoneyToIntPipe);\n\n wrapInfoService = inject(WrapInfoService);\n\n wrapInfo: WrapInfo;\n\n errorRpc: { code: number; message: string } = null;\n\n private backendService = inject(BackendService);\n\n private ngZone = inject(NgZone);\n\n private router = inject(Router);\n\n private destroy$ = new Subject();\n\n private moneyToInt = inject(MoneyToIntPipe);\n\n currentWallet: Wallet = this.variablesService.currentWallet;\n\n allAssetsInfo = this.currentWallet.allAssetsInfo;\n\n form = this.fb.group(\n {\n sending: this.fb.group({\n amount: this.fb.control(null, {\n validators: [\n Validators.required,\n Validators.min(0.000000000001),\n (control: FormControl): ValidationErrors | null => {\n if (!control.value) {\n return null;\n }\n\n if (control.value === 0) {\n return { zero: true };\n }\n const bigAmount = this.moneyToInt.transform(control.value) as BigNumber;\n if (this.isWrapShown) {\n if (!this.wrapInfo) {\n return { wrap_info_null: true };\n }\n if (bigAmount.isGreaterThan(new BigNumber(this.wrapInfo.unwraped_coins_left))) {\n return { great_than_unwraped_coins: true };\n }\n if (bigAmount.isLessThan(new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20))) {\n return { less_than_zano_needed: true };\n }\n }\n return null;\n },\n (control: FormControl): ValidationErrors | null => {\n const asset_id = this.form?.controls.sending.controls.asset_id.value;\n if (!asset_id) {\n return null;\n }\n\n const asset: AssetBalance | undefined = this.variablesService.currentWallet.balances?.find(\n v => v.asset_info.asset_id === asset_id\n );\n if (asset) {\n const unlocked = +this.intToMoneyPipe.transform(asset.unlocked);\n return +control.value > unlocked ? { insuficcientFunds } : null;\n } else {\n return { assetHasNotBeenAddedToWallet };\n }\n },\n ],\n }),\n asset_id: this.fb.control(zanoAssetInfo.asset_id, [Validators.required]),\n }),\n receiving: this.fb.group({\n amount: this.fb.control({ value: null, disabled: this.currentWallet.isEmptyAssetsInfoWhitelist }, [Validators.required, Validators.min(0.000000000001)]),\n asset_id: this.fb.control({\n value: this.currentWallet.isEmptyAssetsInfoWhitelist ? null : (this.allAssetsInfo[1].asset_id ?? zanoAssetInfo.asset_id),\n disabled: this.currentWallet.isEmptyAssetsInfoWhitelist\n }, [Validators.required]),\n }),\n receiverAddress: this.fb.control('', [\n Validators.required,\n (control: FormControl): ValidationErrors | null => {\n this.aliasAddress = '';\n if (control.value) {\n if (control.value.indexOf('@') !== 0) {\n this.backendService.validateAddress(control.value, (valid_status, data) => {\n this.ngZone.run(() => {\n this.isWrapShown = data.error_code === 'WRAP';\n if (valid_status === false && !this.isWrapShown) {\n control.setErrors(Object.assign({ address_not_valid: true }, control.errors));\n } else {\n if (control.hasError('address_not_valid')) {\n delete control.errors['address_not_valid'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n }\n });\n });\n return control.hasError('address_not_valid') ? { address_not_valid: true } : null;\n } else {\n if (!regExpAliasName.test(control.value)) {\n return { alias_not_valid: true };\n } else {\n this.backendService.getAliasInfoByName(control.value.replace('@', ''), (alias_status, alias_data) => {\n this.ngZone.run(() => {\n this.aliasAddress = alias_data.address;\n if (alias_status) {\n if (control.hasError('alias_not_found')) {\n delete control.errors['alias_not_found'];\n if (Object.keys(control.errors).length === 0) {\n control.setErrors(null);\n }\n }\n } else {\n control.setErrors(Object.assign({ alias_not_found: true }, control.errors));\n }\n });\n });\n }\n return control.hasError('alias_not_found') ? { alias_not_found: true } : null;\n }\n }\n return null;\n },\n ]),\n },\n {\n validators: [\n (control: AbstractControl): ValidationErrors | null => {\n const condition = control.get('sending').get('asset_id').value === control.get('receiving').get('asset_id').value;\n if (condition) {\n control.get('receiving').get('asset_id').setErrors({ sameAssetsId: true });\n } else {\n control.get('receiving').get('asset_id').setErrors(null);\n }\n return null;\n },\n ],\n }\n );\n\n sendingAssetsInfo$: Observable;\n\n receivingAssetsInfo$: Observable;\n\n ngOnInit(): void {\n this.getWrapInfo();\n this.getAliases();\n this.setSendingAssetIdFromHistoryState();\n\n this.sendingAssetsInfo$ = this.form.controls.receiving.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.receiving.controls.asset_id.value),\n map((asset_id) => this.allAssetsInfo.filter((v) => v.asset_id !== asset_id))\n );\n this.receivingAssetsInfo$ = this.form.controls.sending.controls.asset_id.valueChanges.pipe(\n startWith(this.form.controls.sending.controls.asset_id.value),\n map((asset_id) => this.allAssetsInfo.filter((v) => v.asset_id !== asset_id))\n );\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n reverse(): void {\n const { sending, receiving } = this.form.getRawValue();\n\n const markAllAsTouched = () => {\n this.form.controls.sending.markAllAsTouched();\n this.form.controls.receiving.markAllAsTouched();\n };\n\n markAllAsTouched();\n\n this.form.patchValue({\n sending: receiving,\n receiving: sending,\n });\n this.form.controls.sending.controls.amount.updateValueAndValidity();\n this.form.controls.receiving.controls.amount.updateValueAndValidity();\n }\n\n getReceivedValue(): number | BigNumber {\n const amount = this.moneyToInt.transform(this.form.getRawValue().receiving.amount);\n const needed = new BigNumber(this.wrapInfo.tx_cost.zano_needed_for_erc20);\n if (amount && needed) {\n return (amount as BigNumber).minus(needed);\n }\n return 0;\n }\n\n inputListenReceiverAddressField(event: any): void {\n const {\n target: { value },\n } = event;\n of((value ?? '') as string)\n .pipe(\n tap(v => this.lowerCaseDisabled$.next(v.indexOf('@') !== 0)),\n tap(v => this.isVisibleDropdownAliases$.next(!!v.length && v.indexOf('@') === 0)),\n filter(v => v.indexOf('@') === 0),\n take(1)\n )\n .subscribe({\n next: v => {\n const filteredAliases = this.variablesService.aliases.filter(({ name }) => {\n return name.indexOf(v) > -1;\n });\n this.aliases$.next(filteredAliases);\n },\n });\n }\n\n pasteListenReceiverAddressField(event: any): void {\n event.preventDefault();\n const { clipboardData } = event;\n let value = clipboardData.getData('Text') ?? '';\n this.lowerCaseDisabled$.next(value.indexOf('@') !== 0);\n\n if (value.indexOf('@') === 0) {\n value = value.toLowerCase();\n }\n this.form.controls.receiverAddress.patchValue(value);\n }\n\n beforeSubmit(): void {\n if (this.form.invalid) {\n this.form.markAllAsTouched();\n this.form.updateValueAndValidity();\n return;\n }\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { sending, receiving, receiverAddress } = this.form.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const { default_fee_big } = this.variablesService;\n const params1: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'mw_select_wallet',\n params: { wallet_id },\n };\n const params2: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'ionic_swap_generate_proposal',\n params: {\n proposal: {\n to_finalizer: [\n {\n asset_id: sending.asset_id,\n amount: this.moneyToIntPipe.transform(sending.amount),\n },\n ],\n to_initiator: [\n {\n asset_id: receiving.asset_id,\n amount: this.moneyToIntPipe.transform(receiving.amount),\n },\n ],\n mixins: 10,\n fee_paid_by_a: default_fee_big,\n expiration_time: 0,\n },\n },\n };\n\n if (receiverAddress.indexOf('@') === 0) {\n const aliasName = receiverAddress;\n const alias = this.aliases$.value.find(({ name }) => name === aliasName);\n\n if (!alias) {\n this.form.controls.receiverAddress.setErrors({\n alias_not_found: true,\n });\n return;\n }\n\n params2.params['destination_address'] = alias.address;\n } else {\n params2.params['destination_address'] = receiverAddress;\n }\n\n this.backendService.call_wallet_rpc([wallet_id, params2], (status, response_data) => {\n if (response_data?.result) {\n this.ngZone.run(() => {\n this.router\n .navigateByUrl('/wallet/swap-proposal-hex', {\n state: {\n hex_raw_proposal: response_data.result['hex_raw_proposal'],\n },\n })\n .then();\n });\n } else {\n this.ngZone.run(() => {\n this.errorRpc = response_data.error;\n this.loading$.next(false);\n });\n }\n });\n }\n\n private setSendingAssetIdFromHistoryState(): void {\n const state = history.state || {};\n const asset: AssetBalance = state['asset'];\n if (asset) {\n const {\n asset_info: { asset_id },\n } = asset;\n this.form.patchValue({\n sending: {\n asset_id,\n },\n });\n }\n }\n\n private getAliases(): void {\n const { aliases } = this.variablesService;\n this.aliases$.next(aliases);\n }\n\n private getWrapInfo(): void {\n this.wrapInfoService\n .getWrapInfo()\n .pipe(\n tap(() => this.loading$.next(true)),\n retry(5),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: value => {\n this.wrapInfo = value;\n this.loading$.next(false);\n },\n error: () => {\n this.loading$.next(false);\n },\n });\n }\n}\n","
\n \n\n
\n \n
\n
\n \n \n \n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.GREAT_THAN_UNWRAPPED_COINS' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.LESS_THAN_ZANO_NEEDED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.WRAP_INFO_NULL' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ form.controls.sending.controls.amount.errors['insuficcientFunds'].errorText | translate }}\n
\n
\n {{ form.controls.sending.controls.amount.errors['assetHasNotBeenAddedToWallet'].errorText | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n
\n
\n \n\n
\n \n
\n\n \n
\n
\n \n \n \n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.AMOUNT_ZERO' | translate }}\n
\n
\n
\n\n
\n \n \n \n \n {{ assetInfo.full_name || '---' }}\n \n \n \n
\n {{ 'CREATE_SWAP.FORM.ERRORS.ERROR1' | translate }}\n
\n
\n \n \n \n\n
\n
\n {{ 'SEND.WRAP.TITLE' | translate }}\n \n
\n
\n {{ 'SEND.WRAP.MAIN_TEXT' | translate }}\n
\n
{{ 'SEND.WRAP.ESTIMATE' | translate }}
\n \n \n \n \n \n \n \n \n \n \n
{{ 'SEND.WRAP.WILL_RECEIVE' | translate }}\n {{ getReceivedValue() | intToMoney }}\n {{ 'SEND.WRAP.wZANO' | translate }}\n -
{{ 'SEND.WRAP.FEE' | translate }}\n {{ wrapInfo?.tx_cost?.zano_needed_for_erc20 | intToMoney : 3 }}\n {{ 'SEND.WRAP.ZANO' | translate }}\n ({{ '$' + wrapInfo.tx_cost?.usd_needed_for_erc20 }})\n
\n
\n\n
\n \n \n\n \n \n \n
\n = 2 && alias.name.length <= 6\"\n [class.pl-1]=\"alias.name.length > 6\"\n class=\"alias\"\n >\n
{{ alias.name }}
\n
\n
\n \n \n
Not found aliases
\n
\n \n \n\n \n
\n {{ 'SEND.FORM_ERRORS.ADDRESS_NOT_VALID' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_FOUND' | translate }}\n
\n
\n {{ 'SEND.FORM_ERRORS.ALIAS_NOT_VALID' | translate }}\n
\n
\n {{ 'ERRORS.REQUIRED' | translate }}\n
\n \n\n
\n {{ aliasAddress | zanoShortString }}\n
\n \n\n
\n \n {{ 'CREATE_SWAP.FORM.BUTTONS.BUTTON2' | translate }}\n
\n\n
\n Error code: {{ errorRpc.code }}
\n Error message: {{ errorRpc.message || 'hex_raw_proposal not created' }}\n
\n \n\n","import { Component, inject, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { InputValidateModule } from '@parts/directives';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\nimport { Observable } from 'rxjs';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\n\n@Component({\n selector: 'app-swap-proposal-hex',\n standalone: true,\n imports: [CommonModule, BreadcrumbsComponent, RouterLinkWithHref, InputValidateModule, TranslateModule, ReactiveFormsModule],\n templateUrl: './swap-proposal-hex.component.html',\n styleUrls: ['./swap-proposal-hex.component.scss'],\n})\nexport class SwapProposalHexComponent implements OnInit, IDeactivateComponent {\n breadcrumbItems: BreadcrumbItems = [\n {\n routerLink: '/wallet/swap',\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM1',\n },\n {\n title: 'SWAP_PROPOSAL_HEX.BREADCRUMBS.ITEM2',\n },\n ];\n\n copyAnimation = false;\n\n copyAnimationTimeout: any;\n\n fb = inject(FormBuilder);\n\n form = this.fb.group({\n hex_raw_proposal: this.fb.control('', [Validators.required]),\n });\n\n private backendService = inject(BackendService);\n\n private dialog = inject(Dialog);\n\n ngOnInit(): void {\n this.setSwapProposalHexFromHistoryState();\n }\n\n copy(): void {\n const { hex_raw_proposal } = this.form.getRawValue();\n this.backendService.setClipboard(hex_raw_proposal);\n this.copyAnimation = true;\n this.copyAnimationTimeout = setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n\n canExit(): Observable | Promise | boolean {\n const dialogConfig: DialogConfig = {\n disableClose: true,\n data: {\n title: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.TITLE',\n message: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.MESSAGE',\n buttons: {\n submit: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.SUBMIT',\n close: 'SWAP_PROPOSAL_HEX.MODALS.CONFIRM_MODAL.BUTTONS.CLOSE',\n },\n },\n };\n const dialogRef = this.dialog.open(ConfirmModalComponent, dialogConfig);\n return dialogRef.closed;\n }\n\n private setSwapProposalHexFromHistoryState(): void {\n const historyState = history.state || {};\n const hex_raw_proposal = historyState['hex_raw_proposal'];\n if (hex_raw_proposal) {\n this.form.controls.hex_raw_proposal.patchValue(hex_raw_proposal, { emitEvent: false });\n }\n }\n}\n","
\n \n\n
\n
\n \n \n
\n\n
\n \n\n \n {{ 'SWAP_PROPOSAL_HEX.FORM.BUTTONS.BUTTON2' | translate }}\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-swap',\n standalone: true,\n imports: [CommonModule, FlexModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './swap.component.html',\n styleUrls: ['./swap.component.scss'],\n})\nexport class SwapComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { IDeactivateComponent } from '@parts/interfaces/deactivete-component.interface';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SwapProposalHexGuard implements CanDeactivate {\n canDeactivate(\n component: IDeactivateComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable | Promise | boolean | UrlTree {\n return component.canExit ? component.canExit() : true;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { paths, pathsChildrenWallet } from '../paths';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WithSidebarLayoutComponent } from '../../layouts/with-sidebar-layout/with-sidebar-layout.component';\nimport { ConfirmSwapComponent } from './tabs/swap/pages/confirm-swap/confirm-swap.component';\nimport { SwapComponent } from './tabs/swap/pages/swap/swap.component';\nimport { CreateSwapComponent } from './tabs/swap/pages/create-swap/create-swap.component';\nimport { SwapProposalHexComponent } from './tabs/swap/pages/swap-proposal-hex/swap-proposal-hex.component';\nimport { SwapProposalHexGuard } from './tabs/swap/parts/guards/swap-proposal-hex.guard';\n\nconst routes: Routes = [\n {\n path: paths.wallet,\n component: WithSidebarLayoutComponent,\n children: [\n {\n path: '',\n component: WalletComponent,\n children: [\n {\n path: pathsChildrenWallet.assets,\n component: AssetsComponent,\n },\n {\n path: pathsChildrenWallet.send,\n component: SendComponent,\n },\n {\n path: pathsChildrenWallet.receive,\n component: ReceiveComponent,\n },\n {\n path: pathsChildrenWallet.history,\n component: HistoryComponent,\n },\n {\n path: pathsChildrenWallet.staking,\n component: StakingComponent,\n },\n {\n path: 'swap',\n component: SwapComponent,\n },\n {\n path: 'create-swap',\n component: CreateSwapComponent,\n },\n {\n path: 'swap-proposal-hex',\n component: SwapProposalHexComponent,\n canDeactivate: [SwapProposalHexGuard],\n },\n {\n path: 'confirm-swap',\n component: ConfirmSwapComponent,\n },\n {\n path: '',\n redirectTo: pathsChildrenWallet.assets,\n pathMatch: 'full',\n },\n ],\n },\n ],\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class WalletRoutingModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { WalletRoutingModule } from './wallet-routing.module';\nimport { AssetsComponent } from './tabs/assets/assets.component';\nimport { WalletComponent } from './wallet/wallet.component';\nimport { FlexLayoutModule, FlexModule } from '@angular/flex-layout';\nimport { TooltipModule } from '@parts/directives/tooltip/tooltip.module';\nimport {\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n IntToMoneyPipeModule,\n IsAvailableAliasNamePipeModule, ShortStringPipe,\n} from '@parts/pipes';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ConfirmModalModule } from '@parts/modals/confirm-modal/confirm-modal.module';\nimport { ExportHistoryModalModule } from './wallet/modals/export-history-modal/export-history-modal.module';\nimport { WalletDetailsComponent } from '../wallet-details/wallet-details.component';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { DefaultImgModule, InputValidateModule, LowerCaseDirective } from '@parts/directives';\nimport { NgxPaginationModule } from 'ngx-pagination';\nimport { HistoryComponent } from './tabs/history/history.component';\nimport { StakingComponent } from './tabs/staking/staking.component';\nimport { ChartModule } from 'angular-highcharts';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { ReceiveComponent } from './tabs/receive/receive.component';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { SendComponent } from './tabs/send/send.component';\nimport { ExportImportComponent } from '../export-import/export-import.component';\nimport { AssetDetailsModule } from '@parts/modals/asset-details/asset-details.module';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { CopyButtonComponent } from '@parts/components/copy-button.component';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\nimport { TransactionDetailsComponent } from '@parts/components/transaction-details.component';\nimport { BreadcrumbsComponent } from '@parts/components/breadcrumbs/breadcrumbs.component';\nimport { BackButtonComponent } from '@parts/components/back-button/back-button.component';\nimport { WalletModalsModule } from './tabs/send/modals/wallet-modals.module';\nimport { GetAssetInfoPipe } from '@parts/pipes/get-asset-info.pipe';\nimport { MigrateWalletToZarcanumComponent } from './wallet/modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { SuccessSweepBareOutsComponent } from './wallet/modals/success-sweep-bare-outs/success-sweep-bare-outs.component';\n\n@NgModule({\n declarations: [\n WalletComponent,\n AssetsComponent,\n WalletDetailsComponent,\n HistoryComponent,\n StakingComponent,\n ReceiveComponent,\n ExportImportComponent,\n SendComponent,\n MigrateWalletToZarcanumComponent,\n SuccessSweepBareOutsComponent,\n ],\n imports: [\n CommonModule,\n WalletRoutingModule,\n FlexModule,\n TooltipModule,\n ShortStringPipe,\n TranslateModule,\n IsAvailableAliasNamePipeModule,\n ConfirmModalModule,\n ExportHistoryModalModule,\n ReactiveFormsModule,\n OverlayModule,\n DefaultImgModule,\n NgxPaginationModule,\n SwitchComponent,\n ChartModule,\n NgSelectModule,\n FormsModule,\n FlexLayoutModule,\n StakingSwitchComponent,\n DialogModule,\n IntToMoneyPipeModule,\n ContractStatusMessagesPipeModule,\n HistoryTypeMessagesPipeModule,\n InputValidateModule,\n CheckboxComponent,\n AssetDetailsModule,\n CopyButtonComponent,\n TransactionDetailsComponent,\n LowerCaseDirective,\n BreadcrumbsComponent,\n BackButtonComponent,\n WalletModalsModule,\n GetAssetInfoPipe,\n ],\n})\nexport class WalletModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject } from '@angular/core';\nimport { FormControl, NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ZanoValidators } from '@parts/utils/zano-validators';\nimport { DialogRef } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { AssetBalance, ParamsAddCustomAssetId } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { wrongAssetId } from '@parts/utils/zano-errors';\nimport { BehaviorSubject } from 'rxjs';\nimport { CommonModule } from '@angular/common';\nimport { FlexModule } from '@angular/flex-layout';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { LoaderComponent } from '@parts/components/loader.component';\n\n@Component({\n selector: 'app-add-custom-token',\n standalone: true,\n template: `\n \n
\n

\n {{ 'WALLET.MODAL_ADD_CUSTOM_TOKEN.TITLE' | translate }}\n

\n\n
\n \n \n \n
{{ 'WALLET.MODAL_ADD_CUSTOM_TOKEN.FORM_ERRORS.ERROR1' | translate }}
\n
\n {{ formGroup.get('asset_id').errors['wrongAssetId'].errorText | translate }}\n
\n
\n
\n
\n\n
\n \n \n
\n \n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n imports: [CommonModule, FlexModule, TranslateModule, ReactiveFormsModule, LoaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AddCustomTokenComponent {\n private fb = inject(NonNullableFormBuilder);\n\n private cdr = inject(ChangeDetectorRef);\n\n loading$ = new BehaviorSubject(false);\n\n formGroup = this.fb.group<{ asset_id: FormControl }>({\n asset_id: this.fb.control('', Validators.compose([Validators.required, ZanoValidators.hash, Validators.maxLength(64)])),\n });\n\n constructor(\n public variablesService: VariablesService,\n public backendService: BackendService,\n private walletsService: WalletsService,\n private dialogRef: DialogRef\n ) {}\n\n beforeSubmit(): void {\n if (this.formGroup.invalid) {\n this.formGroup.markAsTouched();\n this.formGroup.updateValueAndValidity();\n return;\n }\n\n this.submit();\n }\n\n submit(): void {\n this.loading$.next(true);\n const { asset_id } = this.formGroup.getRawValue();\n const { wallet_id } = this.variablesService.currentWallet;\n const params: ParamsAddCustomAssetId = {\n asset_id,\n wallet_id,\n };\n this.backendService.addCustomAssetId(params, (status, { asset_descriptor }) => {\n if (status) {\n const asset: AssetBalance = {\n asset_info: {\n ...asset_descriptor,\n asset_id,\n },\n awaiting_in: 0,\n awaiting_out: 0,\n total: 0,\n unlocked: 0,\n };\n this.walletsService.updateWalletInfo(wallet_id);\n this.dialogRef.close(asset);\n } else {\n this.formGroup.controls.asset_id.setErrors({\n wrongAssetId,\n });\n this.loading$.next(false);\n this.cdr.detectChanges();\n }\n });\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { DialogRef } from '@angular/cdk/dialog';\n\n@Component({\n selector: 'app-export-history-modal',\n template: `\n \n
\n

\n {{ 'EXPORT_HISTORY.TITLE' | translate }}\n

\n\n
\n
\n \n \n \n {{ item.formatName }}\n \n \n {{ item.formatName }}\n \n \n
\n\n
\n {{ 'EXPORT_HISTORY.FILTER' | translate }}\n \n
\n
\n\n
\n \n \n
\n
\n \n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class ExportHistoryModalComponent {\n posFilterIsOn = true;\n\n currentFormat: string;\n\n exportData = {\n wallet_id: 0,\n include_pos_transactions: false,\n path: 'C:\\\\some_file.txt',\n format: 'json',\n };\n\n exportFormats = [\n {\n format: 'json',\n formatName: 'JSON',\n },\n {\n format: 'text',\n formatName: 'Text',\n },\n {\n format: 'csv',\n formatName: 'CSV',\n },\n ];\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private translate: TranslateService,\n private dialogRef: DialogRef\n ) {\n this.currentFormat = this.exportFormats[0].format;\n }\n\n closeModal(): void {\n this.dialogRef.close();\n }\n\n confirmExport(): void {\n this.exportData.format = `${this.currentFormat}`;\n this.exportData.wallet_id = this.variablesService.currentWallet.wallet_id;\n this.exportData.include_pos_transactions = this.posFilterIsOn;\n\n this.backend.saveFileDialog(\n this.translate.instant('EXPORT_HISTORY.SAVED_FILE'),\n `${this.exportData.format}`,\n this.variablesService.settings.default_path,\n (file_status, file_data) => {\n if (this.exportData.format === 'text') {\n this.exportData.path = file_data.path + '.txt';\n } else {\n this.exportData.path = file_data.path + `.${this.exportData.format}`;\n }\n if (file_status) {\n this.backend.exportWalletHistory(JSON.stringify(this.exportData));\n this.closeModal();\n }\n }\n );\n }\n}\n","import { NgModule } from '@angular/core';\nimport { ExportHistoryModalComponent } from './export-history-modal.component';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { FormsModule } from '@angular/forms';\nimport { CheckboxComponent } from '@parts/components/checkbox.component';\nimport { SwitchComponent } from '@parts/components/switch.component';\n\n@NgModule({\n declarations: [ExportHistoryModalComponent],\n exports: [ExportHistoryModalComponent],\n imports: [CommonModule, TranslateModule, FlexModule, SwitchComponent, CheckboxComponent, NgSelectModule, FormsModule],\n})\nexport class ExportHistoryModalModule {}\n","import { Component, inject, NgZone } from '@angular/core';\nimport { GetBareOutsStats, SweepBareOuts } from '@api/models/rpc.models';\nimport { Dialog, DIALOG_DATA, DialogConfig, DialogRef } from '@angular/cdk/dialog';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { SuccessSweepBareOutsComponent } from '../success-sweep-bare-outs/success-sweep-bare-outs.component';\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\n\n@Component({\n selector: 'app-migrate-wallet-to-zarcanum',\n templateUrl: './migrate-wallet-to-zarcanum.component.html',\n styleUrls: ['./migrate-wallet-to-zarcanum.component.scss'],\n})\nexport class MigrateWalletToZarcanumComponent {\n readonly dialogData: GetBareOutsStats = inject(DIALOG_DATA);\n private readonly _scrollStrategyOptions: ScrollStrategyOptions = inject(ScrollStrategyOptions);\n private readonly _scrollStrategyNoop: ScrollStrategy = this._scrollStrategyOptions.noop();\n private readonly _dialog = inject(Dialog);\n private readonly _dialogRef = inject(DialogRef);\n private readonly _backendService = inject(BackendService);\n private readonly _variableService = inject(VariablesService);\n private readonly _modalService = inject(ModalService);\n private readonly _ngZone = inject(NgZone);\n\n migrate(): void {\n const {\n currentWallet: { wallet_id },\n } = this._variableService;\n const params: ParamsCallRpc = { id: 0, jsonrpc: '2.0', method: 'sweep_bare_outs', params: {} };\n this._backendService.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this._ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const dialogConfig: DialogConfig = {\n maxWidth: '90vw',\n width: '540px',\n scrollStrategy: this._scrollStrategyNoop,\n data,\n };\n\n this._dialog.open(SuccessSweepBareOutsComponent, dialogConfig);\n } else {\n const message = response_data.error;\n this._modalService.prepareModal('error', message);\n }\n\n this._dialogRef.close();\n });\n });\n }\n\n openZarcanumMigration(): void {\n this._backendService.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n}\n","
\n
\n

\n {{ 'MIGRATE_WALLET_TO_ZARCANUM.TITLE' | translate }}\n

\n\n
\n

\n {{ 'MIGRATE_WALLET_TO_ZARCANUM.TEXT1' | translate: {\n total_bare_outs: dialogData.total_bare_outs,\n total_amount: dialogData.total_amount | intToMoney\n } }}\n

\n

\n \n {{ 'MIGRATE_WALLET_TO_ZARCANUM.LINK1' | translate }}\n

\n
\n

\n {{ 'MIGRATE_WALLET_TO_ZARCANUM.TEXT2' | translate: {\n txs_count: dialogData.txs_count,\n expected_total_fee: dialogData.expected_total_fee | intToMoney\n } }}\n

\n
\n\n
\n \n
\n
\n
\n","import { Component, inject, OnInit } from '@angular/core';\nimport { SweepBareOuts } from '@api/models/rpc.models';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-success-sweep-bare-outs',\n templateUrl: './success-sweep-bare-outs.component.html',\n styleUrls: ['./success-sweep-bare-outs.component.scss']\n})\nexport class SuccessSweepBareOutsComponent {\n readonly dialogData: SweepBareOuts = inject(DIALOG_DATA);\n private readonly _dialogRef = inject(DialogRef);\n stateDetails$ = new BehaviorSubject(false);\n\n toggleDetails(): void {\n this.stateDetails$.next(!this.stateDetails$.value);\n }\n\n close(): void {\n this._dialogRef.close();\n }\n}\n","
\n
\n

\n {{ 'SEND_DETAILS_MODAL.TITLE1' | translate }}\n

\n\n
\n
\n
\n \"success\"\n
\n\n

\n {{\n 'TOR_LIB_STATE.STATE_SENT_SUCCESS' | translate\n }}\n

\n
\n\n
\n \n

\n {{ 'SEND_DETAILS_MODAL.TITLE2' | translate }}\n

\n \n
\n \n
    \n \n

    {{ 'SUCCESS_SWEEP_BARE_OUTS.DETAILS' | translate: {\n txs_sent: dialogData.txs_sent,\n bare_outs_swept: dialogData.bare_outs_swept,\n amount_swept: dialogData.amount_swept | intToMoney,\n fee_spent: dialogData.fee_spent | intToMoney } }}\n

    \n \n
\n
\n
\n
\n
\n \n
\n \n\n","import { Component, HostListener, NgZone, OnDestroy, OnInit } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService, Commands } from '@api/services/backend.service';\nimport { Subject, take } from 'rxjs';\nimport { StateKeys, Store, Sync } from '@store/store';\nimport { distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\nimport { hasOwnProperty } from '@parts/functions/hasOwnProperty';\nimport { Dialog, DialogConfig } from '@angular/cdk/dialog';\nimport { ConfirmModalComponent, ConfirmModalData } from '@parts/modals/confirm-modal/confirm-modal.component';\nimport { ExportHistoryModalComponent } from './modals/export-history-modal/export-history-modal.component';\nimport { AddCustomTokenComponent } from './modals/add-custom-token/add-custom-token.component';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport {\n NavigationCancel,\n NavigationEnd,\n NavigationError,\n NavigationStart,\n Router,\n RouterEvent\n} from '@angular/router';\nimport { ZARCANUM_MIGRATION } from '@parts/data/constants';\nimport {\n MigrateWalletToZarcanumComponent\n} from './modals/migrate-wallet-to-zarcanum/migrate-wallet-to-zarcanum.component';\nimport { ScrollStrategy, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { ModalService } from '@parts/services/modal.service';\nimport { GetBareOutsStats } from '@api/models/rpc.models';\n\ninterface Tab {\n id: string;\n title: string;\n icon: string;\n link: string;\n disabled: boolean;\n hidden: boolean;\n indicator?: boolean;\n}\n\ntype TabNameKeys = 'assets' | 'history' | 'send' | 'receive' | 'swap' | 'staking';\n\nconst objTabs: { [key in TabNameKeys]: Tab } = {\n assets: {\n id: 'assets',\n title: 'WALLET.TABS.ASSETS',\n icon: 'balance-icon',\n link: '/assets',\n disabled: false,\n hidden: false\n },\n history: {\n id: 'history',\n title: 'WALLET.TABS.HISTORY',\n icon: 'time-circle',\n link: '/history',\n disabled: false,\n hidden: false\n },\n send: {\n id: 'send',\n title: 'WALLET.TABS.SEND',\n icon: 'arrow-up-square',\n link: '/send',\n disabled: false,\n hidden: false\n },\n receive: {\n id: 'receive',\n title: 'WALLET.TABS.RECEIVE',\n icon: 'arrow-down-square',\n link: '/receive',\n disabled: false,\n hidden: false\n },\n swap: {\n id: 'swap',\n title: 'Swap',\n icon: 'swap',\n link: '/swap',\n disabled: false,\n hidden: true\n },\n // TODO: https://github.com/hyle-team/zano/issues/374\n // contract: {\n // title: 'WALLET.TABS.CONTRACTS',\n // icon: 'document',\n // link: '/contracts',\n // disabled: false,\n // hidden: false\n // },\n staking: {\n id: 'staking',\n title: 'WALLET.TABS.STAKING',\n icon: 'staking',\n link: '/staking',\n indicator: false,\n disabled: false,\n hidden: false\n },\n};\n\n@Component({\n selector: 'app-wallet',\n template: `\n
\n
\n
\n
\n

\n {{ variablesService.currentWallet.address | zanoShortString }}\n

\n\n \n \n\n \n \n \n \n\n \n
\n {{ variablesService.currentWallet.alias.name }}\n
\n\n \n \n \n \n\n \n \n \n \n \n
\n
\n
\n \n
\n
\n \n\n
\n

{{ 'WALLET.MIGRATE.TEXT1' | translate }}

\n

\n \n {{ 'WALLET.MIGRATE.BUTTON1' | translate }}\n

\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n \n\n \n
\n
    \n
  • \n \n \n {{ 'WALLET_DETAILS.WALLET_OPTIONS' | translate }}\n \n
  • \n \n
  • \n \n \n {{ 'WALLET_DETAILS.ADD_CUSTOM_TOKEN' | translate }}\n \n
  • \n
    \n
  • \n \n \n {{ 'EXPORT_HISTORY.EXPORT_BUTTON' | translate }}\n \n
  • \n \n
  • \n \n {{ 'WALLET_DETAILS.RESYNC_WALLET_BUTTON' | translate }}\n \n
  • \n
    \n
  • \n \n {{ 'WALLET_DETAILS.BUTTON_REMOVE' | translate }}\n \n
  • \n
\n
\n \n\n
\n
\n \n \n \n \n \n
\n
\n
\n \n
\n
\n

\n {{ 'Loading...' | translate }}\n

\n
\n
\n
\n
\n `,\n})\nexport class WalletComponent implements OnInit, OnDestroy {\n settingsButtonInterval;\n\n settingsButtonDisabled = true;\n\n walletLoaded = false;\n\n openDropdown: boolean;\n\n walletSyncVisible = false;\n\n tabs: Tab[] = [];\n\n private destroy$ = new Subject();\n\n loader = true;\n\n scrollStrategyNoop: ScrollStrategy;\n\n constructor(\n private backend: BackendService,\n public variablesService: VariablesService,\n private ngZone: NgZone,\n private store: Store,\n private dialog: Dialog,\n private modalService: ModalService,\n private walletsService: WalletsService,\n private router: Router,\n private readonly scrollStrategyOptions: ScrollStrategyOptions\n ) {\n this.scrollStrategyNoop = this.scrollStrategyOptions.noop();\n\n if (!this.variablesService.currentWallet && this.variablesService.wallets.length > 0) {\n this.variablesService.setCurrentWallet(0);\n }\n this.walletLoaded = this.variablesService.currentWallet.loaded;\n\n this.variablesService.currentWalletChangedEvent\n .pipe(\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: (wallet: Wallet) => {\n this.createTabs(wallet);\n const disabled = !wallet.loaded;\n this.setDisabledTabs(['send', 'swap', 'staking'], disabled);\n\n this.variablesService.is_hardfok_active$.pipe(\n take(1)\n ).subscribe({\n next: (value) => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n }\n });\n },\n });\n\n this.variablesService.is_hardfok_active$.pipe(\n takeUntil(this.destroy$)\n ).subscribe({\n next: (value) => {\n const hidden = !value;\n this.setHiddenTabs(['swap'], hidden);\n }\n });\n\n this.router.events.pipe(takeUntil(this.destroy$)).subscribe((e: RouterEvent) => {\n this.navigationInterceptor(e);\n });\n }\n\n navigationInterceptor(event: RouterEvent): void {\n if (event instanceof NavigationStart) {\n this.loader = true;\n }\n if (event instanceof NavigationEnd) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationCancel) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n if (event instanceof NavigationError) {\n setTimeout(() => {\n this.loader = false;\n }, 500);\n }\n\n }\n\n createTabs({ is_auditable, is_watch_only }: Wallet): void {\n const conditionForHiding: boolean = !is_auditable || !is_watch_only;\n const tabs: Array = [];\n\n tabs.push(objTabs.assets);\n tabs.push(objTabs.history);\n\n if (conditionForHiding) {\n tabs.push(objTabs.send);\n }\n\n tabs.push(objTabs.receive);\n\n if (conditionForHiding) {\n tabs.push(objTabs.swap);\n }\n\n tabs.push(objTabs.staking);\n\n this.tabs = tabs;\n }\n\n @HostListener('document:keydown.shift', ['$event.key'])\n onKeyPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = true;\n }\n }\n\n @HostListener('document:keyup.shift', ['$event.key'])\n onKeyUpPressed(): void {\n if (!this.openDropdown) {\n this.walletSyncVisible = false;\n }\n }\n\n ngOnInit(): void {\n this.settingsButtonInterval = setInterval(() => {\n // tslint:disable-next-line:triple-equals\n if (this.variablesService.daemon_state == 2 || this.walletLoaded) {\n this.settingsButtonDisabled = false;\n clearInterval(this.settingsButtonInterval);\n }\n }, 1000);\n this.store\n .select(StateKeys.sync)\n .pipe(filter(Boolean), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe({\n next: (value: any) => {\n const data = value.filter((item: Sync) => item.wallet_id === this.variablesService.currentWallet.wallet_id)[0];\n if (data && !data.sync) {\n let in_progress;\n const values = this.store.state.sync;\n if (values && values.length > 0) {\n in_progress = values.filter(item => item.sync);\n this.variablesService.sync_started = !!(in_progress && in_progress.length);\n if (!in_progress) {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n } else {\n this.variablesService.sync_started = false;\n this.variablesService.sync_wallets[data.wallet_id] = false;\n }\n }\n },\n });\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n this.variablesService.getAliasChangedEvent.pipe(takeUntil(this.destroy$)).subscribe({\n next: () => {\n if (hasOwnProperty(this.variablesService.currentWallet.alias, 'name')) {\n this.variablesService.currentWallet.wakeAlias = false;\n }\n },\n });\n this.updateWalletStatus();\n }\n\n toggleMenuDropdown(): void {\n if (!this.openDropdown) {\n this.openDropdown = true;\n } else {\n this.openDropdown = false;\n this.walletSyncVisible = false;\n }\n }\n\n resyncCurrentWallet(wallet_id: number): void {\n this.backend.resyncWallet(wallet_id);\n }\n\n close(wallet_id: number): void {\n const dialogConfig: DialogConfig = {\n data: {\n title: 'WALLET.CONFIRM.MESSAGE',\n message: 'WALLET.CONFIRM.TITLE',\n },\n };\n\n this.dialog\n .open(ConfirmModalComponent, dialogConfig)\n .closed\n .pipe(\n filter(Boolean),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: () => {\n this.walletsService.closeWallet(wallet_id);\n },\n });\n }\n\n addCustomToken(): void {\n this.dialog\n .open(AddCustomTokenComponent)\n .closed.pipe(\n filter(response_data => Boolean(response_data)),\n takeUntil(this.destroy$)\n )\n .subscribe({\n next: asset => {\n const dialogConfig: DialogConfig = {\n data: {\n asset,\n title: 'You added new asset',\n },\n };\n this.ngZone.run(() => {\n this.dialog.open(AssetDetailsComponent, dialogConfig);\n });\n },\n });\n }\n\n exportHistory(): void {\n this.dialog.open(ExportHistoryModalComponent);\n }\n\n openZarcanumMigration(): void {\n this.backend.openUrlInBrowser(ZARCANUM_MIGRATION);\n }\n\n openMigrateWalletToZarcanum(): void {\n const { currentWallet: { wallet_id }} = this.variablesService;\n const params: ParamsCallRpc = {\n id: 0, jsonrpc: '2.0', method: 'get_bare_outs_stats', params: {}\n\n };\n this.backend.call_wallet_rpc([wallet_id, params], (status, response_data) => {\n this.ngZone.run(() => {\n if (response_data?.result) {\n const data = response_data.result;\n\n const dialogConfig: DialogConfig = {\n maxWidth: '90vw',\n width: '540px',\n scrollStrategy: this.scrollStrategyNoop,\n data\n };\n this.dialog.open(MigrateWalletToZarcanumComponent, dialogConfig);\n } else {\n const message = response_data.error;\n this.modalService.prepareModal('error', message);\n }\n });\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n updateWalletStatus(): void {\n this.backend.eventSubscribe(Commands.wallet_sync_progress, data => {\n const wallet_id = data.wallet_id;\n if (wallet_id === this.variablesService.currentWallet.wallet_id) {\n this.ngZone.run(() => {\n this.walletLoaded = false;\n });\n }\n });\n this.backend.eventSubscribe(Commands.update_wallet_status, data => {\n const wallet_state = data.wallet_state;\n const wallet_id = data.wallet_id;\n this.ngZone.run(() => {\n if (wallet_id !== this.variablesService.currentWallet.wallet_id) {\n return;\n }\n\n if (wallet_state === 2) {\n this.walletLoaded = true;\n this.setDisabledTabs(['send', 'swap', 'staking'], false);\n } else {\n this.walletLoaded = false;\n this.setDisabledTabs(['send', 'swap', 'staking'], true);\n }\n });\n });\n }\n\n setHiddenTabs(ids: string[], hidden: boolean): void {\n this.tabs\n .forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.hidden = hidden;\n }\n });\n }\n\n setDisabledTabs(ids: string[], disabled: boolean): void {\n this.tabs\n .forEach(tab => {\n if (ids.includes(tab.id)) {\n tab.disabled = disabled;\n }\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonModule } from '@parts/directives/back-button/back-button.module';\n\n@Component({\n selector: 'app-back-button',\n standalone: true,\n imports: [CommonModule, BackButtonModule],\n templateUrl: './back-button.component.html',\n styleUrls: ['./back-button.component.scss'],\n})\nexport class BackButtonComponent {}\n","\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterLinkWithHref } from '@angular/router';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { BreadcrumbItems } from '@parts/components/breadcrumbs/breadcrumbs.models';\n\n@Component({\n selector: 'app-breadcrumbs',\n standalone: true,\n imports: [CommonModule, RouterLinkWithHref, TranslateModule],\n templateUrl: './breadcrumbs.component.html',\n styleUrls: ['./breadcrumbs.component.scss'],\n})\nexport class BreadcrumbsComponent {\n @Input() items: BreadcrumbItems = [];\n}\n","
\n
\n \n {{ item.title | translate }}\n \n\n \n {{ item.title | translate }}\n \n
\n
\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-checkbox',\n template: `\n
\n \n \n
\n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckboxComponent),\n multi: true,\n },\n ],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() label = '';\n\n @Input() id = 'id-' + Math.random();\n\n @Input() disabled = false;\n\n @Input() readonly = false;\n\n @Output() emitChange = new EventEmitter();\n\n onChange!: (value: boolean) => void;\n\n onTouched!: () => void;\n\n handlerChange({ target }: Event): void {\n const { checked } = target as HTMLInputElement;\n this.value = checked;\n this.emitChange.emit(checked);\n if (this.onChange) {\n this.onChange(checked);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-copy-button',\n template: `\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class CopyButtonComponent {\n @Input() value: string;\n\n @Input() size: 'small' | 'big' = 'small';\n\n copyAnimation = false;\n\n copyAnimationTimeout;\n\n constructor(private backend: BackendService, public variablesService: VariablesService) {}\n\n copy(): void {\n this.backend.setClipboard(this.value || '');\n this.copyAnimation = true;\n this.copyAnimationTimeout = window.setTimeout(() => {\n this.copyAnimation = false;\n clearTimeout(this.copyAnimationTimeout);\n }, 2000);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { NgSwitch, NgSwitchCase, NgSwitchDefault } from '@angular/common';\n\ntype LoaderType = 'circle' | 'circle-2' | 'circle-3' | 'dots' | 'dots-2' | 'pulse';\n\n@Component({\n selector: 'zano-loader',\n standalone: true,\n template: `\n \n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n\n \n
\n \n
\n
\n `,\n styles: [\n `\n /* Loader 1 */\n .loader-1 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-1-1 4.8s linear infinite;\n animation: loader-1-1 4.8s linear infinite;\n }\n\n @-webkit-keyframes loader-1-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-1-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-1 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n -webkit-animation: loader-1-2 1.2s linear infinite;\n animation: loader-1-2 1.2s linear infinite;\n }\n\n @-webkit-keyframes loader-1-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(220deg);\n }\n }\n\n @keyframes loader-1-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(220deg);\n }\n }\n\n .loader-1 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(0, 32px, 32px, 16px);\n border: 3px solid #fff;\n border-radius: 50%;\n -webkit-animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-1-3 1.2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-1-3 {\n 0% {\n -webkit-transform: rotate(-140deg);\n }\n 50% {\n -webkit-transform: rotate(-160deg);\n }\n 100% {\n -webkit-transform: rotate(140deg);\n }\n }\n\n @keyframes loader-1-3 {\n 0% {\n transform: rotate(-140deg);\n }\n 50% {\n transform: rotate(-160deg);\n }\n 100% {\n transform: rotate(140deg);\n }\n }\n\n /* Loader 2 */\n .loader-2 {\n display: block;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-2-1 3s linear infinite;\n animation: loader-2-1 3s linear infinite;\n }\n\n @-webkit-keyframes loader-2-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n clip: rect(16px, 32px, 32px, 0);\n -webkit-animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-2 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid transparent;\n border-top: 3px solid #fff;\n border-radius: 50%;\n -webkit-animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-2-3 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-2-3 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-2-3 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-2 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid rgba(255, 255, 255, 0.5);\n border-radius: 50%;\n }\n\n /* Loader 3 */\n .loader-3 {\n display: block;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-3 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 3px solid #fff;\n border-bottom: 3px solid transparent;\n border-radius: 50%;\n -webkit-animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-1 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 40% {\n -webkit-transform: rotate(180deg);\n }\n 60% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-3-1 {\n 0% {\n transform: rotate(0deg);\n }\n 40% {\n transform: rotate(180deg);\n }\n 60% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-3 span::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 6px;\n height: 6px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-3-2 1.5s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-3-2 {\n 0% {\n -webkit-transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n @keyframes loader-3-2 {\n 0% {\n transform: translate3d(0, -32px, 0) scale(0, 2);\n opacity: 0;\n }\n 50% {\n transform: translate3d(0, 0, 0) scale(1.25, 1.25);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 8px, 0) scale(0, 0);\n opacity: 0;\n }\n }\n\n /* Loader 4 */\n .loader-4 {\n height: 32px;\n width: 32px;\n }\n\n .loader-4::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 12px;\n height: 12px;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-1 {\n 0% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n 50% {\n -webkit-transform: scale(1);\n opacity: 1;\n }\n 100% {\n -webkit-transform: scale(0);\n opacity: 0;\n }\n }\n\n @keyframes loader-4-1 {\n 0% {\n transform: scale(0);\n opacity: 0;\n }\n 50% {\n transform: scale(1);\n opacity: 1;\n }\n 100% {\n transform: scale(0);\n opacity: 0;\n }\n }\n\n .loader-4 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n -webkit-animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-2 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 50% {\n -webkit-transform: rotate(180deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-4-2 {\n 0% {\n transform: rotate(0deg);\n }\n 50% {\n transform: rotate(180deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-4 span::before,\n .loader-4 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 12px;\n width: 12px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-4 span::after {\n -webkit-animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-4-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-4-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-4-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(16px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 5 */\n .loader-5 {\n height: 32px;\n width: 32px;\n -webkit-animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-1 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-1 {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes loader-5-1 {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n\n .loader-5::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: auto;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-2 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: auto;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-3 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-3 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-3 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(-24px, 0, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-5 span::before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: auto;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-4 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-4 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-4 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, 24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n .loader-5 span::after {\n content: '';\n display: block;\n position: absolute;\n top: auto;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n width: 8px;\n height: 8px;\n background: #fff;\n border-radius: 50%;\n -webkit-animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n animation: loader-5-5 2s cubic-bezier(0.77, 0, 0.175, 1) infinite;\n }\n\n @-webkit-keyframes loader-5-5 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n -webkit-transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n @keyframes loader-5-5 {\n 0% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n 50% {\n transform: translate3d(0, -24px, 0) scale(0.5);\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n }\n }\n\n /* Loader 6 */\n .loader-6 {\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n }\n\n .loader-6 span::before,\n .loader-6 span::after {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n margin: auto;\n height: 32px;\n width: 32px;\n border: 2px solid #fff;\n border-radius: 50%;\n opacity: 0;\n -webkit-animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n animation: loader-6-1 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) infinite;\n }\n\n @-webkit-keyframes loader-6-1 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-1 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1.5);\n opacity: 0;\n }\n }\n\n .loader-6 span::after {\n -webkit-animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n animation: loader-6-2 1.5s cubic-bezier(0.075, 0.82, 0.165, 1) 0.25s infinite;\n }\n\n @-webkit-keyframes loader-6-2 {\n 0% {\n -webkit-transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n -webkit-transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n\n @keyframes loader-6-2 {\n 0% {\n transform: translate3d(0, 0, 0) scale(0);\n opacity: 1;\n }\n 100% {\n transform: translate3d(0, 0, 0) scale(1);\n opacity: 0;\n }\n }\n `,\n ],\n imports: [NgSwitch, NgSwitchCase, NgSwitchDefault],\n})\nexport class LoaderComponent {\n @Input()\n type: LoaderType = 'circle';\n}\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { ContextMenuComponent, ContextMenuModule, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-register-context-templates',\n template: ` \n {{ 'CONTEXT_MENU.COPY' | translate }}\n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n \n \n {{ 'CONTEXT_MENU.COPY' | translate }}\n \n\n \n {{ 'CONTEXT_MENU.PASTE' | translate }}\n {{ 'CONTEXT_MENU.SELECT' | translate }}\n `,\n standalone: true,\n imports: [CommonModule, ContextMenuModule, TranslateModule],\n providers: [ContextMenuService],\n})\nexport class RegisterContextTemplatesComponent implements OnInit {\n @ViewChild('allContextMenu', { static: true })\n public allContextMenu: ContextMenuComponent;\n\n @ViewChild('onlyCopyContextMenu', { static: true })\n public onlyCopyContextMenu: ContextMenuComponent;\n\n @ViewChild('pasteSelectContextMenu', { static: true })\n public pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n ngOnInit(): void {\n this.variablesService.allContextMenu = this.allContextMenu;\n this.variablesService.onlyCopyContextMenu = this.onlyCopyContextMenu;\n this.variablesService.pasteSelectContextMenu = this.pasteSelectContextMenu;\n }\n\n contextMenuCopy(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const canUseSelection = target[start] || target[start] === '0';\n const SelectedText = canUseSelection ? target['value'].substring(target[start], target[end]) : target['value'];\n this.backendService.setClipboard(String(SelectedText));\n }\n }\n\n contextMenuOnlyCopy(text): void {\n if (text) {\n this.backendService.setClipboard(String(text));\n }\n }\n\n contextMenuPaste(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n this.backendService.getClipboard((status, clipboard) => {\n clipboard = String(clipboard);\n if (typeof clipboard !== 'string' || clipboard.length) {\n const start = target['contextSelectionStart'] ? 'contextSelectionStart' : 'selectionStart';\n const end = target['contextSelectionEnd'] ? 'contextSelectionEnd' : 'selectionEnd';\n const _pre = target['value'].substring(0, target[start]);\n const _aft = target['value'].substring(target[end], target['value'].length);\n let text = _pre + clipboard + _aft;\n const cursorPosition = (_pre + clipboard).length;\n if (target['maxLength'] && parseInt(target['maxLength'], 10) > 0) {\n text = text.substr(0, parseInt(target['maxLength'], 10));\n }\n target['value'] = text;\n target.setSelectionRange(cursorPosition, cursorPosition);\n target.dispatchEvent(new Event('input'));\n target['focus']();\n }\n });\n }\n }\n\n contextMenuSelect(target): void {\n if (target && (target['nodeName'].toUpperCase() === 'TEXTAREA' || target['nodeName'].toUpperCase() === 'INPUT')) {\n target['focus']();\n setTimeout(() => {\n target['select']();\n });\n }\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '../services/variables.service';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-staking-switch',\n template: `\n
\n \n
\n `,\n styles: [],\n standalone: true,\n imports: [CommonModule],\n})\nexport class StakingSwitchComponent {\n @Input() wallet_id: number;\n\n @Input() staking: boolean;\n\n @Output() stakingChange = new EventEmitter();\n\n constructor(private backendService: BackendService, private variablesService: VariablesService) {}\n\n toggleStaking(): void {\n const wallet = this.variablesService.getWallet(this.wallet_id);\n if (wallet && wallet.loaded) {\n this.stakingChange.emit(!this.staking);\n if (!this.staking) {\n this.backendService.startPosMining(this.wallet_id);\n } else {\n this.backendService.stopPosMining(this.wallet_id);\n }\n }\n }\n}\n","import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'app-switch',\n template: `\n \n \n \n `,\n styles: [\n `\n :host {\n display: inline-flex;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SwitchComponent),\n multi: true,\n },\n ],\n})\nexport class SwitchComponent implements ControlValueAccessor {\n @Input() value = false;\n\n @Input() disabled = false;\n\n @Output() emitChange = new EventEmitter();\n\n onTouched!: () => void;\n\n onChange!: (value: boolean) => void;\n\n toggle(): void {\n if (!this.disabled) {\n this.value = !this.value;\n this.emitChange.emit(this.value);\n if (this.onChange) {\n this.onChange(this.value);\n }\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n writeValue(value: boolean): void {\n this.value = value;\n }\n}\n","import { Component } from '@angular/core';\nimport { VariablesService } from '../services/variables.service';\nimport { DOWNLOADS_PAGE_URL } from '@parts/data/constants';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-synchronization-status',\n template: `\n \n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.OFFLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.SYNCING' | translate }}\n {{ variablesService.sync.progress_value_text }}%\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ONLINE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.LOADING' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.ERROR' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.COMPLETE' | translate }}\n
\n
\n {{ 'SIDEBAR.SYNCHRONIZATION.DOWNLOADING' | translate }}\n {{ variablesService.download.progress_value_text }}%\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n
\n {{ 'SIDEBAR.UPDATE.STANDARD' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.IMPORTANT' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n\n \n
\n {{ 'SIDEBAR.UPDATE.CRITICAL' | translate }}\n {{ 'SIDEBAR.UPDATE.IMPORTANT_HINT' | translate }}\n
\n \n
\n \n\n
\n
\n {{ 'SIDEBAR.UPDATE.TIME' | translate }}\n
\n \n
\n \n `,\n styles: [],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class SynchronizationStatusComponent {\n constructor(public variablesService: VariablesService, private backend: BackendService) {}\n\n getUpdate(): void {\n this.backend.openUrlInBrowser(DOWNLOADS_PAGE_URL);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Transaction } from '@api/models/transaction.model';\nimport { VariablesService } from '../services/variables.service';\nimport { BackendService } from '@api/services/backend.service';\nimport { BLOCK_EXPLORER_TN_TX_URL_PREFIX, BLOCK_EXPLORER_TX_URL_PREFIX } from '../data/constants';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { TooltipModule } from '@parts/directives';\n\n@Component({\n selector: 'app-transaction-details',\n template: `\n \n \n \n \n \n {{ transaction.tx_hash }}\n \n \n \n \n \n \n \n \n

{{ asset_id }}

\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n {{ transaction.payment_id }}\n \n \n \n \n \n {{ transaction.comment }}\n \n \n \n
{{ 'HISTORY.DETAILS.ID' | translate }}{{ 'HISTORY.DETAILS.SIZE' | translate }}\n {{ 'HISTORY.DETAILS.SIZE_VALUE' | translate : { value: transaction.tx_blob_size } }}\n
{{ 'Asset ID' | translate }}{{ 'HISTORY.DETAILS.CONFIRMATION' | translate }}\n {{ transaction.height === 0 ? 0 : variablesService.height_app - transaction.height }}\n
{{ 'HISTORY.DETAILS.HEIGHT' | translate }}{{ transaction.height }}
{{ 'HISTORY.DETAILS.PAYMENT_ID' | translate }}
{{ 'HISTORY.DETAILS.COMMENT' | translate }}
\n `,\n styles: [\n `\n :host {\n display: block;\n padding: 2rem 0;\n }\n table tbody tr {\n background: none;\n }\n\n table tbody tr td {\n padding: 1rem 2rem;\n }\n `,\n ],\n standalone: true,\n imports: [CommonModule, TranslateModule, TooltipModule],\n})\nexport class TransactionDetailsComponent {\n @Input() transaction: Transaction;\n constructor(public variablesService: VariablesService, private backendService: BackendService) {}\n\n\n getAllUniqAssetId(transaction: Transaction): Set {\n const { employed_entries } = transaction;\n const { receive = [], spent = [] } = employed_entries;\n return new Set([...receive, ...spent].map(({ asset_id }) => asset_id));\n }\n\n openInBrowser(tr): void {\n this.backendService.openUrlInBrowser(\n (this.variablesService.testnet ? BLOCK_EXPLORER_TN_TX_URL_PREFIX : BLOCK_EXPLORER_TX_URL_PREFIX) + tr\n );\n }\n}\n","import { Component, EventEmitter, HostBinding, inject, Input, Output } from '@angular/core';\nimport { Wallet } from '@api/models/wallet.model';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { BigNumber } from 'bignumber.js';\nimport { LOCKED_BALANCE_HELP_PAGE } from '@parts/data/constants';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { IntToMoneyPipe, IntToMoneyPipeModule } from '@parts/pipes';\nimport { BackendService } from '@api/services/backend.service';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchModule, TooltipModule } from '@parts/directives';\nimport { StakingSwitchComponent } from '@parts/components/staking-switch.component';\n\n@Component({\n selector: 'app-wallet-card',\n template: `\n
\n
\n
\n
\n \n {{ wallet.new_contracts }}\n \n\n \n {{ !wallet.alias['name'] ? wallet.name : wallet.alias['name'] }}\n \n
\n
\n
\n \n \n \n
\n
\n\n \n {{ wallet.getMoneyEquivalentForZano(variablesService.moneyEquivalent) | intToMoney | currency : 'USD' || '---' }}\n \n {{ variablesService.moneyEquivalentPercent | number : '1.2-2' }}%\n \n \n\n \n
\n {{ 'SIDEBAR.ACCOUNT.STAKING' | translate }}\n \n
\n
\n\n
\n
\n
\n
\n
{{ wallet.progress }}%
\n
\n
\n `,\n standalone: true,\n imports: [CommonModule, TooltipModule, TranslateModule, IntToMoneyPipeModule, StakingSwitchComponent, DisablePriceFetchModule],\n})\nexport class WalletCardComponent {\n @HostBinding('class') classAttr = 'wallet';\n\n @Input() wallet: Wallet;\n\n @Output() eventClose = new EventEmitter();\n\n constructor(\n public variablesService: VariablesService,\n private intToMoneyPipe: IntToMoneyPipe,\n private translate: TranslateService,\n private backend: BackendService\n ) {}\n\n getBalancesTooltip(): HTMLDivElement {\n const tooltip = document.createElement('div');\n const scrollWrapper = document.createElement('div');\n if (!this.wallet || !this.wallet.balances) {\n return null;\n }\n const { balances } = this.wallet;\n\n scrollWrapper.classList.add('balance-scroll-list');\n balances.forEach(({ unlocked, total, asset_info: { ticker } }) => {\n const available = document.createElement('span');\n available.setAttribute('class', 'available');\n available.innerText = `${this.translate.instant('WALLET.AVAILABLE_BALANCE')} `;\n const availableB = document.createElement('b');\n availableB.innerText = `${ this.intToMoneyPipe.transform(unlocked) } ${ ticker || '---' }`;\n available.appendChild(availableB);\n scrollWrapper.appendChild(available);\n\n const locked = document.createElement('span');\n locked.setAttribute('class', 'locked');\n locked.innerText = `${this.translate.instant('WALLET.LOCKED_BALANCE')} `;\n const lockedB = document.createElement('b');\n lockedB.innerText = `${ this.intToMoneyPipe.transform(new BigNumber(total).minus(unlocked)) } ${ ticker || '---' }`;\n locked.appendChild(lockedB);\n scrollWrapper.appendChild(locked);\n });\n tooltip.appendChild(scrollWrapper);\n const link = document.createElement('span');\n link.setAttribute('class', 'link');\n link.innerHTML = this.translate.instant('WALLET.LOCKED_BALANCE_LINK');\n link.addEventListener('click', () => {\n this.backend.openUrlInBrowser(LOCKED_BALANCE_HELP_PAGE);\n });\n tooltip.appendChild(link);\n return tooltip;\n }\n}\n","import { AssetInfo } from '@api/models/assets.model';\n\nexport const zanoAssetInfo: AssetInfo & { logo: string; price_url: string; } = {\n asset_id: 'd6329b5b1f7c0805b5c345f4957554002a2f557845f64d7645dae0e051a6498a',\n current_supply: 0,\n decimal_point: 12,\n full_name: 'Zano',\n logo: 'assets/icons/currency-icons/zano.svg',\n meta_info: '',\n owner: '0000000000000000000000000000000000000000000000000000000000000000',\n price_url: 'https://explorer.zano.org/api/price?asset=zano',\n ticker: 'ZANO',\n total_max_supply: 0,\n};\n\nexport const defaultImgSrc = 'assets/icons/currency-icons/custom_token.svg';\n","export const MIXIN = 10; // default mixin value\nexport const RCV_ADDR_QR_SCALE = 1.5; // scale factor for QR code\n\nexport const AUDITABLE_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/auditable-wallets-faq';\nexport const CREATE_NEW_WALLET_HELP_PAGE = 'docs.zano.org/docs/use/wallets/gui-wallet';\nexport const LOCKED_BALANCE_HELP_PAGE = 'docs.zano.org/docs/use/locked-balance';\nexport const DOWNLOADS_PAGE_URL = 'zano.org/downloads';\nexport const ZARCANUM_MIGRATION = 'docs.zano.org/docs/use/zarcanum-migration/';\n\nexport const BLOCK_EXPLORER_TX_URL_PREFIX = 'explorer.zano.org/transaction/';\nexport const BLOCK_EXPLORER_TN_TX_URL_PREFIX = 'testnet-explorer.zano.org/transaction/';\n","import { ScaleItems } from '@api/models/scale.model';\n\nexport const scaleItems: ScaleItems = [\n {\n value: '8px',\n name: 'SETTINGS.SCALE.75',\n },\n {\n value: '10px',\n name: 'SETTINGS.SCALE.100',\n },\n {\n value: '12px',\n name: 'SETTINGS.SCALE.125',\n },\n {\n value: '14px',\n name: 'SETTINGS.SCALE.150',\n },\n];\n","import { AfterViewInit, Directive, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[appAutofocus]',\n standalone: true,\n})\nexport class AutoFocusDirective implements AfterViewInit {\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit() {\n setTimeout(() => this.elementRef.nativeElement.focus());\n }\n}\n","import { Directive, HostListener } from '@angular/core';\nimport { NavigationService } from '@parts/services/back.service';\n\n@Directive({\n selector: '[appBackButton]',\n})\nexport class BackButtonDirective {\n constructor(private navigationService: NavigationService) {}\n\n @HostListener('click')\n onClick(): void {\n this.navigationService.back();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { BackButtonDirective } from './back-button.directive';\n\n@NgModule({\n declarations: [BackButtonDirective],\n exports: [BackButtonDirective],\n imports: [CommonModule],\n})\nexport class BackButtonModule {}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[appDefaultImg]',\n})\nexport class DefaultImgDirective {\n @Input() defaultImgSrc!: string | null | undefined;\n @Input() defaultImgAlt: string | null | undefined;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('error')\n handlerOnError(): void {\n const elementImg: HTMLImageElement = this.elementRef.nativeElement;\n elementImg.onerror = null;\n elementImg.src = this.defaultImgSrc || '---';\n elementImg.alt = this.defaultImgAlt || '---';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DefaultImgDirective } from './default-img.directive';\n\n@NgModule({\n declarations: [DefaultImgDirective],\n exports: [DefaultImgDirective],\n imports: [CommonModule],\n})\nexport class DefaultImgModule {}\n","export * from './default-img.module';\n","import { Directive, OnDestroy, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Directive({\n selector: '[appDisablePriceFetch]',\n})\nexport class DisablePriceFetchDirective implements OnDestroy {\n private destroy$: Subject = new Subject();\n\n constructor(\n private _variablesService: VariablesService,\n private _templateRef: TemplateRef,\n private _viewContainer: ViewContainerRef\n ) {\n this._variablesService.disable_price_fetch$.pipe(takeUntil(this.destroy$)).subscribe({\n next: (disable_price_fetch: boolean) => {\n return !disable_price_fetch ? this._viewContainer.createEmbeddedView(this._templateRef) : this._viewContainer.clear();\n },\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DisablePriceFetchDirective } from './disable-price-fetch.directive';\n\n@NgModule({\n declarations: [DisablePriceFetchDirective],\n imports: [CommonModule],\n exports: [DisablePriceFetchDirective],\n})\nexport class DisablePriceFetchModule {}\n","export * from './disable-price-fetch.directive';\nexport * from './disable-price-fetch.module';\n","export * from './default-img';\nexport * from './disable-price-fetch';\nexport * from './input-disable-selection';\nexport * from './input-validate';\nexport * from './tooltip';\nexport * from './lower-case.directive';\n","export * from './input-disable-selection.module';\nexport * from './input-disable-selection.directive';\n","import { Directive, HostListener } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line\n selector: 'input',\n})\nexport class InputDisableSelectionDirective {\n @HostListener('mousedown', ['$event'])\n handleInput(event: Event): void {\n if ((event.target).readOnly) {\n event.preventDefault();\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputDisableSelectionDirective } from '@parts/directives/input-disable-selection/input-disable-selection.directive';\n\n@NgModule({\n declarations: [InputDisableSelectionDirective],\n exports: [InputDisableSelectionDirective],\n imports: [CommonModule],\n})\nexport class InputDisableSelectionModule {}\n","export * from './input-validate.module';\nexport * from './input-validate.directive';\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\n\n@Directive({\n selector: '[appInputValidate]',\n})\nexport class InputValidateDirective {\n private type: string;\n\n constructor(private el: ElementRef, private variablesService: VariablesService) {}\n\n @Input('appInputValidate')\n public set defineInputType(type: string) {\n this.type = type;\n }\n\n @HostListener('input', ['$event'])\n handleInput(event: Event): void {\n if (this.type === 'money') {\n this.moneyValidation(event);\n } else if (this.type === 'integer') {\n this.integerValidation(event);\n }\n }\n\n private moneyValidation(event: Event): void {\n let currentValue = (event.target).value;\n const originalValue = currentValue;\n // eslint-disable-next-line\n const OnlyD = /[^\\d\\.]/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(',', '.').replace(OnlyD, '');\n }\n const _double_separator = currentValue.match(/\\./g);\n if (_double_separator && _double_separator.length > 1) {\n currentValue = currentValue.substr(0, currentValue.lastIndexOf('.'));\n }\n if (currentValue.indexOf('.') === 0) {\n currentValue = '0' + currentValue;\n }\n const _zero_fill = currentValue.split('.');\n if (_zero_fill[0].length > 7) {\n _zero_fill[0] = _zero_fill[0].substr(0, 7);\n }\n\n if (1 in _zero_fill && _zero_fill[1].length) {\n _zero_fill[1] = _zero_fill[1].substr(0, this.variablesService.digits);\n }\n currentValue = _zero_fill.join('.');\n if (currentValue !== originalValue) {\n (event.target).value = currentValue;\n const cursorPosition = (event.target).selectionEnd;\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\n (event.target).dispatchEvent(new Event('input'));\n }\n }\n\n private integerValidation(event: Event): void {\n let currentValue = (event.target).value;\n const originalValue = currentValue;\n const OnlyD = /\\D/g;\n const _has_error = currentValue.match(OnlyD);\n if (_has_error && _has_error.length) {\n currentValue = currentValue.replace(OnlyD, '');\n }\n if (currentValue !== originalValue) {\n const cursorPosition = (event.target).selectionEnd;\n (event.target).value = currentValue;\n (event.target).setSelectionRange(cursorPosition, cursorPosition);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { InputValidateDirective } from '@parts/directives/input-validate/input-validate.directive';\n\n@NgModule({\n declarations: [InputValidateDirective],\n exports: [InputValidateDirective],\n imports: [CommonModule],\n})\nexport class InputValidateModule {}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: 'input[lowerCase]:not([upperCase]),textarea[lowerCase]:not([upperCase])',\n standalone: true,\n})\nexport class LowerCaseDirective {\n @Input() lowerCaseValue: string;\n\n @Input() lowerCaseDisabled = false;\n\n private getCaret(el) {\n return {\n start: el.selectionStart,\n end: el.selectionEnd,\n };\n }\n\n private setCaret(el, start, end) {\n el.selectionStart = start;\n el.selectionEnd = end;\n\n el.focus();\n }\n\n private dispatchEvent(el, eventType) {\n const event = document.createEvent('Event');\n event.initEvent(eventType, false, false);\n el.dispatchEvent(event);\n }\n\n private convertValue(el, value) {\n el.value = value.toLowerCase();\n\n this.dispatchEvent(el, 'input');\n }\n\n @HostListener('blur', ['$event.target', '$event.target.value'])\n onBlur(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (\n (!this.lowerCaseValue || 'blur' === this.lowerCaseValue) &&\n 'function' === typeof value.toLowerCase &&\n value.toLowerCase() !== value\n ) {\n this.convertValue(el, value);\n this.dispatchEvent(el, 'blur'); // in case updateOn is set to blur\n }\n }\n\n @HostListener('input', ['$event.target', '$event.target.value'])\n onInput(el: any, value: string): void {\n if (this.lowerCaseDisabled) {\n return;\n }\n if (!this.lowerCaseValue && 'function' === typeof value.toLowerCase && value.toLowerCase() !== value) {\n let { start, end } = this.getCaret(el);\n\n if (value[0] === ' ' && start === 1 && end === 1) {\n start = 0;\n end = 0;\n }\n\n this.convertValue(el, value);\n\n this.setCaret(el, start, end);\n }\n }\n}\n","export * from './tooltip.directive';\nexport * from './tooltip.module';\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n SecurityContext,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Directive({\n // eslint-disable-next-line\n selector: '[tooltip]',\n})\nexport class TooltipDirective implements OnDestroy {\n @HostBinding('style.cursor') cursor;\n\n @Input('tooltip') tooltipInner: any;\n\n @Input() placement: string;\n\n @Input() tooltipClass: string;\n\n @Input() timeout = 0;\n\n @Input() timeDelay = 0;\n\n @Input() delay = 0;\n\n @Input() showWhenNoOverflow = true;\n\n @Output() eventHide = new EventEmitter();\n\n tooltip: HTMLElement;\n\n removeTooltipTimeout;\n\n removeTooltipTimeoutInner;\n\n removeTooltipTimeDelay;\n\n private enter: (event: MouseEvent) => void;\n\n private leave: (event: MouseEvent) => void;\n\n constructor(private el: ElementRef, private renderer: Renderer2, private sanitizer: DomSanitizer) {}\n\n @HostListener('mouseenter') onMouseEnter(): void {\n if (!this.tooltipInner) {\n return;\n }\n if (\n this.showWhenNoOverflow ||\n (!this.showWhenNoOverflow && this.el.nativeElement.offsetWidth < this.el.nativeElement.scrollWidth)\n ) {\n this.cursor = 'pointer';\n if (!this.tooltip) {\n if (this.timeDelay !== 0) {\n this.removeTooltipTimeDelay = setTimeout(() => {\n this.show();\n }, this.timeDelay);\n } else {\n this.show();\n }\n } else {\n this.cancelHide();\n }\n }\n }\n\n @HostListener('mouseleave') onMouseLeave(): void {\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.hide();\n }\n }\n\n show(): void {\n this.create();\n this.placement = this.placement === null ? 'top' : this.placement;\n this.setPosition(this.placement);\n }\n\n hide(): void {\n this.removeTooltipTimeout = setTimeout(() => {\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.removeTooltipTimeoutInner = setTimeout(() => {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip.removeEventListener('mouseenter', this.enter);\n this.tooltip.removeEventListener('mouseleave', this.leave);\n this.tooltip = null;\n this.eventHide.emit(true);\n }, this.delay);\n }, this.timeout);\n }\n\n cancelHide(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }\n\n create(): void {\n this.tooltip = this.renderer.createElement('div');\n let innerBlock = this.renderer.createElement('div');\n if (typeof this.tooltipInner === 'string') {\n innerBlock.innerText = this.sanitizer.sanitize(SecurityContext.HTML, this.tooltipInner);\n } else {\n if (this.tooltipInner) {\n innerBlock = this.tooltipInner;\n }\n }\n this.renderer.addClass(innerBlock, 'tooltip-inner');\n this.renderer.addClass(innerBlock, 'scrolled-content');\n this.renderer.appendChild(this.tooltip, innerBlock);\n this.renderer.appendChild(document.body, this.tooltip);\n\n this.enter = (): void => {\n this.cancelHide();\n };\n this.tooltip.addEventListener('mouseenter', this.enter);\n this.leave = (): void => {\n if (this.tooltip) {\n this.hide();\n }\n };\n this.tooltip.addEventListener('mouseleave', this.leave);\n\n this.renderer.setStyle(document.body, 'position', 'relative');\n this.renderer.setStyle(this.tooltip, 'position', 'absolute');\n if (this.tooltipClass !== null) {\n const classes = this.tooltipClass.split(' ');\n for (let i = 0; i < classes.length; i++) {\n this.renderer.addClass(this.tooltip, classes[i]);\n }\n }\n this.renderer.setStyle(this.tooltip, 'opacity', '0');\n this.renderer.setStyle(this.tooltip, '-webkit-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-moz-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, '-o-transition', `opacity ${this.delay}ms`);\n this.renderer.setStyle(this.tooltip, 'transition', `opacity ${this.delay}ms`);\n window.setTimeout(() => {\n return this.tooltip && this.renderer.setStyle(this.tooltip, 'opacity', '1');\n }, 0);\n }\n\n setPosition(placement): void {\n const hostPos = this.el.nativeElement.getBoundingClientRect();\n this.renderer.addClass(this.tooltip, 'ng-tooltip-' + placement);\n const topExit =\n hostPos.top - this.tooltip.getBoundingClientRect().height - parseInt(getComputedStyle(this.tooltip).marginTop, 10) < 0;\n const bottomExit =\n window.innerHeight <\n hostPos.bottom + this.tooltip.getBoundingClientRect().height + parseInt(getComputedStyle(this.tooltip).marginTop, 10);\n\n switch (placement) {\n case 'top':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom');\n return;\n } else {\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-left':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'top-right':\n if (topExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('bottom-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top - this.tooltip.getBoundingClientRect().height + 'px');\n this.checkSides();\n }\n break;\n case 'bottom':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'left',\n hostPos.left + (hostPos.right - hostPos.left) / 2 - this.tooltip.getBoundingClientRect().width / 2 + 'px'\n );\n this.checkSides();\n }\n break;\n case 'bottom-left':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-left');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left + 'px');\n this.checkSides();\n }\n break;\n case 'bottom-right':\n if (bottomExit) {\n this.renderer.removeClass(this.tooltip, 'ng-tooltip-' + placement);\n this.setPosition('top-right');\n return;\n } else {\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right - this.tooltip.offsetWidth + 'px');\n this.checkSides();\n }\n break;\n case 'left':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'left-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n break;\n case 'left-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.left - this.tooltip.getBoundingClientRect().width + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n case 'right':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(\n this.tooltip,\n 'top',\n hostPos.top + (hostPos.bottom - hostPos.top) / 2 - this.tooltip.getBoundingClientRect().height / 2 + 'px'\n );\n break;\n case 'right-top':\n this.renderer.setStyle(this.tooltip, 'top', hostPos.top + 'px');\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n break;\n case 'right-bottom':\n this.renderer.setStyle(this.tooltip, 'left', hostPos.right + 'px');\n this.renderer.setStyle(this.tooltip, 'top', hostPos.bottom - this.tooltip.getBoundingClientRect().height + 'px');\n break;\n }\n }\n\n checkSides(): void {\n if (this.tooltip.getBoundingClientRect().left < 0) {\n this.renderer.setStyle(this.tooltip, 'left', 0);\n }\n if (this.tooltip.getBoundingClientRect().right > window.innerWidth) {\n this.renderer.setStyle(this.tooltip, 'left', window.innerWidth - this.tooltip.getBoundingClientRect().width + 'px');\n }\n }\n\n ngOnDestroy(): void {\n clearTimeout(this.removeTooltipTimeout);\n clearTimeout(this.removeTooltipTimeoutInner);\n clearTimeout(this.removeTooltipTimeDelay);\n if (this.tooltip) {\n this.renderer.removeChild(document.body, this.tooltip);\n this.tooltip = null;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TooltipDirective } from './tooltip.directive';\n\n@NgModule({\n declarations: [TooltipDirective],\n imports: [CommonModule],\n exports: [TooltipDirective],\n})\nexport class TooltipModule {}\n","export const hasOwnProperty = (obj: object, key: string): boolean => {\n if (Boolean(obj) && Boolean(key)) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n }\n return false;\n};\n","import { Component, inject, Inject, NgZone, OnInit } from '@angular/core';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { AssetBalance } from '@api/models/assets.model';\nimport { zanoAssetInfo } from '@parts/data/assets';\nimport { BackendService } from '@api/services/backend.service';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\n\n@Component({\n selector: 'app-asset-details',\n template: `\n
\n
\n

\n {{ title | translate }}\n

\n \n
\n
\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.NAME' | translate }}\n
\n
{{ asset.asset_info.full_name }}
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.TICKER' | translate }}\n
\n
{{ asset.asset_info.ticker }}
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.ID' | translate }}\n
\n
\n {{ asset.asset_info.asset_id }}\n
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.CURRENT_SUPPLY' | translate }}\n
\n
\n {{\n asset.asset_info.asset_id === zanoAssetInfo.asset_id\n ? zano_current_supply\n : asset.asset_info.current_supply\n }}\n
\n
\n\n
\n\n
\n
\n {{ 'ASSETS.MODALS.ASSET_DETAILS.LABELS.MAX_SUPPLE' | translate }}\n
\n
\n {{\n asset.asset_info.asset_id === zanoAssetInfo.asset_id\n ? 'Uncapped'\n : asset.asset_info.total_max_supply\n }}\n
\n
\n
\n
\n
\n No data\n
\n \n
\n
\n
\n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class AssetDetailsComponent implements OnInit {\n title = 'Asset Details';\n\n asset!: AssetBalance;\n\n zanoAssetInfo = zanoAssetInfo;\n\n backendService = inject(BackendService);\n\n ngZone = inject(NgZone);\n\n zano_current_supply = 'Unknown';\n\n constructor(\n public variablesService: VariablesService,\n private dialogRef: DialogRef,\n @Inject(DIALOG_DATA) { asset, title }: { asset: AssetBalance; title?: string }\n ) {\n this.asset = asset;\n\n if (title) {\n this.title = title;\n }\n }\n\n ngOnInit(): void {\n if (this.asset.asset_info.asset_id === zanoAssetInfo.asset_id) {\n this.getZanoCurrentSupply();\n }\n }\n\n private getZanoCurrentSupply(): void {\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'getinfo',\n params: {\n flags: 1024,\n },\n };\n\n this.backendService.call_rpc(params, (status, response_data) => {\n this.ngZone.run(() => {\n this.zano_current_supply = response_data?.['result']?.['total_coins'] ?? 'Unknown';\n });\n });\n }\n\n close(): void {\n this.dialogRef.close();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AssetDetailsComponent } from '@parts/modals/asset-details/asset-details.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [AssetDetailsComponent],\n exports: [AssetDetailsComponent],\n imports: [CommonModule, TranslateModule, FlexModule],\n})\nexport class AssetDetailsModule {}\n","import { Component, ElementRef, Inject, OnInit, ViewChild } from '@angular/core';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\n\nexport interface ConfirmModalData {\n title: string;\n message?: string;\n buttons?: Partial<{\n close: string;\n submit: string;\n }>;\n}\n\n@Component({\n selector: 'app-confirm-modal',\n template: `\n
\n \n\n
\n \n\n
\n

{{ title | translate }}

\n

{{ message | translate }}

\n
\n
\n\n
\n \n \n
\n
\n `,\n styles: [\n `\n :host {\n max-width: 54rem;\n width: 100vw;\n display: block;\n }\n `,\n ],\n})\nexport class ConfirmModalComponent implements OnInit {\n title: string;\n\n message: string;\n\n data: ConfirmModalData;\n\n @ViewChild('buttonSubmit', { static: true }) buttonSubmit: ElementRef;\n\n constructor(private dialogRef: DialogRef, @Inject(DIALOG_DATA) data: ConfirmModalData) {\n const { title, message } = data;\n this.data = data;\n this.title = title;\n this.message = message;\n }\n\n ngOnInit(): void {\n this.buttonSubmit.nativeElement.focus();\n }\n\n submit(): void {\n this.dialogRef.close(true);\n }\n\n close(): void {\n this.dialogRef.close(false);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ConfirmModalComponent } from './confirm-modal.component';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\n\n@NgModule({\n declarations: [ConfirmModalComponent],\n imports: [CommonModule, TranslateModule, FlexLayoutModule],\n exports: [ConfirmModalComponent],\n})\nexport class ConfirmModalModule {}\n","import { Component, ElementRef, EventEmitter, HostBinding, Input, OnDestroy, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-modal-container',\n template: `\n
\n \n\n
\n \n
\n

{{ title }}

\n

\n
\n
\n\n
\n \n
\n
\n `,\n styles: [],\n})\nexport class ModalContainerComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n public title: string;\n\n @Input() type: string;\n\n @Input() message: string;\n\n @Output() eventClose = new EventEmitter();\n\n @ViewChild('btn', { static: true }) button: ElementRef;\n\n constructor(private translate: TranslateService, private renderer: Renderer2) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n this.button.nativeElement.focus();\n switch (this.type) {\n case 'error':\n this.title = this.translate.instant('MODALS.ERROR');\n break;\n case 'success':\n this.title = this.translate.instant('MODALS.SUCCESS');\n break;\n case 'info':\n this.title = this.translate.instant('MODALS.INFO');\n break;\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n onClose(): void {\n this.eventClose.emit();\n }\n}\n","import { Component, HostBinding, Input, NgZone, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { Wallet } from '@api/models/wallet.model';\nimport { BackendService } from '@api/services/backend.service';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalService } from '../../services/modal.service';\nimport { WalletsService } from '@parts/services/wallets.service';\nimport { BehaviorSubject } from 'rxjs';\n\n@Component({\n selector: 'app-open-wallet-modal',\n template: `\n
\n
\n

{{ 'OPEN_WALLET.MODAL.TITLE' | translate }}

\n\n
{{ wallet.name }}
\n
{{ wallet.path }}
\n\n
\n
\n \n \n
\n {{ 'OPEN_WALLET.MODAL.NOT_FOUND' | translate }}\n
\n
\n {{ 'ERRORS.WRONG_PASSWORD' | translate }}\n
\n
\n\n
\n \n \n
\n
\n
\n
\n `,\n styles: [],\n})\nexport class OpenWalletModalComponent implements OnInit, OnDestroy {\n @HostBinding('class.modal-overlay') modalOverlay = true;\n\n @Input() wallets;\n\n isWrongPassword$ = new BehaviorSubject(false);\n\n wallet = {\n name: '',\n path: '',\n pass: '',\n notFound: false,\n emptyPass: false,\n };\n\n constructor(\n public variablesService: VariablesService,\n public walletsService: WalletsService,\n private backend: BackendService,\n private translate: TranslateService,\n private modalService: ModalService,\n private ngZone: NgZone,\n private renderer: Renderer2\n ) {}\n\n ngOnInit(): void {\n this.renderer.addClass(document.body, 'no-scroll');\n if (this.wallets.length) {\n this.wallet = this.wallets[0];\n this.wallet.pass = '';\n }\n }\n\n ngOnDestroy(): void {\n this.renderer.removeClass(document.body, 'no-scroll');\n }\n\n openWallet(): void {\n if (this.wallets.length === 0) {\n return;\n }\n this.backend.openWallet(\n this.wallet.path,\n this.wallet.pass,\n this.variablesService.count,\n false,\n (open_status, open_data, open_error) => {\n if (open_error === 'WRONG_PASSWORD') {\n this.ngZone.run(() => {\n this.isWrongPassword$.next(true);\n });\n }\n if (open_error && open_error === 'FILE_NOT_FOUND') {\n this.ngZone.run(() => {\n this.wallet.notFound = true;\n });\n let error_translate = this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND1');\n error_translate += ':
' + this.wallet.path;\n error_translate += this.translate.instant('OPEN_WALLET.FILE_NOT_FOUND2');\n this.modalService.prepareModal('error', error_translate);\n } else {\n if (open_status || open_error === 'FILE_RESTORED') {\n let exists = false;\n this.variablesService.wallets.forEach(wallet => {\n if (wallet.address === open_data['wi'].address) {\n exists = true;\n }\n });\n\n if (exists) {\n this.modalService.prepareModal('error', 'OPEN_WALLET.WITH_ADDRESS_ALREADY_OPEN');\n this.backend.closeWallet(open_data.wallet_id);\n } else {\n const new_wallet = new Wallet(\n open_data.wallet_id,\n this.wallet.name,\n this.wallet.pass,\n open_data['wi'].path,\n open_data['wi'].address,\n open_data['wi'].balance,\n open_data['wi'].unlocked_balance,\n open_data['wi'].mined_total,\n open_data['wi'].tracking_hey\n );\n new_wallet.alias = this.backend.getWalletAlias(new_wallet.address);\n new_wallet.is_auditable = open_data['wi'].is_auditable;\n new_wallet.is_watch_only = open_data['wi'].is_watch_only;\n new_wallet.currentPage = 1;\n new_wallet.exclude_mining_txs = false;\n if (open_data.recent_history && open_data.recent_history.history) {\n new_wallet.total_history_item = open_data.recent_history.total_history_items;\n new_wallet.totalPages = Math.ceil(\n open_data.recent_history.total_history_items / this.variablesService.count\n );\n new_wallet.totalPages > this.variablesService.maxPages\n ? (new_wallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (new_wallet.pages = new Array(new_wallet.totalPages).fill(1).map((value, index) => value + index));\n new_wallet.prepareHistory(open_data.recent_history.history);\n } else {\n new_wallet.total_history_item = 0;\n new_wallet.pages = new Array(1).fill(1);\n new_wallet.totalPages = 1;\n }\n this.walletsService.addWallet(new_wallet);\n this.backend.runWallet(open_data.wallet_id);\n this.skipWallet();\n this.isWrongPassword$.next(false);\n }\n }\n }\n }\n );\n }\n\n skipWallet(): void {\n this.ngZone.run(() => {\n if (this.wallets.length) {\n this.wallets.splice(0, 1);\n this.ngOnInit();\n }\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractStatusMessagesPipe } from '@parts/pipes/contract-status-messages-pipe/contract-status-messages.pipe';\n\n@NgModule({\n declarations: [ContractStatusMessagesPipe],\n exports: [ContractStatusMessagesPipe],\n providers: [ContractStatusMessagesPipe],\n imports: [CommonModule],\n})\nexport class ContractStatusMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractStatusMessages',\n})\nexport class ContractStatusMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n getStateSeller(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NEW_CONTRACT');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.WAITING_BUYER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.PROPOSAL_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.SELLER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n getStateBuyer(stateNum: number): string {\n const state = { part1: '', part2: '' };\n switch (stateNum) {\n case 1:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING');\n break;\n case 110:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED');\n break;\n case 201:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAIT');\n break;\n case 2:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.ACCEPTED');\n break;\n case 120:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_SELLER');\n break;\n case 3:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.COMPLETED');\n break;\n case 4:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NOT_RECEIVED');\n state.part2 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.NULLIFIED');\n break;\n case 5:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.WAITING_CANCEL');\n break;\n case 601:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.BEING_CANCELLED');\n break;\n case 6:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.CANCELLED');\n break;\n case 130:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.IGNORED_CANCEL');\n break;\n case 140:\n state.part1 = this.translate.instant('CONTRACTS.STATUS_MESSAGES.BUYER.EXPIRED');\n break;\n }\n return state.part1 + (state.part2.length ? '. ' + state.part2 : '');\n }\n\n transform(state: number, is_a?: boolean): any {\n if (is_a) {\n return this.getStateBuyer(state);\n } else {\n return this.getStateSeller(state);\n }\n }\n}\n","export * from './contract-status-messages-pipe.module';\nexport * from './contract-status-messages.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ContractTimeLeftPipe } from '@parts/pipes/contract-time-left-pipe/contract-time-left.pipe';\n\n@NgModule({\n declarations: [ContractTimeLeftPipe],\n exports: [ContractTimeLeftPipe],\n providers: [ContractTimeLeftPipe],\n imports: [CommonModule],\n})\nexport class ContractTimeLeftPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Pipe({\n name: 'contractTimeLeft',\n})\nexport class ContractTimeLeftPipe implements PipeTransform {\n constructor(private service: VariablesService, private translate: TranslateService) {}\n\n transform(value: any, arg?: any): any {\n const time = parseInt(((parseInt(value, 10) - this.service.exp_med_ts) / 3600).toFixed(0), 10);\n const type = arg || 0;\n if (time === 0) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_LESS_ONE');\n }\n if (this.service.settings.language === 'en') {\n if (type === 0) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n }\n } else if (type === 1) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if (time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n }\n }\n } else {\n const rest = time % 10;\n if (type === 0) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE', {\n time: time,\n });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY', {\n time: time,\n });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT', { time: time });\n }\n } else if (type === 1) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_RESPONSE', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_RESPONSE', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_RESPONSE', { time: time });\n }\n } else if (type === 2) {\n if ((time > 20 && rest === 1) || time === 1) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_ONE_WAITING', { time: time });\n } else if ((time > 1 && time < 5) || (time > 20 && (rest === 2 || rest === 3 || rest === 4))) {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_WAITING', { time: time });\n } else {\n return this.translate.instant('CONTRACTS.TIME_LEFT.REMAINING_MANY_ALT_WAITING', { time: time });\n }\n }\n }\n return null;\n }\n}\n","export * from './contract-time-left-pipe.module';\nexport * from './contract-time-left.pipe';\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { AssetInfo } from '@api/models/assets.model';\nimport { WalletsService } from '@parts/services/wallets.service';\n@Pipe({\n name: 'getAssetInfo',\n standalone: true,\n})\nexport class GetAssetInfoPipe implements PipeTransform {\n private walletsService = inject(WalletsService);\n\n transform(value: AssetInfo['asset_id']): AssetInfo | undefined {\n return this.walletsService.currentWallet?.allAssetsInfo.find(({ asset_id }) => asset_id === value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HistoryTypeMessagesPipe } from '@parts/pipes/history-type-messages-pipe/history-type-messages.pipe';\n\n@NgModule({\n declarations: [HistoryTypeMessagesPipe],\n exports: [HistoryTypeMessagesPipe],\n providers: [HistoryTypeMessagesPipe],\n imports: [CommonModule],\n})\nexport class HistoryTypeMessagesPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { hasOwnProperty } from '../../functions/hasOwnProperty';\n\n@Pipe({\n name: 'historyTypeMessages',\n})\nexport class HistoryTypeMessagesPipe implements PipeTransform {\n constructor(private translate: TranslateService) {}\n\n transform(item: any): any {\n if (item.tx_type === 0) {\n if (item.remote_addresses && item.remote_addresses[0]) {\n return item.remote_addresses[0];\n } else {\n if (item.is_income) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.HIDDEN');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n }\n } else if (item.tx_type === 6 && item.height === 0) {\n return 'unknown';\n } else if (item.tx_type === 9) {\n if (hasOwnProperty(item, 'contract') && item.contract[0].is_a) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_BUYER');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.COMPLETE_SELLER');\n }\n } else {\n switch (item.tx_type) {\n // case 0:\n // return '';\n // case 1:\n // return '';\n // case 2:\n // return '';\n // case 3:\n // return '';\n case 4:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_ALIAS');\n case 5:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UPDATE_ALIAS');\n case 6:\n return item.employed_entries?.spent?.length\n ? this.translate.instant('HISTORY.TYPE_MESSAGES.POS_REWARD')\n : this.translate.instant('HISTORY.TYPE_MESSAGES.POW_REWARD');\n case 7:\n if (!item.subtransfers || !item.subtransfers.length) {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.SERVICE_TRANSACTIONS');\n } else {\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CREATE_CONTRACT');\n }\n case 8:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PLEDGE_CONTRACT');\n // case 9:\n // return '';\n case 10:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.NULLIFY_CONTRACT');\n case 11:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.PROPOSAL_CANCEL_CONTRACT');\n case 12:\n return this.translate.instant('HISTORY.TYPE_MESSAGES.CANCEL_CONTRACT');\n }\n }\n\n return this.translate.instant('HISTORY.TYPE_MESSAGES.UNDEFINED');\n }\n}\n","export * from './history-type-messages-pipe.module';\nexport * from './history-type-messages.pipe';\n","export * from './contract-status-messages-pipe';\nexport * from './contract-time-left-pipe';\nexport * from './history-type-messages-pipe';\nexport * from './int-to-money-pipe';\nexport * from './is-available-alias-name-pipe';\nexport * from './money-to-int-pipe';\nexport * from './safe-html-pipe';\nexport * from './get-asset-info.pipe';\nexport * from './short-string.pipe';\n","export * from './int-to-money-pipe.module';\nexport * from './int-to-money.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IntToMoneyPipe } from '@parts/pipes/int-to-money-pipe/int-to-money.pipe';\n\n@NgModule({\n declarations: [IntToMoneyPipe],\n exports: [IntToMoneyPipe],\n providers: [IntToMoneyPipe],\n imports: [CommonModule],\n})\nexport class IntToMoneyPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'intToMoney',\n})\nexport class IntToMoneyPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any, args?: any): any {\n if (value === 0 || value === undefined) {\n return '0';\n }\n let maxFraction = this.variablesService.digits;\n if (args) {\n maxFraction = parseInt(args, 10);\n }\n const power = Math.pow(10, this.variablesService.digits);\n let str = new BigNumber(value).div(power).toFixed(maxFraction);\n\n for (let i = str.length - 1; i >= 0; i--) {\n if (str[i] !== '0') {\n str = str.substr(0, i + 1);\n break;\n }\n }\n if (str[str.length - 1] === '.') {\n str = str.substr(0, str.length - 1);\n }\n return str;\n }\n}\n","export * from './is-available-alias-name-pipe.module';\nexport * from './is-available-alias-name.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IsAvailableAliasNamePipe } from './is-available-alias-name.pipe';\n\n@NgModule({\n declarations: [IsAvailableAliasNamePipe],\n exports: [IsAvailableAliasNamePipe],\n providers: [IsAvailableAliasNamePipe],\n imports: [CommonModule],\n})\nexport class IsAvailableAliasNamePipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Alias } from '@api/models/alias.model';\n\n@Pipe({\n name: 'isAvailableAliasName',\n})\nexport class IsAvailableAliasNamePipe implements PipeTransform {\n transform(alias: Partial | null | undefined): boolean {\n return (Boolean(alias) && Boolean(alias.name) && alias.name.length >= 2 && alias.name.length <= 6) || false;\n }\n}\n","export * from './money-to-int-pipe.module';\nexport * from './money-to-int.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MoneyToIntPipe } from '@parts/pipes/money-to-int-pipe/money-to-int.pipe';\n\n@NgModule({\n declarations: [MoneyToIntPipe],\n exports: [MoneyToIntPipe],\n providers: [MoneyToIntPipe],\n imports: [CommonModule],\n})\nexport class MoneyToIntPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { VariablesService } from '../../services/variables.service';\nimport { BigNumber } from 'bignumber.js';\n\n@Pipe({\n name: 'moneyToInt',\n})\nexport class MoneyToIntPipe implements PipeTransform {\n constructor(private variablesService: VariablesService) {}\n\n transform(value: any): any {\n const CURRENCY_DISPLAY_DECIMAL_POINT = this.variablesService.digits;\n let result;\n if (value) {\n let am_str = value.toString().trim();\n const point_index = am_str.indexOf('.');\n let fraction_size = 0;\n if (-1 !== point_index) {\n fraction_size = am_str.length - point_index - 1;\n while (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size && '0' === am_str[am_str.length - 1]) {\n am_str = am_str.slice(0, am_str.length - 1);\n --fraction_size;\n }\n if (CURRENCY_DISPLAY_DECIMAL_POINT < fraction_size) {\n return undefined;\n }\n am_str = am_str.slice(0, point_index) + am_str.slice(point_index + 1, am_str.length);\n } else {\n fraction_size = 0;\n }\n if (!am_str.length) {\n return undefined;\n }\n if (fraction_size < CURRENCY_DISPLAY_DECIMAL_POINT) {\n for (let i = 0; i !== CURRENCY_DISPLAY_DECIMAL_POINT - fraction_size; i++) {\n am_str = am_str + '0';\n }\n }\n result = new BigNumber(am_str).integerValue();\n }\n return result;\n }\n}\n","export * from './safe-html-pipe.module';\nexport * from './safe-html.pipe';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SafeHTMLPipe } from '@parts/pipes/safe-html-pipe/safe-html.pipe';\n\n@NgModule({\n declarations: [SafeHTMLPipe],\n exports: [SafeHTMLPipe],\n providers: [SafeHTMLPipe],\n imports: [CommonModule],\n})\nexport class SafeHtmlPipeModule {}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safeHTML',\n})\nexport class SafeHTMLPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html: string): SafeHtml {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'zanoShortString',\n standalone: true\n})\nexport class ShortStringPipe implements PipeTransform {\n transform(value: string | null | undefined, left = 6, right = 6): string | null | undefined {\n return value && `${value.slice(0, left)}...${value.slice(-right)}`;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router, NavigationEnd } from '@angular/router';\n\n@Injectable({ providedIn: 'root' })\nexport class NavigationService {\n private history: string[] = [];\n\n constructor(private router: Router, private location: Location) {\n this.router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.history.push(event.urlAfterRedirects);\n }\n });\n }\n\n back(): void {\n this.history.pop();\n if (this.history.length > 0) {\n this.location.back();\n } else {\n this.router.navigateByUrl('/').then();\n }\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, NgZone } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ModalContainerComponent } from '../modals/modal-container/modal-container.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ModalService {\n private components: any[] = [];\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private appRef: ApplicationRef,\n private injector: Injector,\n private ngZone: NgZone,\n private translate: TranslateService\n ) {}\n\n prepareModal(type: 'error' | 'info' | 'success' | string, message): void {\n const length = this.components.push(\n this.componentFactoryResolver.resolveComponentFactory(ModalContainerComponent).create(this.injector)\n );\n\n this.components[length - 1].instance['type'] = type;\n this.components[length - 1].instance['message'] = message.length ? this.translate.instant(message) : '';\n this.components[length - 1].instance['eventClose']?.subscribe({\n next: () => {\n this.ngZone.run(() => {\n this.removeModal(length - 1);\n });\n },\n });\n\n this.ngZone.run(() => {\n this.appendModal(length - 1);\n });\n }\n\n appendModal(index): void {\n setTimeout(() => {\n this.appRef.attachView(this.components[index].hostView);\n const domElem = (this.components[index].hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\n document.body.appendChild(domElem);\n });\n }\n\n removeModal(index): void {\n if (this.components[index]) {\n this.appRef.detachView(this.components[index].hostView);\n this.components[index].destroy();\n this.components.splice(index, 1);\n } else {\n const last = this.components.length - 1;\n this.appRef.detachView(this.components[last].hostView);\n this.components[last].destroy();\n this.components.splice(last, 1);\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { DeeplinkParams, Wallet } from '@api/models/wallet.model';\nimport { Contact } from '@api/models/contact.model';\nimport { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { Idle } from 'idlejs/dist';\nimport { Router } from '@angular/router';\nimport { ContextMenuComponent, ContextMenuService } from '@perfectmemory/ngx-contextmenu';\nimport { BigNumber } from 'bignumber.js';\nimport { Aliases } from '@api/models/alias.model';\nimport { distinctUntilChanged, map, startWith } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VariablesService {\n disable_price_fetch$ = new BehaviorSubject(false);\n\n rpc_port!: number;\n\n use_debug_mode$ = new BehaviorSubject(false);\n\n info$ = new BehaviorSubject({});\n\n is_hardfok_active$: Observable = this.info$.pipe(map((info) => {\n return Boolean(info?.['is_hardfok_active']?.[4]);\n }), distinctUntilChanged());\n\n stop_paginate = {};\n\n sync_started = false;\n\n digits = 12;\n\n appPass = '';\n\n get hasAppPass(): boolean {\n return Boolean(this.appPass);\n }\n\n appLogin = false;\n\n moneyEquivalent = 0;\n\n moneyEquivalentPercent = 0;\n\n defaultCurrency = 'ZANO';\n\n opening_wallet: Wallet;\n\n exp_med_ts = 0;\n\n net_time_delta_median = 0;\n\n height_app = 0;\n\n height_max = 0;\n\n downloaded = 0;\n\n total = 0;\n\n last_build_available = '';\n\n last_build_displaymode = 0;\n\n daemon_state = 3;\n\n deeplink$ = new BehaviorSubject(null);\n\n sendActionData$ = new BehaviorSubject({});\n\n sync = {\n progress_value: 0,\n progress_value_text: '0',\n };\n\n public sync_wallets: { [wallet_id: number]: boolean } = {};\n download = {\n progress_value: 0,\n progress_value_text: '0',\n };\n get_recent_transfers = false; // avoid of execute function before callback complete\n default_fee = '0.010000000000';\n default_fee_big = new BigNumber('10000000000');\n settings = {\n appLockTime: 15,\n appLog: 0,\n scale: '10px',\n appUseTor: false,\n language: 'en',\n default_path: '/',\n viewedContracts: [],\n notViewedContracts: [],\n zanoCompanionForm: {\n zanoCompation: false,\n secret: ''\n },\n wallets: [],\n };\n count = 40;\n maxPages = 5;\n testnet = false;\n networkType = ''; // testnet of mainnet\n wallets: Array = [];\n currentWallet: Wallet;\n aliases: Aliases = [];\n aliasesChecked: any = {};\n enableAliasSearch = false;\n maxWalletNameLength = 25;\n maxCommentLength = 255;\n dataIsLoaded = false;\n contacts: Array = [];\n pattern = '^[a-zA-Z0-9_.\\\\]*|~!?@#$%^&+{}()<>:;\"\\'-=/,[\\\\\\\\]*$';\n after_sync_request: any = {};\n getExpMedTsEvent = new BehaviorSubject(null);\n getHeightAppEvent = new BehaviorSubject(null);\n getHeightMaxEvent = new BehaviorSubject(null);\n getDownloadedAppEvent = new BehaviorSubject(null);\n getTotalEvent = new BehaviorSubject(null);\n getRefreshStackingEvent = new BehaviorSubject(null);\n getAliasChangedEvent = new BehaviorSubject(null);\n currentWalletChangedEvent = new BehaviorSubject(null);\n idle = new Idle().whenNotInteractive().do(async () => {\n if (this.appPass === '') {\n this.stopCountdown();\n } else {\n await this.ngZone.run(async () => {\n this.stopCountdown();\n this.appPass = '';\n this.appLogin = false;\n await this.router.navigate(['/login'], {\n queryParams: { type: 'auth' },\n });\n });\n }\n });\n allContextMenu: ContextMenuComponent;\n onlyCopyContextMenu: ContextMenuComponent;\n pasteSelectContextMenu: ContextMenuComponent;\n\n constructor(private router: Router, private ngZone: NgZone, private contextMenuService: ContextMenuService) {}\n\n get isCurrentWalletSync(): boolean {\n if (this.currentWallet) {\n const { wallet_id } = this.currentWallet;\n return this.sync_wallets[wallet_id] || false;\n }\n return false;\n }\n\n get isCurrentWalletLoaded(): boolean {\n if (this.currentWallet) {\n const { loaded } = this.currentWallet;\n return loaded;\n }\n return false;\n }\n\n get walletNamesForComparisons(): string[] {\n return this.wallets.map(({ name }) => name) ?? [];\n }\n\n setExpMedTs(timestamp: number): void {\n if (timestamp !== this.exp_med_ts) {\n this.exp_med_ts = timestamp;\n this.getExpMedTsEvent.next(timestamp);\n }\n }\n\n setHeightApp(height: number): void {\n if (height !== this.height_app) {\n this.height_app = height;\n this.getHeightAppEvent.next(height);\n }\n }\n\n setHeightMax(height: number): void {\n if (height !== this.height_max) {\n this.height_max = height;\n this.getHeightMaxEvent.next(height);\n }\n }\n\n setDownloadedBytes(bytes: number): void {\n if (bytes !== this.downloaded) {\n this.downloaded = this.bytesToMb(bytes);\n this.getDownloadedAppEvent.next(bytes);\n }\n }\n\n setTotalBytes(bytes: number): void {\n if (bytes !== this.total) {\n this.total = this.bytesToMb(bytes);\n this.getTotalEvent.next(bytes);\n }\n }\n\n setRefreshStacking(wallet_id: number): void {\n this.getHeightAppEvent.next(wallet_id);\n }\n\n changeAliases(): void {\n this.getAliasChangedEvent.next(true);\n }\n\n setCurrentWallet(id): void {\n this.wallets.forEach(wallet => {\n if (wallet.wallet_id === id) {\n this.currentWallet = wallet;\n this.currentWalletChangedEvent.next(wallet);\n }\n });\n }\n\n getWallet(id): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (this.wallets[i].wallet_id === id) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n getNotLoadedWallet(): Wallet | null {\n for (let i = 0; i < this.wallets.length; i++) {\n if (!this.wallets[i].loaded) {\n return this.wallets[i];\n }\n }\n return null;\n }\n\n startCountdown(): void {\n this.idle.within(this.settings.appLockTime).start();\n }\n\n stopCountdown(): void {\n this.idle.stop();\n }\n\n restartCountdown(): void {\n if (Boolean(this.settings.appLockTime)) {\n this.idle.within(this.settings.appLockTime).restart();\n } else {\n this.stopCountdown();\n }\n }\n\n bytesToMb(bytes): number {\n return Number((bytes / Math.pow(1024, 2)).toFixed(1));\n }\n\n onContextMenu($event: MouseEvent): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.allContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n\n onContextMenuOnlyCopy($event: MouseEvent, copyText?: string): void {\n $event.preventDefault();\n $event.stopPropagation();\n this.contextMenuService.show(this.onlyCopyContextMenu, {\n value: copyText,\n x: $event.x,\n y: $event.y,\n });\n }\n\n onContextMenuPasteSelect($event: MouseEvent): void {\n $event.target['contextSelectionStart'] = $event.target['selectionStart'];\n $event.target['contextSelectionEnd'] = $event.target['selectionEnd'];\n\n console.warn($event.target);\n console.warn($event.target['disabled']);\n\n if (\n $event.target &&\n ($event.target['nodeName'].toUpperCase() === 'TEXTAREA' || $event.target['nodeName'].toUpperCase() === 'INPUT') &&\n !$event.target['readOnly']\n ) {\n this.contextMenuService.show(this.pasteSelectContextMenu, {\n x: $event.x,\n y: $event.y,\n value: $event.target,\n });\n $event.preventDefault();\n $event.stopPropagation();\n }\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { BackendService } from '@api/services/backend.service';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { ResponseGetWalletInfo, Wallet } from '@api/models/wallet.model';\nimport { Router } from '@angular/router';\nimport { ParamsCallRpc } from '@api/models/call_rpc.model';\nimport { AssetsWhitelistGetResponseData } from '@api/models/assets.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WalletsService {\n get wallets(): Wallet[] | null | undefined {\n return this.variablesService.wallets;\n }\n\n set wallets(value) {\n this.variablesService.wallets = value;\n }\n\n get currentWallet(): Wallet | null | undefined {\n return this.variablesService.currentWallet;\n }\n\n set currentWallet(value) {\n this.variablesService.currentWallet = value;\n }\n\n constructor(\n private backendService: BackendService,\n private variablesService: VariablesService,\n private router: Router,\n private ngZone: NgZone\n ) {}\n\n addWallet(wallet: Wallet): void {\n const { wallet_id } = wallet;\n this.variablesService.wallets.push(wallet);\n this.updateWalletInfo(wallet_id);\n }\n\n loadAssetsWhitelist(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update assetsWhiteList by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n\n const params: ParamsCallRpc = {\n jsonrpc: '2.0',\n id: 0,\n method: 'assets_whitelist_get',\n params: {},\n };\n this.backendService.call_wallet_rpc([wallet_id, params], (status, response_data: AssetsWhitelistGetResponseData) => {\n const { result } = response_data;\n wallet.assetsInfoWhitelist = result;\n });\n }\n\n getWalletById(wallet_id: number): Wallet | undefined {\n const { wallets } = this.variablesService;\n return wallets.find(w => w.wallet_id === wallet_id);\n }\n\n updateWalletInfo(wallet_id: number): void {\n const wallet = this.getWalletById(wallet_id);\n\n if (!wallet) {\n console.warn(`You want update walletInfo by wallet_id: (${wallet_id}). But this wallet not uploaded.`);\n return;\n }\n const callback: (status: boolean, response_data: ResponseGetWalletInfo) => void = (status, response_data) => {\n this.ngZone.run(() => {\n if (status) {\n const { balances } = response_data;\n wallet.balances = balances;\n }\n });\n };\n\n this.backendService.getWalletInfo(wallet_id, callback);\n\n this.loadAssetsWhitelist(wallet_id);\n }\n\n closeWallet(wallet_id: number): void {\n const callback = async (): Promise => {\n this.wallets = this.wallets.filter(w => w.wallet_id !== wallet_id);\n\n await this.ngZone.run(async () => {\n let url = '/';\n if (this.wallets.length > 0) {\n this.currentWallet = this.wallets[0];\n url = '/wallet/';\n }\n if (this.variablesService.appPass) {\n this.backendService.storeSecureAppData();\n }\n await this.router.navigate([url]);\n });\n };\n\n this.backendService.closeWallet(wallet_id, callback);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\ntype TLoaderId = 'fullScreen';\n\ninterface TDataLoader {\n state: boolean;\n message: string;\n}\n\ntype TDataLoaders = {\n [key in TLoaderId]: TDataLoader\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ZanoLoadersService {\n private _loaders$ = new BehaviorSubject({\n fullScreen: { state: false, message: 'Loading' }\n });\n\n getState(id: TLoaderId): Observable {\n return this._loaders$.pipe(map((loader) => loader[id].state ));\n }\n\n getMessage(id: TLoaderId): Observable {\n return this._loaders$.pipe(map((loader) => loader[id].message ));\n }\n\n\n open(id: TLoaderId, message: string = 'Loading'): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n state: true,\n message\n }\n });\n }\n\n close(id: TLoaderId): void {\n this._loaders$.next({\n ...this._loaders$.value,\n [id]: {\n ...this._loaders$.value[id],\n state: false\n }\n });\n }\n}\n","export const MIMETypes: string[] = [\n '.rar',\n '.txt',\n '.xls',\n '.xlsx',\n '.zip',\n '.png',\n '.pdf',\n '.csv',\n '.doc',\n '.docx',\n '.jar',\n '.jpeg',\n '.jpg',\n '.js',\n '.json',\n '.mp3',\n '.mp4',\n '.mpeg',\n '.aac',\n '.abw',\n '.arc',\n '.avif',\n '.avi',\n '.azw',\n '.bin',\n '.bmp',\n '.bz',\n '.bz2',\n '.cda',\n '.csh',\n '.css',\n '.dll',\n '.exe',\n '.eot',\n '.epub',\n '.gz',\n '.gif',\n '.htm',\n '.html',\n '.ico',\n '.ics',\n '.jsonld',\n '.mid',\n '.midi',\n '.mjs',\n '.mpkg',\n '.odp',\n '.ods',\n '.odt',\n '.oga',\n '.ogv',\n '.ogx',\n '.opus',\n '.otf',\n '.php',\n '.ppt',\n '.pptx',\n '.pdb',\n '.dat',\n '.rtf',\n '.sh',\n '.svg',\n '.tar',\n '.tif',\n '.tiff',\n '.ts',\n '.ttf',\n '.vsd',\n '.wav',\n '.weba',\n '.webm',\n '.webp',\n '.woff',\n '.woff2',\n '.xhtml',\n '.xml',\n '.xul',\n '.3gp',\n '.3g2',\n '.7z',\n];\n","export const generateRandomString = (length: number = 40): string => {\n const array: Uint8Array = new Uint8Array(length);\n window.crypto.getRandomValues(array);\n\n const regularArray: number[] = Array.from(array);\n\n return btoa(String.fromCharCode.apply(null, regularArray));\n};\n","import { ValidationErrors } from '@angular/forms';\n\nexport interface ZanoValidationErrors extends ValidationErrors {\n errorText: string;\n}\n\nexport const wrongAssetId: ZanoValidationErrors = {\n errorText: 'ASSETS.FORM.ERRORS.WRONG_ASSET_ID',\n};\n\nexport const wrongPassword: ZanoValidationErrors = {\n errorText: 'Incorrect password',\n};\n\nexport const insuficcientFunds: ZanoValidationErrors = {\n errorText: 'ERRORS.INSUFFICIENT_FUNDS',\n};\n\nexport const assetHasNotBeenAddedToWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.ASSET_HAS_NOT_BEEN_ADDED_TO_WALLET',\n};\n\nexport const notFileZanoWallet: ZanoValidationErrors = {\n errorText: 'ERRORS.NOT_FILE_ZANO_WALLET',\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\nimport { notFileZanoWallet, ZanoValidationErrors } from '@parts/utils/zano-errors';\nimport { MIMETypes } from '@parts/utils/MIME-types';\n\nexport const regExpHash = /^[a-f0-9]{64}$/i;\nexport const regExpAliasName = /^@?[a-z\\d.-]{2,25}$/;\nexport const regExpPassword = /^[a-zA-Z0-9_.\\]*|~!?@#$%^&+{}()<>:;\"'-=,/[\\\\]*$/;\n\nexport class ZanoValidators {\n static hash({ value }: AbstractControl): ValidationErrors | null {\n return regExpHash.test(value) ? null : { invalidHash: true };\n }\n\n static formMatch(firstControlName: string, secondControlName: string, nameErrorKey = 'mismatch'): ValidatorFn {\n return (abstractControl: AbstractControl): ValidationErrors | null =>\n abstractControl.get(firstControlName).value === abstractControl.get(secondControlName).value ? null : { [nameErrorKey]: true };\n }\n\n static duplicate(valuesForComparisons: string | string[]): ValidatorFn {\n return ({ value }: AbstractControl): ValidationErrors | null => {\n const errorObject = { duplicate: true };\n let error = null;\n\n if (typeof value === 'string' && value === valuesForComparisons) {\n error = errorObject;\n }\n\n if (Array.isArray(valuesForComparisons) && valuesForComparisons.includes(value)) {\n error = errorObject;\n }\n\n return error;\n };\n }\n}\n\nexport const filePathWalletValidator = (path: string): ZanoValidationErrors | null => {\n if (!(path && path.trim().length)) {\n return null;\n }\n\n const positionLastSlash = path.lastIndexOf('/');\n const fileName = path.slice(positionLastSlash + 1);\n\n if (!(fileName && fileName.trim().length)) {\n return null;\n }\n\n if (fileName) {\n let index = 0;\n while (index < MIMETypes.length) {\n if (fileName.includes(MIMETypes[index])) {\n return notFileZanoWallet;\n }\n index++;\n }\n }\n\n return null;\n};\n","import { Injectable, NgZone } from '@angular/core';\nimport { VariablesService } from '@parts/services/variables.service';\nimport { PaginationStore } from './pagination.store';\nimport * as _ from 'lodash';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationService {\n constructor(private variables: VariablesService, private ngZone: NgZone, private paginationStore: PaginationStore) {}\n\n paginate(currentPage = 1): void {\n if (currentPage < 1) {\n currentPage = 1;\n } else if (currentPage > this.variables.currentWallet.totalPages) {\n currentPage = this.variables.currentWallet.totalPages;\n }\n let startPage: number, endPage: number;\n if (this.variables.currentWallet.totalPages <= this.variables.maxPages) {\n startPage = 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n const maxPagesBeforeCurrentPage = Math.floor(this.variables.maxPages / 2);\n const maxPagesAfterCurrentPage = Math.ceil(this.variables.maxPages / 2) - 1;\n if (currentPage <= maxPagesBeforeCurrentPage) {\n startPage = 1;\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (endPage = this.variables.maxPages)\n : (endPage = this.variables.currentWallet.totalPages);\n } else if (currentPage + maxPagesAfterCurrentPage >= this.variables.currentWallet.totalPages) {\n startPage = this.variables.currentWallet.totalPages - this.variables.maxPages + 1;\n endPage = this.variables.currentWallet.totalPages;\n } else {\n startPage = currentPage - maxPagesBeforeCurrentPage;\n endPage = currentPage + maxPagesAfterCurrentPage;\n }\n }\n this.ngZone.run(() => {\n this.variables.currentWallet.pages = Array.from(Array(endPage + 1 - startPage).keys()).map(i => startPage + i);\n });\n }\n\n getOffset(walletID): number {\n const mining = this.variables.currentWallet.exclude_mining_txs;\n const currentPage = this.variables.currentWallet.currentPage;\n let offset = (currentPage - 1) * this.variables.count;\n if (!mining) {\n return offset || 0;\n }\n const value = this.paginationStore.value;\n const pages = value.filter(item => item.walletID === walletID);\n if (pages && pages.length > 0) {\n const max = _.maxBy(pages, 'page');\n const isForward = this.paginationStore.isForward(pages, currentPage);\n if (isForward) {\n offset = max.offset || 0;\n } else {\n const index = pages.findIndex(item => item.page === currentPage);\n offset = pages[index].offset || 0;\n }\n }\n return offset;\n }\n\n calcPages(data): void {\n if (data.total_history_items && data && data.history) {\n this.variables.currentWallet.totalPages = Math.ceil(data.total_history_items / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n } else if (this.variables.currentWallet.restore) {\n this.variables.currentWallet.totalPages = Math.ceil(data.history.length / this.variables.count);\n this.variables.currentWallet.totalPages > this.variables.maxPages\n ? (this.variables.currentWallet.pages = new Array(5).fill(1).map((value, index) => value + index))\n : (this.variables.currentWallet.pages = new Array(this.variables.currentWallet.totalPages)\n .fill(1)\n .map((value, index) => value + index));\n }\n }\n\n prepareHistory(data, status): void {\n if (status && data && data.total_history_items) {\n this.variables.currentWallet.history.splice(0, this.variables.currentWallet.history.length);\n this.ngZone.run(() => {\n this.paginate(this.variables.currentWallet.currentPage);\n if (data.history.length !== 0) {\n this.variables.currentWallet.restore = false;\n this.variables.currentWallet.total_history_item = data.total_history_items;\n this.variables.currentWallet.prepareHistory(data.history);\n if (this.variables.currentWallet.currentPage === 1 && data.unconfirmed) {\n this.variables.currentWallet.prepareHistory(data.unconfirmed.sort((a, b) => a.timestamp - b.timestamp));\n }\n }\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as _ from 'lodash';\n\nexport interface Pages {\n page: number;\n offset: number;\n walletID: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PaginationStore {\n private subject = new BehaviorSubject(null);\n\n get value(): Pages[] | null {\n return this.subject.value;\n }\n\n isForward(pages, currentPage): boolean {\n const max = _.maxBy(pages, 'page');\n return !max || max.page < currentPage || max.page === currentPage;\n }\n\n setPage(pageNumber: number, offset: number, walletID: number): void {\n let newPages: Pages[] = [];\n const pages = this.subject.getValue();\n if (pages && pages.length > 0) {\n newPages = pages.slice(0);\n }\n newPages.push({ page: pageNumber, offset, walletID });\n this.subject.next(newPages);\n }\n}\n","import { distinctUntilChanged, map } from 'rxjs/operators';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { Wallet } from '@api/models/wallet.model';\nimport { Injectable } from '@angular/core';\n\nexport interface Sync {\n sync: boolean;\n wallet_id: number;\n}\n\nexport enum StateKeys {\n wallets = 'wallets',\n sync = 'sync',\n}\n\nexport interface State {\n [StateKeys.wallets]: Wallet[] | null | undefined;\n [StateKeys.sync]: Sync[] | null | undefined;\n}\n\nconst initialState: State = {\n wallets: undefined,\n sync: undefined,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class Store {\n private subject = new BehaviorSubject(initialState);\n private store = this.subject.asObservable().pipe(distinctUntilChanged());\n\n get state(): State {\n return this.subject.value;\n }\n\n select(name: StateKeys): Observable {\n return this.store.pipe(map(state => state[name])) as unknown as Observable;\n }\n\n set(name: StateKeys, value: any): void {\n this.subject.next({ ...this.state, [name]: value });\n }\n}\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false,\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\nimport 'lodash';\n\nexport const buildTime = '2024-03-06T13:59:36.086Z';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic()\n .bootstrapModule(AppModule)\n .catch(err => console.error(err));\n"],"names":["NgZone","Observable","Subject","JSONBigNumber","BigNumber","ParamsType","getParamsType","value","array","Array","isArray","object","Object","keys","includes","convertersObjectForTypes","string","stringify","map","v","convertorParams","type","StatusCurrentActionState","Commands","BackendService","constructor","translate","variablesService","modalService","moneyToIntPipe","ngZone","bigNumberParser","key","val","name","indexOf","toNumber","i","length","Debug","message","console","error","warn","log","eventSubscribe","command","callback","on_core_event","backendObject","connect","str","parse","initService","observer","backendLoaded","window","QWebChannel","qt","webChannelTransport","channel","objects","mediator_object","next","webkitLaunchedScript","runCommand","webkit_launched_script","quitRequest","on_request_quit","getAppData","get_app_data","storeAppData","wallets","settings","forEach","wallet","push","path","store_app_data","getSecureAppData","pass","get_secure_app_data","setMasterPassword","set_master_password","checkMasterPassword","check_master_password","getIsDisabledNotifications","params","get_is_disabled_notifications","setIsDisabledNotifications","state","set_is_disabled_notifications","storeSecureAppData","contacts","staking","contact","address","notes","data","store_secure_app_data","JSON","appPass","dataStore","backendCallback","dropSecureAppData","drop_secure_app_data","haveSecureAppData","have_secure_app_data","saveFileDialog","caption","fileMask","default_path","dir","filemask","default_dir","show_savefile_dialog","openFileDialog","show_openfile_dialog","storeFile","buff","store_to_file","loadFile","load_from_file","push_offer","generateWallet","generate_wallet","exportWalletHistory","json_string","export_wallet_history","openWallet","txs_to_return","testEmpty","open_wallet","closeWallet","wallet_id","close_wallet","getSmartWalletInfo","seed_password","get_smart_wallet_info","getSeedPhraseInfo","param","get_seed_phrase_info","runWallet","run_wallet","isValidRestoreWalletText","is_valid_restore_wallet_text","restoreWallet","seed_phrase","seed_pass","restore_wallet","sendMoney","amount","fee","mixin","comment","hide","asset_id","destinations","mixin_count","lock_time","transform","push_payer","asyncCall","transfer","setupJwtWalletRpc","secret","setup_jwt_wallet_rpc","zanoCompanionForm","validateAddress","validate_address","setClipboard","set_clipboard","getClipboard","get_clipboard","createProposal","title","a_addr","b_addr","to_pay","a_pledge","b_pledge","time","payment_id","parseInt","details","t","c","expiration_period","default_fee_big","b_fee","create_proposal","getContracts","get_contracts","acceptProposal","contract_id","accept_proposal","releaseProposal","release_type","release_contract","requestCancelContract","request_cancel_contract","acceptCancelContract","accept_cancel_contract","getMiningHistory","get_mining_history","startPosMining","start_pos_mining","stopPosMining","stop_pos_mining","openUrlInBrowser","url","open_url_in_browser","start_backend","node","host","port","configure_for_remote_node","remote_node_host","remote_node_port","getDefaultFee","get_default_fee","setBackendLocalization","stringsArray","strings","language_title","set_localization_strings","registerAlias","alias","reward","tracking_key","request_alias_registration","updateAlias","replace","request_alias_update","getAllAliases","get_all_aliases","getAliasInfoByName","get_alias_info_by_name","getAliasByAddress","get_alias_info_by_address","getAliasCoast","get_alias_coast","resyncWallet","id","resync_wallet","getWalletAlias","daemon_state","aliasesChecked","aliases","status","getContactAlias","getRecentTransfers","offset","count","exclude_mining_txs","get_recent_transfers","getPoolInfo","get_tx_pool_info","getVersion","get_version","version","errorVersion","get_network_type","status_network","errorType","setLogLevel","level","set_log_level","async_call","job_id","dispatchAsyncCallResult","dispatch_async_call_result","json_resp","asyncCommandResults","response","run","dispatchAsyncCallResult$","handleCurrentActionState","handle_current_action_state","currentActionState","handleCurrentActionState$","setEnableTor","set_enable_tor","getOptions","get_options","disable_price_fetch","use_debug_mode","rpc_port","disable_price_fetch$","use_debug_mode$","addCustomAssetId","add_custom_asset_id","removeCustomAssetId","remove_custom_asset_id","getWalletInfo","get_wallet_info","call_rpc","call_wallet_rpc","informerRun","error_translate","instant","default_fee","currency","defaultCurrency","prepareModal","commandDebug","result","debug","_send_params","_result","e","response_data","error_code","resultStr","Result","core_busy","Status","undefined","res_error_code","setTimeout","current_wallet_id","currentWallet","Action","i0","factory","providedIn","Renderer2","StateKeys","take","takeUntil","paths","pathsChildrenAuth","hasOwnProperty","AppComponent","http","renderer","backendService","router","intToMoneyPipe","store","dialog","zanoLoadersService","addLangs","setDefaultLang","use","subscribe","translateUsed","language","ngOnInit","initMessage","st2","dd2","quit_requested","onQuitRequest","closeAll","needOpenWallets","saveFunction","recursionCloseWallets","lastIndex","splice","update_wallet_status","wallet_state","is_mining","getWallet","loaded","balances","mined_total","minied_total","alias_available","is_alias_operations_available","has_bare_unspent_outputs","wallet_sync_progress","progress","sync_started","sync_wallets","addToStore","update_daemon_state","daemon_network_state","setExpMedTs","net_time_delta_median","last_build_available","last_build_displaymode","setHeightApp","height","setHeightMax","max_net_seen_height","setDownloadedBytes","downloaded_bytes","setTotalBytes","download_total_data_size","max","current","return_val","Math","floor","sync","progress_value","progress_value_text","toFixed","download","firstOnlineState","getAliases","status_fee","data_fee","money_transfer","ti","tr_info","history","tx_type","setRefreshStacking","tr_exists","excluded_history","some","elem","tx_hash","currentPage","prepareHistory","restore","total_history_item","totalPages","ceil","maxPages","pages","fill","index","exp_med_ts","height_app","contract","contracts","is_a","cancel_expiration_time","expiration_time","timestamp","searchResult2","notViewedContracts","find","j","viewedContracts","searchResult3","searchResult4","searchResult","is_new","findContract","prop","handle_deeplink_click","deeplink$","money_transfer_cancel","removeFromHistory","error_tr","events","method","enableAliasSearch","newAlias","concat","changeAliases","CurrentAlias","element","intervalUpdateContractsState","setInterval","expMedTsEvent","getExpMedTsEvent","newTimestamp","appUseTor","scale","setStyle","document","documentElement","appLog","navigate","auth","noWallet","then","statusPass","queryParams","appLogin","getInfo","pipe","destroy$","updateTime","updateMoneyEquivalent","intervalUpdatePriceState","clearInterval","ngOnDestroy","unsubscribe","get","moneyEquivalent","moneyEquivalentPercent","sort","a","b","boolean","filter","item","set","testnet","networkType","jsonrpc","info$","selectors","decls","vars","consts","template","inject","TranslateService","CREATE_NEW_WALLET_HELP_PAGE","filePathWalletValidator","AddWalletComponent","translateService","file_status","file_data","positionLastSlash","lastIndexOf","new_default_path","slice","text","errorText","openInBrowser","ctx","FormBuilder","Validators","regExpAliasName","AssignAliasComponent","backend","intToMoney","routerLink","fb","group","nonNullable","control","required","pattern","maxLength","maxCommentLength","price","rewardOriginal","exists","assignForm","valueChanges","canRegister","newName","toLowerCase","controls","errors","statusPrice","dataPrice","sum","unlocked_balance","getBalanceByTicker","_a","unlocked","notEnoughMoney","isGreaterThan","complete","assignAlias","wakeAlias","Wallet","BehaviorSubject","regExpPassword","ZanoValidators","LoginComponent","walletsService","route","password","confirmation","validators","formMatch","onSubmitCreatePass","regForm","valid","dataIsLoaded","appLockTime","startCountdown","onSkipCreatePass","resetJwtWalletRpc","zanoCompation","resetLoading$","closeAllWallets","onSubmitAuthPass","submitLoading$","authForm","prevUrl","setAuthPassError","wrong_password","getData","isEmptyObject","getWalletData","walletData","openWallets","runWallets","wallet_index","open_status","open_data","open_error","new_wallet","balance","tracking_hey","is_auditable","is_watch_only","recent_history","total_history_items","addWallet","run_status","setErrors","NonNullableFormBuilder","VariablesService","ModalService","Router","WalletsService","CreateWalletComponent","duplicate","walletNamesForComparisons","confirm","savedWalletName","createForm","substr","createWallet","loading$","selectedPath","getRawValue","generate_status","generate_data","errorCode","run_data","setCurrentWallet","errorTranslationKey","selectWalletLocation","patchValue","delay","DeeplinkComponent","notFileZanoWallet","wrongPassword","OpenWalletComponent","maxWalletNameLength","filePath","openWalletForm","filename","markAsTouched","openStatus","openData","open_from_exist","AssetDetailsComponent","ConfirmModalComponent","LOCKED_BALANCE_HELP_PAGE","defaultImgSrc","zanoAssetInfo","ctx_r6","$event","ctx_r4","asset_r5","_r7","ctx_r0","ctx_r1","AssetsComponent","paginatePipeArgs","paginationId","itemsPerPage","isShowPagination","listenChangeWallet","toggleDropDownMenu","trigger","asset","isOpenDropDownMenu","triggerOrigin","currentAsset","trackByAssets","asset_info","trackByPages","assetDetails","dialogConfig","open","beforeRemoveAsset","full_name","closed","confirmed","removeAsset","sendMoneyParams","updateWalletInfo","getBalanceTooltip","tooltip","createElement","scrollWrapper","classList","add","total","ticker","available","setAttribute","innerText","availableB","appendChild","locked","lockedB","minus","link","innerHTML","addEventListener","currentWalletChangedEvent","ElementRef","EventEmitter","successfulStatuses","STATE_SENDING","STATE_SENT_SUCCESS","STATE_INITIALIZING","STATE_DOWNLOADING_CONSENSUS","STATE_MAKING_TUNNEL_A","STATE_MAKING_TUNNEL_B","STATE_CREATING_STREAM","STATE_SUCCESS","failedStatuses","STATE_SEND_FAILED","STATE_FAILED","SendDetailsModalComponent","currentActionState$","currentActionStates","currentActionStates$","isSentSuccess","isSentFailed","isDetailsNotEmpty","responseData$","addClass","body","actionState","success","removeClass","toggleDetails","stateDetails$","scrollToBottomDetailsList","trackBy","isSuccess","action","isFailed","elDetailsList","nativeElement","scrollTop","scrollHeight","viewQuery","MIXIN","debounceTime","retry","tap","of","IntToMoneyPipe","insuficcientFunds","defaultSendMoneyParams","WrapInfoService","alias_r18","_r15","asset_r36","ctx_r9","ctx_r11","SendComponent","moneyToInt","isVisibleDropdownAliases$","aliasAddress","valid_status","isWrapShown","assign","address_not_valid","hasError","test","alias_not_valid","alias_status","alias_data","alias_not_found","min","zero","bigAmount","wrapInfo","wrap_info_null","unwraped_coins_left","great_than_unwraped_coins","isLessThan","tx_cost","zano_needed_for_erc20","less_than_zano_needed","sendMoneyParamsForm","_b","g","less_min","aliases$","getWrapInfo","listenSendActionData","patchSendMoneyParamsByCurrentWallet","saveSendMoneyParams","setAssetFromHistoryState","emitEvent","showDialog","isModalDialogVisible","onSend","aliasName","isModalDetailsDialogVisible","getReceivedValue","needed","handeCloseDetailsModal","reset","markAllAsTouched","disable","fillDeepLinkData","additionalOptions","comments","mixins","hide_sender","wrapInfoService","pasteListenAddressField","event","preventDefault","clipboardData","lowerCaseDisabled$","inputListenAddressField","target","filteredAliases","sendActionData$","CommonModule","RouterLinkWithHref","TranslateModule","BreadcrumbsComponent","DefaultImgModule","InputValidateModule","LowerCaseDirective","FormsModule","ReactiveFormsModule","IntToMoneyPipeModule","MoneyToIntPipe","MoneyToIntPipeModule","ShortStringPipe","NgSelectModule","startWith","assetHasNotBeenAddedToWallet","LoaderComponent","assetInfo_r20","ctx_r3","assetInfo_r23","alias_r33","_r30","CreateSwapComponent","allAssetsInfo","sending","form","receiving","disabled","isEmptyAssetsInfoWhitelist","receiverAddress","condition","sameAssetsId","setSendingAssetIdFromHistoryState","sendingAssetsInfo$","receivingAssetsInfo$","reverse","updateValueAndValidity","inputListenReceiverAddressField","pasteListenReceiverAddressField","beforeSubmit","invalid","submit","params1","params2","proposal","to_finalizer","to_initiator","fee_paid_by_a","navigateByUrl","hex_raw_proposal","errorRpc","standalone","features","i1","i2","i3","i4","i5","i6","i7","styles","ChangeDetectorRef","wrongAssetId","FlexModule","AddCustomTokenComponent","dialogRef","compose","hash","formGroup","asset_descriptor","awaiting_in","awaiting_out","close","cdr","detectChanges","_r2","i8","changeDetection","DIALOG_DATA","DialogRef","SuccessSweepBareOutsComponent","_dialogRef","distinctUntilChanged","ExportHistoryModalComponent","NavigationCancel","NavigationEnd","NavigationError","NavigationStart","ZARCANUM_MIGRATION","MigrateWalletToZarcanumComponent","objTabs","assets","icon","hidden","send","receive","swap","indicator","WalletComponent","scrollStrategyOptions","scrollStrategyNoop","noop","walletLoaded","createTabs","setDisabledTabs","is_hardfok_active$","setHiddenTabs","navigationInterceptor","loader","conditionForHiding","tabs","onKeyPressed","openDropdown","walletSyncVisible","onKeyUpPressed","settingsButtonInterval","settingsButtonDisabled","select","Boolean","in_progress","values","getAliasChangedEvent","updateWalletStatus","toggleMenuDropdown","resyncCurrentWallet","addCustomToken","exportHistory","openZarcanumMigration","openMigrateWalletToZarcanum","maxWidth","width","scrollStrategy","ids","tab","hostBindings","OpenWalletModalComponent","notFound","emptyPass","isWrongPassword$","skipWallet","hostVars","Idle","contextMenuService","info","whenNotInteractive","do","stopCountdown","hasAppPass","isCurrentWalletSync","isCurrentWalletLoaded","getHeightAppEvent","height_max","getHeightMaxEvent","bytes","downloaded","bytesToMb","getDownloadedAppEvent","getTotalEvent","getNotLoadedWallet","idle","within","start","stop","restartCountdown","restart","Number","pow","onContextMenu","toUpperCase","show","allContextMenu","x","y","stopPropagation","onContextMenuOnlyCopy","copyText","onlyCopyContextMenu","onContextMenuPasteSelect","pasteSelectContextMenu","loadAssetsWhitelist","getWalletById","assetsInfoWhitelist","w"],"sourceRoot":"webpack:///","x_google_ignoreList":[]} \ No newline at end of file diff --git a/html/styles.css b/html/styles.css index 1cfc65c3..796360be 100644 --- a/html/styles.css +++ b/html/styles.css @@ -885,6 +885,19 @@ body { 100% { transform: rotate(360deg); } +}.migrate-alert .btn-migrate { + background-color: rgba(31, 143, 235, 0.2); + color: #1F8FEB; + font-size: 1.8rem; + line-height: 1.2; + padding: 0.8rem 2rem; + border-radius: 0.8rem; + cursor: pointer; + transition: background-color 0.2s ease; +}.migrate-alert .btn-migrate:hover { + background-color: rgba(31, 143, 235, 0.3137254902); +}.migrate-alert .migration-details { + font-size: 1.6rem; }.modal-overlay { position: fixed; top: 0; @@ -1909,30 +1922,30 @@ app-sidebar .sidebar-footer .synchronization-status .status-container .online { background-color: var(--gray-800); }.wallet .progress-bar .fill { background-color: var(--white-500); -}app-send-details-modal .status .image { +}app-send-details-modal .status .image, app-success-sweep-bare-outs .status .image { max-width: 13rem; max-height: 13rem; width: 100%; height: 100%; -}app-send-details-modal .status .image img { +}app-send-details-modal .status .image img, app-success-sweep-bare-outs .status .image img { width: 100%; height: 100%; -}app-send-details-modal .details .header { +}app-send-details-modal .details .header, app-success-sweep-bare-outs .details .header { min-height: 4rem; max-height: 4rem; background-color: var(--blue-500); -}app-send-details-modal .details-wrapper { +}app-send-details-modal .details-wrapper, app-success-sweep-bare-outs .details-wrapper { max-height: 35rem; background-color: var(--blue-500); scroll-behavior: smooth; -}app-send-details-modal .details-list { +}app-send-details-modal .details-list, app-success-sweep-bare-outs .details-list { width: 100%; -}app-send-details-modal .details-list .item .image { +}app-send-details-modal .details-list .item .image, app-success-sweep-bare-outs .details-list .item .image { max-width: 1.5rem; max-height: 1.5rem; width: 100%; height: 100%; -}app-send-details-modal .details-list .item .image img { +}app-send-details-modal .details-list .item .image img, app-success-sweep-bare-outs .details-list .item .image img { width: 100%; height: 100%; }app-assign-alias .assign-alias-tooltip { @@ -2270,6 +2283,9 @@ app-contracts .container .wrap-table table.contracts-table tbody tr .comment { }.py-0_5 { padding-top: 0.5rem; padding-bottom: 0.5rem; +}.py-0_8 { + padding-top: 0.8rem; + padding-bottom: 0.8rem; }.py-1 { padding-top: 1rem; padding-bottom: 1rem; diff --git a/html/styles.css.map b/html/styles.css.map index 15833bd6..cd0b3856 100644 --- a/html/styles.css.map +++ b/html/styles.css.map @@ -1 +1 @@ -{"version":3,"file":"styles.css","mappings":";;;AAAA,mDAAmD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,cAAc,CAAC,YAAY,CAAC,6BAA6B,YAAY,CAAC,4BAA4B,YAAY,CAAC,iBAAiB,CAAC,YAAY,CAAC,kBAAkB,iBAAiB,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,sBAAsB,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,yDAAyD,CAAC,SAAS,CAAC,mDAAmD,SAAS,CAAC,6EAA6E,UAAU,CAAC,2BAA2B,0BAA0B,CAAC,kCAAkC,mDAAmD,CAAC,iBAAiB,CAAC,SAAS,CAAC,+DAA+D,SAAS,CAAC,kBAAkB,CAAC,qCAAqC,eAAe,CAAC,6CAA6C,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,wBAAwB,cAAc,CAAC,UAAU,CAAC,iBAAiB,CCCrwC;EACI;ACCR,CCHA;EAEI;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EAGA;EAGA;EAGA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EAEA;EACA;EAGA;EACA;EAGA;EACA;ADtBJ,CEzCA;EACI;EACA;EACA;EACA;AF4CJ,CEzCA;;;EAGI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;AF4CJ,CEzCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFI;EACA;EACA;EACA;AF4CJ,CEzCA;;;;;;;;;;;EAWI;AF4CJ,CEzCA;EACI;EACA;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;;;;EAII;AF4CJ,CEzCA;EACI;EACA;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;EACI;AF4CJ,CE1CI;EACI;AF4CR,CExCA;;;;EAII;EACA;EACA;AF2CJ,CExCA;;EAEI;AF2CJ,CExCA;;EAEI;EACA;AF2CJ,CExCA;EACI;AF2CJ,CExCA;EACI;EACA;AF2CJ,CExCA;;EAEI;AF2CJ,CExCA;EACI;AF2CJ,CEzCI;EAGI;AFyCR,CErCA;EACI;AFwCJ,CErCA;;EAEI;AFwCJ,CG/PA;EACI;EACA;EACA;AHkQJ,CG/PA;EACI;EACA;EACA;AHiQJ,CG9PA;EACI;EACA;EACA;AHgQJ,CI/QA;;;;;EAKI;EACA;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EI;EACA;AJiRJ,CKvXA;EACI;EACA;EACA;EACA;AL0XJ,CKvXA;EACI;AL0XJ,CKvXA;EACI;EACA;EACA;EACA;AL0XJ,CKvXA;EACI;AL0XJ,CKtXI;EACI;ALyXR,CKrXA;EACI;EACA;EACA;EACA;ALwXJ,CKtXI;EACI;ALwXR,CKrXI;EACI;ALuXR,CM9ZA;;EAEI;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;AN+ZJ,CM5ZA;EACI;AN+ZJ,CM5ZA;EACI;EACA;EAEA;EACA;AN8ZJ,CM3ZA;EACI;EACA;EACA;EACA;EACA;AN8ZJ,CM5ZI;EACI;EACA;EACA;EACA;EACA;AN8ZR,CM5ZQ;;EAEI;EACA;AN8ZZ,CM1ZI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AN4ZR,COpdA;EACI;EACA;APudJ,COtdI;EACI;EACA;EACA;EACA;EACA;APwdR,COtdQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;APwdZ,CQ7eA;;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ARgfJ,CQ9eI;;EACI;ARifR,CQ9eI;;EACI;EACA;ARifR,CQ3eQ;;;EACI;AR+eZ,CQ5eQ;;;EACI;ARgfZ,CQ5eI;;EACI;AR+eR,CQ5eY;;;;EAGI;AR+ehB,CQ1eI;;EACI;AR6eR,CQ1eY;;;;EAGI;AR6ehB,CQveI;;EACI;EACA;AR0eR,CQxeQ;;EACI;EACA;AR2eZ,CQxeQ;;EACI;EACA;AR2eZ,CQveI;;EACI;EACA;AR0eR,CQxeQ;;EACI;AR2eZ,CQxeQ;;EACI;AR2eZ,CS/jBI;EACI;EACA;EACA;EACA;ATkkBR,CS/jBI;EACI;EACA;EACA;EACA;ATikBR,CS9jBI;EACI;EACA;EACA;EACA;EACA;ATgkBR,CS9jBQ;EACI;EACA;ATgkBZ,CUxlBA;EACI;AV2lBJ,CUzlBI;EACI;EACA;EACA;EACA;EACA;AV2lBR,CUxlBI;EACI;EACA;EACA;EACA;AV0lBR,CUzlBQ;EACI;EACA;AV2lBZ,CUxlBQ;EACI;EACA;EACA;AV0lBZ,CUrlBA;EACI;EACA;EACA;AVwlBJ,CUtlBQ;;EAEI;AVwlBZ,CUrlBQ;;EAEI;EACA;EACA;EACA;EACA;AVulBZ,CUtlBY;;EACI;EACA;EACA;AVylBhB,CW1oBA;EACI;EACA;EACA;AX6oBJ,CW3oBI;EACI;EACA;EACA;EACA;EACA;EACA;AX6oBR,CW1oBI;EACI;EACA;EACA;EACA;EACA;AX4oBR,CWzoBI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AX2oBR,CWzoBQ;EACI;EAaA;AX+nBZ,CW3oBY;EACI;EACA;AX6oBhB,CWzoBgB;EAEI;AX0oBpB,CWroBY;EACI;AXuoBhB,CWnoBQ;EACI;EACA;AXqoBZ,CWloBQ;EACI;EACA;AXooBZ,CWloBY;EACI;EACA;AXooBhB,CWloBgB;EACI;AXooBpB,CWjoBgB;EACI;AXmoBpB,CW9nBQ;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AX+nBZ,CW7nBY;EACI;EACA;AX+nBhB,CW5nBY;EACI;AX8nBhB,CW1nBgB;EACI;AX4nBpB,CWxnBY;EACI;AX0nBhB,CWvnBY;EAEI;AXwnBhB,CWtnBgB;EACI;AXwnBpB,CWnnBgB;EACI;AXqnBpB,CWnnBoB;EAEI;AXonBxB,CWlnBwB;EACI;AXonB5B,CW7mBQ;EACI;EACA;AX+mBZ,CW7mBY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAiBA;EAMA;AX0lBhB,CW/mBgB;EACI;EACA;AXinBpB,CW7mBoB;EACI;AX+mBxB,CW3mBgB;EACI;AX6mBpB,CWzmBgB;EACI;EACA;AX2mBpB,CWvmBgB;EACI;AXymBpB,CWrmBoB;EACI;AXumBxB,CWnmBgB;EACI;AXqmBpB,CWnmBoB;EACI;AXqmBxB,CW/lBQ;;;EAGI;EACA;EACA;AXimBZ,CW9lBQ;EACI;AXgmBZ,CW7lBQ;EACI;AX+lBZ,CW5lBQ;EACI;AX8lBZ,CW5lBY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AX8lBhB,CWxlBQ;EACI;EACA;EACA;EACA;EACA;AX0lBZ,CWxlBY;EACI;AX0lBhB,CWtlBQ;EACI;EACA;EACA;EACA;EACA;AXwlBZ,CWnlBA;EACI;EACA;EACA;EACA;AXslBJ,CWplBI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;AXslBR,CWllBQ;EACI;AXolBZ,CWjlBQ;EACI;AXmlBZ,CW/kBI;EACI;EACA;EACA;EACA;EACA;AXilBR,CW/kBQ;EACI;AXilBZ,CW9kBQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AXglBZ,CW7kBQ;EACI;AX+kBZ,CW3kBY;EAEI;AX4kBhB,CWvkBY;EACI;AXykBhB,CWtkBY;EACI;AXwkBhB,CWlkBA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AXqkBJ,CWnkBI;EACI;EACA;AXqkBR,CWlkBI;EACI;EACA;AXokBR,CWjkBI;EACI;EACA;AXmkBR,CWhkBI;EACI;EACA;EACA;EACA;EACA;AXkkBR,CY36BA;EACI;AZ86BJ,CY56BI;EACI;EACA;AZ86BR,CY16BA;EACI;EACA;EACA;EACA;AZ66BJ,CY36BI;EACI;EACA;AZ66BR,CYz6BI;EACI;AZ26BR,CYx6BI;EACI;AZ06BR,CYv6BI;EACI;AZy6BR,CYt6BI;EACI;AZw6BR,CYp6BI;EACI;AZs6BR,CYn6BI;EACI;AZq6BR,CYl6BI;EACI;AZo6BR,CYj6BI;EACI;AZm6BR,CYh6BI;EACI;AZk6BR,CY/5BI;EACI;AZi6BR,CY95BI;EACI;AZg6BR,CY75BI;EACI;AZ+5BR,CY55BI;EACI;AZ85BR,CY35BI;EACI;AZ65BR,CY15BI;EACI;AZ45BR,CYz5BI;EACI;AZ25BR,CYx5BI;EACI;AZ05BR,CYv5BI;EACI;AZy5BR,CYt5BI;EACI;AZw5BR,CYr5BI;EACI;AZu5BR,CYp5BI;EACI;AZs5BR,CYn5BI;EACI;AZq5BR,CYl5BI;EACI;AZo5BR,CYj5BI;EACI;AZm5BR,CYh5BI;EACI;AZk5BR,CY/4BI;EACI;AZi5BR,CY94BI;EACI;AZg5BR,CY74BI;EACI;AZ+4BR,CY54BI;EACI;AZ84BR,CY34BI;EACI;AZ64BR,CY14BI;EACI;AZ44BR,CYz4BI;EACI;AZ24BR,CYx4BI;EACI;AZ04BR,CYv4BI;EACI;AZy4BR,CYt4BI;EACI;AZw4BR,CYr4BI;EACI;AZu4BR,CYp4BI;EACI;AZs4BR,CYn4BI;EACI;AZq4BR,CYl4BI;EACI;AZo4BR,CYj4BI;EACI;AZm4BR,CYh4BI;EACI;AZk4BR,CY/3BI;EACI;AZi4BR,CY93BI;EACI;AZg4BR,CY53BI;EACI;AZ83BR,CY13BI;EACI;AZ43BR,CYz3BI;EACI;AZ23BR,CYx3BI;EACI;AZ03BR,CYv3BI;EACI;AZy3BR,CYr3BI;EACI;AZu3BR,CYp3BI;EACI;AZs3BR,CYl3BI;EACI;AZo3BR,CavlCA;EACI;EACA;EACA;EACA;EACA;EACA;Ab0lCJ,CavlCA;EACI;IACI;Eb0lCN;EaxlCE;IACI;Eb0lCN;AACF,CczmCA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Ad2mCJ,CcxmCA;EACI;EACA;Ad2mCJ,CczmCI;EACI;EACA;Ad2mCR,CczmCQ;;EAEI;EACA;EACA;EACA;Ad2mCZ,CcvmCI;EACI;EACA;EACA;AdymCR,Ce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ACA;Af2gCpB,CevgCY;EACI;EACA;EACA;Af0gChB,Ce19Ca;EAkdO;EACA;Af2gCpB,Ce99Ca;EA0dL;EACA;AfwgCR,CejgCY;EACI;EACA;AfogChB,CelgCgB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AfogCpB,CehgCoB;EACI;AfkgCxB,CgBx/CI;EACI;EACA;EACA;AhB2/CR,CgB1/CQ;EACI;AhB4/CZ,CgBx/CI;EACI;EACA;AhB0/CR,CgBv/CI;;EAEI;EACA;EACA;AhBy/CR,CgBv/CQ;;EACI;AhB0/CZ,CgBv/CQ;;EACI;EACA;AhB0/CZ,CgBr/CA;EACI;EACA;EACA;AhBw/CJ,CiB3hDA;EACI;EACA;EACA;EACA;EACA;EACA;AjB8hDJ,CiB5hDI;EACI;EACA;EACA;EACA;EAqBA;EACA;EACA;AjB0gDR,CiBtgDA;EACI;IACI;EjBygDN;EiBvgDE;IACI;EjBygDN;AACF,CkBrjDI;EACI;AlBujDR,CkBrjDQ;EACI;AlBujDZ,CkBrjDY;EACI;AlBujDhB,CmB7jDQ;EACI;EACA;AnBgkDZ,CmB9jDY;EACI;EACA;EACA;EACA;EACA;AnBgkDhB,CmB7jDY;EACI;AnB+jDhB,CoB9kDA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ApBilDJ,CoB7kDY;EACI;EACA;EACA;EACA;EACA;ApB+kDhB,CoB7kDgB;EACI;EACA;EACA;ApB+kDpB,CoB1kDQ;EACI;EACA;EACA;EACA;EACA;EACA;ApB4kDZ,CoBzkDQ;EACI;EACA;ApB2kDZ,CoBxkDQ;EACI;EACA;EACA;EACA;EACA;EACA;ApB0kDZ,CoBrkDoB;;EAEI;ApBukDxB,CoB/jDA;EACI;ApBkkDJ,CoB/jDA;EACI;ApBkkDJ,CoB9jDI;EACI;EACA;ApBikDR,CoB/jDQ;EACI;ApBikDZ,CoB/jDY;EACI;ApBikDhB,CqBjpDA;EACI;ArBopDJ,CqBjpDA;EACI;EACA;EACA;EACA;EACA;ArBopDJ,CqBlpDI;EACI;EACA;ArBopDR,CqBlpDQ;;EAEI;EACA;ArBopDZ,CqBlpDY;;EACI;EACA;ArBqpDhB,CqBnpDgB;;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ArBspDpB,CqBjpDQ;EACI;ArBmpDZ,CqBhpDQ;EACI;ArBkpDZ,CqB/oDQ;;EAEI;EACA;ArBipDZ,CqB9oDQ;EACI;EACA;ArBgpDZ,CqB9oDY;EACI;EACA;EACA;EACA;ArBgpDhB,CqB9oDgB;EACI;EACA;EACA;EACA;EACA;ArBgpDpB,CqB9oDoB;EACI;EACA;EACA;ArBgpDxB,CqB5oDgB;EACI;EACA;EACA;EACA;ArB8oDpB,CqB1oDY;EACI;EACA;EACA;EAqBA;EACA;ArBwnDhB,CqBnnDI;EACI;EACA;EACA;ArBqnDR,CqBnnDQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;ArBqnDZ,CqBnnDY;EACI;ArBqnDhB,CqBjnDQ;EACI;EACA;EACA;EACA;ArBmnDZ,CqBhnDQ;EACI;ArBknDZ,CqB/mDQ;EACI;ArBinDZ,CqB9mDQ;EACI;ArBgnDZ,CqB7mDQ;EACI;ArB+mDZ,CqB1mDgB;EACI;ArB4mDpB,CqBvmDgB;EACI;ArBymDpB,CqBpmDgB;EACI;ArBsmDpB,CqB/lDA;EACI;IACI;ErBkmDN;EqBhmDE;IACI;ErBkmDN;AACF,CsBzxDA;EACI;EACA;AtB2xDJ,CsBzxDI;EACI;EAEA;EACA;AtB2xDR,CsBzxDQ;EACI;AtB2xDZ,CsBvxDI;EACI;EACA;EACA;AtByxDR,CsBvxDQ;EAgCI;AtB0vDZ,CsBzxDY;EACI;EACA;EACA;EACA;EACA;AtB2xDhB,CsBzxDgB;EACI;AtB2xDpB,CsBxxDgB;EACI;EACA;EACA;EACA;AtB0xDpB,CsBtxDoB;EACI;AtBwxDxB,CsBnxDoB;EACI;AtBqxDxB,CsB/wDY;EACI;EACA;AtBixDhB,CsB5wDI;EACI;AtB8wDR,CsB5wDQ;EACI;EAEA;EACA;EACA;AtB8wDZ,CsB5wDY;EACI;EACA;EACA;EACA;EACA;EACA;AtB8wDhB,CsB5wDgB;EACI;AtB8wDpB,CsB3wDgB;EACI;AtB6wDpB,CsBzwDY;EACI;AtB2wDhB,CsBrwDA;EACI;EACA;EACA;EACA;EACA;EACA;AtBwwDJ,CsBtwDI;EACI;EACA;EACA;EACA;AtBwwDR,CsBrwDI;EACI;EACA;EACA;EACA;AtBuwDR,CsBrwDQ;;EAEI;EACA;AtBuwDZ,CsBpwDQ;EACI;EACA;EACA;EACA;AtBswDZ,CsBnwDQ;EACI;EACA;AtBqwDZ,CuBv4DA;EACI;EACA;EACA;EACA;AvB04DJ,CuBx4DI;EACI;EACA;EACA;AvB04DR,CuBx4DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AvB04DZ,CuBx4DY;;EAEI;EACA;AvB04DhB,CuBv4DY;EAEI;AvBw4DhB,CuBt4DgB;;;EAEI;AvBy4DpB,CuBr4DY;EACI;AvBu4DhB,CuBp4DY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AvBs4DhB,CuBn4DY;EACI;AvBq4DhB,CuBl4DY;EACI;AvBo4DhB,CuB/3DI;EACI;EACA;EACA;EACA;EACA;EAEA;AvBg4DR,CwBv8DA;EACI;EACA;EACA;EACA;EACA;AxB08DJ,CwBx8DI;EACI;EACA;EACA;AxB08DR,CwBv8DI;EACI;AxBy8DR,CwBv8DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBy8DZ,CwBr8DI;EACI;AxBu8DR,CwBr8DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBu8DZ,CwBn8DI;EACI;AxBq8DR,CwBn8DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBq8DZ,CwBj8DI;EACI;AxBm8DR,CwBj8DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBm8DZ,CwB/7DI;EACI;AxBi8DR,CwB/7DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBi8DZ,CwB77DI;EACI;AxB+7DR,CwB77DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxB+7DZ,CwB37DI;EACI;EACA;AxB67DR,CwB37DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxB67DZ,CwBz7DI;EACI;AxB27DR,CwBz7DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxB27DZ,CwBv7DI;EACI;AxBy7DR,CwBv7DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBy7DZ,CwBn7DI;EACI;EACA;EACA;AxBs7DR,CwBl7DA;EACI;EACA;EACA;EACA;EACA;EACA;AxBq7DJ,CwBl7DA;EACI;EACA;EACA;EACA;EACA;AxBq7DJ,CwBn7DI;EACI;EACA;EACA;AxBq7DR,CwBn7DQ;EACI;AxBq7DZ,CwBn7DY;EACI;AxBq7DhB,CwBj7DQ;EACI;AxBm7DZ,CwBj7DY;EACI;AxBm7DhB,CwB/6DQ;EACI;EACA;AxBi7DZ,CwB76DI;EACI;EACA;EACA;EACA;AxB+6DR,CwB56DI;EACI;AxB86DR,CwB36DI;EACI;AxB66DR,CwB16DI;EACI;AxB46DR,CwBz6DI;EACI;AxB26DR,CwBv6DA;EACI;EACA;EACA;AxB06DJ,CwBz6DI;EACI;EACA;AxB26DR,CwBv6DA;EACI;EACA;EACA;AxB06DJ,CwBz6DI;EACI;EACA;EACA;AxB26DR,CwBv6DA;EACI;EACA;EACA;EACA;AxB06DJ,CwBx6DI;EACI;EACA;AxB06DR,CwBv6DY;EACI;AxBy6DhB,CwBp6DY;EACI;AxBs6DhB,CwBj6DI;EACI;EACA;EACA;AxBm6DR,CwBj6DQ;EACI;EACA;EACA;AxBm6DZ,CwB/5DY;EACI;AxBi6DhB,CwB55DY;EACI;AxB85DhB,CwBz5DI;EACI;EACA;EACA;AxB25DR,CwBz5DQ;EACI;EACA;EACA;AxB25DZ,CwBx5DQ;EACI;EACA;EACA;AxB05DZ,CwBv5DQ;EACI;EACA;EACA;AxBy5DZ,CwBt5DQ;EACI;EACA;EACA;AxBw5DZ,CwBr5DQ;EACI;EACA;EACA;AxBu5DZ,CwBn5DI;EACI;AxBq5DR,CwBn5DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AxBq5DZ,CwBj5DI;EACI;AxBm5DR,CwBj5DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AxBm5DZ,CwB94DA;EACI;EACA;EACA;AxBi5DJ,CwB/4DQ;EACI;AxBi5DZ,CyBtwEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBywEJ,CyBvwEI;EACI;AzBywER,CyBtwEI;EACI;EACA;EACA;EACA;EACA;AzBwwER,CyBtwEQ;EACI;AzBwwEZ,CyBrwEgB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBuwEpB,CyBjwEI;EACI;EACA;EACA;EACA;AzBmwER,CyBhwEI;EACI;EACA;EACA;AzBkwER,CyBhwEQ;EACI;EACA;EACA;EACA;EACA;AzBkwEZ,CyBhwEY;EACI;AzBkwEhB,CyB7vEI;EACI;EACA;EACA;EACA;AzB+vER,CyB5vEI;EACI;EACA;EACA;AzB8vER,CyB5vEQ;EACI;EACA;EACA;EACA;AzB8vEZ,CyB5vEY;EACI;AzB8vEhB,CyB1vEQ;EACI;EACA;EACA;EACA;AzB4vEZ,CyBxvEI;EACI;EACA;EACA;AzB0vER,CyBtvEgB;EACI;AzBwvEpB,CyBlvEI;EAEI;EACA;EACA;AzBmvER,CyB/uEQ;EACI;EACA;AzBivEZ,CyB9uEQ;EACI;EACA;EACA;AzBgvEZ,CyB3uEQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzB6uEZ,CyB1uEQ;EAEI;AzB2uEZ,CyBtuEgB;EACI;AzBwuEpB,CyBluEI;EACI;AzBouER,CyBjuEI;EACI;AzBmuER,CyBhuEI;EACI;AzBkuER,CyB/tEI;EACI;AzBiuER,CyB/tEQ;EACI;AzBiuEZ,C0Bp5EQ;EACI;EACA;EACA;EACA;A1Bu5EZ,C0Br5EY;EACI;EACA;A1Bu5EhB,C0Bj5EQ;EACI;EACA;EACA;A1Bm5EZ,C0Bh5EQ;EACI;EACA;EACA;A1Bk5EZ,C0B/4EQ;EACI;A1Bi5EZ,C0B/4EgB;EACI;EACA;EACA;EACA;A1Bi5EpB,C0B/4EoB;EACI;EACA;A1Bi5ExB,C2Bv7EI;EACI;EACA;EACA;EACA;A3B07ER,C2Bv7EI;EACI;EACA;A3By7ER,C2Bv7EQ;EACI;A3By7EZ,C2Bt7EQ;EACI;EACA;EACA;EACA;EACA;EACA;A3Bw7EZ,C4B78EI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A5Bg9ER,C4B98EQ;EACI;EACA;EACA;EACA;EACA;A5Bg9EZ,C6B79EoB;EACI;EACA;A7Bg+ExB,C6B99EwB;EACI;A7Bg+E5B,C6B99E4B;EACI;A7Bg+EhC,C6B99EgC;EACI;EACA;A7Bg+EpC,C6B79EgC;EACI;EACA;A7B+9EpC,C6B59EgC;EAEI;EACA;A7B69EpC,C6Bz9E4B;EACI;EACA;A7B29EhC,C6Bv9EwB;;EAEI;EACA;EACA;A7By9E5B,C8B9/EoB;EACI;A9BigFxB,C8B//EwB;EACI;EACA;A9BigF5B,C8B9/EwB;EACI;EACA;A9BggF5B,C+B9gFI;EACI;A/BihFR,C+B7gFQ;EACI;A/B+gFZ,C+BzgFoB;EACI;EACA;A/B2gFxB,C+BzgFwB;EACI;A/B2gF5B,C+BngFY;EACI;EACA;A/BqgFhB,C+BngFgB;EACI;A/BqgFpB,C+B9/EgB;EACI;EACA;A/BggFpB,C+B1/EY;EACI;A/B4/EhB,C+Bx/EgB;EACI;EACA;A/B0/EpB,CgC7iFQ;EACI;EACA;AhCgjFZ,CgC9iFY;EACI;EACA;EACA;AhCgjFhB,CgC5iFQ;EACI;EACA;EACA;AhC8iFZ,CiC3jFY;EACI;AjC8jFhB,CiC5jFgB;EACI;EACA;EACA;AjC8jFpB,CiC5jFoB;EACI;EACA;EACA;AjC8jFxB,CiC1jFgB;EACI;EACA;AjC4jFpB,CiCzjFgB;EACI;AjC2jFpB,CiCzjFoB;EACI;EACA;AjC2jFxB,CkCplFY;EACI;AlCulFhB,CkCnlFgB;EACI;EACA;EACA;EACA;AlCqlFpB,CkCnlFoB;EACI;EAAA;EACA;AlCqlFxB,CkC/kFQ;EACI;EACA;EACA;AlCilFZ,CkC/kFY;EACI;EACA;EACA;AlCilFhB,CmC/mFA;EACI;EACA;EACA;EACA;EACA;AnCknFJ,CoCtnFI;EACI;ApCynFR,CoCvnFQ;EACI;EACA;EACA;ApCynFZ,CoCnnFI;EACI;ApCsnFR,CoCpnFQ;EACI;EACA;EACA;ApCsnFZ,CqCpoFoB;EACI;ArCuoFxB,CqC/nFwB;EACI;EACA;EAAA;ArCioF5B,CqC7nF4B;EACI;ArC+nFhC,CqC7nFgC;EACI;ArC+nFpC,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;EACA;EACA;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCvpFA;EACI;AtC0pFJ,CsCrpFA;EACI;AtCwpFJ,CsCrpFA;EACI;AtCwpFJ,CsCrpFA;EACI;AtCwpFJ,CsCrpFA;EACI;AtCwpFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CsCppFA;EACI;AtCupFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CuCjwFA;EACI;EACA;AvCowFJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;EACA;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CwCr7FA;EACI;AxCw7FJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,CyC3kGA;EACI;AzC8kGJ,C","sources":["./node_modules/@angular/cdk/overlay-prebuilt.css","./src/assets/scss/base/_cdk.scss","./src/styles.scss","./src/assets/scss/base/_colors.scss","./src/assets/scss/base/_reset.scss","./src/assets/scss/base/_fonts.scss","./src/assets/scss/base/_typography.scss","./src/assets/scss/base/_scroll.scss","./src/assets/scss/layout/_main.scss","./src/assets/scss/components/_alias.scss","./src/assets/scss/components/_buttons.scss","./src/assets/scss/components/_contextmenu.scss","./src/assets/scss/components/_dropdown.scss","./src/assets/scss/components/_forms.scss","./src/assets/scss/components/_icons.scss","./src/assets/scss/components/_loader.scss","./src/assets/scss/components/_modals.scss","./src/assets/scss/components/_ng-select.scss","./src/assets/scss/components/_ngx-pagination.scss","./src/assets/scss/components/_preloader.scss","./src/assets/scss/components/_progress.scss","./src/assets/scss/components/_seed-phrase.scss","./src/assets/scss/components/_sidebar.scss","./src/assets/scss/components/_status.scss","./src/assets/scss/components/_table.scss","./src/assets/scss/components/_tabs.scss","./src/assets/scss/components/_tooltips.scss","./src/assets/scss/components/_wallet.scss","./src/assets/scss/modals/_send-details.scss","./src/assets/scss/pages/_assign-alias.scss","./src/assets/scss/pages/wallet/tabs/_assets.scss","./src/assets/scss/pages/wallet/tabs/_contracts.scss","./src/assets/scss/pages/wallet/tabs/_history.scss","./src/assets/scss/pages/wallet/tabs/_purchase.scss","./src/assets/scss/pages/wallet/tabs/_receive.scss","./src/assets/scss/pages/wallet/tabs/_send.scss","./src/assets/scss/pages/wallet/tabs/_staking.scss","./src/assets/scss/pages/wallet/_wallet.scss","./src/assets/scss/pages/_auth.scss","./src/assets/scss/pages/_contacts.scss","./src/assets/scss/helpers/_helper-classes.scss","./src/assets/scss/helpers/_margin.scss","./src/assets/scss/helpers/_padding.scss","./src/assets/scss/helpers/_width.scss"],"sourcesContent":[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}",".cdk-dialog-container {\n &:focus {\n outline: none;\n }\n}\n","@import '~@angular/cdk/overlay-prebuilt.css';\n\n@import 'assets/scss/base/index';\n\n@import 'assets/scss/layout/index';\n\n@import 'assets/scss/components/index';\n\n@import 'assets/scss/modals/index';\n\n@import 'assets/scss/pages/index';\n\n@import 'assets/scss/helpers/index';\n",":root {\n // red\n --red-600: rgba(255, 103, 103, 0.75);\n --red-500: #ff6767;\n --red-100: #ffcbcb;\n\n // blue\n --blue-900: #0c0c3a;\n --blue-800: #0c1243;\n --blue-700: #0f2055;\n --blue-500: #11316b;\n --blue-450: #144182;\n --blue-400: rgba(31, 143, 235, 0.3);\n --blue-300: rgba(31, 143, 235, 0.15);\n\n // orange\n --orange-500: #ff6f00;\n\n // gray\n --gray-900: rgba(255, 255, 255, 0.1);\n --gray-800: rgba(255, 255, 255, 0.2);\n --gray-700: rgba(255, 255, 255, 0.3);\n --gray-600: rgba(255, 255, 255, 0.4);\n --gray-500: rgba(255, 255, 255, 0.5);\n --gray-400: rgba(255, 255, 255, 0.75);\n\n // aqua\n --aqua-500: #16d1d6;\n\n // azure\n --azure-600: #1c72b9;\n --azure-500: #1f8feb;\n\n // white\n --white-500: #ffffff;\n\n // black\n --black-300: rgba(0, 0, 0, 0.6);\n\n // amethyst\n --amethyst-500: #9a69f7;\n\n // silver\n --silver-500: #8898b5;\n\n // borders\n --border: 0.2rem solid var(--gray-800);\n --border-not-empty: 0.2rem solid var(--gray-500);\n --border-disabled: 0.2rem solid var(--gray-800);\n --border-error: 0.2rem solid var(--red-600);\n\n // gradient\n --gradietAquaToBlue: radial-gradient(100% 188.88% at 0% 0%, #16d1d6 0%, #274cff 100%);\n\n --gradietLightAmethystToPurpurle: radial-gradient(100% 246.57% at 0% 0%, rgba(163, 102, 255, 0.5) 0%, rgba(96, 31, 255, 0.5) 100%);\n --gradietAmethystToPurpurle: radial-gradient(100% 246.57% at 0% 0%, #a366ff 0%, #601fff 100%);\n\n // shadow\n --shadow-gray: 0px 2.11765px 5.64706px rgba(0, 0, 0, 0.15), 0px 2.11765px 0.705882px rgba(0, 0, 0, 0.06);\n --shadow-black-300: 0 0 1rem var(--black-300);\n\n // chart\n --chartOptionsBackgroundColor: #2b3644;\n --chartOptionsHoverColor: #556576;\n}\n","html {\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n overscroll-behavior: none;\n}\n\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n margin: 0;\n padding: 0;\n -webkit-backface-visibility: hidden;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n font-style: normal;\n}\n\nol,\nul {\n list-style: none;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\ninput {\n outline: none;\n\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px white inset;\n }\n}\n\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n outline: none;\n}\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\ninput {\n line-height: normal;\n}\n\ninput[type='search'] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\n\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\na {\n text-decoration: none;\n\n &:active,\n &:hover,\n &:focus {\n outline: 0;\n }\n}\n\ni {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: 700;\n}\n","@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Regular.ttf);\n font-weight: 400;\n}\n\n@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Medium.ttf);\n font-weight: 500;\n}\n\n@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Semibold.ttf);\n font-weight: 600;\n}\n","html,\ninput,\ntextarea,\nselect,\nbutton {\n color: var(--white-500);\n font-family: SF-Pro-Rounded, sans-serif;\n font-weight: 400;\n}\n\nh1 {\n font-size: 3.6rem;\n line-height: 1.2;\n}\n\nh2 {\n font-size: 2.8rem;\n line-height: 1.2;\n}\n\nh3 {\n font-size: 2rem;\n line-height: 1.2;\n}\n\ndiv,\nspan,\napplet,\nobject,\niframe,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n font-size: 1.8rem;\n line-height: 1.2;\n}\n","::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem;\n}\n\n::-webkit-scrollbar-track {\n background: transparent;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--silver-500);\n background-clip: padding-box;\n border: 0.2rem solid transparent;\n border-radius: 1rem;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--silver-500);\n}\n\nbody {\n &::-webkit-scrollbar-corner {\n background-color: var(--blue-900);\n }\n}\n\n.scrolled-content {\n overflow-y: scroll;\n overflow-x: hidden;\n height: auto;\n margin-right: -2rem;\n\n &::-webkit-scrollbar {\n width: 2rem;\n }\n\n &::-webkit-scrollbar-thumb {\n border: 0.8rem solid transparent;\n }\n}\n","html,\nbody {\n position: fixed;\n overflow: hidden;\n overscroll-behavior: none;\n\n width: 100%;\n min-width: 1000px;\n max-width: 100vw;\n\n height: 100vh;\n min-height: 700px;\n}\n\nbody {\n background: var(--blue-900);\n}\n\napp-root {\n display: flex;\n flex-wrap: nowrap;\n\n width: 100%;\n height: 100%;\n}\n\n.page-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n .toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 40px;\n flex: 0 0 auto;\n\n .left,\n .right {\n display: flex;\n align-items: center;\n }\n }\n\n .page-content {\n width: 100%;\n height: auto;\n display: flex;\n flex-direction: column;\n flex: auto;\n overflow: hidden;\n padding: 2rem;\n border-radius: 0.8rem;\n background-color: var(--blue-700);\n }\n}\n",".alias {\n display: flex;\n align-items: center;\n &.available {\n padding: 0.4rem 1.6rem;\n min-height: 3.2rem;\n background: var(--gradietAquaToBlue);\n border-radius: 0.8rem;\n position: relative;\n\n &:after {\n display: block;\n content: '';\n width: 1.4rem;\n height: 1.4rem;\n overflow: hidden;\n position: absolute;\n right: -0.4rem;\n top: -0.4rem;\n background-image: url('~src/assets/icons/white/crown.svg');\n background-repeat: no-repeat;\n background-size: contain;\n }\n }\n}\n","button,\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--white-500);\n transition: all 0.25s ease;\n border: none;\n outline: none;\n background-color: transparent;\n overflow: hidden;\n text-overflow: ellipsis;\n border-radius: 0.8rem;\n font-size: 1.8rem;\n\n &:not(:disabled):hover {\n cursor: pointer;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n // button size for (primary, outline)\n &.primary,\n &.outline {\n &.small {\n min-height: 4.5rem;\n }\n\n &.big {\n min-height: 5.3rem;\n }\n }\n\n &.primary {\n background-color: var(--azure-500);\n\n &:not(:disabled) {\n &:focus,\n &:hover,\n &.active {\n background-color: var(--azure-600);\n }\n }\n }\n\n &.outline {\n border: 0.2rem solid var(--azure-500);\n\n &:not(:disabled) {\n &:hover,\n &:focus,\n &.active {\n background-color: var(--gray-900);\n }\n }\n }\n\n // button size for circle\n &.btn-icon {\n min-width: 2rem;\n min-height: 2rem;\n\n &.small {\n min-width: 2.8rem;\n min-height: 2.8rem;\n }\n\n &.big {\n min-width: 4rem;\n min-height: 4rem;\n }\n }\n\n &.btn-icon {\n background-color: var(--gray-900);\n transition: background-color 0.2s ease-in-out;\n\n &.circle {\n border-radius: 50%;\n }\n\n &:hover {\n background-color: var(--gray-700);\n }\n }\n}\n",".ngx-contextmenu {\n &--dropdown-menu {\n border: none;\n padding: 0;\n background-color: var(--chartOptionsBackgroundColor);\n box-shadow: var(--shadow-black-300);\n }\n\n li {\n display: block;\n font-size: 1.3rem;\n text-transform: uppercase;\n text-align: center;\n }\n\n button {\n display: block;\n padding: 0.5em 1em;\n color: var(--white-500);\n border-radius: 0;\n width: 100%;\n\n &:hover {\n background-color: var(--chartOptionsHoverColor);\n color: var(--white-500);\n }\n }\n}\n",".dropdown {\n position: relative;\n\n .content-bottom-right {\n position: absolute;\n top: 5rem;\n right: 0;\n width: 19rem;\n z-index: 99;\n }\n\n .item {\n height: 3.9rem;\n display: flex;\n align-items: center;\n padding: 0.5rem;\n &:hover {\n background-color: var(--gray-900);\n cursor: pointer;\n }\n\n .alias {\n width: 100%;\n margin-right: 0.3rem;\n padding: 0.4rem 1rem;\n }\n }\n}\n\n.list {\n border-radius: 0.8rem;\n background-color: var(--blue-500);\n border: var(--border);\n .item {\n &:hover,\n .active {\n background-color: var(--gray-900);\n }\n\n button,\n a {\n display: inline-flex;\n white-space: nowrap;\n justify-content: flex-start;\n border-radius: 0;\n color: white;\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n }\n}\n",".form {\n max-width: 50rem;\n width: 100%;\n border-radius: 0.8rem;\n\n &__card {\n display: flex;\n flex-direction: column;\n padding: 2rem 2rem 0;\n margin-bottom: 2rem;\n border-radius: 8px;\n background-color: var(--blue-500);\n }\n\n &__row {\n display: grid;\n width: 100%;\n grid-template-columns: repeat(2, 1fr);\n justify-content: space-between;\n grid-gap: 20px;\n }\n\n &__field {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n flex-direction: column;\n align-items: flex-start;\n margin-bottom: 2rem;\n width: 100%;\n\n &--input {\n /* If input is not empty */\n &:not(:placeholder-shown):not(.invalid):not(.ng-invalid) {\n /* You need to add a placeholder to your fields. For example: */\n border: var(--border-not-empty);\n }\n\n &:not(:placeholder-shown) {\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n }\n }\n\n /* If input is empty */\n &:placeholder-shown {\n border: var(--border);\n }\n }\n\n label {\n margin-bottom: 0.8rem;\n color: var(--azure-500);\n }\n\n &--row {\n display: flex;\n flex: 0 0 auto;\n\n > div {\n max-width: calc(50% - 1rem);\n width: 100%;\n\n &:first-child {\n margin-right: 1rem;\n }\n\n &:last-child {\n margin-left: 1rem;\n }\n }\n }\n\n &--input,\n &--select {\n border: var(--border);\n border-radius: 0.8rem;\n outline: none;\n padding: 0 1.2rem;\n width: 100%;\n height: 4rem;\n background-color: transparent;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--white-500);\n font-size: 1.8rem;\n line-height: 1.2;\n transition: border 0.2s ease-in-out;\n\n &:disabled {\n border: var(--border-disabled);\n cursor: not-allowed;\n }\n\n &:read-only {\n cursor: default;\n }\n\n &:not(:disabled):not(:read-only) {\n &:hover {\n cursor: pointer;\n }\n }\n\n &::placeholder {\n color: var(--gray-800);\n }\n\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n\n &:not(:disabled):not(:read-only) {\n &:hover {\n border: var(--border-not-empty);\n\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n }\n }\n }\n\n &.textarea {\n width: 100%;\n height: auto;\n\n textarea {\n border: var(--border);\n border-radius: 0.8rem;\n outline: none;\n padding: 1rem;\n width: 100%;\n min-width: 100%;\n height: 100%;\n min-height: 7.5rem;\n max-height: 7.5rem;\n overflow: auto;\n resize: none;\n background-color: transparent;\n color: var(--white-500);\n font-size: 1.8rem;\n line-height: 1.2;\n\n &:disabled {\n border: var(--border-disabled);\n cursor: not-allowed;\n }\n\n &:not(:disabled) {\n &:hover {\n cursor: pointer;\n }\n }\n\n &::placeholder {\n color: var(--gray-800);\n }\n\n /* If input is not empty */\n &:not(:placeholder-shown) {\n /* You need to add a placeholder to your fields. For example: */\n border: var(--border-not-empty);\n }\n\n /* If input is empty */\n &:placeholder-shown {\n border: var(--border);\n }\n\n .ng-touched {\n .ng-invalid {\n border: var(--border-error);\n }\n }\n\n &.invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n }\n }\n\n .error,\n .success,\n .info {\n overflow: hidden;\n width: 100%;\n margin-top: 1rem;\n }\n\n .error {\n color: var(--red-500);\n }\n\n .success {\n color: var(--aqua-500);\n }\n\n &-dropdown {\n position: relative;\n\n .dropdown {\n overflow-y: auto;\n position: absolute;\n top: calc(100% + 1rem);\n left: 0;\n max-width: 100%;\n width: 100%;\n max-height: 15rem;\n border: var(--border);\n }\n }\n }\n\n .details {\n .header {\n padding: 1.2rem 2rem;\n width: 100%;\n max-width: 20rem;\n background-color: var(--blue-500);\n border-radius: 0.8rem 0.8rem 0 0;\n\n &.border-radius-all {\n border-radius: 0.8rem;\n }\n }\n\n .content {\n display: flex;\n flex-direction: column;\n padding: 2rem;\n background-color: var(--blue-500);\n border-radius: 0 0.8rem 0.8rem 0.8rem;\n }\n }\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n min-height: 2.4rem;\n overflow: hidden;\n\n label {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n min-height: 2.4rem;\n line-height: 2.4rem;\n padding-left: 3.6rem;\n color: var(--white-500);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n input[readonly] {\n & + label {\n pointer-events: none;\n }\n\n & + label:before {\n pointer-events: none;\n }\n }\n\n input[type='checkbox'] {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n visibility: hidden;\n\n & + label {\n position: relative;\n }\n\n & + label:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n width: 2.4rem;\n height: 2.4rem;\n transition: all 0.2s ease-in-out;\n background-image: url('~src/assets/icons/white/checkbox.svg');\n background-size: contain;\n background-repeat: no-repeat;\n }\n\n &:not(:disabled) + label:hover:before {\n background-image: url('~src/assets/icons/white/checkbox-hover.svg');\n }\n\n &:checked {\n & + label:before,\n & + label:hover:before {\n background-image: url('~src/assets/icons/white/checkbox-active.svg');\n }\n }\n\n &:disabled {\n & + label {\n cursor: not-allowed;\n }\n\n & + label:before {\n cursor: not-allowed;\n }\n }\n }\n}\n\n.switch {\n display: flex;\n align-items: center;\n border-radius: 1.1rem;\n cursor: pointer;\n padding: 0.2rem;\n width: 3.6rem;\n height: 2.2rem;\n transition: all 0.2s ease-in-out;\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.on {\n justify-content: flex-end;\n background-color: var(--aqua-500);\n }\n\n &.off {\n justify-content: flex-start;\n background-color: var(--gray-800);\n }\n\n .circle {\n border-radius: 50%;\n width: 1.8rem;\n height: 1.8rem;\n background-color: var(--white-500);\n box-shadow: var(--shadow-gray);\n }\n}\n","i {\n display: inline-block;\n\n svg {\n width: 100%;\n height: 100%;\n }\n}\n\n.icon {\n display: inline-flex;\n min-width: 1.8rem;\n min-height: 1.8rem;\n transition: all 0.25s ease;\n\n &.small {\n min-width: 1.4rem;\n min-height: 1.4rem;\n }\n\n // BLUE\n &.question-circle {\n background: center / contain no-repeat url(~src/assets/icons/blue/question-circle.svg);\n }\n\n &.info-circle {\n background: center / contain no-repeat url(~src/assets/icons/blue/info-circle.svg);\n }\n\n &.purchase-arrow-down {\n background: center / contain no-repeat url(~src/assets/icons/blue/purchase-arrow-down.svg);\n }\n\n &.purchase-arrow-up {\n background: center / contain no-repeat url(~src/assets/icons/blue/purchase-arrow-up.svg);\n }\n\n // WHITE\n &.arrow-down-square {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-down-square.svg);\n }\n\n &.swap {\n background: center / contain no-repeat url(~src/assets/icons/white/swap_icon.svg);\n }\n\n &.add {\n background: center / contain no-repeat url(~src/assets/icons/white/add.svg);\n }\n\n &.regenerate {\n background: center / contain no-repeat url(~src/assets/icons/white/regenerate.svg);\n }\n\n &.balance-icon {\n background: center / contain no-repeat url(~src/assets/icons/white/balance_icon.svg);\n }\n\n &.info-icon {\n background: center / contain no-repeat url(~src/assets/icons/white/info_icon.svg);\n }\n\n &.arrow-left-stroke {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-left-stroke.svg);\n }\n\n &.arrow-left-slider {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-left-slider.svg);\n }\n\n &.arrow-right-stroke {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-right-stroke.svg);\n }\n\n &.arrow-right-slider {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-right-slider.svg);\n }\n\n &.arrow-up-square {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-up-square.svg);\n }\n\n &.close {\n background: center / contain no-repeat url(~src/assets/icons/white/close.svg);\n }\n\n &.close-square {\n background: center / contain no-repeat url(~src/assets/icons/white/close-square.svg);\n }\n\n &.check-shield {\n background: center / contain no-repeat url(~src/assets/icons/white/check-shield.svg);\n }\n\n &.contacts {\n background: center / contain no-repeat url(~src/assets/icons/white/contacts.svg);\n }\n\n &.copy {\n background: center / contain no-repeat url(~src/assets/icons/white/copy.svg);\n }\n\n &.check {\n background: center / contain no-repeat url(~src/assets/icons/white/check.svg);\n }\n\n &.check-circle {\n background: center / contain no-repeat url(~src/assets/icons/white/check-circle.svg);\n }\n\n &.delete {\n background: center / contain no-repeat url(~src/assets/icons/white/delete.svg);\n }\n\n &.options-vertical {\n background: center / contain no-repeat url(~src/assets/icons/white/options-vertical.svg);\n }\n\n &.temp {\n background: center / contain no-repeat url(~src/assets/icons/white/temp.svg);\n }\n\n &.document {\n background: center / contain no-repeat url(~src/assets/icons/white/document.svg);\n }\n\n &.dots {\n background: center / contain no-repeat url(~src/assets/icons/white/dots.svg);\n }\n\n &.dropdown-arrow-down {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-down.svg);\n }\n\n &.dropdown-arrow-left {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-left.svg);\n }\n\n &.dropdown-arrow-right {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-right.svg);\n }\n\n &.dropdown-arrow-up {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-up.svg);\n }\n\n &.edit-square {\n background: center / contain no-repeat url(~src/assets/icons/white/edit-square.svg);\n }\n\n &.export {\n background: center / contain no-repeat url(~src/assets/icons/white/export.svg);\n }\n\n &.logout {\n background: center / contain no-repeat url(~src/assets/icons/white/logout.svg);\n }\n\n &.plus {\n background: center / contain no-repeat url(~src/assets/icons/white/plus.svg);\n }\n\n &.settings {\n background: center / contain no-repeat url(~src/assets/icons/white/settings.svg);\n }\n\n &.staking {\n background: center / contain no-repeat url(~src/assets/icons/white/staking.svg);\n }\n\n &.time-circle {\n background: center / contain no-repeat url(~src/assets/icons/white/time-circle.svg);\n }\n\n &.wallet-options {\n background: center / contain no-repeat url(~src/assets/icons/white/wallet-options.svg);\n }\n\n &.update {\n background: center / contain no-repeat url(~src/assets/icons/white/update.svg);\n }\n\n &.lock-transaction {\n background: center / contain no-repeat url(~src/assets/icons/white/lock-transaction.svg);\n }\n\n &.unlock-transaction {\n background: center / contain no-repeat url(~src/assets/icons/white/unlock-transaction.svg);\n }\n\n &.modal-info {\n background: center / contain no-repeat url(~src/assets/icons/white/modal-info.svg);\n }\n\n // orange\n &.time-orange {\n background: center / contain no-repeat url(~src/assets/icons/orange/time.svg);\n }\n\n // red\n &.unsecured {\n background: center / contain no-repeat url(~src/assets/icons/red/unsecured.svg);\n }\n\n &.new {\n background: center / contain no-repeat url(~src/assets/icons/red/new.svg);\n }\n\n &.alert {\n background: center / contain no-repeat url(~src/assets/icons/red/alert.svg);\n }\n\n &.error {\n background: center / contain no-repeat url(~src/assets/icons/red/modal-alert.svg);\n }\n\n // aqua\n &.secured {\n background: center / contain no-repeat url(~src/assets/icons/aqua/secured.svg);\n }\n\n &.success {\n background: center / contain no-repeat url(~src/assets/icons/aqua/modal-success.svg);\n }\n\n // gray\n &.fire {\n background: center / contain no-repeat url(~src/assets/icons/gray/fire_ico.svg);\n }\n}\n",".loader {\n border: 2rem solid var(--azure-500);\n border-top: 2rem solid transparent;\n border-radius: 50%;\n min-width: 13rem;\n min-height: 13rem;\n animation: spin 2s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n",".modal-overlay {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--black-300);\n padding: 2rem;\n z-index: 100;\n}\n\n.modal {\n position: relative;\n overflow: hidden;\n\n .message-container {\n overflow: hidden;\n text-overflow: ellipsis;\n\n .title,\n .message {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-wrap: break-word;\n }\n }\n\n button.close {\n position: absolute;\n top: 0.8rem;\n right: 0.8rem;\n }\n}\n","@mixin rtl {\n @at-root [dir='rtl'] #{&} {\n @content;\n }\n}\n\n$ng-select-highlight: var(--gray-900) !default;\n$ng-select-primary-text: var(--white-500) !important;\n$ng-select-disabled-text: var(--white-500) !default;\n$ng-select-border: var(--gray-500) !default;\n$ng-select-border-radius: 0.8rem !default;\n$ng-select-bg: var(--blue-500) !default;\n$ng-select-selected: $ng-select-highlight !default;\n$ng-select-selected-text: $ng-select-primary-text !default;\n\n$ng-select-marked: $ng-select-highlight !default;\n$ng-select-marked-text: $ng-select-primary-text !default;\n\n$ng-select-box-shadow: none;\n$ng-select-placeholder: var(--gray-700) !default;\n$ng-select-height: 4rem !default;\n$ng-select-value-padding-left: 1rem !default;\n$ng-select-value-font-size: 1.8rem !default;\n$ng-select-value-text: $ng-select-primary-text !default;\n\n$ng-select-dropdown-bg: $ng-select-bg !default;\n$ng-select-dropdown-border: $ng-select-border !default;\n$ng-select-dropdown-optgroup-text: var(--white-500) !default;\n$ng-select-dropdown-optgroup-marked: $ng-select-dropdown-optgroup-text !default;\n$ng-select-dropdown-option-bg: $ng-select-dropdown-bg !default;\n$ng-select-dropdown-option-text: var(--white-500) !default;\n$ng-select-dropdown-option-disabled: $ng-select-primary-text !default;\n\n$ng-select-input-text: var(--white-500) !default;\n\n$circle-border: 0.2rem solid white !default;\n$circle-background: white !default;\n\n.ng-select {\n width: 100%;\n\n &.ng-select-opened {\n > .ng-select-container {\n background: $ng-select-bg;\n border-color: $ng-select-border;\n\n &:hover {\n box-shadow: none;\n }\n\n .ng-arrow {\n display: flex !important;\n align-items: center;\n justify-content: center;\n min-width: 1.8rem;\n min-height: 1.8rem;\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-up.svg);\n }\n }\n\n &.ng-select-top {\n > .ng-select-container {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n }\n\n &.ng-select-right {\n > .ng-select-container {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n &.ng-select-bottom {\n > .ng-select-container {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n &.ng-select-left {\n > .ng-select-container {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n }\n\n &.ng-select-focused {\n &:not(.ng-select-opened) > .ng-select-container {\n border-color: $ng-select-border;\n box-shadow: $ng-select-box-shadow;\n }\n }\n\n &.ng-select-disabled {\n cursor: not-allowed !important;\n\n > .ng-select-container {\n cursor: not-allowed !important;\n\n &:hover {\n box-shadow: none;\n border: 0.2rem solid $ng-select-bg;\n }\n }\n }\n\n .ng-has-value .ng-placeholder {\n display: none;\n }\n\n .ng-select-container {\n align-items: center;\n color: $ng-select-primary-text;\n background-color: $ng-select-bg;\n border-radius: $ng-select-border-radius;\n border: 0.2rem solid $ng-select-bg;\n min-height: $ng-select-height;\n transition: border 0.2s ease-in-out;\n cursor: pointer !important;\n\n // &.ng-has-value show border if select has value\n &:hover {\n box-shadow: none;\n border: 0.2rem solid $ng-select-border;\n }\n\n .ng-value-container {\n align-items: center;\n padding-left: $ng-select-value-padding-left;\n @include rtl {\n padding-right: $ng-select-value-padding-left;\n padding-left: 0;\n }\n\n .ng-placeholder {\n color: $ng-select-placeholder;\n }\n }\n }\n\n &.ng-select-single {\n .ng-select-container {\n height: $ng-select-height;\n\n .ng-value-container {\n .ng-input {\n top: 0.8rem;\n left: 0;\n padding-left: $ng-select-value-padding-left;\n padding-right: 5rem;\n\n > input {\n color: var(--white-500);\n font-size: 1.8rem;\n }\n\n @include rtl {\n padding-right: $ng-select-value-padding-left;\n padding-left: 5rem;\n }\n }\n }\n }\n }\n\n &.ng-select-multiple {\n &.ng-select-disabled {\n cursor: not-allowed;\n\n > .ng-select-container .ng-value-container .ng-value {\n background-color: $ng-select-disabled-text;\n border: 0.2rem solid $ng-select-border;\n\n .ng-value-label {\n padding: 0 0.5rem;\n }\n }\n }\n\n .ng-select-container {\n .ng-value-container {\n padding-top: 0.5rem;\n padding-left: 0.7rem;\n @include rtl {\n padding-right: 0.7rem;\n padding-left: 0;\n }\n\n .ng-value {\n font-size: $ng-select-value-font-size;\n margin-bottom: 0.5rem;\n color: $ng-select-value-text;\n background-color: $ng-select-selected;\n border-radius: 0.2rem;\n margin-right: 0.5rem;\n @include rtl {\n margin-right: 0;\n margin-left: 0.5rem;\n }\n\n &.ng-value-disabled {\n background-color: $ng-select-disabled-text;\n\n .ng-value-label {\n padding-left: 0.5rem;\n @include rtl {\n padding-left: 0;\n padding-right: 0.5rem;\n }\n }\n }\n\n .ng-value-label {\n display: inline-block;\n padding: 0.1rem 0.5rem;\n }\n\n .ng-value-icon {\n display: inline-block;\n padding: 0.1rem 0.5rem;\n\n &:hover {\n background-color: $ng-select-selected, 5;\n }\n\n &.left {\n border-right: 0.15rem solid $ng-select-selected;\n @include rtl {\n border-left: 0.15rem solid $ng-select-selected;\n border-right: none;\n }\n }\n\n &.right {\n border-left: 0.15rem solid $ng-select-selected;\n @include rtl {\n border-left: 0;\n border-right: 0.15rem solid $ng-select-selected;\n }\n }\n }\n }\n\n .ng-input {\n padding: 0 0 0.3rem 0.3rem;\n @include rtl {\n padding: 0 0.3rem 0.3rem 0;\n }\n\n > input {\n color: $ng-select-input-text;\n font-size: 1.8rem;\n }\n }\n\n .ng-placeholder {\n top: 0.8rem;\n padding-bottom: 0.5rem;\n padding-left: 0.3rem;\n @include rtl {\n padding-right: 0.3rem;\n padding-left: 0;\n }\n }\n }\n }\n }\n\n .ng-clear-wrapper {\n color: $ng-select-border;\n\n &:hover .ng-clear {\n color: #d0021b;\n }\n }\n\n .ng-spinner-zone {\n padding: 0.5rem 0.5rem 0 0;\n\n @include rtl {\n padding: 0.5rem 0 0 0.5rem;\n }\n }\n\n .ng-arrow-wrapper {\n width: 2.5rem;\n padding-right: 0.5rem;\n @include rtl {\n padding-left: 0.5rem;\n padding-right: 0;\n }\n\n &:hover {\n .ng-arrow {\n border-top-color: $ng-select-border;\n }\n }\n\n .ng-arrow {\n display: flex !important;\n align-items: center;\n justify-content: center;\n min-width: 1.8rem;\n min-height: 1.8rem;\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-down.svg);\n }\n }\n\n &.invalid,\n &.ng-touched.ng-invalid {\n > .ng-select-container,\n .ng-dropdown-panel {\n border: var(--border-error);\n }\n }\n}\n\n.ng-dropdown-panel {\n background-color: $ng-select-dropdown-bg;\n border: 0.2rem solid $ng-select-dropdown-border;\n box-shadow: none;\n left: 0;\n\n &.ng-select-top {\n bottom: 100%;\n border-top-right-radius: $ng-select-border-radius;\n border-top-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-right-radius: $ng-select-border-radius;\n border-top-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-right {\n left: 100%;\n top: 0;\n border-top-right-radius: $ng-select-border-radius;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-right-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-bottom {\n top: 100%;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-top-color: $ng-select-border;\n margin-top: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:last-child {\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-left {\n left: -100%;\n top: 0;\n border-top-left-radius: $ng-select-border-radius;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n .ng-dropdown-header {\n border-bottom: 0.15rem solid $ng-select-border;\n padding: 0.5rem 0.7rem;\n }\n\n .ng-dropdown-footer {\n border-top: 0.15rem solid $ng-select-border;\n padding: 0.5rem 0.7rem;\n }\n\n .ng-dropdown-panel-items {\n .ng-optgroup {\n user-select: none;\n padding: 0.8rem 1rem;\n font-weight: 500;\n color: $ng-select-dropdown-optgroup-text;\n cursor: pointer;\n\n &.ng-option-disabled {\n cursor: not-allowed;\n }\n\n &.ng-option-marked {\n background-color: $ng-select-marked;\n }\n\n &.ng-option-selected,\n &.ng-option-selected.ng-option-marked {\n color: $ng-select-dropdown-optgroup-marked;\n background-color: $ng-select-selected;\n font-weight: 600;\n }\n }\n\n .ng-option {\n background-color: $ng-select-dropdown-option-bg;\n color: $ng-select-dropdown-option-text;\n padding: 0.8rem 1rem;\n\n &.ng-option-selected,\n &.ng-option-selected.ng-option-marked {\n color: $ng-select-selected-text;\n background-color: $ng-select-selected;\n\n .ng-option-label {\n font-weight: 600;\n }\n }\n\n &.ng-option-marked {\n background-color: $ng-select-marked;\n color: $ng-select-marked-text;\n }\n\n &.ng-option-disabled {\n color: $ng-select-dropdown-option-disabled;\n }\n\n &.ng-option-child {\n padding-left: 2.2rem;\n @include rtl {\n padding-right: 2.2rem;\n padding-left: 0;\n }\n }\n\n .ng-tag-label {\n font-size: 80%;\n font-weight: 400;\n padding-right: 0.5rem;\n @include rtl {\n padding-left: 0.5rem;\n padding-right: 0;\n }\n }\n }\n }\n\n @include rtl {\n direction: rtl;\n text-align: right;\n }\n}\n\n.ng-select {\n &.with-circle {\n .ng-dropdown-panel {\n .ng-option {\n position: relative;\n padding: 0.8rem 3rem 0.8rem 0.8rem;\n\n &:after {\n position: absolute;\n top: 50%;\n right: 1rem;\n transform: translateY(-50%);\n display: block;\n content: '';\n width: 1.8rem;\n height: 1.8rem;\n background-image: url('~src/assets/icons/white/radio.svg');\n background-size: contain;\n background-repeat: no-repeat;\n }\n\n &.ng-option-selected {\n &:after {\n background-image: url('~src/assets/icons/white/radio-active.svg');\n }\n }\n }\n }\n }\n}\n",".ngx-pagination {\n a {\n min-width: 29px;\n cursor: pointer;\n color: var(--white-500) !important;\n &:hover {\n background: transparent !important;\n }\n }\n\n .current {\n background: transparent !important;\n color: var(--azure-500) !important;\n }\n\n .pagination-next,\n .pagination-previous {\n background-color: var(--gray-900);\n transition: background-color 0.2s ease-in-out;\n border-radius: 999px;\n\n &:hover {\n background-color: var(--gray-700);\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n}\n\n.custom-pagination {\n display: flex;\n align-items: center;\n min-height: 2.8rem;\n}\n",".preloader {\n align-self: center;\n color: white;\n font-size: 2rem;\n margin: 0 auto;\n text-align: center;\n width: 50%;\n\n .loading-bar {\n display: block;\n animation: move 5s linear infinite;\n background-color: var(--azure-500);\n background-image: -webkit-gradient(\n linear,\n 0 0,\n 100% 100%,\n color-stop(0.125, rgba(0, 0, 0, 0.15)),\n color-stop(0.125, transparent),\n color-stop(0.25, transparent),\n color-stop(0.25, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, transparent),\n color-stop(0.5, transparent),\n color-stop(0.5, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, transparent),\n color-stop(0.75, transparent),\n color-stop(0.75, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, transparent),\n to(transparent)\n ),\n -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 10rem 10rem;\n width: 100%;\n height: 1rem;\n }\n}\n\n@keyframes move {\n 0% {\n background-position: 100% -10rem;\n }\n 100% {\n background-position: 100% 10rem;\n }\n}\n","app-progress-container {\n .progress-bar-container {\n color: var(--white-500);\n\n .progress-bar {\n background-color: var(--blue-300);\n\n .progress-bar-full {\n background-color: var(--azure-500);\n }\n }\n }\n}\n",".seed-phrase {\n .content {\n .item {\n border: var(--border);\n background-color: var(--gray-900);\n\n .number {\n width: 1.8rem;\n height: 1.8rem;\n border-radius: 50%;\n font-size: 1rem;\n background-color: var(--gray-600);\n }\n\n .word {\n white-space: nowrap;\n }\n }\n }\n}\n","app-sidebar {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n padding: 2rem 2rem 0 2rem;\n max-width: 23rem;\n width: 100%;\n height: 100%;\n background-color: var(--blue-700);\n\n .sidebar {\n &-header {\n .logo {\n margin: 0 auto;\n max-width: 14rem;\n max-height: 4.8rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n }\n\n &-content {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n\n &-nav {\n min-height: 21rem;\n max-height: 25rem;\n }\n\n &-footer {\n display: flex;\n justify-items: center;\n align-items: center;\n width: 100%;\n min-height: 6rem;\n overflow: hidden;\n\n // centered status Online, Offline\n .synchronization-status {\n .status-container {\n .offline,\n .online {\n justify-content: center;\n }\n }\n }\n }\n }\n}\n\n.cdk-drag-placeholder {\n opacity: 0.3;\n}\n\n.cdk-drag-animating {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-preview {\n &.wallet {\n color: var(--white-500);\n background: var(--blue-500);\n\n &.price {\n color: var(--gray-800);\n\n .percent {\n color: var(--gray-800);\n }\n }\n }\n}\n","app-synchronization-status {\n width: 100%;\n}\n\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n color: var(--white-500);\n width: 100%;\n\n .status-container {\n position: relative;\n width: 100%;\n\n .offline,\n .online {\n display: flex;\n width: 100%;\n\n span {\n position: relative;\n padding-left: 2.2rem;\n\n &:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n }\n }\n }\n\n .offline > span:before {\n background-color: var(--red-500);\n }\n\n .online > span:before {\n background-color: var(--aqua-500);\n }\n\n .syncing,\n .loading {\n font-size: 1.4rem;\n line-height: 1.2;\n }\n\n .progress-bar-container {\n width: 100%;\n height: 0.6rem;\n\n .syncing {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin-top: 0.4rem;\n\n .progress-bar {\n border-radius: 0.2rem;\n height: 0.6rem;\n width: 100%;\n overflow: hidden;\n background-color: var(--gray-900);\n\n .fill {\n border-radius: 0.2rem;\n height: 100%;\n background-color: var(--aqua-500);\n }\n }\n\n .progress-percent {\n color: var(--aqua-500);\n font-size: 1.4rem;\n line-height: 1.2;\n padding-left: 1rem;\n }\n }\n\n .loading {\n background-color: var(--aqua-500);\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(\n linear,\n 0 0,\n 100% 100%,\n color-stop(0.125, rgba(0, 0, 0, 0.15)),\n color-stop(0.125, transparent),\n color-stop(0.25, transparent),\n color-stop(0.25, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, transparent),\n color-stop(0.5, transparent),\n color-stop(0.5, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, transparent),\n color-stop(0.75, transparent),\n color-stop(0.75, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, transparent),\n to(transparent)\n ),\n -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%;\n }\n }\n }\n\n .update-container {\n display: flex;\n align-items: center;\n text-align: right;\n\n .update-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-items: center;\n font-size: 1.4rem;\n line-height: 1.2;\n text-align: left;\n\n &.time {\n font-size: 1.1rem;\n }\n }\n\n .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem;\n }\n\n .standard {\n color: var(--aqua-500);\n }\n\n .important {\n color: var(--orange-500);\n }\n\n .critical {\n color: var(--red-500);\n }\n\n .time-orange {\n color: var(--orange-500);\n }\n\n .icon {\n &.standard {\n .st0 {\n fill: var(--aqua-500);\n }\n }\n\n &.important {\n .st0 {\n fill: var(--orange-500);\n }\n }\n\n &.critical {\n .st0 {\n fill: var(--red-500);\n }\n }\n }\n }\n}\n\n@keyframes move {\n 0% {\n background-position: 100% -7rem;\n }\n 100% {\n background-position: 100% 7rem;\n }\n}\n","table {\n width: 100%;\n table-layout: fixed;\n\n .row-divider {\n height: 1rem;\n -webkit-transition: 0.2s height linear, 0s font-size;\n transition: 0.2s height linear, 0s font-size;\n transition-delay: 0s, 0.2s;\n\n &.hide {\n height: 0;\n }\n }\n\n thead {\n text-align: left;\n border-radius: 0.8rem;\n overflow: auto;\n\n tr {\n th {\n background-color: var(--blue-700);\n z-index: 5;\n max-width: 10rem;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .bg {\n background-color: var(--blue-400);\n }\n\n .title {\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 2rem;\n width: 100%;\n }\n\n &:first-child {\n .title {\n border-radius: 0.8rem 0 0 0.8rem;\n }\n }\n\n &:last-child {\n .title {\n border-radius: 0 0.8rem 0.8rem 0;\n }\n }\n }\n\n /** Sticky header */\n th {\n position: sticky;\n top: 0;\n }\n }\n }\n\n tbody {\n text-align: left;\n\n tr {\n background-color: var(--blue-300);\n -webkit-transition: 0.5s height linear, 0s font-size;\n transition: 0.5s height linear, 0s font-size;\n transition-delay: 0s, 0.5s;\n height: auto;\n\n td {\n padding: 2rem;\n vertical-align: middle;\n white-space: nowrap;\n max-width: 10rem;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:first-child {\n border-radius: 0.8rem 0 0 0.8rem;\n }\n\n &:last-child {\n border-radius: 0 0.8rem 0.8rem 0;\n }\n }\n\n &:not(.details) {\n cursor: pointer;\n }\n }\n }\n}\n\n.table-info {\n display: flex;\n flex-direction: column;\n width: 100%;\n border: var(--border);\n border-radius: 0.8rem;\n overflow: hidden;\n\n .separator {\n border: none;\n height: 2px;\n color: var(--gray-800); /* old IE */\n background-color: var(--gray-800); /* Modern Browsers */\n }\n\n .row {\n display: flex;\n flex-wrap: nowrap;\n width: 100%;\n min-height: 6rem;\n\n .label,\n .text {\n overflow: hidden;\n padding: 2rem;\n }\n\n .label {\n color: var(--azure-500);\n background: var(--blue-500);\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .text {\n width: 100%;\n word-break: break-word;\n }\n }\n}\n",".tabs {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n overflow: hidden;\n\n .tabs-header {\n display: flex;\n justify-content: space-between;\n min-height: 5.8rem;\n\n .tab-header {\n background-color: var(--blue-800);\n border-radius: 0.8rem 0.8rem 0 0;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n min-height: 5.8rem;\n flex: 1 1 auto;\n transition: background-color 0.25s ease-in-out;\n\n i,\n span {\n opacity: 0.75;\n transition: opacity 0.25s ease-in-out;\n }\n\n &.active,\n &:hover:not(.active):not(.disabled) {\n background-color: var(--blue-700);\n\n i,\n span {\n opacity: 1;\n }\n }\n\n &.hide {\n display: none;\n }\n\n .indicator {\n margin-left: 0.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 2rem;\n font-size: 1.2rem;\n line-height: 1.4rem;\n min-width: 2.4rem;\n height: 1.6rem;\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n &:not(:last-child) {\n margin-right: 0.5rem;\n }\n }\n }\n\n .tabs-content {\n display: flex;\n flex: auto;\n overflow: hidden;\n border-radius: 0 0 0.8rem 0.8rem;\n background-color: var(--blue-700);\n\n padding: 2rem;\n }\n}\n",".table-tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 0.8rem;\n background: var(--blue-450);\n color: var(--white-500);\n\n .tooltip-inner {\n font-size: 1.4rem;\n line-height: 1.2;\n white-space: pre-wrap;\n }\n\n &.ng-tooltip-top {\n margin-top: -1rem;\n\n &:after {\n content: '';\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n position: absolute;\n bottom: -0.5rem;\n left: calc(50% - 0.5rem);\n }\n }\n\n .ng-tooltip-bottom-left {\n margin-top: 1rem;\n\n &::before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: 3rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background-color: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-top-left {\n margin-top: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: -0.5rem;\n left: 1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-top-right {\n margin-top: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: -0.5rem;\n right: 0.7rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom {\n margin-top: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: calc(50% - 0.5rem);\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom-left {\n margin-top: 1rem;\n\n &::before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: 3rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background-color: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom-right {\n position: relative;\n margin-top: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: -0.5rem;\n right: 0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-left {\n margin-left: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n top: calc(50% - 0.5rem);\n right: -0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-right {\n margin-left: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: calc(50% - 0.5rem);\n left: -0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n}\n\n.table-tooltip-dimensions {\n .tooltip-inner {\n overflow: auto;\n max-width: 20rem;\n max-height: 10rem;\n }\n}\n\n.tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 0.6rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n font-size: 1.2rem;\n}\n\n.balance-tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 1rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n\n .tooltip-inner {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem;\n\n .available {\n margin-bottom: 0.7rem;\n\n b {\n font-weight: 600;\n }\n }\n\n .locked {\n margin-bottom: 0.7rem;\n\n b {\n font-weight: 600;\n }\n }\n\n .link {\n cursor: pointer;\n color: var(--azure-500);\n }\n }\n\n .balance-scroll-list {\n display: flex;\n flex-direction: column;\n max-height: 20rem;\n overflow-y: auto;\n }\n\n &.ng-tooltip-top {\n margin-top: -1rem;\n }\n\n &.ng-tooltip-bottom {\n margin-top: 1rem;\n }\n\n &.ng-tooltip-left {\n margin-left: -1rem;\n }\n\n &.ng-tooltip-right {\n margin-left: 1rem;\n }\n}\n\n.account-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n word-break: break-word;\n max-width: 18rem;\n }\n}\n\n.comment-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n word-break: break-word;\n max-width: 50rem;\n max-height: 25rem;\n }\n}\n\n.update-tooltip {\n z-index: 999;\n padding: 1rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n\n &.important {\n background: var(--red-500);\n color: var(--white-500);\n\n &.ng-tooltip-left-bottom {\n &:after {\n border-color: transparent transparent var(--red-500) var(--red-500);\n }\n }\n\n &.ng-tooltip-right-bottom {\n &:before {\n border-color: transparent var(--red-500) var(--red-500) transparent;\n }\n }\n }\n\n &.critical {\n padding: 2.5rem;\n background: var(--red-500);\n color: var(--white-500);\n\n .tooltip-inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n &.ng-tooltip-left-bottom {\n &:after {\n border-color: transparent transparent var(--red-500) var(--red-500);\n }\n }\n\n &.ng-tooltip-right-bottom {\n &:before {\n border-color: transparent var(--red-500) var(--red-500) transparent;\n }\n }\n }\n\n .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.2;\n white-space: pre-wrap;\n\n .standard-update {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--azure-500);\n }\n\n .important-update {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--orange-500);\n }\n\n .critical-update {\n font-size: 1.5rem;\n line-height: 1.2;\n text-align: center;\n }\n\n .wrong-time {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--orange-500);\n }\n\n .icon {\n margin: 1.5rem 0;\n width: 5rem;\n height: 5rem;\n }\n }\n\n &.ng-tooltip-left-bottom {\n margin-left: -1.5rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: 0.6rem;\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid;\n border-color: transparent transparent var(--blue-450) var(--blue-450);\n }\n }\n\n &.ng-tooltip-right-bottom {\n margin-left: 1.5rem;\n\n &:before {\n content: '';\n position: absolute;\n bottom: 0.6rem;\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid;\n border-color: transparent var(--blue-450) var(--blue-450) transparent;\n }\n }\n}\n\n.update-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n .icon {\n background: center / contain no-repeat url(~src/assets/icons/red/update-alert.svg);\n }\n }\n}\n",".wallet {\n border-radius: 0.8rem;\n margin-bottom: 1rem;\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: 19rem;\n min-width: 19rem;\n width: 100%;\n padding: 1.2rem;\n background-color: var(--blue-500);\n border: 0.2rem solid var(--blue-500);\n cursor: pointer;\n\n .content {\n z-index: 10;\n }\n\n .header {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.8rem;\n\n .left {\n overflow: hidden;\n\n .name {\n .indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n width: 1.8rem;\n height: 1.8rem;\n padding: 0.5rem;\n margin-right: 0.8rem;\n font-size: 1.2rem;\n line-height: 1;\n background-color: var(--white-500);\n color: var(--azure-500);\n }\n }\n }\n }\n\n .balance {\n display: flex;\n align-items: center;\n font-weight: 600;\n margin-bottom: 0.5rem;\n }\n\n .price {\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.2;\n\n .percent {\n font-size: 1.4rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--aqua-500);\n margin-left: 0.7rem;\n\n &.red {\n color: var(--red-500);\n }\n }\n }\n\n .staking {\n margin-top: 0.8rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .account-synchronization {\n display: flex;\n align-items: center;\n width: 100%;\n\n .progress-bar {\n border-radius: 1rem;\n flex: 1 0 auto;\n height: 0.4rem;\n overflow: hidden;\n\n .fill {\n height: 100%;\n }\n }\n\n .progress-percent {\n flex: 0 0 auto;\n font-size: 1.4rem;\n line-height: 1.2;\n padding-left: 1rem;\n }\n }\n\n &.active {\n border: none;\n padding: 1.35rem;\n background: var(--gradietAquaToBlue);\n\n .price {\n .percent {\n &.red {\n color: var(--red-100);\n }\n }\n }\n }\n\n &.auditable,\n &.watch-only {\n border-width: 0;\n padding: 1.35rem;\n background: var(--gradietLightAmethystToPurpurle);\n }\n\n &.auditable {\n &:hover:not(.active) {\n padding: 1.2rem;\n border-width: 0.15rem;\n }\n\n &.active {\n padding: 1.35rem;\n border: none;\n background: var(--gradietAmethystToPurpurle);\n }\n }\n\n &.watch-only {\n &:after {\n content: '';\n display: block;\n background: var(--blue-500);\n position: absolute;\n border-radius: 0.8rem;\n left: 0.25rem;\n right: 0.25rem;\n top: 0.25rem;\n bottom: 0.25rem;\n z-index: 1;\n }\n\n &.active,\n &:hover {\n background: var(--gradietAmethystToPurpurle);\n }\n\n .price {\n .percent {\n &.red {\n color: var(--red-500);\n }\n }\n }\n }\n\n &:hover:not(.active):not(.watch-only) {\n border-color: var(--gray-800);\n }\n\n &:focus {\n outline: none;\n }\n\n &:last-child {\n margin-bottom: 0 !important;\n }\n\n .progress-bar {\n background-color: var(--gray-800);\n\n .fill {\n background-color: var(--white-500);\n }\n }\n}\n","app-send-details-modal {\n .status {\n .image {\n max-width: 13rem;\n max-height: 13rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .details {\n .header {\n min-height: 4rem;\n max-height: 4rem;\n background-color: var(--blue-500);\n }\n\n &-wrapper {\n max-height: 35rem;\n background-color: var(--blue-500);\n scroll-behavior: smooth;\n }\n\n &-list {\n width: 100%;\n .item {\n .image {\n max-width: 1.5rem;\n max-height: 1.5rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n }\n }\n }\n }\n }\n}\n","app-assign-alias {\n .assign-alias-tooltip {\n z-index: 999;\n max-width: 46rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n }\n\n .has-no-edit-symbol {\n position: relative;\n width: 100%;\n\n input {\n padding-left: 2.35rem;\n }\n\n &:after {\n content: '@';\n position: absolute;\n display: inline-block;\n top: 50%;\n left: 1rem;\n transform: translateY(-50%);\n }\n }\n}\n",".assets-table {\n .token-logo {\n background: var(--blue-300);\n min-width: 5.5rem;\n min-height: 5.5rem;\n max-width: 5.5rem;\n max-height: 5.5rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n overflow: hidden;\n\n img {\n max-width: 3.2rem;\n max-height: 3.2rem;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n}\n","app-contracts {\n .container {\n .wrap-table {\n table.contracts-table {\n tbody {\n tr {\n cursor: pointer;\n outline: none !important;\n\n .contract {\n position: relative;\n\n .icon {\n flex-shrink: 0;\n\n &.new {\n width: 1.7rem;\n height: 1.7rem;\n }\n\n &.alert {\n width: 1.7rem;\n height: 1.2rem;\n }\n\n &.purchase,\n &.sell {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n\n span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .status,\n .comment {\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 100%;\n }\n }\n }\n }\n }\n }\n}\n","app-history {\n .wrap-table {\n table.history-table {\n tbody {\n tr {\n .status {\n position: relative;\n\n .confirmation {\n width: 1.7rem;\n height: 1.7rem;\n }\n\n img.status-transaction {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n }\n }\n }\n }\n}\n","app-purchase {\n .container {\n position: relative;\n // TODO - Uncomment when progress returns\n //padding-bottom: 4rem; // height progress-bar + 1rem\n\n .form {\n max-width: 100%;\n }\n\n .details {\n .content {\n .form__field--row {\n > div {\n flex: 0 1 22rem;\n margin-right: 2rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n }\n }\n\n .purchase-buttons {\n button {\n flex: 0 1 33%;\n margin-right: 0.5rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n .nullify-block-row {\n .nullify-block-buttons {\n button {\n flex: 0 1 25%;\n margin: 0 0.5rem;\n }\n }\n }\n\n .time-cancel-block-row {\n .form__field {\n width: 25%;\n }\n\n .time-cancel-block-buttons {\n button {\n flex: 0 1 25%;\n margin: 0 0.5rem;\n }\n }\n }\n }\n\n // TODO - Uncomment when progress returns\n //.progress-bar-container {\n // position: absolute;\n // bottom: 0;\n // left: 0;\n // padding: 0 3rem;\n // width: 100%;\n // height: 3rem;\n //\n // .progress-bar {\n // position: absolute;\n // top: -0.7rem;\n // left: 0;\n // margin: 0 3rem;\n // width: calc(100% - 6rem);\n // height: 0.7rem;\n //\n // .progress-bar-full {\n // height: 0.7rem;\n // }\n // }\n //\n // .progress-labels {\n // font-size: 1.2rem;\n // }\n //\n // .progress-time {\n // position: absolute;\n // top: -3rem;\n // left: 50%;\n // transform: translateX(-50%);\n // font-size: 1.2rem;\n // }\n //}\n}\n","app-receive {\n .container {\n .wrap-qr {\n max-width: 30rem;\n max-height: 30rem;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n\n .address {\n width: 27.1rem;\n height: 4rem;\n border: var(--border);\n }\n }\n}\n","app-send {\n .container {\n .form {\n .wrap {\n border: var(--border);\n\n .title {\n font-size: 100%;\n margin-bottom: 1.5rem;\n color: var(--azure-500);\n\n .icon {\n width: 2rem;\n height: 2rem;\n float: right;\n }\n }\n\n .text-wrap {\n margin: 1.5rem;\n font-size: 1.5rem;\n }\n\n table tr {\n background-color: transparent;\n\n td:first-child {\n width: 22.5rem;\n padding-left: 0;\n }\n }\n }\n }\n }\n}\n","app-staking {\n .chart {\n &-header {\n .selected-group {\n min-width: 19rem;\n }\n\n .items {\n .item {\n min-width: 18rem;\n max-width: 25rem;\n min-height: 4rem;\n border: var(--border);\n\n .left {\n min-width: fit-content;\n width: auto;\n }\n }\n }\n }\n\n & {\n position: relative;\n border: var(--border);\n min-height: 29rem;\n\n > div {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n }\n}\n","app-wallet {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n","app-login {\n .auth {\n position: relative;\n\n app-synchronization-status {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n }\n}\n\napp-no-wallet {\n .no-wallet-wrapper {\n position: relative;\n\n app-synchronization-status {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n }\n}\n","app-contacts {\n .wrap-table {\n table.contacts-table {\n thead {\n tr {\n th:last-child {\n max-width: 14rem;\n }\n }\n }\n\n tbody {\n tr {\n td {\n &:last-child {\n width: 14rem;\n min-width: fit-content;\n }\n\n .button-wrapper {\n button {\n margin-right: 0.8rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n }\n }\n }\n }\n }\n}\n",".color-red {\n color: var(--red-500);\n}\n\n.color-primary {\n color: var(--azure-500);\n}\n\n.color-aqua {\n color: var(--aqua-500);\n}\n\n.border-radius-0_8-rem {\n border-radius: 0.8rem;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.cursor-default {\n cursor: default !important;\n}\n\n.text-ellipsis {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.text-align-center {\n text-align: center;\n}\n\n.word-break-break-all {\n word-break: break-all;\n}\n\n// background\n\n.bg-light-gray {\n background-color: var(--gray-900);\n}\n\n.bg-light-blue {\n background-color: var(--blue-700);\n}\n\n.bg-light-blue-details {\n background-color: var(--blue-500);\n}\n\n.background-none {\n background: none;\n}\n\n// overflow\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.no-scroll {\n overflow: hidden;\n}\n\n.rotate-90 {\n transform: rotate(90deg);\n}\n\n.rotate-180 {\n transform: rotate(180deg);\n}\n\n.rotate-270 {\n transform: rotate(270deg);\n}\n\n.rotate-360 {\n transform: rotate(360deg);\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n",".ml-auto {\n margin-left: auto;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n.mt-auto {\n margin-top: auto;\n}\n\n.mb-auto {\n margin-bottom: auto;\n}\n\n.mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.mx-0_5 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n\n.mx-1 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-2 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.mx-3 {\n margin-left: 3rem;\n margin-right: 3rem;\n}\n\n.my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.my-0_5 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.my-1 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.my-2 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n\n.my-3 {\n margin-top: 3rem;\n margin-bottom: 3rem;\n}\n\n.ml-0 {\n margin-left: 0;\n}\n\n.ml-0_5 {\n margin-left: 0.5rem;\n}\n\n.ml-1 {\n margin-left: 1rem;\n}\n\n.ml-2 {\n margin-left: 2rem;\n}\n\n.ml-3 {\n margin-left: 3rem;\n}\n\n.mb-0 {\n margin-bottom: 0;\n}\n\n.mb-0_5 {\n margin-bottom: 0.5rem;\n}\n\n.mb-1 {\n margin-bottom: 1rem;\n}\n\n.mb-2 {\n margin-bottom: 2rem;\n}\n\n.mb-3 {\n margin-bottom: 3rem;\n}\n\n.mr-0 {\n margin-right: 0;\n}\n\n.mr-0_5 {\n margin-right: 0.5rem;\n}\n\n.mr-1 {\n margin-right: 1rem;\n}\n\n.mr-2 {\n margin-right: 2rem;\n}\n\n.mr-3 {\n margin-right: 3rem;\n}\n\n.mt-0 {\n margin-top: 0;\n}\n\n.mt-0_5 {\n margin-top: 0.5rem;\n}\n\n.mt-1 {\n margin-top: 1rem;\n}\n\n.mt-2 {\n margin-top: 2rem;\n}\n\n.mt-3 {\n margin-top: 3rem;\n}\n\n.m-0 {\n margin: 0;\n}\n\n.m-1 {\n margin: 0.5rem;\n}\n\n.m-1 {\n margin: 1rem;\n}\n\n.m-2 {\n margin: 2rem;\n}\n\n.m-3 {\n margin: 3rem;\n}\n\n.m-auto {\n margin: auto;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n",".px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n.px-0_5 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-1 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-2 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.px-3 {\n padding-left: 3rem;\n padding-right: 3rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0_5 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-1 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.py-2 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.py-3 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.pl-0 {\n padding-left: 0;\n}\n\n.pl-0_5 {\n padding-left: 0.5rem;\n}\n\n.pl-1 {\n padding-left: 1rem;\n}\n\n.pl-2 {\n padding-left: 2rem;\n}\n\n.pl-3 {\n padding-left: 3rem;\n}\n\n.pb-0 {\n padding-bottom: 0;\n}\n\n.pb-0_5 {\n padding-bottom: 0.5rem;\n}\n\n.pb-1 {\n padding-bottom: 1rem;\n}\n\n.pb-2 {\n padding-bottom: 2rem;\n}\n\n.pb-3 {\n padding-bottom: 3rem;\n}\n\n.pr-0 {\n padding-right: 0;\n}\n\n.pr-0_5 {\n padding-right: 0.5rem;\n}\n\n.pr-1 {\n padding-right: 1rem;\n}\n\n.pr-2 {\n padding-right: 2rem;\n}\n\n.pr-3 {\n padding-right: 3rem;\n}\n\n.pt-0 {\n padding-top: 0;\n}\n\n.pt-0_5 {\n padding-top: 0.5rem;\n}\n\n.pt-1 {\n padding-top: 1rem;\n}\n\n.pt-2 {\n padding-top: 2rem;\n}\n\n.pt-3 {\n padding-top: 3rem;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-0_5 {\n padding: 0.5rem;\n}\n\n.p-1 {\n padding: 1rem;\n}\n\n.p-2 {\n padding: 2rem;\n}\n\n.p-3 {\n padding: 3rem;\n}\n",".w-100 {\n width: 100%;\n}\n\n.max-w-100 {\n max-width: 100%;\n}\n\n.h-100 {\n height: 100%;\n}\n\n.max-h-90-vh {\n max-height: 90vh;\n}\n\n.max-h-100 {\n max-height: 100%;\n}\n\n.min-width-4_4-rem {\n min-width: 4.4rem;\n}\n\n.min-height-4_4-rem {\n min-height: 4.4rem;\n}\n\n.max-w-19-rem {\n max-width: 19rem;\n}\n\n.max-w-34-rem {\n max-width: 34rem;\n}\n\n.max-w-38-rem {\n max-width: 38rem;\n}\n\n.max-w-42-rem {\n max-width: 42rem;\n}\n\n.max-w-50-rem {\n max-width: 50rem;\n}\n\n.max-w-54-rem {\n max-width: 54rem;\n}\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file +{"version":3,"file":"styles.css","mappings":";;;AAAA,mDAAmD,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,uBAAuB,cAAc,CAAC,YAAY,CAAC,6BAA6B,YAAY,CAAC,4BAA4B,YAAY,CAAC,iBAAiB,CAAC,YAAY,CAAC,kBAAkB,iBAAiB,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,YAAY,CAAC,YAAY,CAAC,cAAc,CAAC,eAAe,CAAC,sBAAsB,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,yCAAyC,CAAC,yDAAyD,CAAC,SAAS,CAAC,mDAAmD,SAAS,CAAC,6EAA6E,UAAU,CAAC,2BAA2B,0BAA0B,CAAC,kCAAkC,mDAAmD,CAAC,iBAAiB,CAAC,SAAS,CAAC,+DAA+D,SAAS,CAAC,kBAAkB,CAAC,qCAAqC,eAAe,CAAC,6CAA6C,iBAAiB,CAAC,YAAY,CAAC,YAAY,CAAC,qBAAqB,CAAC,aAAa,CAAC,cAAc,CAAC,wBAAwB,cAAc,CAAC,UAAU,CAAC,iBAAiB,CCCrwC;EACI;ACCR,CCHA;EAEI;EACA;EACA;EAGA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EACA;EACA;EACA;EACA;EAGA;EAGA;EACA;EAGA;EAGA;EAGA;EAGA;EAGA;EACA;EACA;EACA;EAGA;EAEA;EACA;EAGA;EACA;EAGA;EACA;ADtBJ,CEzCA;EACI;EACA;EACA;EACA;AF4CJ,CEzCA;;;EAGI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAIA;AF4CJ,CEzCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiFI;EACA;EACA;EACA;AF4CJ,CEzCA;;;;;;;;;;;EAWI;AF4CJ,CEzCA;EACI;EACA;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;;;;EAII;AF4CJ,CEzCA;EACI;EACA;AF4CJ,CEzCA;;EAEI;AF4CJ,CEzCA;EACI;AF4CJ,CE1CI;EACI;AF4CR,CExCA;;;;EAII;EACA;EACA;AF2CJ,CExCA;;EAEI;AF2CJ,CExCA;;EAEI;EACA;AF2CJ,CExCA;EACI;AF2CJ,CExCA;EACI;EACA;AF2CJ,CExCA;;EAEI;AF2CJ,CExCA;EACI;AF2CJ,CEzCI;EAGI;AFyCR,CErCA;EACI;AFwCJ,CErCA;;EAEI;AFwCJ,CG/PA;EACI;EACA;EACA;AHkQJ,CG/PA;EACI;EACA;EACA;AHiQJ,CG9PA;EACI;EACA;EACA;AHgQJ,CI/QA;;;;;EAKI;EACA;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;EACI;EACA;AJiRJ,CI9QA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4EI;EACA;AJiRJ,CKvXA;EACI;EACA;EACA;EACA;AL0XJ,CKvXA;EACI;AL0XJ,CKvXA;EACI;EACA;EACA;EACA;AL0XJ,CKvXA;EACI;AL0XJ,CKtXI;EACI;ALyXR,CKrXA;EACI;EACA;EACA;EACA;ALwXJ,CKtXI;EACI;ALwXR,CKrXI;EACI;ALuXR,CM9ZA;;EAEI;EACA;EACA;EAEA;EACA;EACA;EAEA;EACA;AN+ZJ,CM5ZA;EACI;AN+ZJ,CM5ZA;EACI;EACA;EAEA;EACA;AN8ZJ,CM3ZA;EACI;EACA;EACA;EACA;EACA;AN8ZJ,CM5ZI;EACI;EACA;EACA;EACA;EACA;AN8ZR,CM5ZQ;;EAEI;EACA;AN8ZZ,CM1ZI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AN4ZR,COpdA;EACI;EACA;APudJ,COtdI;EACI;EACA;EACA;EACA;EACA;APwdR,COtdQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;APwdZ,CQ7eA;;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;ARgfJ,CQ9eI;;EACI;ARifR,CQ9eI;;EACI;EACA;ARifR,CQ3eQ;;;EACI;AR+eZ,CQ5eQ;;;EACI;ARgfZ,CQ5eI;;EACI;AR+eR,CQ5eY;;;;EAGI;AR+ehB,CQ1eI;;EACI;AR6eR,CQ1eY;;;;EAGI;AR6ehB,CQveI;;EACI;EACA;AR0eR,CQxeQ;;EACI;EACA;AR2eZ,CQxeQ;;EACI;EACA;AR2eZ,CQveI;;EACI;EACA;AR0eR,CQxeQ;;EACI;AR2eZ,CQxeQ;;EACI;AR2eZ,CS/jBI;EACI;EACA;EACA;EACA;ATkkBR,CS/jBI;EACI;EACA;EACA;EACA;ATikBR,CS9jBI;EACI;EACA;EACA;EACA;EACA;ATgkBR,CS9jBQ;EACI;EACA;ATgkBZ,CUxlBA;EACI;AV2lBJ,CUzlBI;EACI;EACA;EACA;EACA;EACA;AV2lBR,CUxlBI;EACI;EACA;EACA;EACA;AV0lBR,CUzlBQ;EACI;EACA;AV2lBZ,CUxlBQ;EACI;EACA;EACA;AV0lBZ,CUrlBA;EACI;EACA;EACA;AVwlBJ,CUtlBQ;;EAEI;AVwlBZ,CUrlBQ;;EAEI;EACA;EACA;EACA;EACA;AVulBZ,CUtlBY;;EACI;EACA;EACA;AVylBhB,CW1oBA;EACI;EACA;EACA;AX6oBJ,CW3oBI;EACI;EACA;EACA;EACA;EACA;EACA;AX6oBR,CW1oBI;EACI;EACA;EACA;EACA;EACA;AX4oBR,CWzoBI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AX2oBR,CWzoBQ;EACI;EAaA;AX+nBZ,CW3oBY;EACI;EACA;AX6oBhB,CWzoBgB;EAEI;AX0oBpB,CWroBY;EACI;AXuoBhB,CWnoBQ;EACI;EACA;AXqoBZ,CWloBQ;EACI;EACA;AXooBZ,CWloBY;EACI;EACA;AXooBhB,CWloBgB;EACI;AXooBpB,CWjoBgB;EACI;AXmoBpB,CW9nBQ;EAEI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AX+nBZ,CW7nBY;EACI;EACA;AX+nBhB,CW5nBY;EACI;AX8nBhB,CW1nBgB;EACI;AX4nBpB,CWxnBY;EACI;AX0nBhB,CWvnBY;EAEI;AXwnBhB,CWtnBgB;EACI;AXwnBpB,CWnnBgB;EACI;AXqnBpB,CWnnBoB;EAEI;AXonBxB,CWlnBwB;EACI;AXonB5B,CW7mBQ;EACI;EACA;AX+mBZ,CW7mBY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAiBA;EAMA;AX0lBhB,CW/mBgB;EACI;EACA;AXinBpB,CW7mBoB;EACI;AX+mBxB,CW3mBgB;EACI;AX6mBpB,CWzmBgB;EACI;EACA;AX2mBpB,CWvmBgB;EACI;AXymBpB,CWrmBoB;EACI;AXumBxB,CWnmBgB;EACI;AXqmBpB,CWnmBoB;EACI;AXqmBxB,CW/lBQ;;;EAGI;EACA;EACA;AXimBZ,CW9lBQ;EACI;AXgmBZ,CW7lBQ;EACI;AX+lBZ,CW5lBQ;EACI;AX8lBZ,CW5lBY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AX8lBhB,CWxlBQ;EACI;EACA;EACA;EACA;EACA;AX0lBZ,CWxlBY;EACI;AX0lBhB,CWtlBQ;EACI;EACA;EACA;EACA;EACA;AXwlBZ,CWnlBA;EACI;EACA;EACA;EACA;AXslBJ,CWplBI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;AXslBR,CWllBQ;EACI;AXolBZ,CWjlBQ;EACI;AXmlBZ,CW/kBI;EACI;EACA;EACA;EACA;EACA;AXilBR,CW/kBQ;EACI;AXilBZ,CW9kBQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AXglBZ,CW7kBQ;EACI;AX+kBZ,CW3kBY;EAEI;AX4kBhB,CWvkBY;EACI;AXykBhB,CWtkBY;EACI;AXwkBhB,CWlkBA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AXqkBJ,CWnkBI;EACI;EACA;AXqkBR,CWlkBI;EACI;EACA;AXokBR,CWjkBI;EACI;EACA;AXmkBR,CWhkBI;EACI;EACA;EACA;EACA;EACA;AXkkBR,CY36BA;EACI;AZ86BJ,CY56BI;EACI;EACA;AZ86BR,CY16BA;EACI;EACA;EACA;EACA;AZ66BJ,CY36BI;EACI;EACA;AZ66BR,CYz6BI;EACI;AZ26BR,CYx6BI;EACI;AZ06BR,CYv6BI;EACI;AZy6BR,CYt6BI;EACI;AZw6BR,CYp6BI;EACI;AZs6BR,CYn6BI;EACI;AZq6BR,CYl6BI;EACI;AZo6BR,CYj6BI;EACI;AZm6BR,CYh6BI;EACI;AZk6BR,CY/5BI;EACI;AZi6BR,CY95BI;EACI;AZg6BR,CY75BI;EACI;AZ+5BR,CY55BI;EACI;AZ85BR,CY35BI;EACI;AZ65BR,CY15BI;EACI;AZ45BR,CYz5BI;EACI;AZ25BR,CYx5BI;EACI;AZ05BR,CYv5BI;EACI;AZy5BR,CYt5BI;EACI;AZw5BR,CYr5BI;EACI;AZu5BR,CYp5BI;EACI;AZs5BR,CYn5BI;EACI;AZq5BR,CYl5BI;EACI;AZo5BR,CYj5BI;EACI;AZm5BR,CYh5BI;EACI;AZk5BR,CY/4BI;EACI;AZi5BR,CY94BI;EACI;AZg5BR,CY74BI;EACI;AZ+4BR,CY54BI;EACI;AZ84BR,CY34BI;EACI;AZ64BR,CY14BI;EACI;AZ44BR,CYz4BI;EACI;AZ24BR,CYx4BI;EACI;AZ04BR,CYv4BI;EACI;AZy4BR,CYt4BI;EACI;AZw4BR,CYr4BI;EACI;AZu4BR,CYp4BI;EACI;AZs4BR,CYn4BI;EACI;AZq4BR,CYl4BI;EACI;AZo4BR,CYj4BI;EACI;AZm4BR,CYh4BI;EACI;AZk4BR,CY/3BI;EACI;AZi4BR,CY93BI;EACI;AZg4BR,CY53BI;EACI;AZ83BR,CY13BI;EACI;AZ43BR,CYz3BI;EACI;AZ23BR,CYx3BI;EACI;AZ03BR,CYv3BI;EACI;AZy3BR,CYr3BI;EACI;AZu3BR,CYp3BI;EACI;AZs3BR,CYl3BI;EACI;AZo3BR,CavlCA;EACI;EACA;EACA;EACA;EACA;EACA;Ab0lCJ,CavlCA;EACI;IACI;Eb0lCN;EaxlCE;IACI;Eb0lCN;AACF,CcxmCI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Ad0mCR,CcxmCQ;EACI;Ad0mCZ,CctmCI;EACI;AdwmCR,CeznCA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;Af4nCJ,CeznCA;EACI;EACA;Af4nC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ACA;ArB2lDZ,CqBtlDoB;;EAEI;ArBwlDxB,CqBhlDA;EACI;ArBmlDJ,CqBhlDA;EACI;ArBmlDJ,CqB/kDI;EACI;EACA;ArBklDR,CqBhlDQ;EACI;ArBklDZ,CqBhlDY;EACI;ArBklDhB,CsBlqDA;EACI;AtBqqDJ,CsBlqDA;EACI;EACA;EACA;EACA;EACA;AtBqqDJ,CsBnqDI;EACI;EACA;AtBqqDR,CsBnqDQ;;EAEI;EACA;AtBqqDZ,CsBnqDY;;EACI;EACA;AtBsqDhB,CsBpqDgB;;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AtBuqDpB,CsBlqDQ;EACI;AtBoqDZ,CsBjqDQ;EACI;AtBmqDZ,CsBhqDQ;;EAEI;EACA;AtBkqDZ,CsB/pDQ;EACI;EACA;AtBiqDZ,CsB/pDY;EACI;EACA;EACA;EACA;AtBiqDhB,CsB/pDgB;EACI;EACA;EACA;EACA;EACA;AtBiqDpB,CsB/pDoB;EACI;EACA;EACA;AtBiqDxB,CsB7pDgB;EACI;EACA;EACA;EACA;AtB+pDpB,CsB3pDY;EACI;EACA;EACA;EAqBA;EACA;AtByoDhB,CsBpoDI;EACI;EACA;EACA;AtBsoDR,CsBpoDQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AtBsoDZ,CsBpoDY;EACI;AtBsoDhB,CsBloDQ;EACI;EACA;EACA;EACA;AtBooDZ,CsBjoDQ;EACI;AtBmoDZ,CsBhoDQ;EACI;AtBkoDZ,CsB/nDQ;EACI;AtBioDZ,CsB9nDQ;EACI;AtBgoDZ,CsB3nDgB;EACI;AtB6nDpB,CsBxnDgB;EACI;AtB0nDpB,CsBrnDgB;EACI;AtBunDpB,CsBhnDA;EACI;IACI;EtBmnDN;EsBjnDE;IACI;EtBmnDN;AACF,CuB1yDA;EACI;EACA;AvB4yDJ,CuB1yDI;EACI;EAEA;EACA;AvB4yDR,CuB1yDQ;EACI;AvB4yDZ,CuBxyDI;EACI;EACA;EACA;AvB0yDR,CuBxyDQ;EAgCI;AvB2wDZ,CuB1yDY;EACI;EACA;EACA;EACA;EACA;AvB4yDhB,CuB1yDgB;EACI;AvB4yDpB,CuBzyDgB;EACI;EACA;EACA;EACA;AvB2yDpB,CuBvyDoB;EACI;AvByyDxB,CuBpyDoB;EACI;AvBsyDxB,CuBhyDY;EACI;EACA;AvBkyDhB,CuB7xDI;EACI;AvB+xDR,CuB7xDQ;EACI;EAEA;EACA;EACA;AvB+xDZ,CuB7xDY;EACI;EACA;EACA;EACA;EACA;EACA;AvB+xDhB,CuB7xDgB;EACI;AvB+xDpB,CuB5xDgB;EACI;AvB8xDpB,CuB1xDY;EACI;AvB4xDhB,CuBtxDA;EACI;EACA;EACA;EACA;EACA;EACA;AvByxDJ,CuBvxDI;EACI;EACA;EACA;EACA;AvByxDR,CuBtxDI;EACI;EACA;EACA;EACA;AvBwxDR,CuBtxDQ;;EAEI;EACA;AvBwxDZ,CuBrxDQ;EACI;EACA;EACA;EACA;AvBuxDZ,CuBpxDQ;EACI;EACA;AvBsxDZ,CwBx5DA;EACI;EACA;EACA;EACA;AxB25DJ,CwBz5DI;EACI;EACA;EACA;AxB25DR,CwBz5DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxB25DZ,CwBz5DY;;EAEI;EACA;AxB25DhB,CwBx5DY;EAEI;AxBy5DhB,CwBv5DgB;;;EAEI;AxB05DpB,CwBt5DY;EACI;AxBw5DhB,CwBr5DY;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AxBu5DhB,CwBp5DY;EACI;AxBs5DhB,CwBn5DY;EACI;AxBq5DhB,CwBh5DI;EACI;EACA;EACA;EACA;EACA;EAEA;AxBi5DR,CyBx9DA;EACI;EACA;EACA;EACA;EACA;AzB29DJ,CyBz9DI;EACI;EACA;EACA;AzB29DR,CyBx9DI;EACI;AzB09DR,CyBx9DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzB09DZ,CyBt9DI;EACI;AzBw9DR,CyBt9DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBw9DZ,CyBp9DI;EACI;AzBs9DR,CyBp9DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBs9DZ,CyBl9DI;EACI;AzBo9DR,CyBl9DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBo9DZ,CyBh9DI;EACI;AzBk9DR,CyBh9DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBk9DZ,CyB98DI;EACI;AzBg9DR,CyB98DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzBg9DZ,CyB58DI;EACI;EACA;AzB88DR,CyB58DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzB88DZ,CyB18DI;EACI;AzB48DR,CyB18DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzB48DZ,CyBx8DI;EACI;AzB08DR,CyBx8DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AzB08DZ,CyBp8DI;EACI;EACA;EACA;AzBu8DR,CyBn8DA;EACI;EACA;EACA;EACA;EACA;EACA;AzBs8DJ,CyBn8DA;EACI;EACA;EACA;EACA;EACA;AzBs8DJ,CyBp8DI;EACI;EACA;EACA;AzBs8DR,CyBp8DQ;EACI;AzBs8DZ,CyBp8DY;EACI;AzBs8DhB,CyBl8DQ;EACI;AzBo8DZ,CyBl8DY;EACI;AzBo8DhB,CyBh8DQ;EACI;EACA;AzBk8DZ,CyB97DI;EACI;EACA;EACA;EACA;AzBg8DR,CyB77DI;EACI;AzB+7DR,CyB57DI;EACI;AzB87DR,CyB37DI;EACI;AzB67DR,CyB17DI;EACI;AzB47DR,CyBx7DA;EACI;EACA;EACA;AzB27DJ,CyB17DI;EACI;EACA;AzB47DR,CyBx7DA;EACI;EACA;EACA;AzB27DJ,CyB17DI;EACI;EACA;EACA;AzB47DR,CyBx7DA;EACI;EACA;EACA;EACA;AzB27DJ,CyBz7DI;EACI;EACA;AzB27DR,CyBx7DY;EACI;AzB07DhB,CyBr7DY;EACI;AzBu7DhB,CyBl7DI;EACI;EACA;EACA;AzBo7DR,CyBl7DQ;EACI;EACA;EACA;AzBo7DZ,CyBh7DY;EACI;AzBk7DhB,CyB76DY;EACI;AzB+6DhB,CyB16DI;EACI;EACA;EACA;AzB46DR,CyB16DQ;EACI;EACA;EACA;AzB46DZ,CyBz6DQ;EACI;EACA;EACA;AzB26DZ,CyBx6DQ;EACI;EACA;EACA;AzB06DZ,CyBv6DQ;EACI;EACA;EACA;AzBy6DZ,CyBt6DQ;EACI;EACA;EACA;AzBw6DZ,CyBp6DI;EACI;AzBs6DR,CyBp6DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AzBs6DZ,CyBl6DI;EACI;AzBo6DR,CyBl6DQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;AzBo6DZ,CyB/5DA;EACI;EACA;EACA;AzBk6DJ,CyBh6DQ;EACI;AzBk6DZ,C0BvxEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A1B0xEJ,C0BxxEI;EACI;A1B0xER,C0BvxEI;EACI;EACA;EACA;EACA;EACA;A1ByxER,C0BvxEQ;EACI;A1ByxEZ,C0BtxEgB;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A1BwxEpB,C0BlxEI;EACI;EACA;EACA;EACA;A1BoxER,C0BjxEI;EACI;EACA;EACA;A1BmxER,C0BjxEQ;EACI;EACA;EACA;EACA;EACA;A1BmxEZ,C0BjxEY;EACI;A1BmxEhB,C0B9wEI;EACI;EACA;EACA;EACA;A1BgxER,C0B7wEI;EACI;EACA;EACA;A1B+wER,C0B7wEQ;EACI;EACA;EACA;EACA;A1B+wEZ,C0B7wEY;EACI;A1B+wEhB,C0B3wEQ;EACI;EACA;EACA;EACA;A1B6wEZ,C0BzwEI;EACI;EACA;EACA;A1B2wER,C0BvwEgB;EACI;A1BywEpB,C0BnwEI;EAEI;EACA;EACA;A1BowER,C0BhwEQ;EACI;EACA;A1BkwEZ,C0B/vEQ;EACI;EACA;EACA;A1BiwEZ,C0B5vEQ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A1B8vEZ,C0B3vEQ;EAEI;A1B4vEZ,C0BvvEgB;EACI;A1ByvEpB,C0BnvEI;EACI;A1BqvER,C0BlvEI;EACI;A1BovER,C0BjvEI;EACI;A1BmvER,C0BhvEI;EACI;A1BkvER,C0BhvEQ;EACI;A1BkvEZ,C2Br6EQ;EACI;EACA;EACA;EACA;A3Bw6EZ,C2Bt6EY;EACI;EACA;A3Bw6EhB,C2Bl6EQ;EACI;EACA;EACA;A3Bo6EZ,C2Bj6EQ;EACI;EACA;EACA;A3Bm6EZ,C2Bh6EQ;EACI;A3Bk6EZ,C2Bh6EgB;EACI;EACA;EACA;EACA;A3Bk6EpB,C2Bh6EoB;EACI;EACA;A3Bk6ExB,C4Bx8EI;EACI;EACA;EACA;EACA;A5B28ER,C4Bx8EI;EACI;EACA;A5B08ER,C4Bx8EQ;EACI;A5B08EZ,C4Bv8EQ;EACI;EACA;EACA;EACA;EACA;EACA;A5By8EZ,C6B99EI;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;A7Bi+ER,C6B/9EQ;EACI;EACA;EACA;EACA;EACA;A7Bi+EZ,C8B9+EoB;EACI;EACA;A9Bi/ExB,C8B/+EwB;EACI;A9Bi/E5B,C8B/+E4B;EACI;A9Bi/EhC,C8B/+EgC;EACI;EACA;A9Bi/EpC,C8B9+EgC;EACI;EACA;A9Bg/EpC,C8B7+EgC;EAEI;EACA;A9B8+EpC,C8B1+E4B;EACI;EACA;A9B4+EhC,C8Bx+EwB;;EAEI;EACA;EACA;A9B0+E5B,C+B/gFoB;EACI;A/BkhFxB,C+BhhFwB;EACI;EACA;A/BkhF5B,C+B/gFwB;EACI;EACA;A/BihF5B,CgC/hFI;EACI;AhCkiFR,CgC9hFQ;EACI;AhCgiFZ,CgC1hFoB;EACI;EACA;AhC4hFxB,CgC1hFwB;EACI;AhC4hF5B,CgCphFY;EACI;EACA;AhCshFhB,CgCphFgB;EACI;AhCshFpB,CgC/gFgB;EACI;EACA;AhCihFpB,CgC3gFY;EACI;AhC6gFhB,CgCzgFgB;EACI;EACA;AhC2gFpB,CiC9jFQ;EACI;EACA;AjCikFZ,CiC/jFY;EACI;EACA;EACA;AjCikFhB,CiC7jFQ;EACI;EACA;EACA;AjC+jFZ,CkC5kFY;EACI;AlC+kFhB,CkC7kFgB;EACI;EACA;EACA;AlC+kFpB,CkC7kFoB;EACI;EACA;EACA;AlC+kFxB,CkC3kFgB;EACI;EACA;AlC6kFpB,CkC1kFgB;EACI;AlC4kFpB,CkC1kFoB;EACI;EACA;AlC4kFxB,CmCrmFY;EACI;AnCwmFhB,CmCpmFgB;EACI;EACA;EACA;EACA;AnCsmFpB,CmCpmFoB;EACI;EAAA;EACA;AnCsmFxB,CmChmFQ;EACI;EACA;EACA;AnCkmFZ,CmChmFY;EACI;EACA;EACA;AnCkmFhB,CoChoFA;EACI;EACA;EACA;EACA;EACA;ApCmoFJ,CqCvoFI;EACI;ArC0oFR,CqCxoFQ;EACI;EACA;EACA;ArC0oFZ,CqCpoFI;EACI;ArCuoFR,CqCroFQ;EACI;EACA;EACA;ArCuoFZ,CsCrpFoB;EACI;AtCwpFxB,CsChpFwB;EACI;EACA;EAAA;AtCkpF5B,CsC9oF4B;EACI;AtCgpFhC,CsC9oFgC;EACI;AtCgpFpC,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;EACA;EACA;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCxqFA;EACI;AvC2qFJ,CuCtqFA;EACI;AvCyqFJ,CuCtqFA;EACI;AvCyqFJ,CuCtqFA;EACI;AvCyqFJ,CuCtqFA;EACI;AvCyqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CuCrqFA;EACI;AvCwqFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CwClxFA;EACI;EACA;AxCqxFJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCt8FA;EACI;EACA;AzCy8FJ,CyCr8FA;EACI;EACA;AzCw8FJ,CyCr8FA;EACI;EACA;AzCw8FJ,CyCr8FA;EACI;EACA;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,CyCr8FA;EACI;AzCw8FJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C0CjmGA;EACI;A1ComGJ,C","sources":["./node_modules/@angular/cdk/overlay-prebuilt.css","./src/assets/scss/base/_cdk.scss","./src/styles.scss","./src/assets/scss/base/_colors.scss","./src/assets/scss/base/_reset.scss","./src/assets/scss/base/_fonts.scss","./src/assets/scss/base/_typography.scss","./src/assets/scss/base/_scroll.scss","./src/assets/scss/layout/_main.scss","./src/assets/scss/components/_alias.scss","./src/assets/scss/components/_buttons.scss","./src/assets/scss/components/_contextmenu.scss","./src/assets/scss/components/_dropdown.scss","./src/assets/scss/components/_forms.scss","./src/assets/scss/components/_icons.scss","./src/assets/scss/components/_loader.scss","./src/assets/scss/components/_migrate-alert.scss","./src/assets/scss/components/_modals.scss","./src/assets/scss/components/_ng-select.scss","./src/assets/scss/components/_ngx-pagination.scss","./src/assets/scss/components/_preloader.scss","./src/assets/scss/components/_progress.scss","./src/assets/scss/components/_seed-phrase.scss","./src/assets/scss/components/_sidebar.scss","./src/assets/scss/components/_status.scss","./src/assets/scss/components/_table.scss","./src/assets/scss/components/_tabs.scss","./src/assets/scss/components/_tooltips.scss","./src/assets/scss/components/_wallet.scss","./src/assets/scss/modals/_send-details.scss","./src/assets/scss/pages/_assign-alias.scss","./src/assets/scss/pages/wallet/tabs/_assets.scss","./src/assets/scss/pages/wallet/tabs/_contracts.scss","./src/assets/scss/pages/wallet/tabs/_history.scss","./src/assets/scss/pages/wallet/tabs/_purchase.scss","./src/assets/scss/pages/wallet/tabs/_receive.scss","./src/assets/scss/pages/wallet/tabs/_send.scss","./src/assets/scss/pages/wallet/tabs/_staking.scss","./src/assets/scss/pages/wallet/_wallet.scss","./src/assets/scss/pages/_auth.scss","./src/assets/scss/pages/_contacts.scss","./src/assets/scss/helpers/_helper-classes.scss","./src/assets/scss/helpers/_margin.scss","./src/assets/scss/helpers/_padding.scss","./src/assets/scss/helpers/_width.scss"],"sourcesContent":[".cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}",".cdk-dialog-container {\n &:focus {\n outline: none;\n }\n}\n","@import '~@angular/cdk/overlay-prebuilt.css';\n\n@import 'assets/scss/base/index';\n\n@import 'assets/scss/layout/index';\n\n@import 'assets/scss/components/index';\n\n@import 'assets/scss/modals/index';\n\n@import 'assets/scss/pages/index';\n\n@import 'assets/scss/helpers/index';\n",":root {\n // red\n --red-600: rgba(255, 103, 103, 0.75);\n --red-500: #ff6767;\n --red-100: #ffcbcb;\n\n // blue\n --blue-900: #0c0c3a;\n --blue-800: #0c1243;\n --blue-700: #0f2055;\n --blue-500: #11316b;\n --blue-450: #144182;\n --blue-400: rgba(31, 143, 235, 0.3);\n --blue-300: rgba(31, 143, 235, 0.15);\n\n // orange\n --orange-500: #ff6f00;\n\n // gray\n --gray-900: rgba(255, 255, 255, 0.1);\n --gray-800: rgba(255, 255, 255, 0.2);\n --gray-700: rgba(255, 255, 255, 0.3);\n --gray-600: rgba(255, 255, 255, 0.4);\n --gray-500: rgba(255, 255, 255, 0.5);\n --gray-400: rgba(255, 255, 255, 0.75);\n\n // aqua\n --aqua-500: #16d1d6;\n\n // azure\n --azure-600: #1c72b9;\n --azure-500: #1f8feb;\n\n // white\n --white-500: #ffffff;\n\n // black\n --black-300: rgba(0, 0, 0, 0.6);\n\n // amethyst\n --amethyst-500: #9a69f7;\n\n // silver\n --silver-500: #8898b5;\n\n // borders\n --border: 0.2rem solid var(--gray-800);\n --border-not-empty: 0.2rem solid var(--gray-500);\n --border-disabled: 0.2rem solid var(--gray-800);\n --border-error: 0.2rem solid var(--red-600);\n\n // gradient\n --gradietAquaToBlue: radial-gradient(100% 188.88% at 0% 0%, #16d1d6 0%, #274cff 100%);\n\n --gradietLightAmethystToPurpurle: radial-gradient(100% 246.57% at 0% 0%, rgba(163, 102, 255, 0.5) 0%, rgba(96, 31, 255, 0.5) 100%);\n --gradietAmethystToPurpurle: radial-gradient(100% 246.57% at 0% 0%, #a366ff 0%, #601fff 100%);\n\n // shadow\n --shadow-gray: 0px 2.11765px 5.64706px rgba(0, 0, 0, 0.15), 0px 2.11765px 0.705882px rgba(0, 0, 0, 0.06);\n --shadow-black-300: 0 0 1rem var(--black-300);\n\n // chart\n --chartOptionsBackgroundColor: #2b3644;\n --chartOptionsHoverColor: #556576;\n}\n","html {\n box-sizing: border-box;\n -webkit-box-sizing: border-box;\n -moz-box-sizing: border-box;\n overscroll-behavior: none;\n}\n\n*,\n*:before,\n*:after {\n box-sizing: inherit;\n -webkit-box-sizing: inherit;\n -moz-box-sizing: inherit;\n margin: 0;\n padding: 0;\n -webkit-backface-visibility: hidden;\n -webkit-touch-collout: none;\n -webkit-user-select: none;\n -khtml-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n\nhtml,\nbody,\ndiv,\nspan,\napplet,\nobject,\niframe,\nh1,\nh2,\nh3,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n border: 0;\n font-size: 100%;\n font: inherit;\n vertical-align: baseline;\n}\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\nsection {\n display: block;\n}\n\nbody {\n line-height: 1;\n font-style: normal;\n}\n\nol,\nul {\n list-style: none;\n}\n\nblockquote,\nq {\n quotes: none;\n}\n\nblockquote:before,\nblockquote:after,\nq:before,\nq:after {\n content: none;\n}\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n\ninput {\n outline: none;\n\n &:-webkit-autofill {\n -webkit-box-shadow: 0 0 0 1000px white inset;\n }\n}\n\nbutton,\nhtml input[type='button'],\ninput[type='reset'],\ninput[type='submit'] {\n -webkit-appearance: button;\n cursor: pointer;\n outline: none;\n}\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\ninput {\n line-height: normal;\n}\n\ninput[type='search'] {\n -webkit-appearance: textfield;\n box-sizing: content-box;\n}\n\ninput[type='search']::-webkit-search-cancel-button,\ninput[type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\na {\n text-decoration: none;\n\n &:active,\n &:hover,\n &:focus {\n outline: 0;\n }\n}\n\ni {\n font-style: italic;\n}\n\nb,\nstrong {\n font-weight: 700;\n}\n","@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Regular.ttf);\n font-weight: 400;\n}\n\n@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Medium.ttf);\n font-weight: 500;\n}\n\n@font-face {\n font-family: SF-Pro-Rounded;\n src: url(~src/assets/fonts/SF-Pro-Rounded-Semibold.ttf);\n font-weight: 600;\n}\n","html,\ninput,\ntextarea,\nselect,\nbutton {\n color: var(--white-500);\n font-family: SF-Pro-Rounded, sans-serif;\n font-weight: 400;\n}\n\nh1 {\n font-size: 3.6rem;\n line-height: 1.2;\n}\n\nh2 {\n font-size: 2.8rem;\n line-height: 1.2;\n}\n\nh3 {\n font-size: 2rem;\n line-height: 1.2;\n}\n\ndiv,\nspan,\napplet,\nobject,\niframe,\nh4,\nh5,\nh6,\np,\nblockquote,\npre,\na,\nabbr,\nacronym,\naddress,\nbig,\ncite,\ncode,\ndel,\ndfn,\nem,\nimg,\nins,\nkbd,\nq,\ns,\nsamp,\nsmall,\nstrike,\nstrong,\nsub,\nsup,\ntt,\nvar,\nb,\nu,\ni,\ncenter,\ndl,\ndt,\ndd,\nol,\nul,\nli,\nfieldset,\nform,\nlabel,\nlegend,\ntable,\ncaption,\ntbody,\ntfoot,\nthead,\ntr,\nth,\ntd,\narticle,\naside,\ncanvas,\ndetails,\nembed,\nfigure,\nfigcaption,\nfooter,\nheader,\nhgroup,\nmenu,\nnav,\noutput,\nruby,\nsection,\nsummary,\ntime,\nmark,\naudio,\nvideo {\n font-size: 1.8rem;\n line-height: 1.2;\n}\n","::-webkit-scrollbar {\n background-color: transparent;\n cursor: default;\n width: 1rem;\n height: 1rem;\n}\n\n::-webkit-scrollbar-track {\n background: transparent;\n}\n\n::-webkit-scrollbar-thumb {\n background-color: var(--silver-500);\n background-clip: padding-box;\n border: 0.2rem solid transparent;\n border-radius: 1rem;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background-color: var(--silver-500);\n}\n\nbody {\n &::-webkit-scrollbar-corner {\n background-color: var(--blue-900);\n }\n}\n\n.scrolled-content {\n overflow-y: scroll;\n overflow-x: hidden;\n height: auto;\n margin-right: -2rem;\n\n &::-webkit-scrollbar {\n width: 2rem;\n }\n\n &::-webkit-scrollbar-thumb {\n border: 0.8rem solid transparent;\n }\n}\n","html,\nbody {\n position: fixed;\n overflow: hidden;\n overscroll-behavior: none;\n\n width: 100%;\n min-width: 1000px;\n max-width: 100vw;\n\n height: 100vh;\n min-height: 700px;\n}\n\nbody {\n background: var(--blue-900);\n}\n\napp-root {\n display: flex;\n flex-wrap: nowrap;\n\n width: 100%;\n height: 100%;\n}\n\n.page-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n\n .toolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n min-height: 40px;\n flex: 0 0 auto;\n\n .left,\n .right {\n display: flex;\n align-items: center;\n }\n }\n\n .page-content {\n width: 100%;\n height: auto;\n display: flex;\n flex-direction: column;\n flex: auto;\n overflow: hidden;\n padding: 2rem;\n border-radius: 0.8rem;\n background-color: var(--blue-700);\n }\n}\n",".alias {\n display: flex;\n align-items: center;\n &.available {\n padding: 0.4rem 1.6rem;\n min-height: 3.2rem;\n background: var(--gradietAquaToBlue);\n border-radius: 0.8rem;\n position: relative;\n\n &:after {\n display: block;\n content: '';\n width: 1.4rem;\n height: 1.4rem;\n overflow: hidden;\n position: absolute;\n right: -0.4rem;\n top: -0.4rem;\n background-image: url('~src/assets/icons/white/crown.svg');\n background-repeat: no-repeat;\n background-size: contain;\n }\n }\n}\n","button,\n.btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: var(--white-500);\n transition: all 0.25s ease;\n border: none;\n outline: none;\n background-color: transparent;\n overflow: hidden;\n text-overflow: ellipsis;\n border-radius: 0.8rem;\n font-size: 1.8rem;\n\n &:not(:disabled):hover {\n cursor: pointer;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n // button size for (primary, outline)\n &.primary,\n &.outline {\n &.small {\n min-height: 4.5rem;\n }\n\n &.big {\n min-height: 5.3rem;\n }\n }\n\n &.primary {\n background-color: var(--azure-500);\n\n &:not(:disabled) {\n &:focus,\n &:hover,\n &.active {\n background-color: var(--azure-600);\n }\n }\n }\n\n &.outline {\n border: 0.2rem solid var(--azure-500);\n\n &:not(:disabled) {\n &:hover,\n &:focus,\n &.active {\n background-color: var(--gray-900);\n }\n }\n }\n\n // button size for circle\n &.btn-icon {\n min-width: 2rem;\n min-height: 2rem;\n\n &.small {\n min-width: 2.8rem;\n min-height: 2.8rem;\n }\n\n &.big {\n min-width: 4rem;\n min-height: 4rem;\n }\n }\n\n &.btn-icon {\n background-color: var(--gray-900);\n transition: background-color 0.2s ease-in-out;\n\n &.circle {\n border-radius: 50%;\n }\n\n &:hover {\n background-color: var(--gray-700);\n }\n }\n}\n",".ngx-contextmenu {\n &--dropdown-menu {\n border: none;\n padding: 0;\n background-color: var(--chartOptionsBackgroundColor);\n box-shadow: var(--shadow-black-300);\n }\n\n li {\n display: block;\n font-size: 1.3rem;\n text-transform: uppercase;\n text-align: center;\n }\n\n button {\n display: block;\n padding: 0.5em 1em;\n color: var(--white-500);\n border-radius: 0;\n width: 100%;\n\n &:hover {\n background-color: var(--chartOptionsHoverColor);\n color: var(--white-500);\n }\n }\n}\n",".dropdown {\n position: relative;\n\n .content-bottom-right {\n position: absolute;\n top: 5rem;\n right: 0;\n width: 19rem;\n z-index: 99;\n }\n\n .item {\n height: 3.9rem;\n display: flex;\n align-items: center;\n padding: 0.5rem;\n &:hover {\n background-color: var(--gray-900);\n cursor: pointer;\n }\n\n .alias {\n width: 100%;\n margin-right: 0.3rem;\n padding: 0.4rem 1rem;\n }\n }\n}\n\n.list {\n border-radius: 0.8rem;\n background-color: var(--blue-500);\n border: var(--border);\n .item {\n &:hover,\n .active {\n background-color: var(--gray-900);\n }\n\n button,\n a {\n display: inline-flex;\n white-space: nowrap;\n justify-content: flex-start;\n border-radius: 0;\n color: white;\n span {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n }\n }\n}\n",".form {\n max-width: 50rem;\n width: 100%;\n border-radius: 0.8rem;\n\n &__card {\n display: flex;\n flex-direction: column;\n padding: 2rem 2rem 0;\n margin-bottom: 2rem;\n border-radius: 8px;\n background-color: var(--blue-500);\n }\n\n &__row {\n display: grid;\n width: 100%;\n grid-template-columns: repeat(2, 1fr);\n justify-content: space-between;\n grid-gap: 20px;\n }\n\n &__field {\n position: relative;\n display: flex;\n flex: 0 0 auto;\n flex-direction: column;\n align-items: flex-start;\n margin-bottom: 2rem;\n width: 100%;\n\n &--input {\n /* If input is not empty */\n &:not(:placeholder-shown):not(.invalid):not(.ng-invalid) {\n /* You need to add a placeholder to your fields. For example: */\n border: var(--border-not-empty);\n }\n\n &:not(:placeholder-shown) {\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n }\n }\n\n /* If input is empty */\n &:placeholder-shown {\n border: var(--border);\n }\n }\n\n label {\n margin-bottom: 0.8rem;\n color: var(--azure-500);\n }\n\n &--row {\n display: flex;\n flex: 0 0 auto;\n\n > div {\n max-width: calc(50% - 1rem);\n width: 100%;\n\n &:first-child {\n margin-right: 1rem;\n }\n\n &:last-child {\n margin-left: 1rem;\n }\n }\n }\n\n &--input,\n &--select {\n border: var(--border);\n border-radius: 0.8rem;\n outline: none;\n padding: 0 1.2rem;\n width: 100%;\n height: 4rem;\n background-color: transparent;\n overflow: hidden;\n text-overflow: ellipsis;\n color: var(--white-500);\n font-size: 1.8rem;\n line-height: 1.2;\n transition: border 0.2s ease-in-out;\n\n &:disabled {\n border: var(--border-disabled);\n cursor: not-allowed;\n }\n\n &:read-only {\n cursor: default;\n }\n\n &:not(:disabled):not(:read-only) {\n &:hover {\n cursor: pointer;\n }\n }\n\n &::placeholder {\n color: var(--gray-800);\n }\n\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n\n &:not(:disabled):not(:read-only) {\n &:hover {\n border: var(--border-not-empty);\n\n &.invalid,\n &.ng-touched.ng-invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n }\n }\n }\n\n &.textarea {\n width: 100%;\n height: auto;\n\n textarea {\n border: var(--border);\n border-radius: 0.8rem;\n outline: none;\n padding: 1rem;\n width: 100%;\n min-width: 100%;\n height: 100%;\n min-height: 7.5rem;\n max-height: 7.5rem;\n overflow: auto;\n resize: none;\n background-color: transparent;\n color: var(--white-500);\n font-size: 1.8rem;\n line-height: 1.2;\n\n &:disabled {\n border: var(--border-disabled);\n cursor: not-allowed;\n }\n\n &:not(:disabled) {\n &:hover {\n cursor: pointer;\n }\n }\n\n &::placeholder {\n color: var(--gray-800);\n }\n\n /* If input is not empty */\n &:not(:placeholder-shown) {\n /* You need to add a placeholder to your fields. For example: */\n border: var(--border-not-empty);\n }\n\n /* If input is empty */\n &:placeholder-shown {\n border: var(--border);\n }\n\n .ng-touched {\n .ng-invalid {\n border: var(--border-error);\n }\n }\n\n &.invalid {\n border: var(--border-error);\n\n &::placeholder {\n color: var(--red-500);\n }\n }\n }\n }\n\n .error,\n .success,\n .info {\n overflow: hidden;\n width: 100%;\n margin-top: 1rem;\n }\n\n .error {\n color: var(--red-500);\n }\n\n .success {\n color: var(--aqua-500);\n }\n\n &-dropdown {\n position: relative;\n\n .dropdown {\n overflow-y: auto;\n position: absolute;\n top: calc(100% + 1rem);\n left: 0;\n max-width: 100%;\n width: 100%;\n max-height: 15rem;\n border: var(--border);\n }\n }\n }\n\n .details {\n .header {\n padding: 1.2rem 2rem;\n width: 100%;\n max-width: 20rem;\n background-color: var(--blue-500);\n border-radius: 0.8rem 0.8rem 0 0;\n\n &.border-radius-all {\n border-radius: 0.8rem;\n }\n }\n\n .content {\n display: flex;\n flex-direction: column;\n padding: 2rem;\n background-color: var(--blue-500);\n border-radius: 0 0.8rem 0.8rem 0.8rem;\n }\n }\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n min-height: 2.4rem;\n overflow: hidden;\n\n label {\n display: inline-block;\n overflow: hidden;\n text-overflow: ellipsis;\n cursor: pointer;\n min-height: 2.4rem;\n line-height: 2.4rem;\n padding-left: 3.6rem;\n color: var(--white-500);\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n }\n\n input[readonly] {\n & + label {\n pointer-events: none;\n }\n\n & + label:before {\n pointer-events: none;\n }\n }\n\n input[type='checkbox'] {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n visibility: hidden;\n\n & + label {\n position: relative;\n }\n\n & + label:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n width: 2.4rem;\n height: 2.4rem;\n transition: all 0.2s ease-in-out;\n background-image: url('~src/assets/icons/white/checkbox.svg');\n background-size: contain;\n background-repeat: no-repeat;\n }\n\n &:not(:disabled) + label:hover:before {\n background-image: url('~src/assets/icons/white/checkbox-hover.svg');\n }\n\n &:checked {\n & + label:before,\n & + label:hover:before {\n background-image: url('~src/assets/icons/white/checkbox-active.svg');\n }\n }\n\n &:disabled {\n & + label {\n cursor: not-allowed;\n }\n\n & + label:before {\n cursor: not-allowed;\n }\n }\n }\n}\n\n.switch {\n display: flex;\n align-items: center;\n border-radius: 1.1rem;\n cursor: pointer;\n padding: 0.2rem;\n width: 3.6rem;\n height: 2.2rem;\n transition: all 0.2s ease-in-out;\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n &.on {\n justify-content: flex-end;\n background-color: var(--aqua-500);\n }\n\n &.off {\n justify-content: flex-start;\n background-color: var(--gray-800);\n }\n\n .circle {\n border-radius: 50%;\n width: 1.8rem;\n height: 1.8rem;\n background-color: var(--white-500);\n box-shadow: var(--shadow-gray);\n }\n}\n","i {\n display: inline-block;\n\n svg {\n width: 100%;\n height: 100%;\n }\n}\n\n.icon {\n display: inline-flex;\n min-width: 1.8rem;\n min-height: 1.8rem;\n transition: all 0.25s ease;\n\n &.small {\n min-width: 1.4rem;\n min-height: 1.4rem;\n }\n\n // BLUE\n &.question-circle {\n background: center / contain no-repeat url(~src/assets/icons/blue/question-circle.svg);\n }\n\n &.info-circle {\n background: center / contain no-repeat url(~src/assets/icons/blue/info-circle.svg);\n }\n\n &.purchase-arrow-down {\n background: center / contain no-repeat url(~src/assets/icons/blue/purchase-arrow-down.svg);\n }\n\n &.purchase-arrow-up {\n background: center / contain no-repeat url(~src/assets/icons/blue/purchase-arrow-up.svg);\n }\n\n // WHITE\n &.arrow-down-square {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-down-square.svg);\n }\n\n &.swap {\n background: center / contain no-repeat url(~src/assets/icons/white/swap_icon.svg);\n }\n\n &.add {\n background: center / contain no-repeat url(~src/assets/icons/white/add.svg);\n }\n\n &.regenerate {\n background: center / contain no-repeat url(~src/assets/icons/white/regenerate.svg);\n }\n\n &.balance-icon {\n background: center / contain no-repeat url(~src/assets/icons/white/balance_icon.svg);\n }\n\n &.info-icon {\n background: center / contain no-repeat url(~src/assets/icons/white/info_icon.svg);\n }\n\n &.arrow-left-stroke {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-left-stroke.svg);\n }\n\n &.arrow-left-slider {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-left-slider.svg);\n }\n\n &.arrow-right-stroke {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-right-stroke.svg);\n }\n\n &.arrow-right-slider {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-right-slider.svg);\n }\n\n &.arrow-up-square {\n background: center / contain no-repeat url(~src/assets/icons/white/arrow-up-square.svg);\n }\n\n &.close {\n background: center / contain no-repeat url(~src/assets/icons/white/close.svg);\n }\n\n &.close-square {\n background: center / contain no-repeat url(~src/assets/icons/white/close-square.svg);\n }\n\n &.check-shield {\n background: center / contain no-repeat url(~src/assets/icons/white/check-shield.svg);\n }\n\n &.contacts {\n background: center / contain no-repeat url(~src/assets/icons/white/contacts.svg);\n }\n\n &.copy {\n background: center / contain no-repeat url(~src/assets/icons/white/copy.svg);\n }\n\n &.check {\n background: center / contain no-repeat url(~src/assets/icons/white/check.svg);\n }\n\n &.check-circle {\n background: center / contain no-repeat url(~src/assets/icons/white/check-circle.svg);\n }\n\n &.delete {\n background: center / contain no-repeat url(~src/assets/icons/white/delete.svg);\n }\n\n &.options-vertical {\n background: center / contain no-repeat url(~src/assets/icons/white/options-vertical.svg);\n }\n\n &.temp {\n background: center / contain no-repeat url(~src/assets/icons/white/temp.svg);\n }\n\n &.document {\n background: center / contain no-repeat url(~src/assets/icons/white/document.svg);\n }\n\n &.dots {\n background: center / contain no-repeat url(~src/assets/icons/white/dots.svg);\n }\n\n &.dropdown-arrow-down {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-down.svg);\n }\n\n &.dropdown-arrow-left {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-left.svg);\n }\n\n &.dropdown-arrow-right {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-right.svg);\n }\n\n &.dropdown-arrow-up {\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-up.svg);\n }\n\n &.edit-square {\n background: center / contain no-repeat url(~src/assets/icons/white/edit-square.svg);\n }\n\n &.export {\n background: center / contain no-repeat url(~src/assets/icons/white/export.svg);\n }\n\n &.logout {\n background: center / contain no-repeat url(~src/assets/icons/white/logout.svg);\n }\n\n &.plus {\n background: center / contain no-repeat url(~src/assets/icons/white/plus.svg);\n }\n\n &.settings {\n background: center / contain no-repeat url(~src/assets/icons/white/settings.svg);\n }\n\n &.staking {\n background: center / contain no-repeat url(~src/assets/icons/white/staking.svg);\n }\n\n &.time-circle {\n background: center / contain no-repeat url(~src/assets/icons/white/time-circle.svg);\n }\n\n &.wallet-options {\n background: center / contain no-repeat url(~src/assets/icons/white/wallet-options.svg);\n }\n\n &.update {\n background: center / contain no-repeat url(~src/assets/icons/white/update.svg);\n }\n\n &.lock-transaction {\n background: center / contain no-repeat url(~src/assets/icons/white/lock-transaction.svg);\n }\n\n &.unlock-transaction {\n background: center / contain no-repeat url(~src/assets/icons/white/unlock-transaction.svg);\n }\n\n &.modal-info {\n background: center / contain no-repeat url(~src/assets/icons/white/modal-info.svg);\n }\n\n // orange\n &.time-orange {\n background: center / contain no-repeat url(~src/assets/icons/orange/time.svg);\n }\n\n // red\n &.unsecured {\n background: center / contain no-repeat url(~src/assets/icons/red/unsecured.svg);\n }\n\n &.new {\n background: center / contain no-repeat url(~src/assets/icons/red/new.svg);\n }\n\n &.alert {\n background: center / contain no-repeat url(~src/assets/icons/red/alert.svg);\n }\n\n &.error {\n background: center / contain no-repeat url(~src/assets/icons/red/modal-alert.svg);\n }\n\n // aqua\n &.secured {\n background: center / contain no-repeat url(~src/assets/icons/aqua/secured.svg);\n }\n\n &.success {\n background: center / contain no-repeat url(~src/assets/icons/aqua/modal-success.svg);\n }\n\n // gray\n &.fire {\n background: center / contain no-repeat url(~src/assets/icons/gray/fire_ico.svg);\n }\n}\n",".loader {\n border: 2rem solid var(--azure-500);\n border-top: 2rem solid transparent;\n border-radius: 50%;\n min-width: 13rem;\n min-height: 13rem;\n animation: spin 2s linear infinite;\n}\n\n@keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n",".migrate-alert {\n .btn-migrate {\n background-color: #1F8FEB33;\n color: #1F8FEB;\n font-size: 1.8rem;\n line-height: 1.2;\n padding: 0.8rem 2rem;\n border-radius: 0.8rem;\n cursor: pointer;\n transition: background-color 0.2s ease;\n\n &:hover {\n background-color: #1F8FEB50;\n }\n }\n\n .migration-details {\n font-size: 1.6rem;\n }\n}\n\n",".modal-overlay {\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--black-300);\n padding: 2rem;\n z-index: 100;\n}\n\n.modal {\n position: relative;\n overflow: hidden;\n\n .message-container {\n overflow: hidden;\n text-overflow: ellipsis;\n\n .title,\n .message {\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n word-wrap: break-word;\n }\n }\n\n button.close {\n position: absolute;\n top: 0.8rem;\n right: 0.8rem;\n }\n}\n","@mixin rtl {\n @at-root [dir='rtl'] #{&} {\n @content;\n }\n}\n\n$ng-select-highlight: var(--gray-900) !default;\n$ng-select-primary-text: var(--white-500) !important;\n$ng-select-disabled-text: var(--white-500) !default;\n$ng-select-border: var(--gray-500) !default;\n$ng-select-border-radius: 0.8rem !default;\n$ng-select-bg: var(--blue-500) !default;\n$ng-select-selected: $ng-select-highlight !default;\n$ng-select-selected-text: $ng-select-primary-text !default;\n\n$ng-select-marked: $ng-select-highlight !default;\n$ng-select-marked-text: $ng-select-primary-text !default;\n\n$ng-select-box-shadow: none;\n$ng-select-placeholder: var(--gray-700) !default;\n$ng-select-height: 4rem !default;\n$ng-select-value-padding-left: 1rem !default;\n$ng-select-value-font-size: 1.8rem !default;\n$ng-select-value-text: $ng-select-primary-text !default;\n\n$ng-select-dropdown-bg: $ng-select-bg !default;\n$ng-select-dropdown-border: $ng-select-border !default;\n$ng-select-dropdown-optgroup-text: var(--white-500) !default;\n$ng-select-dropdown-optgroup-marked: $ng-select-dropdown-optgroup-text !default;\n$ng-select-dropdown-option-bg: $ng-select-dropdown-bg !default;\n$ng-select-dropdown-option-text: var(--white-500) !default;\n$ng-select-dropdown-option-disabled: $ng-select-primary-text !default;\n\n$ng-select-input-text: var(--white-500) !default;\n\n$circle-border: 0.2rem solid white !default;\n$circle-background: white !default;\n\n.ng-select {\n width: 100%;\n\n &.ng-select-opened {\n > .ng-select-container {\n background: $ng-select-bg;\n border-color: $ng-select-border;\n\n &:hover {\n box-shadow: none;\n }\n\n .ng-arrow {\n display: flex !important;\n align-items: center;\n justify-content: center;\n min-width: 1.8rem;\n min-height: 1.8rem;\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-up.svg);\n }\n }\n\n &.ng-select-top {\n > .ng-select-container {\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n }\n }\n\n &.ng-select-right {\n > .ng-select-container {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n }\n\n &.ng-select-bottom {\n > .ng-select-container {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n\n &.ng-select-left {\n > .ng-select-container {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n }\n\n &.ng-select-focused {\n &:not(.ng-select-opened) > .ng-select-container {\n border-color: $ng-select-border;\n box-shadow: $ng-select-box-shadow;\n }\n }\n\n &.ng-select-disabled {\n cursor: not-allowed !important;\n\n > .ng-select-container {\n cursor: not-allowed !important;\n\n &:hover {\n box-shadow: none;\n border: 0.2rem solid $ng-select-bg;\n }\n }\n }\n\n .ng-has-value .ng-placeholder {\n display: none;\n }\n\n .ng-select-container {\n align-items: center;\n color: $ng-select-primary-text;\n background-color: $ng-select-bg;\n border-radius: $ng-select-border-radius;\n border: 0.2rem solid $ng-select-bg;\n min-height: $ng-select-height;\n transition: border 0.2s ease-in-out;\n cursor: pointer !important;\n\n // &.ng-has-value show border if select has value\n &:hover {\n box-shadow: none;\n border: 0.2rem solid $ng-select-border;\n }\n\n .ng-value-container {\n align-items: center;\n padding-left: $ng-select-value-padding-left;\n @include rtl {\n padding-right: $ng-select-value-padding-left;\n padding-left: 0;\n }\n\n .ng-placeholder {\n color: $ng-select-placeholder;\n }\n }\n }\n\n &.ng-select-single {\n .ng-select-container {\n height: $ng-select-height;\n\n .ng-value-container {\n .ng-input {\n top: 0.8rem;\n left: 0;\n padding-left: $ng-select-value-padding-left;\n padding-right: 5rem;\n\n > input {\n color: var(--white-500);\n font-size: 1.8rem;\n }\n\n @include rtl {\n padding-right: $ng-select-value-padding-left;\n padding-left: 5rem;\n }\n }\n }\n }\n }\n\n &.ng-select-multiple {\n &.ng-select-disabled {\n cursor: not-allowed;\n\n > .ng-select-container .ng-value-container .ng-value {\n background-color: $ng-select-disabled-text;\n border: 0.2rem solid $ng-select-border;\n\n .ng-value-label {\n padding: 0 0.5rem;\n }\n }\n }\n\n .ng-select-container {\n .ng-value-container {\n padding-top: 0.5rem;\n padding-left: 0.7rem;\n @include rtl {\n padding-right: 0.7rem;\n padding-left: 0;\n }\n\n .ng-value {\n font-size: $ng-select-value-font-size;\n margin-bottom: 0.5rem;\n color: $ng-select-value-text;\n background-color: $ng-select-selected;\n border-radius: 0.2rem;\n margin-right: 0.5rem;\n @include rtl {\n margin-right: 0;\n margin-left: 0.5rem;\n }\n\n &.ng-value-disabled {\n background-color: $ng-select-disabled-text;\n\n .ng-value-label {\n padding-left: 0.5rem;\n @include rtl {\n padding-left: 0;\n padding-right: 0.5rem;\n }\n }\n }\n\n .ng-value-label {\n display: inline-block;\n padding: 0.1rem 0.5rem;\n }\n\n .ng-value-icon {\n display: inline-block;\n padding: 0.1rem 0.5rem;\n\n &:hover {\n background-color: $ng-select-selected, 5;\n }\n\n &.left {\n border-right: 0.15rem solid $ng-select-selected;\n @include rtl {\n border-left: 0.15rem solid $ng-select-selected;\n border-right: none;\n }\n }\n\n &.right {\n border-left: 0.15rem solid $ng-select-selected;\n @include rtl {\n border-left: 0;\n border-right: 0.15rem solid $ng-select-selected;\n }\n }\n }\n }\n\n .ng-input {\n padding: 0 0 0.3rem 0.3rem;\n @include rtl {\n padding: 0 0.3rem 0.3rem 0;\n }\n\n > input {\n color: $ng-select-input-text;\n font-size: 1.8rem;\n }\n }\n\n .ng-placeholder {\n top: 0.8rem;\n padding-bottom: 0.5rem;\n padding-left: 0.3rem;\n @include rtl {\n padding-right: 0.3rem;\n padding-left: 0;\n }\n }\n }\n }\n }\n\n .ng-clear-wrapper {\n color: $ng-select-border;\n\n &:hover .ng-clear {\n color: #d0021b;\n }\n }\n\n .ng-spinner-zone {\n padding: 0.5rem 0.5rem 0 0;\n\n @include rtl {\n padding: 0.5rem 0 0 0.5rem;\n }\n }\n\n .ng-arrow-wrapper {\n width: 2.5rem;\n padding-right: 0.5rem;\n @include rtl {\n padding-left: 0.5rem;\n padding-right: 0;\n }\n\n &:hover {\n .ng-arrow {\n border-top-color: $ng-select-border;\n }\n }\n\n .ng-arrow {\n display: flex !important;\n align-items: center;\n justify-content: center;\n min-width: 1.8rem;\n min-height: 1.8rem;\n background: center / contain no-repeat url(~src/assets/icons/white/dropdown-arrow-down.svg);\n }\n }\n\n &.invalid,\n &.ng-touched.ng-invalid {\n > .ng-select-container,\n .ng-dropdown-panel {\n border: var(--border-error);\n }\n }\n}\n\n.ng-dropdown-panel {\n background-color: $ng-select-dropdown-bg;\n border: 0.2rem solid $ng-select-dropdown-border;\n box-shadow: none;\n left: 0;\n\n &.ng-select-top {\n bottom: 100%;\n border-top-right-radius: $ng-select-border-radius;\n border-top-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-right-radius: $ng-select-border-radius;\n border-top-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-right {\n left: 100%;\n top: 0;\n border-top-right-radius: $ng-select-border-radius;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-right-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-bottom {\n top: 100%;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-top-color: $ng-select-border;\n margin-top: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:last-child {\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n &.ng-select-left {\n left: -100%;\n top: 0;\n border-top-left-radius: $ng-select-border-radius;\n border-bottom-right-radius: $ng-select-border-radius;\n border-bottom-left-radius: $ng-select-border-radius;\n border-bottom-color: $ng-select-border;\n margin-bottom: -0.1rem;\n\n .ng-dropdown-panel-items {\n .ng-option {\n &:first-child {\n border-top-left-radius: $ng-select-border-radius;\n }\n }\n }\n }\n\n .ng-dropdown-header {\n border-bottom: 0.15rem solid $ng-select-border;\n padding: 0.5rem 0.7rem;\n }\n\n .ng-dropdown-footer {\n border-top: 0.15rem solid $ng-select-border;\n padding: 0.5rem 0.7rem;\n }\n\n .ng-dropdown-panel-items {\n .ng-optgroup {\n user-select: none;\n padding: 0.8rem 1rem;\n font-weight: 500;\n color: $ng-select-dropdown-optgroup-text;\n cursor: pointer;\n\n &.ng-option-disabled {\n cursor: not-allowed;\n }\n\n &.ng-option-marked {\n background-color: $ng-select-marked;\n }\n\n &.ng-option-selected,\n &.ng-option-selected.ng-option-marked {\n color: $ng-select-dropdown-optgroup-marked;\n background-color: $ng-select-selected;\n font-weight: 600;\n }\n }\n\n .ng-option {\n background-color: $ng-select-dropdown-option-bg;\n color: $ng-select-dropdown-option-text;\n padding: 0.8rem 1rem;\n\n &.ng-option-selected,\n &.ng-option-selected.ng-option-marked {\n color: $ng-select-selected-text;\n background-color: $ng-select-selected;\n\n .ng-option-label {\n font-weight: 600;\n }\n }\n\n &.ng-option-marked {\n background-color: $ng-select-marked;\n color: $ng-select-marked-text;\n }\n\n &.ng-option-disabled {\n color: $ng-select-dropdown-option-disabled;\n }\n\n &.ng-option-child {\n padding-left: 2.2rem;\n @include rtl {\n padding-right: 2.2rem;\n padding-left: 0;\n }\n }\n\n .ng-tag-label {\n font-size: 80%;\n font-weight: 400;\n padding-right: 0.5rem;\n @include rtl {\n padding-left: 0.5rem;\n padding-right: 0;\n }\n }\n }\n }\n\n @include rtl {\n direction: rtl;\n text-align: right;\n }\n}\n\n.ng-select {\n &.with-circle {\n .ng-dropdown-panel {\n .ng-option {\n position: relative;\n padding: 0.8rem 3rem 0.8rem 0.8rem;\n\n &:after {\n position: absolute;\n top: 50%;\n right: 1rem;\n transform: translateY(-50%);\n display: block;\n content: '';\n width: 1.8rem;\n height: 1.8rem;\n background-image: url('~src/assets/icons/white/radio.svg');\n background-size: contain;\n background-repeat: no-repeat;\n }\n\n &.ng-option-selected {\n &:after {\n background-image: url('~src/assets/icons/white/radio-active.svg');\n }\n }\n }\n }\n }\n}\n",".ngx-pagination {\n a {\n min-width: 29px;\n cursor: pointer;\n color: var(--white-500) !important;\n &:hover {\n background: transparent !important;\n }\n }\n\n .current {\n background: transparent !important;\n color: var(--azure-500) !important;\n }\n\n .pagination-next,\n .pagination-previous {\n background-color: var(--gray-900);\n transition: background-color 0.2s ease-in-out;\n border-radius: 999px;\n\n &:hover {\n background-color: var(--gray-700);\n }\n\n &.disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n }\n}\n\n.custom-pagination {\n display: flex;\n align-items: center;\n min-height: 2.8rem;\n}\n",".preloader {\n align-self: center;\n color: white;\n font-size: 2rem;\n margin: 0 auto;\n text-align: center;\n width: 50%;\n\n .loading-bar {\n display: block;\n animation: move 5s linear infinite;\n background-color: var(--azure-500);\n background-image: -webkit-gradient(\n linear,\n 0 0,\n 100% 100%,\n color-stop(0.125, rgba(0, 0, 0, 0.15)),\n color-stop(0.125, transparent),\n color-stop(0.25, transparent),\n color-stop(0.25, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, transparent),\n color-stop(0.5, transparent),\n color-stop(0.5, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, transparent),\n color-stop(0.75, transparent),\n color-stop(0.75, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, transparent),\n to(transparent)\n ),\n -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 10rem 10rem;\n width: 100%;\n height: 1rem;\n }\n}\n\n@keyframes move {\n 0% {\n background-position: 100% -10rem;\n }\n 100% {\n background-position: 100% 10rem;\n }\n}\n","app-progress-container {\n .progress-bar-container {\n color: var(--white-500);\n\n .progress-bar {\n background-color: var(--blue-300);\n\n .progress-bar-full {\n background-color: var(--azure-500);\n }\n }\n }\n}\n",".seed-phrase {\n .content {\n .item {\n border: var(--border);\n background-color: var(--gray-900);\n\n .number {\n width: 1.8rem;\n height: 1.8rem;\n border-radius: 50%;\n font-size: 1rem;\n background-color: var(--gray-600);\n }\n\n .word {\n white-space: nowrap;\n }\n }\n }\n}\n","app-sidebar {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n padding: 2rem 2rem 0 2rem;\n max-width: 23rem;\n width: 100%;\n height: 100%;\n background-color: var(--blue-700);\n\n .sidebar {\n &-header {\n .logo {\n margin: 0 auto;\n max-width: 14rem;\n max-height: 4.8rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n }\n\n &-content {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n height: 100%;\n }\n\n &-nav {\n min-height: 21rem;\n max-height: 25rem;\n }\n\n &-footer {\n display: flex;\n justify-items: center;\n align-items: center;\n width: 100%;\n min-height: 6rem;\n overflow: hidden;\n\n // centered status Online, Offline\n .synchronization-status {\n .status-container {\n .offline,\n .online {\n justify-content: center;\n }\n }\n }\n }\n }\n}\n\n.cdk-drag-placeholder {\n opacity: 0.3;\n}\n\n.cdk-drag-animating {\n transition: transform 250ms cubic-bezier(0, 0, 0.2, 1);\n}\n\n.cdk-drag-preview {\n &.wallet {\n color: var(--white-500);\n background: var(--blue-500);\n\n &.price {\n color: var(--gray-800);\n\n .percent {\n color: var(--gray-800);\n }\n }\n }\n}\n","app-synchronization-status {\n width: 100%;\n}\n\n.synchronization-status {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n color: var(--white-500);\n width: 100%;\n\n .status-container {\n position: relative;\n width: 100%;\n\n .offline,\n .online {\n display: flex;\n width: 100%;\n\n span {\n position: relative;\n padding-left: 2.2rem;\n\n &:before {\n content: '';\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n border-radius: 50%;\n width: 1rem;\n height: 1rem;\n }\n }\n }\n\n .offline > span:before {\n background-color: var(--red-500);\n }\n\n .online > span:before {\n background-color: var(--aqua-500);\n }\n\n .syncing,\n .loading {\n font-size: 1.4rem;\n line-height: 1.2;\n }\n\n .progress-bar-container {\n width: 100%;\n height: 0.6rem;\n\n .syncing {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin-top: 0.4rem;\n\n .progress-bar {\n border-radius: 0.2rem;\n height: 0.6rem;\n width: 100%;\n overflow: hidden;\n background-color: var(--gray-900);\n\n .fill {\n border-radius: 0.2rem;\n height: 100%;\n background-color: var(--aqua-500);\n }\n }\n\n .progress-percent {\n color: var(--aqua-500);\n font-size: 1.4rem;\n line-height: 1.2;\n padding-left: 1rem;\n }\n }\n\n .loading {\n background-color: var(--aqua-500);\n animation: move 5s linear infinite;\n background-image: -webkit-gradient(\n linear,\n 0 0,\n 100% 100%,\n color-stop(0.125, rgba(0, 0, 0, 0.15)),\n color-stop(0.125, transparent),\n color-stop(0.25, transparent),\n color-stop(0.25, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, rgba(0, 0, 0, 0.1)),\n color-stop(0.375, transparent),\n color-stop(0.5, transparent),\n color-stop(0.5, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, rgba(0, 0, 0, 0.15)),\n color-stop(0.625, transparent),\n color-stop(0.75, transparent),\n color-stop(0.75, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, rgba(0, 0, 0, 0.1)),\n color-stop(0.875, transparent),\n to(transparent)\n ),\n -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.125, rgba(0, 0, 0, 0.3)), color-stop(0.125, transparent), color-stop(0.25, transparent), color-stop(0.25, rgba(0, 0, 0, 0.25)), color-stop(0.375, rgba(0, 0, 0, 0.25)), color-stop(0.375, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(0, 0, 0, 0.3)), color-stop(0.625, rgba(0, 0, 0, 0.3)), color-stop(0.625, transparent), color-stop(0.75, transparent), color-stop(0.75, rgba(0, 0, 0, 0.25)), color-stop(0.875, rgba(0, 0, 0, 0.25)), color-stop(0.875, transparent), to(transparent));\n background-size: 7rem 7rem;\n height: 100%;\n }\n }\n }\n\n .update-container {\n display: flex;\n align-items: center;\n text-align: right;\n\n .update-text {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-items: center;\n font-size: 1.4rem;\n line-height: 1.2;\n text-align: left;\n\n &.time {\n font-size: 1.1rem;\n }\n }\n\n .icon {\n flex: 1 0 auto;\n margin: 0.3rem 0 0 0.6rem;\n width: 1.2rem;\n height: 1.2rem;\n }\n\n .standard {\n color: var(--aqua-500);\n }\n\n .important {\n color: var(--orange-500);\n }\n\n .critical {\n color: var(--red-500);\n }\n\n .time-orange {\n color: var(--orange-500);\n }\n\n .icon {\n &.standard {\n .st0 {\n fill: var(--aqua-500);\n }\n }\n\n &.important {\n .st0 {\n fill: var(--orange-500);\n }\n }\n\n &.critical {\n .st0 {\n fill: var(--red-500);\n }\n }\n }\n }\n}\n\n@keyframes move {\n 0% {\n background-position: 100% -7rem;\n }\n 100% {\n background-position: 100% 7rem;\n }\n}\n","table {\n width: 100%;\n table-layout: fixed;\n\n .row-divider {\n height: 1rem;\n -webkit-transition: 0.2s height linear, 0s font-size;\n transition: 0.2s height linear, 0s font-size;\n transition-delay: 0s, 0.2s;\n\n &.hide {\n height: 0;\n }\n }\n\n thead {\n text-align: left;\n border-radius: 0.8rem;\n overflow: auto;\n\n tr {\n th {\n background-color: var(--blue-700);\n z-index: 5;\n max-width: 10rem;\n overflow: hidden;\n text-overflow: ellipsis;\n\n .bg {\n background-color: var(--blue-400);\n }\n\n .title {\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 2rem;\n width: 100%;\n }\n\n &:first-child {\n .title {\n border-radius: 0.8rem 0 0 0.8rem;\n }\n }\n\n &:last-child {\n .title {\n border-radius: 0 0.8rem 0.8rem 0;\n }\n }\n }\n\n /** Sticky header */\n th {\n position: sticky;\n top: 0;\n }\n }\n }\n\n tbody {\n text-align: left;\n\n tr {\n background-color: var(--blue-300);\n -webkit-transition: 0.5s height linear, 0s font-size;\n transition: 0.5s height linear, 0s font-size;\n transition-delay: 0s, 0.5s;\n height: auto;\n\n td {\n padding: 2rem;\n vertical-align: middle;\n white-space: nowrap;\n max-width: 10rem;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:first-child {\n border-radius: 0.8rem 0 0 0.8rem;\n }\n\n &:last-child {\n border-radius: 0 0.8rem 0.8rem 0;\n }\n }\n\n &:not(.details) {\n cursor: pointer;\n }\n }\n }\n}\n\n.table-info {\n display: flex;\n flex-direction: column;\n width: 100%;\n border: var(--border);\n border-radius: 0.8rem;\n overflow: hidden;\n\n .separator {\n border: none;\n height: 2px;\n color: var(--gray-800); /* old IE */\n background-color: var(--gray-800); /* Modern Browsers */\n }\n\n .row {\n display: flex;\n flex-wrap: nowrap;\n width: 100%;\n min-height: 6rem;\n\n .label,\n .text {\n overflow: hidden;\n padding: 2rem;\n }\n\n .label {\n color: var(--azure-500);\n background: var(--blue-500);\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .text {\n width: 100%;\n word-break: break-word;\n }\n }\n}\n",".tabs {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n overflow: hidden;\n\n .tabs-header {\n display: flex;\n justify-content: space-between;\n min-height: 5.8rem;\n\n .tab-header {\n background-color: var(--blue-800);\n border-radius: 0.8rem 0.8rem 0 0;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n min-height: 5.8rem;\n flex: 1 1 auto;\n transition: background-color 0.25s ease-in-out;\n\n i,\n span {\n opacity: 0.75;\n transition: opacity 0.25s ease-in-out;\n }\n\n &.active,\n &:hover:not(.active):not(.disabled) {\n background-color: var(--blue-700);\n\n i,\n span {\n opacity: 1;\n }\n }\n\n &.hide {\n display: none;\n }\n\n .indicator {\n margin-left: 0.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 2rem;\n font-size: 1.2rem;\n line-height: 1.4rem;\n min-width: 2.4rem;\n height: 1.6rem;\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n &:not(:last-child) {\n margin-right: 0.5rem;\n }\n }\n }\n\n .tabs-content {\n display: flex;\n flex: auto;\n overflow: hidden;\n border-radius: 0 0 0.8rem 0.8rem;\n background-color: var(--blue-700);\n\n padding: 2rem;\n }\n}\n",".table-tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 0.8rem;\n background: var(--blue-450);\n color: var(--white-500);\n\n .tooltip-inner {\n font-size: 1.4rem;\n line-height: 1.2;\n white-space: pre-wrap;\n }\n\n &.ng-tooltip-top {\n margin-top: -1rem;\n\n &:after {\n content: '';\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n position: absolute;\n bottom: -0.5rem;\n left: calc(50% - 0.5rem);\n }\n }\n\n .ng-tooltip-bottom-left {\n margin-top: 1rem;\n\n &::before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: 3rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background-color: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-top-left {\n margin-top: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: -0.5rem;\n left: 1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-top-right {\n margin-top: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: -0.5rem;\n right: 0.7rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom {\n margin-top: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: calc(50% - 0.5rem);\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom-left {\n margin-top: 1rem;\n\n &::before {\n content: '';\n position: absolute;\n top: -0.5rem;\n left: 3rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background-color: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-bottom-right {\n position: relative;\n margin-top: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: -0.5rem;\n right: 0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-left {\n margin-left: -1rem;\n\n &:after {\n content: '';\n position: absolute;\n top: calc(50% - 0.5rem);\n right: -0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n\n &.ng-tooltip-right {\n margin-left: 1rem;\n\n &:before {\n content: '';\n position: absolute;\n top: calc(50% - 0.5rem);\n left: -0.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n background: var(--blue-450);\n transform: rotate(45deg);\n }\n }\n}\n\n.table-tooltip-dimensions {\n .tooltip-inner {\n overflow: auto;\n max-width: 20rem;\n max-height: 10rem;\n }\n}\n\n.tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 0.6rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n font-size: 1.2rem;\n}\n\n.balance-tooltip {\n z-index: 999;\n padding: 1rem;\n border-radius: 1rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n\n .tooltip-inner {\n display: flex;\n flex-direction: column;\n font-size: 1.3rem;\n\n .available {\n margin-bottom: 0.7rem;\n\n b {\n font-weight: 600;\n }\n }\n\n .locked {\n margin-bottom: 0.7rem;\n\n b {\n font-weight: 600;\n }\n }\n\n .link {\n cursor: pointer;\n color: var(--azure-500);\n }\n }\n\n .balance-scroll-list {\n display: flex;\n flex-direction: column;\n max-height: 20rem;\n overflow-y: auto;\n }\n\n &.ng-tooltip-top {\n margin-top: -1rem;\n }\n\n &.ng-tooltip-bottom {\n margin-top: 1rem;\n }\n\n &.ng-tooltip-left {\n margin-left: -1rem;\n }\n\n &.ng-tooltip-right {\n margin-left: 1rem;\n }\n}\n\n.account-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n word-break: break-word;\n max-width: 18rem;\n }\n}\n\n.comment-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n word-break: break-word;\n max-width: 50rem;\n max-height: 25rem;\n }\n}\n\n.update-tooltip {\n z-index: 999;\n padding: 1rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n\n &.important {\n background: var(--red-500);\n color: var(--white-500);\n\n &.ng-tooltip-left-bottom {\n &:after {\n border-color: transparent transparent var(--red-500) var(--red-500);\n }\n }\n\n &.ng-tooltip-right-bottom {\n &:before {\n border-color: transparent var(--red-500) var(--red-500) transparent;\n }\n }\n }\n\n &.critical {\n padding: 2.5rem;\n background: var(--red-500);\n color: var(--white-500);\n\n .tooltip-inner {\n display: flex;\n flex-direction: column;\n align-items: center;\n }\n\n &.ng-tooltip-left-bottom {\n &:after {\n border-color: transparent transparent var(--red-500) var(--red-500);\n }\n }\n\n &.ng-tooltip-right-bottom {\n &:before {\n border-color: transparent var(--red-500) var(--red-500) transparent;\n }\n }\n }\n\n .tooltip-inner {\n font-size: 1.3rem;\n line-height: 1.2;\n white-space: pre-wrap;\n\n .standard-update {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--azure-500);\n }\n\n .important-update {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--orange-500);\n }\n\n .critical-update {\n font-size: 1.5rem;\n line-height: 1.2;\n text-align: center;\n }\n\n .wrong-time {\n font-size: 1.5rem;\n line-height: 1.2;\n color: var(--orange-500);\n }\n\n .icon {\n margin: 1.5rem 0;\n width: 5rem;\n height: 5rem;\n }\n }\n\n &.ng-tooltip-left-bottom {\n margin-left: -1.5rem;\n\n &:after {\n content: '';\n position: absolute;\n bottom: 0.6rem;\n right: -1rem;\n border-width: 0.5rem;\n border-style: solid;\n border-color: transparent transparent var(--blue-450) var(--blue-450);\n }\n }\n\n &.ng-tooltip-right-bottom {\n margin-left: 1.5rem;\n\n &:before {\n content: '';\n position: absolute;\n bottom: 0.6rem;\n left: -1rem;\n border-width: 0.5rem;\n border-style: solid;\n border-color: transparent var(--blue-450) var(--blue-450) transparent;\n }\n }\n}\n\n.update-tooltip {\n z-index: 999;\n background-color: var(--blue-450);\n color: var(--white-500);\n .tooltip-inner {\n .icon {\n background: center / contain no-repeat url(~src/assets/icons/red/update-alert.svg);\n }\n }\n}\n",".wallet {\n border-radius: 0.8rem;\n margin-bottom: 1rem;\n position: relative;\n display: flex;\n flex-direction: column;\n max-width: 19rem;\n min-width: 19rem;\n width: 100%;\n padding: 1.2rem;\n background-color: var(--blue-500);\n border: 0.2rem solid var(--blue-500);\n cursor: pointer;\n\n .content {\n z-index: 10;\n }\n\n .header {\n display: flex;\n flex-wrap: nowrap;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 0.8rem;\n\n .left {\n overflow: hidden;\n\n .name {\n .indicator {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n width: 1.8rem;\n height: 1.8rem;\n padding: 0.5rem;\n margin-right: 0.8rem;\n font-size: 1.2rem;\n line-height: 1;\n background-color: var(--white-500);\n color: var(--azure-500);\n }\n }\n }\n }\n\n .balance {\n display: flex;\n align-items: center;\n font-weight: 600;\n margin-bottom: 0.5rem;\n }\n\n .price {\n font-size: 1.4rem;\n font-weight: 600;\n line-height: 1.2;\n\n .percent {\n font-size: 1.4rem;\n font-weight: 400;\n line-height: 1.2;\n color: var(--aqua-500);\n margin-left: 0.7rem;\n\n &.red {\n color: var(--red-500);\n }\n }\n }\n\n .staking {\n margin-top: 0.8rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .account-synchronization {\n display: flex;\n align-items: center;\n width: 100%;\n\n .progress-bar {\n border-radius: 1rem;\n flex: 1 0 auto;\n height: 0.4rem;\n overflow: hidden;\n\n .fill {\n height: 100%;\n }\n }\n\n .progress-percent {\n flex: 0 0 auto;\n font-size: 1.4rem;\n line-height: 1.2;\n padding-left: 1rem;\n }\n }\n\n &.active {\n border: none;\n padding: 1.35rem;\n background: var(--gradietAquaToBlue);\n\n .price {\n .percent {\n &.red {\n color: var(--red-100);\n }\n }\n }\n }\n\n &.auditable,\n &.watch-only {\n border-width: 0;\n padding: 1.35rem;\n background: var(--gradietLightAmethystToPurpurle);\n }\n\n &.auditable {\n &:hover:not(.active) {\n padding: 1.2rem;\n border-width: 0.15rem;\n }\n\n &.active {\n padding: 1.35rem;\n border: none;\n background: var(--gradietAmethystToPurpurle);\n }\n }\n\n &.watch-only {\n &:after {\n content: '';\n display: block;\n background: var(--blue-500);\n position: absolute;\n border-radius: 0.8rem;\n left: 0.25rem;\n right: 0.25rem;\n top: 0.25rem;\n bottom: 0.25rem;\n z-index: 1;\n }\n\n &.active,\n &:hover {\n background: var(--gradietAmethystToPurpurle);\n }\n\n .price {\n .percent {\n &.red {\n color: var(--red-500);\n }\n }\n }\n }\n\n &:hover:not(.active):not(.watch-only) {\n border-color: var(--gray-800);\n }\n\n &:focus {\n outline: none;\n }\n\n &:last-child {\n margin-bottom: 0 !important;\n }\n\n .progress-bar {\n background-color: var(--gray-800);\n\n .fill {\n background-color: var(--white-500);\n }\n }\n}\n","app-send-details-modal, app-success-sweep-bare-outs {\n .status {\n .image {\n max-width: 13rem;\n max-height: 13rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .details {\n .header {\n min-height: 4rem;\n max-height: 4rem;\n background-color: var(--blue-500);\n }\n\n &-wrapper {\n max-height: 35rem;\n background-color: var(--blue-500);\n scroll-behavior: smooth;\n }\n\n &-list {\n width: 100%;\n .item {\n .image {\n max-width: 1.5rem;\n max-height: 1.5rem;\n width: 100%;\n height: 100%;\n\n img {\n width: 100%;\n height: 100%;\n }\n }\n }\n }\n }\n}\n","app-assign-alias {\n .assign-alias-tooltip {\n z-index: 999;\n max-width: 46rem;\n background-color: var(--blue-450);\n color: var(--white-500);\n }\n\n .has-no-edit-symbol {\n position: relative;\n width: 100%;\n\n input {\n padding-left: 2.35rem;\n }\n\n &:after {\n content: '@';\n position: absolute;\n display: inline-block;\n top: 50%;\n left: 1rem;\n transform: translateY(-50%);\n }\n }\n}\n",".assets-table {\n .token-logo {\n background: var(--blue-300);\n min-width: 5.5rem;\n min-height: 5.5rem;\n max-width: 5.5rem;\n max-height: 5.5rem;\n display: flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n overflow: hidden;\n\n img {\n max-width: 3.2rem;\n max-height: 3.2rem;\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n}\n","app-contracts {\n .container {\n .wrap-table {\n table.contracts-table {\n tbody {\n tr {\n cursor: pointer;\n outline: none !important;\n\n .contract {\n position: relative;\n\n .icon {\n flex-shrink: 0;\n\n &.new {\n width: 1.7rem;\n height: 1.7rem;\n }\n\n &.alert {\n width: 1.7rem;\n height: 1.2rem;\n }\n\n &.purchase,\n &.sell {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n\n span {\n text-overflow: ellipsis;\n overflow: hidden;\n }\n }\n\n .status,\n .comment {\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 100%;\n }\n }\n }\n }\n }\n }\n}\n","app-history {\n .wrap-table {\n table.history-table {\n tbody {\n tr {\n .status {\n position: relative;\n\n .confirmation {\n width: 1.7rem;\n height: 1.7rem;\n }\n\n img.status-transaction {\n width: 1.5rem;\n height: 1.5rem;\n }\n }\n }\n }\n }\n }\n}\n","app-purchase {\n .container {\n position: relative;\n // TODO - Uncomment when progress returns\n //padding-bottom: 4rem; // height progress-bar + 1rem\n\n .form {\n max-width: 100%;\n }\n\n .details {\n .content {\n .form__field--row {\n > div {\n flex: 0 1 22rem;\n margin-right: 2rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n }\n }\n\n .purchase-buttons {\n button {\n flex: 0 1 33%;\n margin-right: 0.5rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n .nullify-block-row {\n .nullify-block-buttons {\n button {\n flex: 0 1 25%;\n margin: 0 0.5rem;\n }\n }\n }\n\n .time-cancel-block-row {\n .form__field {\n width: 25%;\n }\n\n .time-cancel-block-buttons {\n button {\n flex: 0 1 25%;\n margin: 0 0.5rem;\n }\n }\n }\n }\n\n // TODO - Uncomment when progress returns\n //.progress-bar-container {\n // position: absolute;\n // bottom: 0;\n // left: 0;\n // padding: 0 3rem;\n // width: 100%;\n // height: 3rem;\n //\n // .progress-bar {\n // position: absolute;\n // top: -0.7rem;\n // left: 0;\n // margin: 0 3rem;\n // width: calc(100% - 6rem);\n // height: 0.7rem;\n //\n // .progress-bar-full {\n // height: 0.7rem;\n // }\n // }\n //\n // .progress-labels {\n // font-size: 1.2rem;\n // }\n //\n // .progress-time {\n // position: absolute;\n // top: -3rem;\n // left: 50%;\n // transform: translateX(-50%);\n // font-size: 1.2rem;\n // }\n //}\n}\n","app-receive {\n .container {\n .wrap-qr {\n max-width: 30rem;\n max-height: 30rem;\n\n img {\n width: 100%;\n height: 100%;\n object-fit: contain;\n }\n }\n\n .address {\n width: 27.1rem;\n height: 4rem;\n border: var(--border);\n }\n }\n}\n","app-send {\n .container {\n .form {\n .wrap {\n border: var(--border);\n\n .title {\n font-size: 100%;\n margin-bottom: 1.5rem;\n color: var(--azure-500);\n\n .icon {\n width: 2rem;\n height: 2rem;\n float: right;\n }\n }\n\n .text-wrap {\n margin: 1.5rem;\n font-size: 1.5rem;\n }\n\n table tr {\n background-color: transparent;\n\n td:first-child {\n width: 22.5rem;\n padding-left: 0;\n }\n }\n }\n }\n }\n}\n","app-staking {\n .chart {\n &-header {\n .selected-group {\n min-width: 19rem;\n }\n\n .items {\n .item {\n min-width: 18rem;\n max-width: 25rem;\n min-height: 4rem;\n border: var(--border);\n\n .left {\n min-width: fit-content;\n width: auto;\n }\n }\n }\n }\n\n & {\n position: relative;\n border: var(--border);\n min-height: 29rem;\n\n > div {\n position: absolute;\n width: 100%;\n height: 100%;\n }\n }\n }\n}\n","app-wallet {\n width: 100%;\n height: 100%;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n","app-login {\n .auth {\n position: relative;\n\n app-synchronization-status {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n }\n}\n\napp-no-wallet {\n .no-wallet-wrapper {\n position: relative;\n\n app-synchronization-status {\n position: absolute;\n left: 0;\n bottom: 0;\n }\n }\n}\n","app-contacts {\n .wrap-table {\n table.contacts-table {\n thead {\n tr {\n th:last-child {\n max-width: 14rem;\n }\n }\n }\n\n tbody {\n tr {\n td {\n &:last-child {\n width: 14rem;\n min-width: fit-content;\n }\n\n .button-wrapper {\n button {\n margin-right: 0.8rem;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n }\n }\n }\n }\n }\n}\n",".color-red {\n color: var(--red-500);\n}\n\n.color-primary {\n color: var(--azure-500);\n}\n\n.color-aqua {\n color: var(--aqua-500);\n}\n\n.border-radius-0_8-rem {\n border-radius: 0.8rem;\n}\n\n.cursor-pointer {\n cursor: pointer;\n}\n\n.cursor-default {\n cursor: default !important;\n}\n\n.text-ellipsis {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n\n.text-align-center {\n text-align: center;\n}\n\n.word-break-break-all {\n word-break: break-all;\n}\n\n// background\n\n.bg-light-gray {\n background-color: var(--gray-900);\n}\n\n.bg-light-blue {\n background-color: var(--blue-700);\n}\n\n.bg-light-blue-details {\n background-color: var(--blue-500);\n}\n\n.background-none {\n background: none;\n}\n\n// overflow\n.overflow-hidden {\n overflow: hidden;\n}\n\n.overflow-auto {\n overflow: auto;\n}\n\n.overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.overflow-x-auto {\n overflow-x: auto;\n}\n\n.overflow-y-auto {\n overflow-y: auto;\n}\n\n.no-scroll {\n overflow: hidden;\n}\n\n.rotate-90 {\n transform: rotate(90deg);\n}\n\n.rotate-180 {\n transform: rotate(180deg);\n}\n\n.rotate-270 {\n transform: rotate(270deg);\n}\n\n.rotate-360 {\n transform: rotate(360deg);\n}\n\n.opacity-0 {\n opacity: 0;\n}\n\n.opacity-1 {\n opacity: 1;\n}\n",".ml-auto {\n margin-left: auto;\n}\n\n.mr-auto {\n margin-right: auto;\n}\n\n.mt-auto {\n margin-top: auto;\n}\n\n.mb-auto {\n margin-bottom: auto;\n}\n\n.mx-0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.mx-0_5 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n\n.mx-1 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.mx-2 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.mx-3 {\n margin-left: 3rem;\n margin-right: 3rem;\n}\n\n.my-0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.my-0_5 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.my-1 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.my-2 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n\n.my-3 {\n margin-top: 3rem;\n margin-bottom: 3rem;\n}\n\n.ml-0 {\n margin-left: 0;\n}\n\n.ml-0_5 {\n margin-left: 0.5rem;\n}\n\n.ml-1 {\n margin-left: 1rem;\n}\n\n.ml-2 {\n margin-left: 2rem;\n}\n\n.ml-3 {\n margin-left: 3rem;\n}\n\n.mb-0 {\n margin-bottom: 0;\n}\n\n.mb-0_5 {\n margin-bottom: 0.5rem;\n}\n\n.mb-1 {\n margin-bottom: 1rem;\n}\n\n.mb-2 {\n margin-bottom: 2rem;\n}\n\n.mb-3 {\n margin-bottom: 3rem;\n}\n\n.mr-0 {\n margin-right: 0;\n}\n\n.mr-0_5 {\n margin-right: 0.5rem;\n}\n\n.mr-1 {\n margin-right: 1rem;\n}\n\n.mr-2 {\n margin-right: 2rem;\n}\n\n.mr-3 {\n margin-right: 3rem;\n}\n\n.mt-0 {\n margin-top: 0;\n}\n\n.mt-0_5 {\n margin-top: 0.5rem;\n}\n\n.mt-1 {\n margin-top: 1rem;\n}\n\n.mt-2 {\n margin-top: 2rem;\n}\n\n.mt-3 {\n margin-top: 3rem;\n}\n\n.m-0 {\n margin: 0;\n}\n\n.m-1 {\n margin: 0.5rem;\n}\n\n.m-1 {\n margin: 1rem;\n}\n\n.m-2 {\n margin: 2rem;\n}\n\n.m-3 {\n margin: 3rem;\n}\n\n.m-auto {\n margin: auto;\n}\n\n.mx-auto {\n margin-left: auto;\n margin-right: auto;\n}\n\n.my-auto {\n margin-top: auto;\n margin-bottom: auto;\n}\n",".px-0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n.px-0_5 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.px-1 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.px-2 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.px-3 {\n padding-left: 3rem;\n padding-right: 3rem;\n}\n\n.py-0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.py-0_5 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.py-0_8 {\n padding-top: 0.8rem;\n padding-bottom: 0.8rem;\n}\n\n\n.py-1 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.py-2 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.py-3 {\n padding-top: 3rem;\n padding-bottom: 3rem;\n}\n\n.pl-0 {\n padding-left: 0;\n}\n\n.pl-0_5 {\n padding-left: 0.5rem;\n}\n\n.pl-1 {\n padding-left: 1rem;\n}\n\n.pl-2 {\n padding-left: 2rem;\n}\n\n.pl-3 {\n padding-left: 3rem;\n}\n\n.pb-0 {\n padding-bottom: 0;\n}\n\n.pb-0_5 {\n padding-bottom: 0.5rem;\n}\n\n.pb-1 {\n padding-bottom: 1rem;\n}\n\n.pb-2 {\n padding-bottom: 2rem;\n}\n\n.pb-3 {\n padding-bottom: 3rem;\n}\n\n.pr-0 {\n padding-right: 0;\n}\n\n.pr-0_5 {\n padding-right: 0.5rem;\n}\n\n.pr-1 {\n padding-right: 1rem;\n}\n\n.pr-2 {\n padding-right: 2rem;\n}\n\n.pr-3 {\n padding-right: 3rem;\n}\n\n.pt-0 {\n padding-top: 0;\n}\n\n.pt-0_5 {\n padding-top: 0.5rem;\n}\n\n.pt-1 {\n padding-top: 1rem;\n}\n\n.pt-2 {\n padding-top: 2rem;\n}\n\n.pt-3 {\n padding-top: 3rem;\n}\n\n.p-0 {\n padding: 0;\n}\n\n.p-0_5 {\n padding: 0.5rem;\n}\n\n.p-1 {\n padding: 1rem;\n}\n\n.p-2 {\n padding: 2rem;\n}\n\n.p-3 {\n padding: 3rem;\n}\n",".w-100 {\n width: 100%;\n}\n\n.max-w-100 {\n max-width: 100%;\n}\n\n.h-100 {\n height: 100%;\n}\n\n.max-h-90-vh {\n max-height: 90vh;\n}\n\n.max-h-100 {\n max-height: 100%;\n}\n\n.min-width-4_4-rem {\n min-width: 4.4rem;\n}\n\n.min-height-4_4-rem {\n min-height: 4.4rem;\n}\n\n.max-w-19-rem {\n max-width: 19rem;\n}\n\n.max-w-34-rem {\n max-width: 34rem;\n}\n\n.max-w-38-rem {\n max-width: 38rem;\n}\n\n.max-w-42-rem {\n max-width: 42rem;\n}\n\n.max-w-50-rem {\n max-width: 50rem;\n}\n\n.max-w-54-rem {\n max-width: 54rem;\n}\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[0]} \ No newline at end of file