Merge branch 'master' into feature/tour

This commit is contained in:
AlphaX-Projects 2023-12-29 11:59:30 +01:00 committed by GitHub
commit 7baf48b031
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
29 changed files with 1319 additions and 1208 deletions

View File

@ -120,8 +120,8 @@
"welmessage": "Willkommen bei Qortal",
"pleaseenter": "Bitte Passwort eingeben!",
"notmatch": "Passwörter stimmen nicht überein!",
"lessthen8": "Ihr Passwort hat weniger als 8 Zeichen! Dies wird nicht empfohlen. Sie können diese Warnung weiterhin ignorieren.",
"lessthen8-2": "Ihr Passwort hat weniger als 8 Zeichen!",
"lessthen8": "Ihr Passwort hat weniger als 5 Zeichen! Dies wird nicht empfohlen. Sie können diese Warnung weiterhin ignorieren.",
"lessthen8-2": "Ihr Passwort hat weniger als 5 Zeichen!",
"entername": "Bitte geben Sie einen Namen ein!",
"downloaded": "Ihre Wallet BackUp-Datei wird heruntergeladen!",
"loading": "Wird geladen, bitte warten...",
@ -133,7 +133,7 @@
"created1": "Ihr Konto ist jetzt erstellt",
"created2": " und wird in diesem Browser gespeichert.",
"downloadbackup": "Laden Sie die Wallet-Sicherungsdatei herunter",
"passwordhint": "Ein Passwort muss mindestens 8 Zeichen lang sein.",
"passwordhint": "Ein Passwort muss mindestens 5 Zeichen lang sein.",
"lp1": "Bildschirm sperren",
"lp2": "Es ist kein Passwort für den Sperrbildschirm festgelegt!",
"lp3": "Bitte legen Sie eins fest",

View File

@ -120,8 +120,8 @@
"welmessage": "Bienvenido a Qortal",
"pleaseenter": "Por favor, introduzca una Contraseña!",
"notmatch": "Las contraseñas no coinciden!",
"lessthen8": "Su contraseña tiene menos de 8 caracteres! Esto no es recomendable. Puede continuar para ignorar esta advertencia.",
"lessthen8-2": "Su contraseña tiene menos de 8 caracteres!",
"lessthen8": "Su contraseña tiene menos de 5 caracteres! Esto no es recomendable. Puede continuar para ignorar esta advertencia.",
"lessthen8-2": "Su contraseña tiene menos de 5 caracteres!",
"entername": "Por favor, introduzca un Nombre!",
"downloaded": "La copia de seguridad de su monedero ha sido descargada!",
"loading": "Cargando, Por favor espere...",
@ -133,7 +133,7 @@
"created1": "Su cuenta ha sido creada",
"created2": " y será guardada en el navegador.",
"downloadbackup": "Descargar archivo de copia de seguridad del monedero",
"passwordhint": "Una contraseña debe tener al menos 8 caracteres.",
"passwordhint": "Una contraseña debe tener al menos 5 caracteres.",
"lp1": "Pantalla de bloqueo",
"lp2": "¡No se estableció una contraseña de pantalla de bloqueo!",
"lp3": "Establece uno",

View File

@ -120,8 +120,8 @@
"welmessage": "Tere tulemast Qortalisse",
"pleaseenter": "Palun sisesta salasõna!",
"notmatch": "Salasõnad ei kattu!",
"lessthen8": "Salasõna on vähem kui 8 tähemärki! See ei ole turvakaalutlustel soovitatav, kuigi saab ka nii.",
"lessthen8-2": "Salasõna on vähem kui 8 tähemärki!",
"lessthen8": "Salasõna on vähem kui 5 tähemärki! See ei ole turvakaalutlustel soovitatav, kuigi saab ka nii.",
"lessthen8-2": "Salasõna on vähem kui 5 tähemärki!",
"entername": "Palun sisesta Nimi!",
"Lae allaed": "Sinu rahakoti varukoopia laeti alla.",
"loading": "Laadib, palun oota...",
@ -133,7 +133,7 @@
"created1": "Sinu konto on nüüd loodud",
"created2": " ja salvestatakse siinse arvuti sirvikus.",
"Lae allabackup": "Laadi rahakoti varukoopia fail alla",
"passwordhint": "Salasõna peab olema vähemalt 8 tähemärki.",
"passwordhint": "Salasõna peab olema vähemalt 5 tähemärki.",
"lp1": "Lukusta ekraan",
"lp2": "Ekraaniluku salasõna pole seatud.",
"lp3": "Palun loo selleks salasõna",

View File

@ -120,8 +120,8 @@
"welmessage": "Bienvenue dans Qortal",
"pleaseenter": "Veuillez entrer un mot de passe!",
"notmatch": "Les mots de passe ne correspondent pas!",
"lessthen8": "Votre mot de passe est inférieur à 8 caractères! Ceci nest pas recommandé. Vous pouvez continuer en ignorant cet avertissement.",
"lessthen8-2": "Votre mot de passe est inférieur à 8 caractères!",
"lessthen8": "Votre mot de passe est inférieur à 5 caractères! Ceci nest pas recommandé. Vous pouvez continuer en ignorant cet avertissement.",
"lessthen8-2": "Votre mot de passe est inférieur à 5 caractères!",
"entername": "Veuillez saisir un nom!",
"downloaded": "Le fichier de sauvegarde de votre portefeuille va être téléchargé!",
"loading": "Chargement en cours, veuillez patienter...",
@ -133,7 +133,7 @@
"created1": "Votre compte est maintenant créé",
"created2": " et sera enregistré dans ce navigateur.",
"downloadbackup": "Télécharger le fichier de sauvegarde du portefeuille",
"passwordhint": "Un mot de passe doit comporter au moins 8 caractères.",
"passwordhint": "Un mot de passe doit comporter au moins 5 caractères.",
"lp1": "Verrouiller l'écran",
"lp2": "Aucun mot de passe d'écran de verrouillage n'est défini !",
"lp3": "Veuillez en définir un",

View File

@ -120,8 +120,8 @@
"welmessage": "क्वॉर्टल में आपका स्वागत है",
"pleaseenter": "कृपया पासवर्ड दर्ज करें!",
"notmatch": "पासवर्ड मेल नहीं खाता!",
"lessthen8": "आपका पासवर्ड 8 वर्णों से कम का है! यह अनुशंसित नहीं है। आप इस चेतावनी को नज़रअंदाज़ करना जारी रख सकते हैं।",
"lessthen8-2": "आपका पासवर्ड 8 वर्णों से कम का है!",
"lessthen8": "आपका पासवर्ड 5 वर्णों से कम का है! यह अनुशंसित नहीं है। आप इस चेतावनी को नज़रअंदाज़ करना जारी रख सकते हैं।",
"lessthen8-2": "आपका पासवर्ड 5 वर्णों से कम का है!",
"entername": "कृपया एक नाम दर्ज करें!",
"downloaded": "आपकी वॉलेट बैकअप फ़ाइल डाउनलोड हो जाती है!",
"loading": "लोड हो रहा है कृपया प्रतीक्षा करें...",
@ -133,7 +133,7 @@
"created1": "आपका खाता अब निर्मित हो गया है",
"created2": " और इस ब्राउज़र में सहेजा जाएगा।",
"downloadbackup": "वॉलेट बैकअप फ़ाइल डाउनलोड करें",
"passwordhint": "पासवर्ड कम से कम 8 अक्षर का होना चाहिए।",
"passwordhint": "पासवर्ड कम से कम 5 अक्षर का होना चाहिए।",
"lp1": "लॉक स्क्रीन",
"lp2": "कोई लॉक स्क्रीन पासवर्ड सेट नहीं है!",
"lp3": "कृपया एक सेट करें",

View File

@ -120,8 +120,8 @@
"welmessage": "Dobrodošli u Qortal",
"pleaseenter": "Unesite lozinku!",
"notmatch": "Lozinke se ne podudaraju!",
"lessthen8": "Vaša lozinka je manja od 8 znakova! Ovo se ne preporučuje. Možete nastaviti ignorirati ovo upozorenje..",
"lessthen8-2": "Vaša lozinka je manja od 8 znakova!",
"lessthen8": "Vaša lozinka je manja od 5 znakova! Ovo se ne preporučuje. Možete nastaviti ignorirati ovo upozorenje..",
"lessthen8-2": "Vaša lozinka je manja od 5 znakova!",
"entername": "Unesite ime!",
"downloaded": "Vaša datoteka sigurnosne kopije novčanika - preuzmite!",
"loading": "Učitava se, molimo pričekajte...",
@ -133,7 +133,7 @@
"created1": "Vaš je račun sada stvoren",
"created2": "i bit će spremljen u ovom pregledniku.",
"downloadbackup": "Preuzmite datoteku sigurnosne kopije novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova.",
"passwordhint": "Lozinka mora imati najmanje 5 znakova.",
"lp1": "Zaključani zaslon",
"lp2": "Nije postavljena lozinka za zaključavanje zaslona!",
"lp3": "Molimo postavite jedan",

View File

@ -120,8 +120,8 @@
"welmessage": "Üdvözöljük a Qortalban",
"pleaseenter": "Kérjük, adjon meg egy jelszót!",
"notmatch": "A jelszavak nem egyeznek!",
"lessthen8": "A jelszó kevesebb, mint 8 karakter! Ez nem ajánlott. Továbbra is figyelmen kívül hagyhatja ezt a figyelmeztetést.",
"lessthen8-2": "A jelszó kevesebb, mint 8 karakter!",
"lessthen8": "A jelszó kevesebb, mint 5 karakter! Ez nem ajánlott. Továbbra is figyelmen kívül hagyhatja ezt a figyelmeztetést.",
"lessthen8-2": "A jelszó kevesebb, mint 5 karakter!",
"entername": "Adjon meg egy nevet!",
"downloaded": "Letöltődött a Wallet BackUp fájl!",
"loading": "Betöltés, kérjük, várjon...",
@ -133,7 +133,7 @@
"created1": "A fiók most jön létre",
"created2": " és mentésre kerül ebben a böngészőben.",
"downloadbackup": "Pénztárca biztonsági mentési fájl letöltése",
"passwordhint": "A jelszónak legalább 8 karakterből kell állnia.",
"passwordhint": "A jelszónak legalább 5 karakterből kell állnia.",
"lp1": "Képernyőzár",
"lp2": "Nincs beállítva a lezárási képernyő jelszava!",
"lp3": "Kérjük, állítson be egyet",

View File

@ -120,8 +120,8 @@
"welmessage": "Benvenuto in Qortal",
"pleaseenter": "Inserisci una password!",
"notmatch": "La password non corrisponde!",
"lessthen8": "La tua password contiene meno di 8 caratteri! Questo non è raccomandato. Puoi continuare e ignorare questo avviso.",
"lessthen8-2": "La tua password contiene meno di 8 caratteri!",
"lessthen8": "La tua password contiene meno di 5 caratteri! Questo non è raccomandato. Puoi continuare e ignorare questo avviso.",
"lessthen8-2": "La tua password contiene meno di 5 caratteri!",
"entername": "Inserisci un nome!",
"downloaded": "Il file di BackUp del Tuo Wallet file sta per essere scaricato!",
"loading": "Caricamento in corso, attendere...",
@ -133,7 +133,7 @@
"created1": "Il tuo account è ora creato",
"created2": " e verrà salvato in questo browser.",
"downloadbackup": "Scarica il file di backup del portafoglio",
"passwordhint": "Una password deve contenere almeno 8 caratteri.",
"passwordhint": "Una password deve contenere almeno 5 caratteri.",
"lp1": "Blocca schermo",
"lp2": "Nessuna password per la schermata di blocco impostata!",
"lp3": "Per favore impostane uno",

View File

@ -120,8 +120,8 @@
"welmessage": "Qortal へようこそ",
"pleaseenter": "パスワードを入力してください!",
"notmatch": "パスワードが一致しません!",
"lessthen8": "パスワードが 8 文字未満です。推奨出来ませんが警告は無視しても構いません。",
"lessthen8-2": "パスワードが 8 文字未満です!",
"lessthen8": "パスワードが 5 文字未満です。推奨出来ませんが警告は無視しても構いません。",
"lessthen8-2": "パスワードが 5 文字未満です!",
"entername": "名前を入力してください!",
"downloaded": "ウォレットのバックアップ ファイルをダウンロードしました!",
"loading": "読み込み中です、お待ちください...",
@ -133,7 +133,7 @@
"created1": "アカウントが作成され...",
"created2": " このブラウザに保存されます。",
"downloadbackup": "ウォレットのバックアップ ファイルをダウンロード",
"passwordhint": "パスワードは 8 文字以上である必要があります。",
"passwordhint": "パスワードは 5 文字以上である必要があります。",
"lp1": "ロック画面",
"lp2": "ロック画面のパスワードが設定されていません!",
"lp3": "1 つ設定してください",

View File

@ -120,8 +120,8 @@
"welmessage": "Qortal에 오신 것을 환영합니다.",
"pleaseenter": "암호를 입력하십시오!",
"notmatch": "암호가 일치하지 않습니다!",
"lessthen8": "암호가 8자 미만입니다! 이것은 권장되지 않습니다. 이 경고는 계속 무시할 수 있습니다.",
"lessthen8-2": "암호가 8자 미만입니다!",
"lessthen8": "암호가 5자 미만입니다! 이것은 권장되지 않습니다. 이 경고는 계속 무시할 수 있습니다.",
"lessthen8-2": "암호가 5자 미만입니다!",
"entername": "이름을 입력하십시오!",
"downloaded": "지갑 백업 파일이 다운로드됩니다!",
"loading": "로드 중입니다. 잠시 기다려 주십시오...",
@ -133,7 +133,7 @@
"created1": "이제 계정이 생성되었습니다.",
"created2": " 이 브라우저에 저장됩니다.",
"downloadbackup": "지갑 백업 파일 다운로드",
"passwordhint": "비밀번호는 8자 이상이어야 합니다.",
"passwordhint": "비밀번호는 5자 이상이어야 합니다.",
"lp1": "잠금 화면",
"lp2": "잠금 화면 암호가 설정되지 않았습니다!",
"lp3": "하나를 설정하세요",

View File

@ -120,8 +120,8 @@
"welmessage": "Welkom bij Qortal",
"pleaseenter": "Geef een wachtwoord in!",
"notmatch": "De wachtwoorden komen niet overeen!",
"lessthen8": "Uw wachtwoord is minder dan 8 karakters! Dat is niet aan te raden, maar je bent vrij om deze waarschuwing negeren.",
"lessthen8-2": "Uw wachtwoord is minder dan 8 karakters!",
"lessthen8": "Uw wachtwoord is minder dan 5 karakters! Dat is niet aan te raden, maar je bent vrij om deze waarschuwing negeren.",
"lessthen8-2": "Uw wachtwoord is minder dan 5 karakters!",
"entername": "Gelieve een naam in te geven!",
"downloaded": "De backup van uw portefeuille werd gedownload!",
"loading": "Bezig met laden. Even geduld...",
@ -133,7 +133,7 @@
"created1": "Uw account werd aangemaakt",
"created2": " en werd in deze browser bewaard.",
"downloadbackup": "Download het backup-bestand van de portefeuille",
"passwordhint": "Uw wachtwoord moet minstens 8 karakters lang zijn.",
"passwordhint": "Uw wachtwoord moet minstens 5 karakters lang zijn.",
"lp1": "Scherm vergrendelen",
"lp2": "Er werd nog geen wachtwoord voor schermvergrendeling vastgelegd!",
"lp3": "Gelieve dat nu te doen",

View File

@ -120,8 +120,8 @@
"welmessage": "Velkommen til Qortal",
"pleaseenter": "Skriv inn et passord!",
"notmatch": "Passord matcher ikke!",
"lessthen8": "Passordet ditt er mindre enn 8 tegn! Dette anbefales ikke. Du kan velge å fortsette, og ignorere denne advarselen.",
"lessthen8-2": "Passordet ditt er mindre enn 8 tegn!",
"lessthen8": "Passordet ditt er mindre enn 5 tegn! Dette anbefales ikke. Du kan velge å fortsette, og ignorere denne advarselen.",
"lessthen8-2": "Passordet ditt er mindre enn 5 tegn!",
"entername": "Skriv inn et navn!",
"downloaded": "Backup-filen for lommeboken din vil bli lastet ned!",
"loading": "Laster, vennligst vent...",
@ -133,7 +133,7 @@
"created1": "Kontoen din er nå opprettet",
"created2": " og vil bli lagret i denne nettleseren.",
"downloadbackup": "Last ned backup-fil for lommebok",
"passwordhint": "Et passord må være på minst 8 tegn.",
"passwordhint": "Et passord må være på minst 5 tegn.",
"lp1": "Lås skjerm",
"lp2": "Ingen passord for låseskjerm er angitt!",
"lp3": "Vennligst sett en",

View File

@ -120,8 +120,8 @@
"welmessage": "Witamy w Qortal",
"pleaseenter": "Proszę wprowadzić Hasło!",
"notmatch": "Hasła nie pasują!",
"lessthen8": "Twoje hasło ma mniej niż 8 znaków! Nie jest to zalecane. Możesz zignorować to ostrzeżenie.",
"lessthen8-2": "Twoje hasło ma mniej niż 8 znaków!",
"lessthen8": "Twoje hasło ma mniej niż 5 znaków! Nie jest to zalecane. Możesz zignorować to ostrzeżenie.",
"lessthen8-2": "Twoje hasło ma mniej niż 5 znaków!",
"entername": "Proszę podać Nazwę!",
"downloaded": "Twój plik kopii zapasowej Portfela zostanie pobrany!",
"loading": "Ładowanie, proszę czekać...",
@ -133,7 +133,7 @@
"created1": "Twoje konto zostało utworzone",
"created2": " i zostanie zapisane w tej przeglądarce.",
"downloadbackup": "Pobierz plik kopii zapasowej portfela",
"passwordhint": "Hasło musi mieć co najmniej 8 znaków.",
"passwordhint": "Hasło musi mieć co najmniej 5 znaków.",
"lp1": "Ekran blokady",
"lp2": "Nie ustawiono hasła blokady ekranu!",
"lp3": "Proszę ustawić jeden",

View File

@ -120,8 +120,8 @@
"welmessage": "Bem-vindo ao Qortal",
"pleaseenter": "Por favor coloque sua senha!",
"notmatch": "Senhas não correspondem!",
"lessthen8": "Sua senha é menor que 8 caracteres! Isso não é recomendado. Você pode continuar e ignorar este aviso.",
"lessthen8-2": "Sua senha é menor que 8 caracteres!",
"lessthen8": "Sua senha é menor que 5 caracteres! Isso não é recomendado. Você pode continuar e ignorar este aviso.",
"lessthen8-2": "Sua senha é menor que 5 caracteres!",
"entername": "Por favor, digite um nome!",
"downloaded": "Seu arquivo Wallet BackUp é baixado!",
"loading": "Carregando, por favor espere...",
@ -133,7 +133,7 @@
"created1": "Sua conta foi Criada",
"created2": "e será salva neste navegador.",
"downloadbackup": "Baixe o Arquivo BackUp da Carteira",
"passwordhint": "Uma senha deve ter pelo menos 8 caracteres.",
"passwordhint": "Uma senha deve ter pelo menos 5 caracteres.",
"lp1": "Tela de bloqueio",
"lp2": "Nenhuma senha de tela de bloqueio foi definida!",
"lp3": "Defina um",

View File

@ -120,8 +120,8 @@
"welmessage": "Bine ai venit in Qortal",
"pleaseenter": "Te rog introdu o parola!",
"notmatch": "Parola nu corespunde!",
"lessthen8": "Parola ta are mai putin de 8 caractere! Acest lucru nu este recomandat. Poti continua sa ignori acest avertisment.",
"lessthen8-2": "Parola ta are mai putin de 8 caractere!",
"lessthen8": "Parola ta are mai putin de 5 caractere! Acest lucru nu este recomandat. Poti continua sa ignori acest avertisment.",
"lessthen8-2": "Parola ta are mai putin de 5 caractere!",
"entername": "Te rog introdu un Nume!",
"downloaded": "Copia de siguranta a portofelului este descarcata!",
"loading": "Se incarca. Va rugam asteptati...",
@ -133,7 +133,7 @@
"created1": "Contul tau este acum creat",
"created2": "si va fi salvat in acest browser.",
"downloadbackup": "Descarca copia de siguranta a Portofelului",
"passwordhint": "O parola trebuie sa aiba cel putin 8 caractere.",
"passwordhint": "O parola trebuie sa aiba cel putin 5 caractere.",
"lp1": "Ecran de blocare",
"lp2": "Nu este setată nicio parolă pentru ecranul de blocare!",
"lp3": "Vă rugăm să setați unul",

View File

@ -120,8 +120,8 @@
"welmessage": "Dobrodošli u Qortal",
"pleaseenter": "Molim vas ukucajte lozinku!",
"notmatch": "Lozinke se ne podudaraju!",
"lessthen8": "Vaša lozinka ima manje od 8 karaktera! Ovo nije preporučljivo. Možete nastaviti ignorisanjem ovog upozorenja.",
"lessthen8-2": "Vaša lozinka ima manje od 8 karaktera!",
"lessthen8": "Vaša lozinka ima manje od 5 karaktera! Ovo nije preporučljivo. Možete nastaviti ignorisanjem ovog upozorenja.",
"lessthen8-2": "Vaša lozinka ima manje od 5 karaktera!",
"entername": "Molim vas unesite ime!",
"downloaded": "datoteka sa Rezervnom kopijom vašeg Novčanika se skida!",
"loading": "Učitavanje, molim sačekajte...",
@ -133,7 +133,7 @@
"created1": "Vaš nalog je napravljen",
"created2": " i biće sačuvan u ovom pretraživaču.",
"downloadbackup": "Skinite Datoteku Rezervne kopije Novčanika",
"passwordhint": "Lozinka mora imati najmanje 8 znakova.",
"passwordhint": "Lozinka mora imati najmanje 5 znakova.",
"lp1": "Zaključani ekran",
"lp2": "Lozinka za zaključavanje ekrana nije postavljena!",
"lp3": "Postavite jedan",

View File

@ -120,8 +120,8 @@
"welmessage": "Добро пожаловать в Qortal",
"pleaseenter": "Пожалуйста, введите пароль!",
"notmatch": "Пароли не совпадают!",
"lessthen8": "Ваш пароль содержит менее 8 символов! Это не рекомендуется. Вы можете продолжить, игнорировав это предупреждение.",
"lessthen8-2": "Ваш пароль содержит менее 8 символов!",
"lessthen8": "Ваш пароль содержит менее 5 символов! Это не рекомендуется. Вы можете продолжить, игнорировав это предупреждение.",
"lessthen8-2": "Ваш пароль содержит менее 5 символов!",
"entername": "Пожалуйста, введите Имя!",
"downloaded": "Файл резервной копии кошелька будет скачан!",
"loading": "Идет загрузка, пожалуйста, подождите...",
@ -133,7 +133,7 @@
"created1": "Ваша учетная запись создана",
"created2": "и будет сохранено в этом приложении.",
"downloadbackup": "Скачать файл резервной копии кошелька",
"passwordhint": "Пароль должен быть не менее 8 символов.",
"passwordhint": "Пароль должен быть не менее 5 символов.",
"lp1": "Экран блокировки",
"lp2": "Пароль блокировки экрана не установлен!",
"lp3": "Пожалуйста, установите один",

View File

@ -120,8 +120,8 @@
"welmessage": "Welcome to Qortal",
"pleaseenter": "Please enter a Password!",
"notmatch": "Passwords do not match!",
"lessthen8": "Your password is less than 8 characters! This is not recommended. You can continue to ignore this warning.",
"lessthen8-2": "Your password is less than 8 characters!",
"lessthen8": "Your password is less than 5 characters! This is not recommended. You can continue to ignore this warning.",
"lessthen8-2": "Your password is less than 5 characters!",
"entername": "Please enter a Name!",
"downloaded": "Your Wallet BackUp file was downloaded!",
"loading": "Loading, Please wait...",
@ -133,7 +133,7 @@
"created1": "Your account is now created",
"created2": " and will be saved in this browser.",
"downloadbackup": "Download Wallet BackUp File",
"passwordhint": "A password must be at least 8 characters.",
"passwordhint": "A password must be at least 5 characters.",
"lp1": "Lock Screen",
"lp2": "No screen lock password is set!",
"lp3": "Please set one",

View File

@ -120,8 +120,8 @@
"welmessage": "欢迎来到Qortal",
"pleaseenter": "请密码!",
"notmatch": "密码不一致!",
"lessthen8": "你的密码长度少于8位! 我们不建议使用,但你仍可继续使用此密码。",
"lessthen8-2": "你的密码长度少于8位!",
"lessthen8": "你的密码长度少于5位! 我们不建议使用,但你仍可继续使用此密码。",
"lessthen8-2": "你的密码长度少于5位!",
"entername": "请输入一个代称",
"downloaded": "你的钱包备份文件已顺利下载!",
"loading": "加载中,请耐心等候...",
@ -133,7 +133,7 @@
"created1": "你的账号已创建成功",
"created2": "并会储存在UI上.",
"downloadbackup": "下载钱包备份文件",
"passwordhint": "密码必须至少为8 个字符。",
"passwordhint": "密码必须至少为5 个字符。",
"lp1": "锁定屏幕",
"lp2": "未设置锁屏密码!",
"lp3": "请设置一个",

View File

@ -120,8 +120,8 @@
"welmessage": "歡迎來到 Qortal",
"pleaseenter": "請密碼!",
"notmatch": "密碼不一致!",
"lessthen8": "你的密碼長度少於8位! 我們不建議使用,但你仍可繼續使用此密碼。",
"lessthen8-2": "你的密碼長度少於8位!",
"lessthen8": "你的密碼長度少於5位! 我們不建議使用,但你仍可繼續使用此密碼。",
"lessthen8-2": "你的密碼長度少於5位!",
"entername": "請輸入一個代稱",
"downloaded": "你的錢包備份文件已順利下載!",
"loading": "加載中,請耐心等候...",
@ -133,7 +133,7 @@
"created1": "你的賬號已創建成功",
"created2": " 並會儲存在UI上.",
"downloadbackup": "下載錢包備份文件",
"passwordhint": "密碼必須至少為 8 個字符。",
"passwordhint": "密碼必須至少為 5 個字符。",
"lp1": "鎖定屏幕",
"lp2": "未設置鎖屏密碼!",
"lp3": "請設置一個",

View File

@ -336,7 +336,7 @@ class LoginSection extends connect(store)(LitElement) {
<div style="padding:0;">
<div style="display:flex;">
<mwc-icon style="padding: 10px; padding-left: 0; padding-top: 42px; color: var(--black);">short_text</mwc-icon>
<vaadin-password-field style="width:100%;" label="${translate("login.seed")}" id="existingSeedPhraseInput" autofocus></vaadin-password-field>
<vaadin-password-field style="width:100%;" label="${translate("login.seed")}" id="existingSeedPhraseInput" @keydown="${e => this.seedListener(e)}" autofocus></vaadin-password-field>
</div>
</div>
</div>
@ -345,7 +345,7 @@ class LoginSection extends connect(store)(LitElement) {
<div>
<div style="display: flex;">
<mwc-icon style="padding: 10px; padding-left: 0; padding-top: 42px; color: var(--black);">clear_all</mwc-icon>
<vaadin-password-field style="width: 100%;" label="${translate("login.qora")}" id="v1SeedInput" autofocus></vaadin-password-field>
<vaadin-password-field style="width: 100%;" label="${translate("login.qora")}" id="v1SeedInput" @keydown="${e => this.seedListener(e)}" autofocus></vaadin-password-field>
</div>
</div>
</div>
@ -378,6 +378,7 @@ class LoginSection extends connect(store)(LitElement) {
<vaadin-text-field style="width:100%;" label="${translate("login.name")}" id="nameInput"></vaadin-text-field>
</div>
</iron-collapse>
<iron-collapse style="" ?opened=${this.showPassword(this.selectedPage)} id="passwordCollapse">
<div style="display:flex;">
<mwc-icon style="padding: 10px; padding-left: 0; padding-top: 42px; color: var(--black);">password</mwc-icon>
@ -487,6 +488,12 @@ class LoginSection extends connect(store)(LitElement) {
this.nodeConfig = state.app.nodeConfig
}
seedListener(e) {
if (e.key === 'Enter') {
this.emitNext(e)
}
}
keyupEnter(e, action) {
if (e.keyCode === 13) {
e.preventDefault()

View File

@ -53,15 +53,15 @@ class SecurityView extends connect(store)(LitElement) {
text-align: center;
}
.checkbox-row {
.checkbox-row {
position: relative;
display: flex;
align-items: center;
align-content: center;
font-family: Montserrat, sans-serif;
font-weight: 600;
color: var(--black);
}
display: flex;
align-items: center;
align-content: center;
font-family: Montserrat, sans-serif;
font-weight: 600;
color: var(--black);
}
.q-button {
display: inline-flex;
@ -128,6 +128,15 @@ class SecurityView extends connect(store)(LitElement) {
>
</vaadin-password-field>
</div>
<div style="max-width: 500px; display: flex; justify-content: center; margin: auto;">
<mwc-icon style="padding: 10px; padding-left:0; padding-top: 42px;">password</mwc-icon>
<vaadin-password-field
style="width: 100%; color: var(--black);"
label="${translate("login.confirmpass")}"
id="rePassword"
>
</vaadin-password-field>
</div>
<div style="text-align: center; color: var(--mdc-theme-error); text-transform: uppercase; font-size: 15px;">
${this.backupErrorMessage}
</div>
@ -176,6 +185,7 @@ class SecurityView extends connect(store)(LitElement) {
store.dispatch(allowQAPPAutoAuth(true))
}
}
checkForLists(e) {
if (e.target.checked) {
store.dispatch(removeQAPPAutoLists(false))
@ -194,10 +204,14 @@ class SecurityView extends connect(store)(LitElement) {
checkForDownload() {
const checkPass = this.shadowRoot.getElementById('downloadBackupPassword').value
const rePass = this.shadowRoot.getElementById('rePassword').value
if (checkPass === '') {
this.backupErrorMessage = get("login.pleaseenter")
} else if (checkPass.length < 8) {
} else if (checkPass.length < 5) {
this.backupErrorMessage = get("login.lessthen8-2")
} else if (checkPass != rePass) {
this.backupErrorMessage = get("login.notmatch")
} else {
this.downloadBackup()
}
@ -239,11 +253,15 @@ class SecurityView extends connect(store)(LitElement) {
labelText: `${snack4string} ${fileName}`,
dismiss: true
})
this.shadowRoot.getElementById('downloadBackupPassword').value = ''
this.shadowRoot.getElementById('rePassword').value = ''
} catch (error) {
if (error.name === 'AbortError') {
return
}
FileSaver.saveAs(blob, fileName)
this.shadowRoot.getElementById('downloadBackupPassword').value = ''
this.shadowRoot.getElementById('rePassword').value = ''
}
}
}

View File

@ -33,6 +33,9 @@ export const newMessage = (data) => {
store.dispatch(doPageUrl(pageUrl))
}
}
// If sounds are enabled, but notifications are not
} else if (store.getState().user.notifications.q_chat.playSound) {
alert.play()
}
}
@ -102,6 +105,9 @@ export const newMessageNotificationQapp = (data) => {
}
}
}
// If sounds are enabled, but notifications are not
} else if (store.getState().user.notifications.q_chat.playSound) {
alert.play()
}
}
@ -253,6 +259,9 @@ export const newMessageNotificationQappLocal = (data) => {
}
}
// If sounds are enabled, but notifications are not
} else if (store.getState().user.notifications.q_chat.playSound) {
alert.play()
}
}

729
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -50,7 +50,7 @@
"crypto-js": "4.2.0",
"driver.js": "^1.3.1",
"electron-dl": "3.5.1",
"electron-log": "5.0.1",
"electron-log": "5.0.2",
"electron-store": "8.1.0",
"electron-updater": "6.1.7",
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js",
@ -64,16 +64,16 @@
"prosemirror-gapcursor": "1.3.2",
"prosemirror-history": "1.3.2",
"prosemirror-keymap": "1.2.2",
"prosemirror-model": "1.19.3",
"prosemirror-model": "1.19.4",
"prosemirror-schema-list": "1.3.0",
"prosemirror-state": "1.4.3",
"prosemirror-transform": "1.8.0",
"prosemirror-view": "1.32.6",
"prosemirror-view": "1.32.7",
"sass": "1.69.5",
"short-unique-id": "5.0.3"
},
"devDependencies": {
"@babel/core": "7.23.5",
"@babel/core": "7.23.6",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
"@material/mwc-dialog": "0.27.0",
@ -123,13 +123,13 @@
"@vaadin/password-field": "24.2.5",
"@vaadin/tooltip": "24.2.5",
"@zip.js/zip.js": "2.7.32",
"axios": "1.6.2",
"electron": "28.0.0",
"axios": "1.6.3",
"electron": "28.1.0",
"electron-builder": "24.9.1",
"electron-packager": "17.1.2",
"epml": "0.3.3",
"eslint": "8.55.0",
"eslint-plugin-lit": "1.10.1",
"eslint": "8.56.0",
"eslint-plugin-lit": "1.11.0",
"eslint-plugin-wc": "2.0.4",
"file-saver": "2.0.5",
"highcharts": "11.1.0",
@ -138,9 +138,9 @@
"lit": "2.8.0",
"passive-events-support": "1.1.0",
"pwa-helpers": "0.9.1",
"redux": "5.0.0",
"redux": "5.0.1",
"redux-thunk": "3.1.0",
"rollup": "4.8.0",
"rollup": "4.9.1",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-progress": "1.1.2",
"rollup-plugin-scss": "3.0.0",

View File

@ -0,0 +1,679 @@
import {css} from 'lit'
export const tradebotStyles = css`
* {
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-error: rgb(255, 89, 89);
--mdc-text-field-outlined-idle-border-color: var(--txtfieldborder);
--mdc-text-field-outlined-hover-border-color: var(--txtfieldhoverborder);
--mdc-text-field-label-ink-color: var(--black);
--mdc-text-field-ink-color: var(--black);
--mdc-select-outlined-idle-border-color: var(--txtfieldborder);
--mdc-select-outlined-hover-border-color: var(--txtfieldhoverborder);
--mdc-select-label-ink-color: var(--black);
--mdc-select-ink-color: var(--black);
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
--mdc-dialog-shape-radius: 25px;
--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);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white);
--lumo-body-text-color: var(--black);
--lumo-secondary-text-color: var(--sectxt);
--lumo-contrast-60pct: var(--vdicon);
--_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2);
}
paper-spinner-lite {
height: 30px;
width: 30px;
--paper-spinner-color: var(--mdc-theme-primary);
--paper-spinner-stroke-width: 3px;
}
mwc-tab-bar {
--mdc-text-transform: none;
--mdc-tab-color-default: var(--black);
--mdc-tab-text-label-color-default: var(--black);
}
#tabs-1 {
--mdc-tab-height: 42px;
border-left: 1px solid var(--tradeborder);
border-top: 1px solid var(--tradeborder);
border-right: 1px solid var(--tradeborder);
color: var(--black);
}
#tab-buy[active] {
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
#tabs-1-content {
height: 100%;
padding-bottom: 10px;
}
#tabs-1-content>div {
height: 100%;
border: 1px solid var(--tradeborder);
}
#tabs-1-content .card {
border: none;
}
#tabs-1-content .btn-clear {
--mdc-icon-button-size: 32px;
color: var(--black);
}
.btn-clear-bot {
--mdc-icon-button-size: 32px;
color: var(--black);
float: right;
}
.btn-info {
color: #03a9f4;
--mdc-icon-size: 16px;
padding-top: 3px;
}
#tab-sell[active] {
--mdc-theme-primary: rgb(255, 89, 89);
}
#trade-portal-page {
background: var(--white);
padding: 12px 24px;
}
.divCard {
border: 1px solid var(--black);
padding: 1em;
box-shadow: 0 0.3px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 1px -1px rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
}
h2 {
margin: 10px 0;
}
h4 {
margin: 5px 0;
}
p {
font-size: 14px;
line-height: 21px;
}
.card-body {
background-color: var(--white);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
min-height: 100vh;
margin: 0;
}
.card-container {
background-color: var(--white);
border-radius: 5px;
color: var(--black);
padding-top: 30px;
position: relative;
width: 350px;
max-width: 100%;
text-align: center;
}
.card-container .level {
color: #ffffff;
background-color: #03a9f4;
border-radius: 3px;
font-size: 14px;
font-weight: bold;
padding: 3px 7px;
position: absolute;
top: 30px;
left: 30px;
}
.card-container .founder {
color: #ffffff;
background-color: #03a9f4;
border-radius: 3px;
font-size: 14px;
font-weight: bold;
padding: 3px 7px;
position: absolute;
top: 30px;
right: 30px;
}
.card-container .round {
width: 96px;
height: 96px;
border: 1px solid #03a9f4;
border-radius: 50%;
padding: 2px;
}
.card-container .badge {
width: 200px;
height: 135px;
border: 1px solid transparent;
border-radius: 10%;
padding: 2px;
}
.userdata {
background-color: #1F1A36;
text-align: left;
padding: 15px;
margin-top: 30px;
}
.userdata ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.userdata ul li {
border: 1px solid #2D2747;
border-radius: 2px;
display: inline-block;
font-size: 12px;
margin: 0 7px 7px 0;
padding: 7px;
}
h2,
h3,
h4,
h5 {
color: var(--black);
font-weight: 400;
}
header {
display: flex;
flex: 0 1 auto;
align-items: center;
justify-content: center;
padding: 0px 10px;
font-size: 16px;
color: var(--white);
background-color: var(--tradehead);
border-left: 1px solid var(--tradeborder);
border-top: 1px solid var(--tradeborder);
border-right: 1px solid var(--tradeborder);
min-height: 40px;
}
p {
margin-bottom: 12px;
}
#trade-portal {
max-width: 100vw;
margin-left: auto;
margin-right: auto;
}
.box {
margin: 0;
padding: 0;
display: flex;
flex-flow: column;
height: 100%;
}
.box-bot {
margin: 0;
padding: 0;
display: flex;
flex-flow: column;
height: 150px;
}
#first-trade-section {
margin-bottom: 10px;
}
#first-trade-section>div {}
#second-trade-section {
margin-bottom: 10px;
}
#second-trade-section>div {}
#third-trade-section {
margin-bottom: 10px;
}
#third-trade-section>div {}
.trade-chart {
background-color: var(--white);
border: 2px #ddd solid;
text-align: center;
}
.open-trades {
text-align: center;
}
.open-market-container {
text-align: center;
}
.trade-bot-container {
text-align: center;
}
.no-last-seen {
background: rgb(255, 89, 89);
padding: 9px 1.3px;
border-radius: 50%;
width: 1rem;
margin: 0 auto;
}
.card {
padding: 1em;
border: 1px var(--tradeborder) solid;
flex: 1 1 auto;
display: flex;
flex-flow: column;
justify-content: space-evenly;
min-height: inherit;
}
.card-bot {
padding: 1em;
flex: 1 1 auto;
display: flex;
flex-flow: column;
justify-content: space-evenly;
width: 350px;
min-height: inherit;
}
.cancel {
--mdc-theme-primary: rgb(255, 89, 89);
}
.border-wrapper {
border: 1px var(--tradeborder) solid;
overflow: hidden;
}
.amt-text {
color: var(--tradehave);
font-size: 15px;
margin-top: 5px;
margin-bottom: 12px;
}
.exchange {
color: var(--black);
font-size: 18px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 10px;
}
.clear-button {
display: inline;
float: right;
margin-bottom: 5px;
}
.exhcnage-text {
display: inline;
float: left;
margin-bottom: 5px;
}
.balance-text {
display: inline;
float: right;
margin-bottom: 5px;
}
.fee-text {
display: inline;
float: left;
margin-bottom: 5px;
}
.tab-text {
color: var(--tradehave);
font-size: 12px;
text-align: left;
margin-top: 2px;
margin-bottom: -12px;
}
.historic-trades {
text-align: center;
}
.my-open-orders {
text-align: center;
}
.my-historic-trades {
text-align: center;
}
.buttons {
width: auto !important;
}
.buy-button {
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
.sell-button {
--mdc-theme-primary: rgb(255, 89, 89);
}
.trade-bot-button {
margin-top: 20px;
margin-bottom: 20px;
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
.full-width {
background-color: var(--white);
border: 2px var(--black);
height: 200px;
text-align: center;
}
vaading-grid {
font-size: .8em;
}
vaadin-grid-column {
flex-grow: 1;
}
.loadingContainer {
height: 100%;
width: 100%;
}
.loading,
.loading:after {
border-radius: 50%;
width: 5em;
height: 5em;
}
.loading {
margin: 10px auto;
border-width: .6em;
border-style: solid;
border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
font-size: 10px;
position: relative;
text-indent: -9999em;
transform: translateZ(0px);
animation: 1.1s linear 0s infinite normal none running loadingAnimation;
}
mwc-select#coinSelectionMenu {
font-size: 24px;
width: 220px;
}
mwc-select#coinSelectionMenu mwc-list-item {
line-height: 30px;
}
.coinName::before {
content: "";
display: inline-block;
height: 26px;
width: 45px;
position: absolute;
background-repeat: no-repeat;
background-size: cover;
left: 10px;
top: 10px;
}
.btc.coinName:before {
background-image: url('/img/qortbtc.png');
}
.ltc.coinName:before {
background-image: url('/img/qortltc.png');
}
.doge.coinName:before {
background-image: url('/img/qortdoge.png');
}
.dgb.coinName:before {
background-image: url('/img/qortdgb.png');
}
.rvn.coinName:before {
background-image: url('/img/qortrvn.png');
}
.arrr.coinName:before {
background-image: url('/img/qortarrr.png');
}
.coinName {
display: inline-block;
height: 26px;
padding-left: 45px;
}
.warning-text {
animation: blinker 1.5s linear infinite;
display: inline;
float: left;
margin-bottom: 5px;
color: rgb(255, 89, 89);
}
.warning-bot-text {
animation: blinker 1.5s linear infinite;
display: inline;
text-align: center;
color: rgb(255, 89, 89);
}
.red {
--mdc-theme-primary: #F44336;
}
@-webkit-keyframes loadingAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes loadingAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes blinker {
50% {
opacity: 0;
}
}
paper-dialog.info {
width: 75%;
max-width: 75vw;
height: 50%;
max-height: 50vh;
background-color: var(--white);
color: var(--black);
border: 1px solid var(--black);
border-radius: 15px;
line-height: 1.6;
overflow-y: auto;
}
.actions {
display: flex;
justify-content: space-between;
padding: 0 1em;
margin: 12px 0 -6px 0;
}
.close-icon {
font-size: 36px;
}
.close-icon:hover {
cursor: pointer;
opacity: .6;
}
.setpass-wrapper {
width: 100%;
min-width: 400px;
max-width: 450px;
text-align: center;
background: var(--white);
border: 1px solid var(--black);
border-radius: 15px;
padding: 10px 10px 0px;
box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.1);
}
.lock-wrapper {
width: 100%;
height: 100%;
min-width: 600px;
max-width: 600px;
min-height: 400px;
max-height: 400px;
text-align: center;
background: url("/img/qortal-lock.jpg");
border: 1px solid var(--black);
border-radius: 25px;
padding: 10px 10px 0px;
}
.text-wrapper {
width: 100%;
height: 100%;
min-width: 280px;
max-width: 280px;
min-height: 64px;
max-height: 64px;
text-align: center;
margin-left: 35px;
margin-top: 125px;
overflow: hidden;
}
.lock-title-white {
font-family: 'magistralbold';
font-weight: 700;
font-size: 26px;
line-height: 32px;
color: #ffffff;
}
.lock-title-red {
font-family: 'magistralbold';
font-weight: 700;
font-size: 26px;
line-height: 32px;
color: #df3636;
}
@media (min-width: 701px) {
* {}
#trade-bot-portal {
display: grid;
grid-template-columns: 2fr 4fr 2fr;
grid-auto-rows: max(80px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 20px;
}
#first-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(250px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#second-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(250px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#third-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(150px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#fourth-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(150px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
}
`

View File

@ -5,6 +5,7 @@ import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js'
import Base58 from '../../../../crypto/api/deps/Base58.js'
import {decryptData, encryptData} from '../../../../core/src/lockScreen.js'
import {tradebotStyles} from './trade-bot-portal-css.js'
import '@material/mwc-button'
import '@material/mwc-textfield'
import '@material/mwc-icon'
@ -38,7 +39,6 @@ class TradeBotPortal extends LitElement {
config: { type: Object },
listedCoins: { type: Map },
blockedTradesList: { type: Array },
preparedPresence: { type: Array },
tradesPresenceCleaned: { type: Array },
sellBtnDisable: { type: Boolean },
isSellLoading: { type: Boolean },
@ -95,600 +95,7 @@ class TradeBotPortal extends LitElement {
}
static get styles() {
return css`
* {
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-error: rgb(255, 89, 89);
--mdc-text-field-outlined-idle-border-color: var(--txtfieldborder);
--mdc-text-field-outlined-hover-border-color: var(--txtfieldhoverborder);
--mdc-text-field-label-ink-color: var(--black);
--mdc-text-field-ink-color: var(--black);
--mdc-select-outlined-idle-border-color: var(--txtfieldborder);
--mdc-select-outlined-hover-border-color: var(--txtfieldhoverborder);
--mdc-select-label-ink-color: var(--black);
--mdc-select-ink-color: var(--black);
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
--mdc-dialog-shape-radius: 25px;
--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);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white);
--lumo-body-text-color: var(--black);
--lumo-secondary-text-color: var(--sectxt);
--lumo-contrast-60pct: var(--vdicon);
--_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2);
}
paper-spinner-lite {
height: 30px;
width: 30px;
--paper-spinner-color: var(--mdc-theme-primary);
--paper-spinner-stroke-width: 3px;
}
mwc-tab-bar {
--mdc-text-transform: none;
--mdc-tab-color-default: var(--black);
--mdc-tab-text-label-color-default: var(--black);
}
#tabs-1 {
--mdc-tab-height: 42px;
border-left: 1px solid var(--tradeborder);
border-top: 1px solid var(--tradeborder);
border-right: 1px solid var(--tradeborder);
color: var(--black);
}
#tab-buy[active] {
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
#tabs-1-content {
height: 100%;
padding-bottom: 10px;
}
#tabs-1-content > div {
height: 100%;
border: 1px solid var(--tradeborder);
}
#tabs-1-content .card {
border: none;
}
#tabs-1-content .btn-clear {
--mdc-icon-button-size: 32px;
color: var(--black);
}
.btn-clear-bot {
--mdc-icon-button-size: 32px;
color: var(--black);
float: right;
}
.btn-info {
color: #03a9f4;
--mdc-icon-size: 16px;
padding-top: 3px;
}
#tab-sell[active] {
--mdc-theme-primary: rgb(255, 89, 89);
}
#trade-portal-page {
background: var(--white);
padding: 12px 24px;
}
.divCard {
border: 1px solid var(--black);
padding: 1em;
box-shadow: 0 0.3px 1px 0 rgba(0, 0, 0, 0.14), 0 1px 1px -1px rgba(0, 0, 0, 0.12), 0 1px 2px 0 rgba(0, 0, 0, 0.2);
}
h2 {
margin: 10px 0;
}
h4 {
margin: 5px 0;
}
p {
font-size: 14px;
line-height: 21px;
}
.card-body {
background-color: var(--white);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
min-height: 100vh;
margin: 0;
}
.card-container {
background-color: var(--white);
border-radius: 5px;
color: var(--black);
padding-top: 30px;
position: relative;
width: 350px;
max-width: 100%;
text-align: center;
}
.card-container .level {
color: #ffffff;
background-color: #03a9f4;
border-radius: 3px;
font-size: 14px;
font-weight: bold;
padding: 3px 7px;
position: absolute;
top: 30px;
left: 30px;
}
.card-container .founder {
color: #ffffff;
background-color: #03a9f4;
border-radius: 3px;
font-size: 14px;
font-weight: bold;
padding: 3px 7px;
position: absolute;
top: 30px;
right: 30px;
}
.card-container .round {
width: 96px;
height: 96px;
border: 1px solid #03a9f4;
border-radius: 50%;
padding: 2px;
}
.card-container .badge {
width: 200px;
height: 135px;
border: 1px solid transparent;
border-radius: 10%;
padding: 2px;
}
.userdata {
background-color: #1F1A36;
text-align: left;
padding: 15px;
margin-top: 30px;
}
.userdata ul {
list-style-type: none;
margin: 0;
padding: 0;
}
.userdata ul li {
border: 1px solid #2D2747;
border-radius: 2px;
display: inline-block;
font-size: 12px;
margin: 0 7px 7px 0;
padding: 7px;
}
h2,
h3,
h4,
h5 {
color: var(--black);
font-weight: 400;
}
header {
display: flex;
flex: 0 1 auto;
align-items: center;
justify-content: center;
padding: 0px 10px;
font-size: 16px;
color: var(--white);
background-color: var(--tradehead);
border-left: 1px solid var(--tradeborder);
border-top: 1px solid var(--tradeborder);
border-right: 1px solid var(--tradeborder);
min-height: 40px;
}
p {
margin-bottom: 12px;
}
#trade-portal {
max-width: 100vw;
margin-left: auto;
margin-right: auto;
}
.box {
margin: 0;
padding: 0;
display: flex;
flex-flow: column;
height: 100%;
}
.box-bot {
margin: 0;
padding: 0;
display: flex;
flex-flow: column;
height: 150px;
}
#first-trade-section {
margin-bottom: 10px;
}
#first-trade-section > div {
}
#second-trade-section {
margin-bottom: 10px;
}
#second-trade-section > div {
}
#third-trade-section {
margin-bottom: 10px;
}
#third-trade-section > div {
}
.trade-chart {
background-color: var(--white);
border: 2px #ddd solid;
text-align: center;
}
.open-trades {
text-align: center;
}
.open-market-container {
text-align: center;
}
.trade-bot-container {
text-align: center;
}
.no-last-seen {
background: rgb(255, 89, 89);
padding: 9px 1.3px;
border-radius: 50%;
width: 1rem;
margin: 0 auto;
}
.card {
padding: 1em;
border: 1px var(--tradeborder) solid;
flex: 1 1 auto;
display: flex;
flex-flow: column;
justify-content: space-evenly;
min-height: inherit;
}
.card-bot {
padding: 1em;
flex: 1 1 auto;
display: flex;
flex-flow: column;
justify-content: space-evenly;
width: 350px;
min-height: inherit;
}
.cancel {
--mdc-theme-primary: rgb(255, 89, 89);
}
.border-wrapper {
border: 1px var(--tradeborder) solid;
overflow: hidden;
}
.amt-text {
color: var(--tradehave);
font-size: 15px;
margin-top: 5px;
margin-bottom: 12px;
}
.exchange {
color: var(--black);
font-size: 18px;
font-weight: bold;
margin-top: 5px;
margin-bottom: 10px;
}
.clear-button {
display: inline;
float: right;
margin-bottom: 5px;
}
.exhcnage-text {
display: inline;
float: left;
margin-bottom: 5px;
}
.balance-text {
display: inline;
float: right;
margin-bottom: 5px;
}
.fee-text {
display: inline;
float: left;
margin-bottom: 5px;
}
.tab-text {
color: var(--tradehave);
font-size: 12px;
text-align: left;
margin-top: 2px;
margin-bottom: -12px;
}
.historic-trades {
text-align: center;
}
.my-open-orders {
text-align: center;
}
.my-historic-trades {
text-align: center;
}
.buttons {
width: auto !important;
}
.buy-button {
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
.sell-button {
--mdc-theme-primary: rgb(255, 89, 89);
}
.trade-bot-button {
margin-top: 20px;
margin-bottom: 20px;
--mdc-theme-primary: rgba(55, 160, 51, 0.9);
}
.full-width {
background-color: var(--white);
border: 2px var(--black);
height: 200px;
text-align: center;
}
vaading-grid {
font-size: .8em;
}
vaadin-grid-column {
flex-grow: 1;
}
.loadingContainer {
height: 100%;
width: 100%;
}
.loading,
.loading:after {
border-radius: 50%;
width: 5em;
height: 5em;
}
.loading {
margin: 10px auto;
border-width: .6em;
border-style: solid;
border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
font-size: 10px;
position: relative;
text-indent: -9999em;
transform: translateZ(0px);
animation: 1.1s linear 0s infinite normal none running loadingAnimation;
}
mwc-select#coinSelectionMenu {
font-size: 24px;
width:220px;
}
mwc-select#coinSelectionMenu mwc-list-item {
line-height: 30px;
}
.coinName::before {
content: "";
display: inline-block;
height: 26px;
width: 45px;
position: absolute;
background-repeat: no-repeat;
background-size: cover;
left: 10px;
top: 10px;
}
.btc.coinName:before {
background-image: url('/img/qortbtc.png');
}
.ltc.coinName:before {
background-image: url('/img/qortltc.png');
}
.doge.coinName:before {
background-image: url('/img/qortdoge.png');
}
.dgb.coinName:before {
background-image: url('/img/qortdgb.png');
}
.rvn.coinName:before {
background-image: url('/img/qortrvn.png');
}
.arrr.coinName:before {
background-image: url('/img/qortarrr.png');
}
.coinName {
display: inline-block;
height: 26px;
padding-left: 45px;
}
.warning-text {
animation: blinker 1.5s linear infinite;
display: inline;
float: left;
margin-bottom: 5px;
color: rgb(255, 89, 89);
}
.warning-bot-text {
animation: blinker 1.5s linear infinite;
display: inline;
text-align: center;
color: rgb(255, 89, 89);
}
.red {
--mdc-theme-primary: #F44336;
}
@-webkit-keyframes loadingAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes loadingAnimation {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes blinker {
50% {
opacity: 0;
}
}
paper-dialog.info {
width: 75%;
max-width: 75vw;
height: 50%;
max-height: 50vh;
background-color: var(--white);
color: var(--black);
border: 1px solid var(--black);
border-radius: 15px;
line-height: 1.6;
overflow-y: auto;
}
.actions {
display:flex;
justify-content: space-between;
padding: 0 1em;
margin: 12px 0 -6px 0;
}
.close-icon {
font-size: 36px;
}
.close-icon:hover {
cursor: pointer;
opacity: .6;
}
.setpass-wrapper {
width: 100%;
min-width: 400px;
max-width: 450px;
text-align: center;
background: var(--white);
border: 1px solid var(--black);
border-radius: 15px;
padding: 10px 10px 0px;
box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.1);
}
.lock-wrapper {
width: 100%;
height: 100%;
min-width: 600px;
max-width: 600px;
min-height: 400px;
max-height: 400px;
text-align: center;
background: url("/img/qortal-lock.jpg");
border: 1px solid var(--black);
border-radius: 25px;
padding: 10px 10px 0px;
}
.text-wrapper {
width: 100%;
height: 100%;
min-width: 280px;
max-width: 280px;
min-height: 64px;
max-height: 64px;
text-align: center;
margin-left: 35px;
margin-top: 125px;
overflow: hidden;
}
.lock-title-white {
font-family: 'magistralbold';
font-weight: 700;
font-size: 26px;
line-height: 32px;
color: #ffffff;
}
.lock-title-red {
font-family: 'magistralbold';
font-weight: 700;
font-size: 26px;
line-height: 32px;
color: #df3636;
}
@media (min-width: 701px) {
* {
}
#trade-bot-portal {
display: grid;
grid-template-columns: 2fr 4fr 2fr;
grid-auto-rows: max(80px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 20px;
}
#first-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(250px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#second-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(250px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#third-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(150px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
#fourth-trade-section {
display: grid;
grid-template-columns: 1fr 4fr 1fr;
grid-auto-rows: max(150px);
column-gap: 0.5em;
row-gap: 0.4em;
justify-items: stretch;
align-items: stretch;
margin-bottom: 10px;
}
}
`
return [tradebotStyles]
}
constructor() {
@ -851,7 +258,6 @@ class TradeBotPortal extends LitElement {
this.selectedAddress = {}
this.config = {}
this.blockedTradesList = []
this.preparedPresence = []
this.tradesPresenceCleaned = []
this.sellBtnDisable = false
this.isSellLoading = false
@ -3827,9 +3233,22 @@ class TradeBotPortal extends LitElement {
if (!message.isRestarted) this.processTradeBotStates(JSON.parse(message.data))
return null
case 'PRESENCE':
this.tradesPresenceCleaned = []
this.listedCoins.get(message.data.relatedCoin).openOrders = message.data.offers
this.preparedPresence = message.data.filteredOffers
this.filterPresenceTrades()
this.tradesPresenceCleaned = message.data.filteredOffers
const filterPresenceList = () => {
this.blockedTradesList.forEach(item => {
const toDelete = item.recipient
this.tradesPresenceCleaned = this.tradesPresenceCleaned.filter(el => {
return el.qortalCreatorTradeAddress !== toDelete
})
})
}
filterPresenceList()
this.listedCoins.get(message.data.relatedCoin).openFilteredOrders = this.tradesPresenceCleaned
this.reRenderOpenFilteredOrders()
return null
default:
break
@ -3893,24 +3312,6 @@ class TradeBotPortal extends LitElement {
await filterUnconfirmedTransactionsList()
}
async filterPresenceTrades() {
this.tradesPresenceCleaned = this.preparedPresence
const filterPresenceList = async () => {
this.blockedTradesList.forEach(item => {
const toDelete = item.recipient
this.tradesPresenceCleaned = this.tradesPresenceCleaned.filter(el => {
return el.qortalCreatorTradeAddress !== toDelete
})
})
}
await filterPresenceList()
this.listedCoins.get(this.selectedCoin).openFilteredOrders = this.tradesPresenceCleaned
this.reRenderOpenFilteredOrders()
}
}
window.customElements.define('trade-bot-portal', TradeBotPortal)

View File

@ -48,7 +48,6 @@ class TradePortal extends LitElement {
listedCoins: { type: Map },
nodeInfo: { type: Array },
blockedTradesList: { type: Array },
preparedPresence: { type: Array },
tradesPresenceCleaned: { type: Array },
sellBtnDisable: { type: Boolean },
isSellLoading: { type: Boolean },
@ -2644,9 +2643,22 @@ class TradePortal extends LitElement {
if (!message.isRestarted) this.processTradeBotStates(JSON.parse(message.data))
return null
case 'PRESENCE':
this.tradesPresenceCleaned = []
this.listedCoins.get(message.data.relatedCoin).openOrders = message.data.offers
this.preparedPresence = message.data.filteredOffers
this.filterPresenceTrades()
this.tradesPresenceCleaned = message.data.filteredOffers
const filterPresenceList = () => {
this.blockedTradesList.forEach(item => {
const toDelete = item.recipient
this.tradesPresenceCleaned = this.tradesPresenceCleaned.filter(el => {
return el.qortalCreatorTradeAddress !== toDelete
})
})
}
filterPresenceList()
this.listedCoins.get(message.data.relatedCoin).openFilteredOrders = this.tradesPresenceCleaned
this.reRenderOpenFilteredOrders()
return null
default:
break
@ -2712,24 +2724,6 @@ class TradePortal extends LitElement {
await filterUnconfirmedTransactionsList()
}
async filterPresenceTrades() {
this.tradesPresenceCleaned = this.preparedPresence
const filterPresenceList = async () => {
this.blockedTradesList.forEach(item => {
const toDelete = item.recipient
this.tradesPresenceCleaned = this.tradesPresenceCleaned.filter(el => {
return el.qortalCreatorTradeAddress !== toDelete
})
})
}
await filterPresenceList()
this.listedCoins.get(this.selectedCoin).openFilteredOrders = this.tradesPresenceCleaned
this.reRenderOpenFilteredOrders()
}
handleStuckTrades() {
let tradeBotStates = []

View File

@ -606,12 +606,6 @@ class MultiWallet extends LitElement {
width: 185px;
}
.unused-pos {
margin-top: -44px;
margin-left: 410px;
width: 185px;
}
@media (max-width: 863px) {
.wallet {
width: 100%;
@ -980,9 +974,6 @@ class MultiWallet extends LitElement {
<div class="book-pos" ?hidden="${this.getSelectedWalletAddress().length < 1}">
${this.renderAddressbookButton()}
</div>
<div class="unused-pos" ?hidden="${this.getSelectedWalletAddress().length < 1}">
${this.renderUnusedAddressButton()}
</div>
<div class="qrcode-pos" ?hidden="${this.getSelectedWalletAddress().length < 1}">
<qortal-qrcode-generator data="${this.getSelectedWalletAddress()}" mode="octet" format="html" auto></qortal-qrcode-generator>
</div>
@ -2158,171 +2149,6 @@ class MultiWallet extends LitElement {
</mwc-button>
</mwc-dialog>
<mwc-dialog id="btcUnusedAddressDialog" scrimClickAction="" escapeKeyAction="">
<div class="unused-address-dialog">
<div style="text-align: center;">
<img src="/img/btc.png" width="32" height="32">
<h2>BTC</h2>
<hr />
</div>
<p>
<span style="font-weight: bold;">${this.wallets.get(this._selectedWallet).unusedWalletAddress}</span>
<button-icon-copy
title="${translate("walletpage.wchange3")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.wallets.get(this._selectedWallet).unusedWalletAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
<br />
<span>${translate("walletpage.wchange38")}</span>
</p>
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="ltcUnusedAddressDialog" scrimClickAction="" escapeKeyAction="">
<div class="unused-address-dialog">
<div style="text-align: center;">
<img src="/img/ltc.png" width="32" height="32">
<h2>LTC</h2>
<hr />
</div>
<p>
<span style="font-weight: bold;">${this.wallets.get(this._selectedWallet).unusedWalletAddress}</span>
<button-icon-copy
title="${translate("walletpage.wchange3")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.wallets.get(this._selectedWallet).unusedWalletAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
<br />
<span>${translate("walletpage.wchange38")}</span>
</p>
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="dogeUnusedAddressDialog" scrimClickAction="" escapeKeyAction="">
<div class="unused-address-dialog">
<div style="text-align: center;">
<img src="/img/doge.png" width="32" height="32">
<h2>DOGE</h2>
<hr />
</div>
<p>
<span style="font-weight: bold;">${this.wallets.get(this._selectedWallet).unusedWalletAddress}</span>
<button-icon-copy
title="${translate("walletpage.wchange3")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.wallets.get(this._selectedWallet).unusedWalletAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
<br />
<span>${translate("walletpage.wchange38")}</span>
</p>
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="dgbUnusedAddressDialog" scrimClickAction="" escapeKeyAction="">
<div class="unused-address-dialog">
<div style="text-align: center;">
<img src="/img/dgb.png" width="32" height="32">
<h2>DGB</h2>
<hr />
</div>
<p>
<span style="font-weight: bold;">${this.wallets.get(this._selectedWallet).unusedWalletAddress}</span>
<button-icon-copy
title="${translate("walletpage.wchange3")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.wallets.get(this._selectedWallet).unusedWalletAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
<br />
<span>${translate("walletpage.wchange38")}</span>
</p>
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="rvnUnusedAddressDialog" scrimClickAction="" escapeKeyAction="">
<div class="unused-address-dialog">
<div style="text-align: center;">
<img src="/img/rvn.png" width="32" height="32">
<h2>RVN</h2>
<hr />
</div>
<p>
<span style="font-weight: bold;">${this.wallets.get(this._selectedWallet).unusedWalletAddress}</span>
<button-icon-copy
title="${translate("walletpage.wchange3")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.wallets.get(this._selectedWallet).unusedWalletAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
<br />
<span>${translate("walletpage.wchange38")}</span>
</p>
</div>
<mwc-button
slot="primaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<mwc-dialog id="addQortAddressDialog" scrimClickAction="" escapeKeyAction="">
<div style="text-align:center">
<img src="/img/qort.png" width="32" height="32">
@ -5009,70 +4835,6 @@ class MultiWallet extends LitElement {
}
}
async getUnusedAddress(coin) {
this.wallets.get(this._selectedWallet).unusedWalletAddress = ''
let _url = ``
let _body = null
switch (coin) {
case 'qort':
case 'arrr':
_url = ``
_body = null
break
case 'btc':
case 'ltc':
case 'doge':
case 'dgb':
case 'rvn':
const walletName = `${coin}Wallet`
_url = `/crosschain/${coin}/unusedaddress?apiKey=${this.getApiKey()}`
_body = `${window.parent.reduxStore.getState().app.selectedAddress[walletName].derivedMasterPublicKey}`
break
default:
break
}
if (_body === null) {
this.unusedAddressString = ""
} else {
await parentEpml.request('apiCall', {
url: _url,
method: 'POST',
body: _body,
}).then((res) => {
this.wallets.get(this._selectedWallet).unusedWalletAddress = res
this.unusedAddressString = this.wallets.get(this._selectedWallet).unusedWalletAddress
this.openUnusedAddressDialog(coin)
})
}
}
openUnusedAddressDialog(coin) {
switch (coin) {
case 'qort':
case 'arrr':
break
case 'btc':
this.shadowRoot.querySelector("#btcUnusedAddressDialog").show();
break
case 'ltc':
this.shadowRoot.querySelector("#ltcUnusedAddressDialog").show();
break
case 'doge':
this.shadowRoot.querySelector("#dogeUnusedAddressDialog").show();
break
case 'dgb':
this.shadowRoot.querySelector("#dgbUnusedAddressDialog").show();
break
case 'rvn':
this.shadowRoot.querySelector("#rvnUnusedAddressDialog").show();
break
default:
break
}
}
renderSendButton() {
if ( this._selectedWallet === "qort" ) {
return html`<vaadin-button theme="primary medium" style="width: 100%;" @click=${() => this.openSendQort()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange17")} QORT</vaadin-button>`
@ -5113,22 +4875,6 @@ class MultiWallet extends LitElement {
}
}
renderUnusedAddressButton() {
switch (this._selectedWallet) {
case "qort":
case "arrr":
return html`<vaadin-button disabled theme="primary medium" style="width: 100%;" @click=${() => this.getUnusedAddress(this._selectedWallet)}><vaadin-icon icon="vaadin:magic" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange58")}</vaadin-button>`
case "btc":
case "ltc":
case "doge":
case "dgb":
case "rvn":
return html`<vaadin-button theme="primary medium" style="width: 100%;" @click=${() => this.getUnusedAddress(this._selectedWallet)}><vaadin-icon icon="vaadin:magic" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange58")}</vaadin-button>`
default:
return html``
}
}
renderExportAddressbookButton() {
if ( this._selectedWallet === "qort" ) {
return html`<vaadin-button theme="primary small" style="width: 100%;" @click=${() => this.exportQortAddressbook()}><vaadin-icon icon="vaadin:cloud-download" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange54")}</vaadin-button>`