diff --git a/qortal-ui-core/language/de.json b/qortal-ui-core/language/de.json index 429a41b7..2171ecd6 100644 --- a/qortal-ui-core/language/de.json +++ b/qortal-ui-core/language/de.json @@ -244,7 +244,14 @@ "wchange46":"An diese Adresse verschicken", "wchange47":"Adressbuch", "wchange48":"Dieses Adressbuch ist leer !", - "wchange49":"Zum Adressbuch hinzufügen" + "wchange49":"Zum Adressbuch hinzufügen", + "wchange50":"Der Name darf nicht leer sein!", + "wchange51":"Adresse darf nicht leer sein!", + "wchange52":"Erfolgreich hinzugefügt!", + "wchange53":"Adressbuch importieren", + "wchange54":"Adressbuch exportieren", + "wchange55":"Ihr bestehendes Adressbuch wird gelöscht und aus einem Backup neu erstellt.", + "wchange56":"WARNUNG!" }, "tradepage":{ "tchange1":"Handelsportal", diff --git a/qortal-ui-core/language/es.json b/qortal-ui-core/language/es.json index 80e463c0..41fa7f48 100644 --- a/qortal-ui-core/language/es.json +++ b/qortal-ui-core/language/es.json @@ -244,7 +244,14 @@ "wchange46":"Enviar a esta dirección", "wchange47":"Directorio", "wchange48":"Esta libreta de direcciones está vacía !", - "wchange49":"Agregar a la libreta de direcciones" + "wchange49":"Agregar a la libreta de direcciones", + "wchange50":"El nombre no puede estar vacío!", + "wchange51":"La dirección no puede estar vacía!", + "wchange52":"Agregado exitosamente!", + "wchange53":"Importar libreta de direcciones", + "wchange54":"Exportar libreta de direcciones", + "wchange55":"Su libreta de direcciones existente se eliminará y se creará una nueva copia de seguridad.", + "wchange56":"ADVERTENCIA!" }, "tradepage":{ "tchange1":"Portal de Comercio", diff --git a/qortal-ui-core/language/fr.json b/qortal-ui-core/language/fr.json index cc8548e0..28027be6 100644 --- a/qortal-ui-core/language/fr.json +++ b/qortal-ui-core/language/fr.json @@ -244,7 +244,14 @@ "wchange46":"Envoyer à cette adresse", "wchange47":"Carnet d'adresses", "wchange48":"Ce carnet d'adresses est vide !", - "wchange49":"Ajouter au carnet d'adresses" + "wchange49":"Ajouter au carnet d'adresses", + "wchange50":"Le nom ne peut pas être vide!", + "wchange51":"L'adresse ne peut pas être vide!", + "wchange52":"Ajouté avec succès!", + "wchange53":"Importer le carnet d'adresses", + "wchange54":"Exporter le carnet d'adresses", + "wchange55":"Votre carnet d'adresses existant sera supprimé et une nouvelle sauvegarde sera créée.", + "wchange56":"ATTENTION!" }, "tradepage":{ "tchange1":"Portail de commerce", diff --git a/qortal-ui-core/language/hindi.json b/qortal-ui-core/language/hindi.json index abea6eed..7f23f9a1 100644 --- a/qortal-ui-core/language/hindi.json +++ b/qortal-ui-core/language/hindi.json @@ -245,7 +245,14 @@ "wchange46":"इस पते पर भेजें", "wchange47":"पता पुस्तिका", "wchange48":"यह पता पुस्तिका खाली है !", - "wchange49":"पता सूची में जोड़ें" + "wchange49":"पता सूची में जोड़ें", + "wchange50":"नाम खाली नहीं हो सकता!", + "wchange51":"पता खाली नहीं हो सकता!", + "wchange52":"सफलतापूर्वक शामिल!", + "wchange53":"पता पुस्तिका आयात करें", + "wchange54":"निर्यात पता पुस्तिका", + "wchange55":"आपकी मौजूदा पता पुस्तिका हटा दी जाएगी और बैकअप से नया बनाया जाएगा।", + "wchange56":"चेतावनी!" }, "tradepage":{ "tchange1":"व्यापार पोर्टल", diff --git a/qortal-ui-core/language/hr.json b/qortal-ui-core/language/hr.json index ce661bdd..4e09f98f 100644 --- a/qortal-ui-core/language/hr.json +++ b/qortal-ui-core/language/hr.json @@ -244,7 +244,14 @@ "wchange46":"Šaljite na ovu adresu", "wchange47":"Adresar", "wchange48":"Ovaj adresar je prazan !", - "wchange49":"Dodaj u adresar" + "wchange49":"Dodaj u adresar", + "wchange50":"Ime ne može biti prazno!", + "wchange51":"Adresa ne može biti prazna!", + "wchange52":"Uspješno dodano!", + "wchange53":"Uvezi adresar", + "wchange54":"Izvezi adresar", + "wchange55":"Vaš postojeći adresar bit će izbrisan i novi će se stvoriti iz sigurnosne kopije.", + "wchange56":"UPOZORENJE!" }, "tradepage":{ "tchange1":"Portal razmjene", diff --git a/qortal-ui-core/language/hu.json b/qortal-ui-core/language/hu.json index f3fec587..c21a6a21 100644 --- a/qortal-ui-core/language/hu.json +++ b/qortal-ui-core/language/hu.json @@ -244,7 +244,14 @@ "wchange46":"Küldje el erre a címre", "wchange47":"Címjegyzék", "wchange48":"Ez a címjegyzék üres !", - "wchange49":"Hozzáadás a címjegyzékhez" + "wchange49":"Hozzáadás a címjegyzékhez", + "wchange50":"A név nem lehet üres!", + "wchange51":"A cím nem lehet üres!", + "wchange52":"Sikeresen hozzáadva!", + "wchange53":"Címjegyzék importálása", + "wchange54":"Címjegyzék exportálása", + "wchange55":"Meglévő címjegyzéke törlésre kerül, és a biztonsági másolatból új jön létre.", + "wchange56":"FIGYELEM!" }, "tradepage":{ "tchange1":"Kereskedelmi Portál", diff --git a/qortal-ui-core/language/it.json b/qortal-ui-core/language/it.json index b5f6d9a8..91f51ab6 100644 --- a/qortal-ui-core/language/it.json +++ b/qortal-ui-core/language/it.json @@ -244,7 +244,14 @@ "wchange46":"Invia a questo indirizzo", "wchange47":"Rubrica", "wchange48":"Questa rubrica è vuota !", - "wchange49":"Aggiungi alla rubrica" + "wchange49":"Aggiungi alla rubrica", + "wchange50":"Il nome non può essere vuoto!", + "wchange51":"L'indirizzo non può essere vuoto!", + "wchange52":"Aggiunto con successo!", + "wchange53":"Importa rubrica", + "wchange54":"Esporta rubrica", + "wchange55":"La tua rubrica esistente verrà eliminata e dal backup verrà creata una nuova.", + "wchange56":"AVVERTIMENTO!" }, "tradepage":{ "tchange1":"Portale commerciale", diff --git a/qortal-ui-core/language/ko.json b/qortal-ui-core/language/ko.json index e8c57fc0..0628f12f 100644 --- a/qortal-ui-core/language/ko.json +++ b/qortal-ui-core/language/ko.json @@ -244,7 +244,14 @@ "wchange46":"이 주소로 보내기", "wchange47":"주소록", "wchange48":"이 주소록이 비어 있습니다 !", - "wchange49":"주소록에 추가하다" + "wchange49":"주소록에 추가하다", + "wchange50":"이름은 비워둘 수 없습니다!", + "wchange51":"주소는 비워둘 수 없습니다!", + "wchange52":"성공적으로 추가되었습니다!", + "wchange53":"주소록 가져오기", + "wchange54":"주소록 내보내기", + "wchange55":"기존 주소록이 삭제되고 백업에서 새로 생성됩니다.", + "wchange56":"경고!" }, "tradepage":{ "tchange1":"무역 포털", diff --git a/qortal-ui-core/language/no.json b/qortal-ui-core/language/no.json index a0ca2e06..0feb8239 100644 --- a/qortal-ui-core/language/no.json +++ b/qortal-ui-core/language/no.json @@ -181,7 +181,7 @@ "mchange35":"Sponsing", "mchange36":"Sponsoren din vil utstede deg en sponsenøkkel (Sponsorship Key) som du vil bruke for å legge til noden din, så du kan begynne å minte (der er ingen belønninger før du når nivå 1.) Når du har nådd nivå 1, oppretter/tildeler du din egen ‘mintenøkkel’ og begynner å tjene belønninger. Du har XXXX blokker igjen i sponsingsperioden.", "mchange37":"Simpelthen ta kontakt med en minter i Qortal som har et høyt nok nivå til å utstede en sponsenøkkel, skaff den nøkkelen, og kom så tilbake hit og fyll inn nøkkelen for å begynne mintereisen!", - "mchange38":"i" + "mchange38":"om" }, "becomeMinterPage":{ "bchange7":"Skriv inn sponsornøkkel", @@ -244,7 +244,14 @@ "wchange46":"Send til denne adressen", "wchange47":"Adressebok", "wchange48":"Denne adresseboken er tom !", - "wchange49":"Legg til i Adresseboken" + "wchange49":"Legg til i Adresseboken", + "wchange50":"Navnet kan ikke stå tomt!", + "wchange51":"Adressen kan ikke være tom!", + "wchange52":"Lagt til!", + "wchange53":"Importer adressebok", + "wchange54":"Eksporter adressebok", + "wchange55":"Din eksisterende adressebok vil bli slettet og ny opprettet fra sikkerhetskopi.", + "wchange56":"ADVARSEL!" }, "tradepage":{ "tchange1":"Handelsportal", diff --git a/qortal-ui-core/language/pl.json b/qortal-ui-core/language/pl.json index be76d298..42d45e0b 100644 --- a/qortal-ui-core/language/pl.json +++ b/qortal-ui-core/language/pl.json @@ -244,7 +244,14 @@ "wchange46":"Wyślij na ten adres", "wchange47":"Książka adresowa", "wchange48":"Ta książka adresowa jest pusta !", - "wchange49":"Dodaj do książki adresowej" + "wchange49":"Dodaj do książki adresowej", + "wchange50":"Nazwa nie może być pusta!", + "wchange51":"Adres nie może być pusty!", + "wchange52":"Pomyslnie dodano!", + "wchange53":"Importuj książkę adresową", + "wchange54":"Eksportuj książkę adresową", + "wchange55":"Twoja istniejąca książka adresowa zostanie usunięta, az kopii zapasowej utworzona nowa.", + "wchange56":"OSTRZEŻENIE!" }, "tradepage":{ "tchange1":"Portal Handlowy", diff --git a/qortal-ui-core/language/pt.json b/qortal-ui-core/language/pt.json index 58906973..1e019d99 100644 --- a/qortal-ui-core/language/pt.json +++ b/qortal-ui-core/language/pt.json @@ -244,7 +244,14 @@ "wchange46":"Enviar para este endereço", "wchange47":"Livro de endereços", "wchange48":"Este catálogo de endereços está vazio !", - "wchange49":"Adicionar ao catálogo de endereços" + "wchange49":"Adicionar ao catálogo de endereços", + "wchange50":"O nome não pode ficar vazio!", + "wchange51":"O endereço não pode estar vazio!", + "wchange52":"Adicionado com sucesso!", + "wchange53":"Importar catálogo de endereços", + "wchange54":"Exportar catálogo de endereços", + "wchange55":"Seu catálogo de endereços existente será excluído e o backup será criado novamente.", + "wchange56":"AVISO!" }, "tradepage":{ "tchange1":"Portal do Comércio", diff --git a/qortal-ui-core/language/ro.json b/qortal-ui-core/language/ro.json index 7a638f71..0243a13b 100644 --- a/qortal-ui-core/language/ro.json +++ b/qortal-ui-core/language/ro.json @@ -244,7 +244,14 @@ "wchange46":"Trimiteti la aceasta adresa", "wchange47":"Carte de adrese", "wchange48":"Aceasta agenda de adrese este goala !", - "wchange49":"Adauga la agenda cu adrese" + "wchange49":"Adauga la agenda cu adrese", + "wchange50":"Numele nu poate fi gol!", + "wchange51":"Adresa nu poate fi goala!", + "wchange52":"Adaugat cu succes!", + "wchange53":"Import agenda de adrese", + "wchange54":"Exportati agenda de adrese", + "wchange55":"Agenda dvs. existenta va fi stearsa si din backup va fi creata o noua.", + "wchange56":"AVERTIZARE!" }, "tradepage":{ "tchange1":"Portal de Tranzactionare", diff --git a/qortal-ui-core/language/rs.json b/qortal-ui-core/language/rs.json index d480eb9d..f4dca3cd 100644 --- a/qortal-ui-core/language/rs.json +++ b/qortal-ui-core/language/rs.json @@ -244,7 +244,14 @@ "wchange46":"Pošaljite na ovu adresu", "wchange47":"Adresar", "wchange48":"Ovaj adresar je prazan !", - "wchange49":"Dodaj u Adresar" + "wchange49":"Dodaj u Adresar", + "wchange50":"Ime ne može biti prazno!", + "wchange51":"Adresa ne može biti prazna!", + "wchange52":"Uspešno dodato!", + "wchange53":"Uvezite adresar", + "wchange54":"Izvezi adresar", + "wchange55":"Vaš postojeći adresar će biti obrisan, a iz rezervne kopije biće kreiran novi.", + "wchange56":"UPOZORENJE!" }, "tradepage":{ "tchange1":"Trgovinski prozor", diff --git a/qortal-ui-core/language/ru.json b/qortal-ui-core/language/ru.json index 97cc5ab3..ee6c61ed 100644 --- a/qortal-ui-core/language/ru.json +++ b/qortal-ui-core/language/ru.json @@ -212,7 +212,7 @@ "wchange14":"Время", "wchange15":"Подпись транзакции", "wchange16":"Хэш транзакции", - "wchange17":"Отправлять", + "wchange17":"Отправь", "wchange18":"От адреса", "wchange19":"Доступные средства", "wchange20":"Кому (адрес или имя)", @@ -244,7 +244,14 @@ "wchange46":"Отправить на этот адрес", "wchange47":"Адресная книга", "wchange48":"Эта адресная книга пуста !", - "wchange49":"Добавить в адресную книгу" + "wchange49":"Добавить в адресную книгу", + "wchange50":"Имя не может быть пустым!", + "wchange51":"Адрес не может быть пустым!", + "wchange52":"Успешно добавлено!", + "wchange53":"Импорт адресной книги", + "wchange54":"Экспорт адресной книги", + "wchange55":"Ваша существующая адресная книга будет удалена, а из резервной копии создана новая.", + "wchange56":"ПРЕДУПРЕЖДЕНИЕ!" }, "tradepage":{ "tchange1":"Торговый портал", diff --git a/qortal-ui-core/language/us.json b/qortal-ui-core/language/us.json index f830a7df..4698dce6 100644 --- a/qortal-ui-core/language/us.json +++ b/qortal-ui-core/language/us.json @@ -237,9 +237,16 @@ "wchange44":"Please try again...", "wchange45":"Send all", "wchange46":"Send to this address", - "wchange47":"Addressbook", - "wchange48":"This Addressbook is empty !", - "wchange49":"Add to Addressbook" + "wchange47":"Address Book", + "wchange48":"This Address Book is empty !", + "wchange49":"Add to Address Book", + "wchange50":"Name cannot be empty!", + "wchange51":"Address cannot be empty!", + "wchange52":"Successfully added!", + "wchange53":"Import Address Book", + "wchange54":"Export Address Book", + "wchange55":"Your existing address book will be deleted and from backup new created.", + "wchange56":"WARNING!" }, "tradepage":{ "tchange1":"Trade Portal", diff --git a/qortal-ui-core/language/zhc.json b/qortal-ui-core/language/zhc.json index 80894f45..7d4d1a16 100644 --- a/qortal-ui-core/language/zhc.json +++ b/qortal-ui-core/language/zhc.json @@ -244,7 +244,14 @@ "wchange46":"发送到这个地址", "wchange47":"地址簿", "wchange48":"此通讯录为空 !", - "wchange49":"加至地址簿" + "wchange49":"加至地址簿", + "wchange50":"名称不能为空!", + "wchange51":"地址不能为空!", + "wchange52":"添加成功!", + "wchange53":"导入通讯录", + "wchange54":"导出通讯录", + "wchange55":"您现有的通讯簿将被删除并从新创建的备份中。", + "wchange56":"警告!" }, "tradepage":{ "tchange1":"交易门户", diff --git a/qortal-ui-core/language/zht.json b/qortal-ui-core/language/zht.json index 4b248e2a..6084d162 100644 --- a/qortal-ui-core/language/zht.json +++ b/qortal-ui-core/language/zht.json @@ -244,7 +244,14 @@ "wchange46":"發送到這個地址", "wchange47":"地址簿", "wchange48":"此通訊錄為空 !", - "wchange49":"加至地址簿" + "wchange49":"加至地址簿", + "wchange50":"名稱不能為空!", + "wchange51":"地址不能為空!", + "wchange52":"添加成功!", + "wchange53":"導入通訊錄", + "wchange54":"導出通訊錄", + "wchange55":"您現有的通訊簿將被刪除並從新創建的備份中。", + "wchange56":"警告!" }, "tradepage":{ "tchange1":"交易門戶", diff --git a/qortal-ui-core/src/components/sidenav-menu.js b/qortal-ui-core/src/components/sidenav-menu.js index b5bbd39c..bac9f3b3 100644 --- a/qortal-ui-core/src/components/sidenav-menu.js +++ b/qortal-ui-core/src/components/sidenav-menu.js @@ -190,6 +190,12 @@ class SidenavMenu extends connect(store)(LitElement) { > + + + ${this.renderNodeManagement()} - - - `; } } diff --git a/qortal-ui-plugins/package.json b/qortal-ui-plugins/package.json index 42ba39b1..9ca4301a 100644 --- a/qortal-ui-plugins/package.json +++ b/qortal-ui-plugins/package.json @@ -50,6 +50,7 @@ "@vaadin/grid": "23.1.5", "@vaadin/icons": "23.1.5", "epml": "0.3.3", + "file-saver": "2.0.5", "html-escaper": "3.0.3", "lit": "2.3.0", "lit-translate": "2.0.1", diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js index b84beb3d..04f67787 100644 --- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js +++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js @@ -9,6 +9,9 @@ registerTranslateConfig({ import '../components/ButtonIconCopy.js' import '../components/QortalQrcodeGenerator.js' +import '../components/frag-file-input.js' +import FileSaver from 'file-saver' +import '@github/time-elements' import '@material/mwc-button' import '@material/mwc-checkbox' import '@material/mwc-dialog' @@ -25,7 +28,6 @@ import '@vaadin/button' import '@vaadin/grid' import '@vaadin/icon' import '@vaadin/icons' -import '@github/time-elements' const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) @@ -65,7 +67,26 @@ class MultiWallet extends LitElement { dogeFeePerByte: { type: Number }, dgbFeePerByte: { type: Number }, rvnFeePerByte: { type: Number }, - balanceString: { type: String } + balanceString: { type: String }, + exportErrorMessage: { type: String }, + qortBook: { type: Array }, + btcBook: { type: Array }, + ltcBook: { type: Array }, + dogeBook: { type: Array }, + dgbBook: { type: Array }, + rvnBook: { type: Array }, + qortBookName: { type: String }, + btcBookName: { type: String }, + ltcBookName: { type: String }, + dogeBookName: { type: String }, + dgbBookName: { type: String }, + rvnBookName: { type: String }, + qortBookAddress: { type: String }, + btcBookAddress: { type: String }, + ltcBookAddress: { type: String }, + dogeBookAddress: { type: String }, + dgbBookAddress: { type: String }, + rvnBookAddress: { type: String } } } @@ -81,6 +102,8 @@ class MultiWallet extends LitElement { --mdc-theme-secondary: var(--mdc-theme-primary); --mdc-theme-surface: var(--white); --mdc-dialog-content-ink-color: var(--black); + --mdc-dialog-min-width: 400px; + --mdc-dialog-max-width: 1024px; --paper-input-container-focus-color: var(--mdc-theme-primary); --lumo-primary-text-color: rgb(0, 167, 245); --lumo-primary-color-50pct: rgba(0, 167, 245, 0.5); @@ -196,6 +219,14 @@ class MultiWallet extends LitElement { word-break: break-all; } + .floatleft { + float: left; + } + + .floatright { + float: right; + } + .title { font-weight: 600; font-size: 12px; @@ -504,8 +535,20 @@ class MultiWallet extends LitElement { } .qrcode-pos { - margin-top: -180px; - margin-left: 425px; + margin-top: -175px; + margin-left: 450px; + } + + .send-pos { + margin-top: 20px; + margin-left: 20px; + width: 185px; + } + + .book-pos { + margin-top: -44px; + margin-left: 215px; + width: 185px; } @media (max-width: 863px) { @@ -602,6 +645,26 @@ class MultiWallet extends LitElement { this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'; + this.exportErrorMessage = '' + this.qortBook = [] + this.btcBook = [] + this.ltcBook = [] + this.dogeBook = [] + this.dgbBook = [] + this.rvnBook = [] + this.qortBookName = '' + this.btcBookName = '' + this.ltcBookName = '' + this.dogeBookName = '' + this.dgbBookName = '' + this.rvnBookName = '' + this.qortBookAddress = '' + this.btcBookAddress = '' + this.ltcBookAddress = '' + this.dogeBookAddress = '' + this.dgbBookAddress = '' + this.rvnBookAddress = '' + this.recipient = '' this.btcRecipient = '' this.ltcRecipient = '' @@ -732,10 +795,16 @@ class MultiWallet extends LitElement { - ${this.balanceString}

- ${this.renderSendButton()} + ${this.balanceString}
+
+
+ ${this.renderSendButton()} +
+
+ ${this.renderAddressbookButton()} +
@@ -813,7 +882,9 @@ class MultiWallet extends LitElement { ${translate("walletpage.wchange10")}
- ${this.selectedTransaction.btcReceiver} this.sendToBtcAddress()} title="${translate("walletpage.wchange46")}"> + ${this.selectedTransaction.btcReceiver} + this.sendToBtcAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddBtcAddressDialog()} title="${translate("walletpage.wchange49")}">

${translate("walletpage.wchange12")} @@ -864,7 +935,9 @@ class MultiWallet extends LitElement { ${translate("walletpage.wchange10")}
- ${this.selectedTransaction.ltcReceiver} this.sendToLtcAddress()} title="${translate("walletpage.wchange46")}"> + ${this.selectedTransaction.ltcReceiver} + this.sendToLtcAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddLtcAddressDialog()} title="${translate("walletpage.wchange49")}">

${translate("walletpage.wchange12")} @@ -916,7 +989,9 @@ class MultiWallet extends LitElement { ${translate("walletpage.wchange10")}
- ${this.selectedTransaction.dogeReceiver} this.sendToDogeAddress()} title="${translate("walletpage.wchange46")}"> + ${this.selectedTransaction.dogeReceiver} + this.sendToDogeAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddDogeAddressDialog()} title="${translate("walletpage.wchange49")}">

${translate("walletpage.wchange12")} @@ -967,7 +1042,9 @@ class MultiWallet extends LitElement { ${translate("walletpage.wchange10")}
- ${this.selectedTransaction.dgbReceiver} this.sendToDgbAddress()} title="${translate("walletpage.wchange46")}"> + ${this.selectedTransaction.dgbReceiver} + this.sendToDgbAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddDgbAddressDialog()} title="${translate("walletpage.wchange49")}">

${translate("walletpage.wchange12")} @@ -1018,7 +1095,9 @@ class MultiWallet extends LitElement { ${translate("walletpage.wchange10")}
- ${this.selectedTransaction.rvnReceiver} this.sendToRvnAddress()} title="${translate("walletpage.wchange46")}"> + ${this.selectedTransaction.rvnReceiver} + this.sendToRvnAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddRvnAddressDialog()} title="${translate("walletpage.wchange49")}">

${translate("walletpage.wchange12")} @@ -1505,6 +1584,630 @@ class MultiWallet extends LitElement { ${translate("general.close")} + + +
+ +

Qortal ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromQortAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.qortBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToQortAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Bitcoin ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromBtcAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.btcBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToBtcAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Litecoin ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromLtcAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.ltcBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToLtcAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Dogecoin ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromDogeAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.dogeBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToDogeAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Digibyte ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromDgbAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.dgbBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToDgbAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Ravencoin ${translate("walletpage.wchange47")}

+
+
${this.renderExportAddressbookButton()}
${this.renderImportAddressbookButton()}


+
+
+ + + + { + render(html`${this.renderSendFromRvnAddressbookButton(data.item)}`, root); + }}> + + + ${this.isEmptyArray(this.rvnBook) ? html` + ${translate("walletpage.wchange48")} + `: ''} + + ${translate("general.close")} + + this.openAddToRvnAddressbook()} + > + ${translate("rewardsharepage.rchange14")} + +
+ + +
+ +

Qortal ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToQortalAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Bitcoin ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToBitcoinAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Litecoin ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToLitecoinAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Dogecoin ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToDogecoinAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Digibyte ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToDigibyteAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Ravencoin ${translate("walletpage.wchange47")}


+

${translate("walletpage.wchange49")}

+
+
+
+
+

+ + +

+

+ + +

+
+
+
+ this.addToRavencoinAddressbook()}> + + ${translate("walletpage.wchange49")} + +
+
+ + ${translate("general.close")} + +
+ + +
+ +

Qortal ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
+ + +
+ +

Bitcoin ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
+ + +
+ +

Litecoin ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
+ + +
+ +

Dogecoin ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
+ + +
+ +

Digibyte ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
+ + +
+ +

Litecoin ${translate("walletpage.wchange53")}


+
+
+
+
+ +

${translate("walletpage.wchange56")}

+
${translate("walletpage.wchange55")}
+
+ + ${translate("general.close")} + +
` } @@ -1513,6 +2216,12 @@ class MultiWallet extends LitElement { this.changeTheme() this.changeLanguage() + this.qortAddressbook() + this.btcAddressbook() + this.ltcAddressbook() + this.dogeAddressbook() + this.dgbAddressbook() + this.rvnAddressbook() this.currencyBoxes = this.shadowRoot.querySelectorAll('.currency-box') this.transactionsDOM = this.shadowRoot.getElementById('transactionsDOM') @@ -1866,6 +2575,572 @@ class MultiWallet extends LitElement { } } + qortAddressbook() { + if (localStorage.getItem("adressbookQort") === null) { + localStorage.setItem("adressbookQort", "") + } else { + this.qortBook = JSON.parse(localStorage.getItem("adressbookQort") || "[]") + } + } + + btcAddressbook() { + if (localStorage.getItem("adressbookBtc") === null) { + localStorage.setItem("adressbookBtc", "") + } else { + this.btcBook = JSON.parse(localStorage.getItem("adressbookBtc") || "[]") + } + } + + ltcAddressbook() { + if (localStorage.getItem("adressbookLtc") === null) { + localStorage.setItem("adressbookLtc", "") + } else { + this.ltcBook = JSON.parse(localStorage.getItem("adressbookLtc") || "[]") + } + } + + dogeAddressbook() { + if (localStorage.getItem("adressbookDoge") === null) { + localStorage.setItem("adressbookDoge", "") + } else { + this.dogeBook = JSON.parse(localStorage.getItem("adressbookDoge") || "[]") + } + } + + dgbAddressbook() { + if (localStorage.getItem("adressbookDgb") === null) { + localStorage.setItem("adressbookDgb", "") + } else { + this.dgbBook = JSON.parse(localStorage.getItem("adressbookDgb") || "[]") + } + } + + rvnAddressbook() { + if (localStorage.getItem("adressbookRvn") === null) { + localStorage.setItem("adressbookRvn", "") + } else { + this.rvnBook = JSON.parse(localStorage.getItem("adressbookRvn") || "[]") + } + } + + openQortAddressbook() { + this.shadowRoot.querySelector("#qortBookDialog").show() + } + + openBtcAddressbook() { + this.shadowRoot.querySelector("#btcBookDialog").show() + } + + openLtcAddressbook() { + this.shadowRoot.querySelector("#ltcBookDialog").show() + } + + openDogeAddressbook() { + this.shadowRoot.querySelector("#dogeBookDialog").show() + } + + openDgbAddressbook() { + this.shadowRoot.querySelector("#dgbBookDialog").show() + } + + openRvnAddressbook() { + this.shadowRoot.querySelector("#rvnBookDialog").show() + } + + openAddQortAddressDialog() { + this.qortBookAddress = this.selectedTransaction.recipient + this.openAddToQortAddressbook() + this.shadowRoot.querySelector('#showTransactionDetailsDialog').close() + } + + openAddBtcAddressDialog() { + this.btcBookAddress = this.selectedTransaction.btcReceiver + this.openAddToBtcAddressbook() + this.shadowRoot.querySelector('#showBtcTransactionDetailsDialog').close() + } + + openAddLtcAddressDialog() { + this.qortBookAddress = this.selectedTransaction.ltcReceiver + this.openAddToLtcAddressbook() + this.shadowRoot.querySelector('#showLtcTransactionDetailsDialog').close() + } + + openAddDogeAddressDialog() { + this.qortBookAddress = this.selectedTransaction.dogeReceiver + this.openAddToDogeAddressbook() + this.shadowRoot.querySelector('#showDogeTransactionDetailsDialog').close() + } + + openAddDgbAddressDialog() { + this.qortBookAddress = this.selectedTransaction.dgbReceiver + this.openAddToDgbAddressbook() + this.shadowRoot.querySelector('#showDgbTransactionDetailsDialog').close() + } + + openAddRvnAddressDialog() { + this.qortBookAddress = this.selectedTransaction.rvnReceiver + this.openAddToRvnAddressbook() + this.shadowRoot.querySelector('#showRvnTransactionDetailsDialog').close() + } + + openAddToQortAddressbook() { + this.shadowRoot.querySelector("#addQortAddressDialog").show() + } + + openAddToBtcAddressbook() { + this.shadowRoot.querySelector("#addBtcAddressDialog").show() + } + + openAddToLtcAddressbook() { + this.shadowRoot.querySelector("#addLtcAddressDialog").show() + } + + openAddToDogeAddressbook() { + this.shadowRoot.querySelector("#addDogeAddressDialog").show() + } + + openAddToDgbAddressbook() { + this.shadowRoot.querySelector("#addDgbAddressDialog").show() + } + + openAddToRvnAddressbook() { + this.shadowRoot.querySelector("#addRvnAddressDialog").show() + } + + openImportQortAdressbook() { + this.shadowRoot.querySelector("#importQortAddressbookDialog").show() + } + + openImportBtcAdressbook() { + this.shadowRoot.querySelector("#importBtcAddressbookDialog").show() + } + + openImportLtcAdressbook() { + this.shadowRoot.querySelector("#importLtcAddressbookDialog").show() + } + + openImportDogeAdressbook() { + this.shadowRoot.querySelector("#importDogeAddressbookDialog").show() + } + + openImportDgbAdressbook() { + this.shadowRoot.querySelector("#importDgbAddressbookDialog").show() + } + + openImportRvnAdressbook() { + this.shadowRoot.querySelector("#importRvnAddressbookDialog").show() + } + + closeQortAddressDialog() { + this.shadowRoot.querySelector('#addQortAddressDialog').close() + } + + closeBtcAddressDialog() { + this.shadowRoot.querySelector('#addBtcAddressDialog').close() + } + + closeLtcAddressDialog() { + this.shadowRoot.querySelector('#addLtcAddressDialog').close() + } + + closeDogeAddressDialog() { + this.shadowRoot.querySelector('#addDogeAddressDialog').close() + } + + closeDgbAddressDialog() { + this.shadowRoot.querySelector('#addDgbAddressDialog').close() + } + + closeRvnAddressDialog() { + this.shadowRoot.querySelector('#addRvnAddressDialog').close() + } + + closeImportQortAddressbookDialog() { + this.shadowRoot.querySelector("#importQortAddressbookDialog").close() + } + + closeImportBtcAddressbookDialog() { + this.shadowRoot.querySelector("#importBtcAddressbookDialog").close() + } + + closeImportLtcAddressbookDialog() { + this.shadowRoot.querySelector("#importLtcAddressbookDialog").close() + } + + closeImportDogeAddressbookDialog() { + this.shadowRoot.querySelector("#importDogeAddressbookDialog").close() + } + + closeImportDgbAddressbookDialog() { + this.shadowRoot.querySelector("#importDgbAddressbookDialog").close() + } + + closeImportRvnAddressbookDialog() { + this.shadowRoot.querySelector("#importRvnAddressbookDialog").close() + } + + + + addToQortalAddressbook() { + let name = this.shadowRoot.getElementById('qortNameInput').value + let address = this.shadowRoot.getElementById('qortAddressInput').value + + var oldQortalBook = JSON.parse(localStorage.getItem("adressbookQort") || "[]") + + if (name.length === 0) { + let qortbookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${qortbookstring1}`) + return false + } + + if (address.length === 0) { + let qortbookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${qortbookstring2}`) + return false + } + + const newQortalBookItem = { + name: name, + address: address + } + + oldQortalBook.push(newQortalBookItem) + + localStorage.setItem("adressbookQort", JSON.stringify(oldQortalBook)) + + let qortbookstring2 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${qortbookstring2}`) + + this.closeQortAddressDialog() + this.qortBook = JSON.parse(localStorage.getItem("adressbookQort") || "[]") + } + + addToBitcoinAddressbook() { + let name = this.shadowRoot.getElementById('btcNameInput').value + let address = this.shadowRoot.getElementById('btcAddressInput').value + + var oldBitcoinBook = JSON.parse(localStorage.getItem("adressbookBtc") || "[]") + + if (name.length === 0) { + let btcbookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${btcbookstring1}`) + return false + } + + if (address.length === 0) { + let btcbookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${btcbookstring2}`) + return false + } + + const newBitcoinBookItem = { + name: name, + address: address + } + + oldBitcoinBook.push(newBitcoinBookItem) + + localStorage.setItem("adressbookBtc", JSON.stringify(oldBitcoinBook)) + + let btcbookstring3 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${btcbookstring3}`) + + this.closeBtcAddressDialog() + this.btcBook = JSON.parse(localStorage.getItem("adressbookBtc") || "[]") + } + + addToLitecoinAddressbook() { + let name = this.shadowRoot.getElementById('ltcNameInput').value + let address = this.shadowRoot.getElementById('ltcAddressInput').value + + var oldLitecoinBook = JSON.parse(localStorage.getItem("adressbookLtc") || "[]") + + if (name.length === 0) { + let ltcbookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${ltcbookstring1}`) + return false + } + + if (address.length === 0) { + let ltcbookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${ltcbookstring2}`) + return false + } + + const newLitecoinBookItem = { + name: name, + address: address + } + + oldLitecoinBook.push(newLitecoinBookItem) + + localStorage.setItem("adressbookLtc", JSON.stringify(oldLitecoinBook)) + + let ltcbookstring3 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${ltcbookstring3}`) + + this.closeLtcAddressDialog() + this.ltcBook = JSON.parse(localStorage.getItem("adressbookLtc") || "[]") + } + + addToDogecoinAddressbook() { + let name = this.shadowRoot.getElementById('dogeNameInput').value + let address = this.shadowRoot.getElementById('dogeAddressInput').value + + var oldDogecoinBook = JSON.parse(localStorage.getItem("adressbookDoge") || "[]") + + if (name.length === 0) { + let dogebookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${dogebookstring1}`) + return false + } + + if (address.length === 0) { + let dogebookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${dogebookstring2}`) + return false + } + + const newDogecoinBookItem = { + name: name, + address: address + } + + oldDogecoinBook.push(newDogecoinBookItem) + + localStorage.setItem("adressbookDoge", JSON.stringify(oldDogecoinBook)) + + let dogebookstring3 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${dogebookstring3}`) + + this.closeDogeAddressDialog() + this.dogeBook = JSON.parse(localStorage.getItem("adressbookDoge") || "[]") + } + + addToDigibyteAddressbook() { + let name = this.shadowRoot.getElementById('dgbNameInput').value + let address = this.shadowRoot.getElementById('dgbAddressInput').value + + var oldDigibyteBook = JSON.parse(localStorage.getItem("adressbookDgb") || "[]") + + if (name.length === 0) { + let dgbbookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${dgbbookstring1}`) + return false + } + + if (address.length === 0) { + let dgbbookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${dgbbookstring2}`) + return false + } + + const newDigibyteBookItem = { + name: name, + address: address + } + + oldDigibyteBook.push(newDigibyteBookItem) + + localStorage.setItem("adressbookDgb", JSON.stringify(oldDigibyteBook)) + + let dgbbookstring3 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${dgbbookstring3}`) + + this.closeDgbAddressDialog() + this.dgbBook = JSON.parse(localStorage.getItem("adressbookDgb") || "[]") + } + + addToRavencoinAddressbook() { + let name = this.shadowRoot.getElementById('rvnNameInput').value + let address = this.shadowRoot.getElementById('rvnAddressInput').value + + var oldRavencoinBook = JSON.parse(localStorage.getItem("adressbookRvn") || "[]") + + if (name.length === 0) { + let rvnbookstring1 = get("walletpage.wchange50") + parentEpml.request('showSnackBar', `${rvnbookstring1}`) + return false + } + + if (address.length === 0) { + let rvnbookstring2 = get("walletpage.wchange51") + parentEpml.request('showSnackBar', `${rvnbookstring2}`) + return false + } + + const newRavencoinBookItem = { + name: name, + address: address + } + + oldRavencoinBook.push(newRavencoinBookItem) + + localStorage.setItem("adressbookRvn", JSON.stringify(oldRavencoinBook)) + + let rvnbookstring3 = get("walletpage.wchange52") + parentEpml.request('showSnackBar', `${rvnbookstring3}`) + + this.closeRvnAddressDialog() + this.rvnBook = JSON.parse(localStorage.getItem("adressbookRvn") || "[]") + } + + sendFromQortAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendQort() + this.shadowRoot.querySelector('#qortBookDialog').close() + } + + sendFromBtcAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendBtc() + this.shadowRoot.querySelector('#btcBookDialog').close() + } + + sendFromLtcAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendLtc() + this.shadowRoot.querySelector('#ltcBookDialog').close() + } + + sendFromDogeAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendDoge() + this.shadowRoot.querySelector('#dogeBookDialog').close() + } + + sendFromDgbAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendDgb() + this.shadowRoot.querySelector('#dgbBookDialog').close() + } + + sendFromRvnAddressbook(websiteObj) { + let address = websiteObj.address + this.recipient = address + this.openSendRvn() + this.shadowRoot.querySelector('#rvnBookDialog').close() + } + + renderSendFromQortAddressbookButton(websiteObj) { + return html`` + } + + renderSendFromBtcAddressbookButton(websiteObj) { + return html`` + } + + renderSendFromLtcAddressbookButton(websiteObj) { + return html`` + } + + renderSendFromDogeAddressbookButton(websiteObj) { + return html`` + } + + renderSendFromDgbAddressbookButton(websiteObj) { + return html`` + } + + renderSendFromRvnAddressbookButton(websiteObj) { + return html`` + } + + exportQortAdressbook() { + const qortBookData = JSON.stringify(localStorage.getItem("adressbookQort")) + const qortBookSave = JSON.parse((qortBookData) || "[]") + const blob = new Blob([qortBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `qortal_addressbook.qort.json`) + } + + exportBtcAdressbook() { + const btcBookData = JSON.stringify(localStorage.getItem("adressbookBtc")) + const btcBookSave = JSON.parse((btcBookData) || "[]") + const blob = new Blob([btcBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `bitcoin_addressbook.btc.json`) + } + + exportLtcAdressbook() { + const ltcBookData = JSON.stringify(localStorage.getItem("adressbookLtc")) + const ltcBookSave = JSON.parse((ltcBookData) || "[]") + const blob = new Blob([ltcBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `litecoin_addressbook.ltc.json`) + } + + exportDogeAdressbook() { + const dogeBookData = JSON.stringify(localStorage.getItem("adressbookDoge")) + const dogeBookSave = JSON.parse((dogeBookData) || "[]") + const blob = new Blob([dogeBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `dogecoin_addressbook.doge.json`) + } + + exportDgbAdressbook() { + const dgbBookData = JSON.stringify(localStorage.getItem("adressbookDgb")) + const dgbBookSave = JSON.parse((dgbBookData) || "[]") + const blob = new Blob([dgbBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `digibyte_addressbook.dgb.json`) + } + + exportRvnAdressbook() { + const rvnBookData = JSON.stringify(localStorage.getItem("adressbookRvn")) + const rvnBookSave = JSON.parse((rvnBookData) || "[]") + const blob = new Blob([rvnBookSave], { type: 'text/plain;charset=utf-8' }) + FileSaver.saveAs(blob, `ravencoin_addressbook.rvn.json`) + } + + importQortAddressbook(file) { + localStorage.removeItem("adressbookQort") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookQort", JSON.stringify(newItems)) + this.qortBook = JSON.parse(localStorage.getItem("adressbookQort") || "[]") + this.shadowRoot.querySelector('#importQortAddressbookDialog').close() + } + + importBtcAddressbook(file) { + localStorage.removeItem("adressbookBtc") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookBtc", JSON.stringify(newItems)) + this.btcBook = JSON.parse(localStorage.getItem("adressbookBtc") || "[]") + this.shadowRoot.querySelector('#importBtcAddressbookDialog').close() + } + + importLtcAddressbook(file) { + localStorage.removeItem("adressbookLtc") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookLtc", JSON.stringify(newItems)) + this.ltcBook = JSON.parse(localStorage.getItem("adressbookLtc") || "[]") + this.shadowRoot.querySelector('#importLtcAddressbookDialog').close() + } + + importDogeAddressbook(file) { + localStorage.removeItem("adressbookDoge") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookDoge", JSON.stringify(newItems)) + this.dogeBook = JSON.parse(localStorage.getItem("adressbookDoge") || "[]") + this.shadowRoot.querySelector('#importDogeAddressbookDialog').close() + } + + importDgbAddressbook(file) { + localStorage.removeItem("adressbookDgb") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookDgb", JSON.stringify(newItems)) + this.dgbBook = JSON.parse(localStorage.getItem("adressbookDgb") || "[]") + this.shadowRoot.querySelector('#importDgbAddressbookDialog').close() + } + + importRvnAddressbook(file) { + localStorage.removeItem("adressbookRvn") + const newItems = JSON.parse((file) || "[]") + localStorage.setItem("adressbookRvn", JSON.stringify(newItems)) + this.rvnBook = JSON.parse(localStorage.getItem("adressbookRvn") || "[]") + this.shadowRoot.querySelector('#importRvnAddressbookDialog').close() + } + closeQortDialog() { this.shadowRoot.querySelector('#sendQortDialog').close() this.successMessage = '' @@ -2002,7 +3277,11 @@ class MultiWallet extends LitElement { if (displaybutton == null) { return html`${this.selectedTransaction.recipient}` } else { - return html`${this.selectedTransaction.recipient} this.sendToQortAddress()} title="${translate("walletpage.wchange46")}">` + return html` + ${this.selectedTransaction.recipient} + this.sendToQortAddress()} title="${translate("walletpage.wchange46")}"> + this.openAddQortAddressDialog()} title="${translate("walletpage.wchange49")}"> + ` } } @@ -2570,17 +3849,71 @@ class MultiWallet extends LitElement { renderSendButton() { if ( this._selectedWallet === "qort" ) { - return html` this.openSendQort()}> ${translate("walletpage.wchange17")} QORT` + return html` this.openSendQort()}> ${translate("walletpage.wchange17")} QORT` } else if ( this._selectedWallet === "btc" ) { - return html` this.openSendBtc()}> ${translate("walletpage.wchange17")} BTC` + return html` this.openSendBtc()}> ${translate("walletpage.wchange17")} BTC` } else if ( this._selectedWallet === "ltc" ) { - return html` this.openSendLtc()}> ${translate("walletpage.wchange17")} LTC` + return html` this.openSendLtc()}> ${translate("walletpage.wchange17")} LTC` } else if ( this._selectedWallet === "doge" ) { - return html` this.openSendDoge()}> ${translate("walletpage.wchange17")} DOGE` + return html` this.openSendDoge()}> ${translate("walletpage.wchange17")} DOGE` } else if ( this._selectedWallet === "dgb" ) { - return html` this.openSendDgb()}> ${translate("walletpage.wchange17")} DGB` + return html` this.openSendDgb()}> ${translate("walletpage.wchange17")} DGB` } else if ( this._selectedWallet === "rvn" ) { - return html` this.openSendRvn()}> ${translate("walletpage.wchange17")} RVN` + return html` this.openSendRvn()}> ${translate("walletpage.wchange17")} RVN` + } else { + return html`` + } + } + + renderAddressbookButton() { + if ( this._selectedWallet === "qort" ) { + return html` this.openQortAddressbook()}> ${translate("walletpage.wchange47")}` + } else if ( this._selectedWallet === "btc" ) { + return html` this.openBtcAddressbook()}> ${translate("walletpage.wchange47")}` + } else if ( this._selectedWallet === "ltc" ) { + return html` this.openLtcAddressbook()}> ${translate("walletpage.wchange47")}` + } else if ( this._selectedWallet === "doge" ) { + return html` this.openDogeAddressbook()}> ${translate("walletpage.wchange47")}` + } else if ( this._selectedWallet === "dgb" ) { + return html` this.openDgbAddressbook()}> ${translate("walletpage.wchange47")}` + } else if ( this._selectedWallet === "rvn" ) { + return html` this.openRvnAddressbook()}> ${translate("walletpage.wchange47")}` + } else { + return html`` + } + } + + renderExportAddressbookButton() { + if ( this._selectedWallet === "qort" ) { + return html` this.exportQortAdressbook()}> ${translate("walletpage.wchange54")}` + } else if ( this._selectedWallet === "btc" ) { + return html` this.exportBtcAdressbook()}> ${translate("walletpage.wchange54")}` + } else if ( this._selectedWallet === "ltc" ) { + return html` this.exportKLtcAdressbook()}> ${translate("walletpage.wchange54")}` + } else if ( this._selectedWallet === "doge" ) { + return html` this.exportDogeAdressbook()}> ${translate("walletpage.wchange54")}` + } else if ( this._selectedWallet === "dgb" ) { + return html` this.exportDgbAdressbook()}> ${translate("walletpage.wchange54")}` + } else if ( this._selectedWallet === "rvn" ) { + return html` this.exportRvnAdressbook()}> ${translate("walletpage.wchange54")}` + } else { + return html`` + } + } + + renderImportAddressbookButton() { + if ( this._selectedWallet === "qort" ) { + return html` this.openImportQortAdressbook()}> ${translate("walletpage.wchange53")}` + } else if ( this._selectedWallet === "btc" ) { + return html` this.openImportBtcAdressbook()}> ${translate("walletpage.wchange53")}` + } else if ( this._selectedWallet === "ltc" ) { + return html` this.openImportLtcAdressbook()}> ${translate("walletpage.wchange53")}` + } else if ( this._selectedWallet === "doge" ) { + return html` this.openImportDogeAdressbook()}> ${translate("walletpage.wchange53")}` + } else if ( this._selectedWallet === "dgb" ) { + return html` this.openImportDgbAdressbook()}> ${translate("walletpage.wchange53")}` + } else if ( this._selectedWallet === "rvn" ) { + return html` this.openImportRvnAdressbook()}> ${translate("walletpage.wchange53")}` } else { return html`` }