Browse Source

Auto buy (First Stage) , Inside address explorer (First Stage), update deps

q-apps
AlphaX-Projects 2 years ago
parent
commit
4682ee891c
  1. BIN
      img/notfound.png
  2. 94
      package.json
  3. 24
      qortal-ui-core/language/de.json
  4. 24
      qortal-ui-core/language/es.json
  5. 24
      qortal-ui-core/language/fr.json
  6. 24
      qortal-ui-core/language/hindi.json
  7. 24
      qortal-ui-core/language/hr.json
  8. 26
      qortal-ui-core/language/hu.json
  9. 24
      qortal-ui-core/language/it.json
  10. 24
      qortal-ui-core/language/ko.json
  11. 26
      qortal-ui-core/language/no.json
  12. 24
      qortal-ui-core/language/pl.json
  13. 24
      qortal-ui-core/language/pt.json
  14. 26
      qortal-ui-core/language/ro.json
  15. 26
      qortal-ui-core/language/rs.json
  16. 26
      qortal-ui-core/language/ru.json
  17. 24
      qortal-ui-core/language/us.json
  18. 26
      qortal-ui-core/language/zhc.json
  19. 26
      qortal-ui-core/language/zht.json
  20. 28
      qortal-ui-core/package.json
  21. 2
      qortal-ui-core/src/components/app-info.js
  22. 60
      qortal-ui-core/src/components/app-view.js
  23. 12
      qortal-ui-core/src/components/sidenav-menu.js
  24. 6
      qortal-ui-core/src/components/start-minting.js
  25. 320
      qortal-ui-core/src/components/user-info-view/user-info-view.js
  26. 2
      qortal-ui-crypto/package.json
  27. 12
      qortal-ui-plugins/build-config.js
  28. 22
      qortal-ui-plugins/package.json
  29. 1
      qortal-ui-plugins/plugins/core/components/ChatHead.js
  30. 27
      qortal-ui-plugins/plugins/core/main.src.js
  31. 55
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-btc/index.html
  32. 2155
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-btc/trade-bot-btc.src.js
  33. 55
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-doge/index.html
  34. 2155
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-doge/trade-bot-doge.src.js
  35. 55
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-ltc/index.html
  36. 2155
      qortal-ui-plugins/plugins/core/trade-bot/trade-bot-ltc/trade-bot-ltc.src.js
  37. 509
      qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js
  38. 2
      scripts/notarize.js

BIN
img/notfound.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

94
package.json

@ -1,48 +1,48 @@
{
"name": "qortal-ui",
"version": "2.1.1",
"description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet",
"keywords": [
"QORT",
"QORTAL",
"DECENTRALIZED"
],
"main": "electron.js",
"repository": {
"type": "git",
"url": "git+https://github.com/Qortal/qortal-ui.git"
},
"homepage": "https://qortal.org",
"author": "QORTAL <[email protected]>",
"license": "GPL-3.0",
"scripts": {
"install_link:all": "(cd qortal-ui-core && yarn install && yarn link) && (cd qortal-ui-plugins && yarn install && yarn link) && (cd qortal-ui-crypto && yarn install && yarn link) && (yarn link qortal-ui-core && yarn link qortal-ui-plugins && yarn link qortal-ui-crypto)",
"dev": "node server.js",
"prebuild": "node -p \"'export const UI_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > qortal-ui-core/src/redux/app/version.js",
"build-dev": "node build.js",
"build": "NODE_ENV=production node build.js",
"server": "NODE_ENV=production node server.js",
"watch": "node watch.js",
"watch-inline": "node watch-inline.js",
"start-electron": "NODE_ENV=production electron .",
"build-electron": "electron-builder build --publish never",
"deploy-electron": "electron-builder build --win --publish never",
"release": "NODE_ENV=production electron-builder build --publish never",
"update-package-json": "node update-package-json.js",
"publish": "electron-builder -p always"
},
"dependencies": {
"electron-log": "4.4.8",
"electron-updater": "5.2.1"
},
"devDependencies": {
"electron": "21.1.1",
"electron-builder": "23.3.3",
"electron-notarize": "1.2.1",
"electron-packager": "16.0.0",
"shelljs": "0.8.5"
},
"engines": {
"node": ">=16.15.0"
}
}
"name": "qortal-ui",
"version": "2.1.1",
"description": "Qortal Project - decentralize the world - Data storage, communications, web hosting, decentralized trading, complete infrastructure for the future blockchain-based Internet",
"keywords": [
"QORT",
"QORTAL",
"DECENTRALIZED"
],
"main": "electron.js",
"repository": {
"type": "git",
"url": "git+https://github.com/Qortal/qortal-ui.git"
},
"homepage": "https://qortal.org",
"author": "QORTAL <[email protected]>",
"license": "GPL-3.0",
"scripts": {
"install_link:all": "(cd qortal-ui-core && yarn install && yarn link) && (cd qortal-ui-plugins && yarn install && yarn link) && (cd qortal-ui-crypto && yarn install && yarn link) && (yarn link qortal-ui-core && yarn link qortal-ui-plugins && yarn link qortal-ui-crypto)",
"dev": "node server.js",
"prebuild": "node -p \"'export const UI_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > qortal-ui-core/src/redux/app/version.js",
"build-dev": "node build.js",
"build": "NODE_ENV=production node build.js",
"server": "NODE_ENV=production node server.js",
"watch": "node watch.js",
"watch-inline": "node watch-inline.js",
"start-electron": "NODE_ENV=production electron .",
"build-electron": "electron-builder build --publish never",
"deploy-electron": "electron-builder build --win --publish never",
"release": "NODE_ENV=production electron-builder build --publish never",
"update-package-json": "node update-package-json.js",
"publish": "electron-builder -p always"
},
"dependencies": {
"electron-log": "4.4.8",
"electron-updater": "5.3.0"
},
"devDependencies": {
"electron": "21.2.3",
"electron-builder": "23.6.0",
"electron-packager": "17.1.1",
"@electron/notarize": "1.2.3",
"shelljs": "^0.8.5"
},
"engines": {
"node": ">=16.15.0"
}
}

24
qortal-ui-core/language/de.json

@ -308,7 +308,20 @@
"tchange30":"Guthaben konnte nicht abgerufen werden. Versuchen Sie es nochmal!",
"tchange31":"VERKAUFT",
"tchange32":"GEKAUFT",
"tchange33":"Tauschrate"
"tchange33":"Durchschnitt",
"tchange34":"Betrag darf nicht 0 sein",
"tchange35":"Der Preis darf nicht 0 sein",
"tchange36":"AUSSTEHENDER AUTOKAUF",
"tchange37":"Keine automatische Kaufbestellung gefunden!",
"tchange38":"HINZUFÜGEN",
"tchange39":"AUTO KAUFAUFTRAG",
"tchange40":"Preis",
"tchange41":"Automatischer Kaufauftrag erfolgreich entfernt!",
"tchange42":"MARKET OFFENE VERKAUFSAUFTRÄGE",
"tchange43":"MEINE KAUFGESCHICHTE",
"tchange44":"Automatischer Kaufauftrag erfolgreich hinzugefügt!",
"tchange45":"AUTO KAUFEN MIT",
"tchange46":"AUTOKAUF"
},
"rewardsharepage":{
"rchange1":"Belohnungsanteile",
@ -674,5 +687,14 @@
"schange19":"Sponsoring-Schlüssel kopieren",
"schange20":"Beziehung schaffen",
"schange21":"Sponsoring-Schlüssel entfernen"
},
"explorerpage":{
"exp1":"Adresse oder Name zum Suchen",
"exp2":"Kontostand",
"exp3":"Mehr Info",
"exp4":"Adresse oder Name nicht gefunden !",
"exp5":"Beachten Sie, dass bei registrierten Namen zwischen Groß- und Kleinschreibung unterschieden wird.",
"exp6":"Gründer",
"exp7":"Info"
}
}

24
qortal-ui-core/language/es.json

@ -308,7 +308,20 @@
"tchange30":"Fallo en la obtención del saldo. Inténtelo de nuevo!",
"tchange31":"VENDIDO",
"tchange32":"COMPRADO",
"tchange33":"Tipo de cambio"
"tchange33":"Promedio",
"tchange34":"La cantidad no puede ser 0",
"tchange35":"El precio no puede ser 0",
"tchange36":"AUTO COMPRA PENDIENTE",
"tchange37":"No se ha encontrado ninguna orden de compra automática!",
"tchange38":"AGREGAR",
"tchange39":"AUTO ORDEN DE COMPRA",
"tchange40":"Precio",
"tchange41":"Orden de compra automática eliminada con éxito!",
"tchange42":"MERCADO ABIERTO ÓRDENES DE VENTA",
"tchange43":"MI HISTORIAL DE COMPRAS",
"tchange44":"Orden de compra automática agregada con éxito!",
"tchange45":"AUTO COMPRAR CON",
"tchange46":"COMPRA AUTOMÁTICA"
},
"rewardsharepage":{
"rchange1":"Rewardshares",
@ -674,5 +687,14 @@
"schange19":"Copiar clave de patrocinio",
"schange20":"Creando relación",
"schange21":"Eliminar clave de patrocinio"
},
"explorerpage":{
"exp1":"Dirección o nombre a buscar",
"exp2":"Saldo de la cuenta",
"exp3":"Más información",
"exp4":"No se encontró la dirección o el nombre!",
"exp5":"Tenga en cuenta que los nombres registrados distinguen entre mayúsculas y minúsculas.",
"exp6":"Fundador",
"exp7":"Información"
}
}

24
qortal-ui-core/language/fr.json

@ -308,7 +308,20 @@
"tchange30":"Échec de la récupération du solde. Réessayez!",
"tchange31":"VENDU",
"tchange32":"ACHETE",
"tchange33":"Taux de change"
"tchange33":"Moyen",
"tchange34":"Le montant ne peut pas être 0",
"tchange35":"Le prix ne peut pas être 0",
"tchange36":"ACHAT AUTOMATIQUE EN ATTENTE",
"tchange37":"Aucune commande d'achat automatique trouvée !",
"tchange38":"AJOUTER",
"tchange39":"COMMANDE D'ACHAT AUTOMATIQUE",
"tchange40":"Prix",
"tchange41":"Commande d'achat automatique supprimée avec succès !",
"tchange42":"ORDRES DE VENTE À L'OUVERTURE DU MARCHÉ",
"tchange43":"MON HISTORIQUE D'ACHAT",
"tchange44":"Commande d'achat automatique ajoutée avec succès !",
"tchange45":"ACHAT AUTO AVEC",
"tchange46":"ACHAT AUTOMATIQUE"
},
"rewardsharepage":{
"rchange1":"Récompenses",
@ -674,5 +687,14 @@
"schange19":"Copier la clé de parrainage",
"schange20":"Créer une relation",
"schange21":"Supprimer la clé de parrainage"
},
"explorerpage":{
"exp1":"Adresse ou nom à rechercher",
"exp2":"Solde du compte",
"exp3":"Plus d'informations",
"exp4":"Adresse ou nom introuvable !",
"exp5":"Notez que les noms enregistrés sont sensibles à la casse.",
"exp6":"Fondateur",
"exp7":"Info"
}
}

24
qortal-ui-core/language/hindi.json

@ -309,7 +309,20 @@
"tchange30":"शष किफल फिर सरयस कर!",
"tchange31":"ब",
"tchange32":"खरद लि",
"tchange33":"वििमय दर"
"tchange33":"औसत",
"tchange34":"रि 0 नह सकत",
"tchange35":"मय 0 नह सकत",
"tchange36":"लित ऑट खरद",
"tchange37":"कई ऑट खरद आदश नहि!",
"tchange38":"ज",
"tchange39":"ऑट खरद आदश",
"tchange40":"कमत",
"tchange41":"सवचित खरद आदश सफलतवक नि गय!",
"tchange42":"मट ओपन सल ऑरडर",
"tchange43":"म इतिस खर",
"tchange44":"सवत खरद आदश सफलतवक ज गय!",
"tchange45":"ऑटथ खर",
"tchange46":"ऑट खर"
},
"rewardsharepage":{
"rchange1":"रिडशयर",
@ -675,5 +688,14 @@
"schange19":"कजन क",
"schange20":"सध बन",
"schange21":"पजन क हट"
},
"explorerpage":{
"exp1":"खजनिए पतम",
"exp2":"खष",
"exp3":"और जनक",
"exp4":"पतम नहि !",
"exp5":"धन दित नम कस-स।",
"exp6":"सपक",
"exp7":"जनक"
}
}

24
qortal-ui-core/language/hr.json

@ -308,7 +308,20 @@
"tchange30":"Neuspješno dohvatiti stanje. Pokušajte ponovno!",
"tchange31":"PRODANO",
"tchange32":"KUPLJENO",
"tchange33":"Tečaj"
"tchange33":"Prosjek",
"tchange34":"Iznos ne može biti 0",
"tchange35":"Cijena ne može biti 0",
"tchange36":"ČEKA SE AUTO KUPNJA",
"tchange37":"Nije pronađena automatska narudžba za kupnju!",
"tchange38":"DODATI",
"tchange39":"AUTOMATSKA NARUDŽBA",
"tchange40":"Cijena",
"tchange41":"Uspješno uklonjena automatska narudžba za kupnju!",
"tchange42":"TRŽIŠNI OTVORENI PRODAJNI NALOGI",
"tchange43":"MOJA POVIJEST KUPNJE",
"tchange44":"Uspješno dodana automatska narudžba za kupnju!",
"tchange45":"AUTO KUPITE SA",
"tchange46":"AUTO OTKUP"
},
"rewardsharepage":{
"rchange1":"Nagradni udio (Rewardshares)",
@ -674,5 +687,14 @@
"schange19":"Kopiraj ključ sponzorstva",
"schange20":"Stvaranje odnosa",
"schange21":"Ukloni sponzorski ključ"
},
"explorerpage":{
"exp1":"Adresa ili ime za pretraživanje",
"exp2":"Stanje na računu",
"exp3":"Više informacija",
"exp4":"Adresa ili ime nisu pronađeni!",
"exp5":"Imajte na umu da su registrirana imena osjetljiva na velika i mala slova.",
"exp6":"Osnivač",
"exp7":"Info"
}
}

26
qortal-ui-core/language/hu.json

@ -308,7 +308,20 @@
"tchange30":"Nem sikerült lekérni az egyenleget. Próbáld újra!",
"tchange31":"ELADOTT",
"tchange32":"VÁSÁROLT",
"tchange33":"Árfolyam"
"tchange33":"Átlagos",
"tchange34":"Az összeg nem lehet 0",
"tchange35":"Az ár nem lehet 0",
"tchange36":"FÜGGŐBEN AUTOMATIKUS VÁSÁRLÁS",
"tchange37":"Nem található automatikus vásárlási rendelés!",
"tchange38":"HOZZÁAD",
"tchange39":"AUTOMATIKUS VÁSÁRLÁSI MEGRENDELÉS",
"tchange40":"Ár",
"tchange41":"Az automatikus vásárlási rendelés sikeresen eltávolítva!",
"tchange42":"NYÍLT PIACI ELADÁSI MEGRENDELÉSEK",
"tchange43":"VÁSÁRLÁSI TÖRTÉNETEM",
"tchange44":"Az automatikus vásárlási rendelés sikeresen hozzáadva!",
"tchange45":"AUTOMATIKUS VÁSÁRLÁS",
"tchange46":"AUTOMATIKUS VÁSÁRLÁS"
},
"rewardsharepage":{
"rchange1":"Jutalommegosztások",
@ -674,5 +687,14 @@
"schange19":"Szponzori kulcs másolása",
"schange20":"Kapcsolatteremtés",
"schange21":"Szponzori kulcs távolítsa"
},
"explorerpage":{
"exp1":"Keresendő cím vagy név",
"exp2":"Számlaegyenleg",
"exp3":"Több információ",
"exp4":"Cím vagy név nem található!",
"exp5":"Vegye figyelembe, hogy a regisztrált nevek megkülönböztetik a kis- és nagybetűket.",
"exp6":"Alapító",
"exp7":"Info"
}
}
}

24
qortal-ui-core/language/it.json

@ -308,7 +308,20 @@
"tchange30":"Impossibile recuperare il saldo. Riprova!",
"tchange31":"VENDUTO",
"tchange32":"ACQUISTATO",
"tchange33":"Tasso di cambio"
"tchange33":"Media",
"tchange34":"L'importo non può essere 0",
"tchange35":"Il prezzo non può essere 0",
"tchange36":"ACQUISTO AUTO IN ATTESA",
"tchange37":"Nessun ordine di acquisto automatico trovato!",
"tchange38":"INSERISCI",
"tchange39":"ORDINE DI ACQUISTO AUTOMATICO",
"tchange40":"Prezzo",
"tchange41":"Ordine di acquisto automatico rimosso con successo!",
"tchange42":"MERCATO APERTO ORDINI DI VENDITA",
"tchange43":"LA MIA STORIA DI ACQUISTO",
"tchange44":"Ordine di acquisto automatico aggiunto con successo!",
"tchange45":"ACQUISTA AUTO CON",
"tchange46":"ACQUISTO AUTO"
},
"rewardsharepage":{
"rchange1":"Quote di ricompensa",
@ -674,5 +687,14 @@
"schange19":"Copia la chiave di sponsorizzazione",
"schange20":"Creare relazione",
"schange21":"Rimuovi la chiave di sponsorizzazione"
},
"explorerpage":{
"exp1":"Indirizzo o nome da cercare",
"exp2":"Saldo del conto",
"exp3":"Ulteriori informazioni",
"exp4":"Indirizzo o nome non trovato!",
"exp5":"Si noti che i nomi registrati fanno distinzione tra maiuscole e minuscole.",
"exp6":"Fondatore",
"exp7":"Informazioni"
}
}

24
qortal-ui-core/language/ko.json

@ -308,7 +308,20 @@
"tchange30":"밸런스를 가져오지 못했습니다. 다시 시도하십시오.!",
"tchange31":"판매된",
"tchange32":"구매된",
"tchange33":"환율"
"tchange33":"평균",
"tchange34":"금액은 0일 수 없습니다.",
"tchange35":"가격은 0일 수 없습니다.",
"tchange36":"대기 중인 자동 구매",
"tchange37":"자동 구매 주문이 없습니다!",
"tchange38":"추가하다",
"tchange39":"자동 구매 주문",
"tchange40":"가격",
"tchange41":"자동 구매 주문을 성공적으로 제거했습니다!",
"tchange42":"시장 오픈 매도 주문",
"tchange43":"내 구매 내역",
"tchange44":"자동 구매 주문을 성공적으로 추가했습니다!",
"tchange45":"자동 구매",
"tchange46":"자동 구매"
},
"rewardsharepage":{
"rchange1":"보상 공유",
@ -674,5 +687,14 @@
"schange19":"후원 키 복사",
"schange20":"관계 만들기",
"schange21":"후원 키 제거"
},
"explorerpage":{
"exp1":"검색할 주소 또는 이름",
"exp2":"계정 잔액",
"exp3":"더 많은 정보",
"exp4":"주소 또는 이름을 찾을 수 없습니다!",
"exp5":"등록된 이름은 대소문자를 구분합니다.",
"exp6":"설립자",
"exp7":"정보"
}
}

26
qortal-ui-core/language/no.json

@ -308,7 +308,20 @@
"tchange30":"Kunne ikke hente saldoen. Prøv igjen!",
"tchange31":"SOLGT",
"tchange32":"KJØPT",
"tchange33":"Vekslingskurs"
"tchange33":"Gjennomsnitt",
"tchange34":"Beløpet kan ikke være 0",
"tchange35":"Prisen kan ikke være 0",
"tchange36":"VENTENDE AUTOKJØP",
"tchange37":"Ingen autokjøpsordre funnet!",
"tchange38":"LEGGE TIL",
"tchange39":"AUTO KJØP ORDRE",
"tchange40":"Pris",
"tchange41":"Fjernet automatisk kjøpsordre!",
"tchange42":"MARKED ÅPNE SALGSORDRE",
"tchange43":"MIN KJØPSHISTORIE",
"tchange44":"Autokjøpsordre er lagt til!",
"tchange45":"AUTOKJØP MED",
"tchange46":"AUTOKJØP"
},
"rewardsharepage":{
"rchange1":"Belønningsdel",
@ -674,5 +687,14 @@
"schange19":"Kopier sponsornøkkel",
"schange20":"Skaper forhold",
"schange21":"Fjern sponsornøkkel"
},
"explorerpage":{
"exp1":"Adresse eller navn for å søke",
"exp2":"Saldo",
"exp3":"Mer informasjon",
"exp4":"Finner ikke adresse eller navn!",
"exp5":"Merk at registrerte navn skiller mellom store og små bokstaver.",
"exp6":"Grunnlegger",
"exp7":"Info"
}
}
}

24
qortal-ui-core/language/pl.json

@ -308,7 +308,20 @@
"tchange30":"Nie udało się pobrać salda. Spróbuj ponownie!",
"tchange31":"SPRZEDANY",
"tchange32":"KUPIONY",
"tchange33":"Kurs wymiany"
"tchange33":"Przeciętny",
"tchange34":"Kwota nie może wynosić 0",
"tchange35":"Cena nie może wynosić 0",
"tchange36":"OCZEKUJĄCY NA AUTOMATYCZNY KUP",
"tchange37":"Nie znaleziono automatycznego zamówienia zakupu!",
"tchange38":"DODAJ",
"tchange39":"AUTOMATYCZNE ZAMÓWIENIE",
"tchange40":"Cena £",
"tchange41":"Pomyślnie usunięto automatyczne zamówienie zakupu!",
"tchange42":"RYNEK OTWARTYCH ZLECEŃ SPRZEDAŻY",
"tchange43":"MOJA HISTORIA ZAKUPÓW",
"tchange44":"Pomyślnie dodano automatyczne zamówienie zakupu!",
"tchange45":"AUTO KUP Z",
"tchange46":"AUTO KUP"
},
"rewardsharepage":{
"rchange1":"Podział nagród",
@ -674,5 +687,14 @@
"schange19":"Kopiuj klucz sponsorski",
"schange20":"Tworzenie relacji",
"schange21":"Usuń klucz sponsorsk"
},
"explorerpage":{
"exp1":"Adres lub nazwa do wyszukania",
"exp2":"Bilans konta",
"exp3":"Więcej informacji",
"exp4":"Nie znaleziono adresu lub nazwy!",
"exp5":"Należy pamiętać, że w zarejestrowanych nazwach rozróżniana jest wielkość liter.",
"exp6":"Założyciel",
"exp7":"Informacje"
}
}

24
qortal-ui-core/language/pt.json

@ -308,7 +308,20 @@
"tchange30":"Falha buscando Saldo. Tente novamente!",
"tchange31":"VENDIDO",
"tchange32":"COMPRADO",
"tchange33":"Taxa de câmbio"
"tchange33":"Média",
"tchange34":"O valor nao pode ser 0",
"tchange35":"O preço nao pode ser 0",
"tchange36":"COMPRA AUTOMÁTICA PENDENTE",
"tchange37":"Nenhuma ordem de compra automática encontrada!",
"tchange38":"ADICIONAR",
"tchange39":"ORDEM DE COMPRA AUTOMÁTICA",
"tchange40":"Preço",
"tchange41":"Pedido de compra automática removido com sucesso!",
"tchange42":"ORDENS DE VENDA ABERTA AO MERCADO",
"tchange43":"MEU HISTÓRICO DE COMPRAS",
"tchange44":"Pedido de compra automática adicionado com sucesso!",
"tchange45":"COMPRA AUTOMÁTICA COM",
"tchange46":"COMPRA AUTOMÁTICA"
},
"rewardsharepage":{
"rchange1":"Ações de recompensa",
@ -674,5 +687,14 @@
"schange19":"Copiar chave de patrocínio",
"schange20":"Criando relacionamento",
"schange21":"Remover chave de patrocínio"
},
"explorerpage":{
"exp1":"Endereço ou nome para pesquisar",
"exp2":"Saldo da conta",
"exp3":"Mais informações",
"exp4":"Endereço ou nome não encontrado!",
"exp5":"Observe que os nomes registrados diferenciam maiúsculas de minúsculas.",
"exp6":"Fundador",
"exp7":"Informações"
}
}

26
qortal-ui-core/language/ro.json

@ -308,7 +308,20 @@
"tchange30":"Nu s-a reusit actualizarea soldului. Mai incearca odata!",
"tchange31":"VANDUT",
"tchange32":"CUMPARAT",
"tchange33":"Rata de schimb"
"tchange33":"In medie",
"tchange34":"Suma nu poate fi 0",
"tchange35":"Pretul nu poate fi 0",
"tchange36":"CUMPARARE AUTOMATĂ in așteptare",
"tchange37":"Nu a fost gasită nicio comandă de cumparare automata!",
"tchange38":"ADAUGA",
"tchange39":"COMANDA DE CUMPARARE AUTOMATA",
"tchange40":"Pret",
"tchange41":"Comanda de cumparare automata a fost eliminata cu succes!",
"tchange42":"PIATA DESCHISA COMENZI DE VANZARE",
"tchange43":"ISTORICUL MEU DE CUMPARARI",
"tchange44":"Comanda de cumparare automata a fost adaugata cu succes!",
"tchange45":"CUMPARA AUTOMATA CU",
"tchange46":"CUMPARARE AUTOMATA"
},
"rewardsharepage":{
"rchange1":"Cote de recompensa",
@ -674,5 +687,14 @@
"schange19":"Copiati cheia de sponsorizare",
"schange20":"Crearea unei relatii",
"schange21":"Eliminati cheia de sponsorizare"
},
"explorerpage":{
"exp1":"Adresa sau numele de căutat",
"exp2":"Soldul contului",
"exp3":"Mai multe informatii",
"exp4":"Adresa sau Numele nu a fost găsit!",
"exp5":"Retineti că numele înregistrate sunt sensibile la majuscule.",
"exp6":"Fondator",
"exp7":"Info"
}
}
}

26
qortal-ui-core/language/rs.json

@ -308,7 +308,20 @@
"tchange30":"Neuspešna provera salda. Pokušajte ponovo!",
"tchange31":"PRODATO",
"tchange32":"KUPLJENO",
"tchange33":"Kurs"
"tchange33":"Prosek",
"tchange34":"Iznos ne može biti 0",
"tchange35":"Cena ne može biti 0",
"tchange36":"NA ČEKANJU AUTOMATSKA KUPOVINA",
"tchange37":"Nije pronađena narudžbina za automatsku kupovinu!",
"tchange38":"DODATI",
"tchange39":"AUTO KUPOVINA",
"tchange40":"Cena",
"tchange41":"Narudžbina za automatsku kupovinu je uspešno uklonjena!",
"tchange42":"TRŽIŠTE OTVORENI NALOG ZA PRODAJU",
"tchange43":"MOJA ISTORIJA KUPOVINE",
"tchange44":"Narudžbina za automatsku kupovinu je uspešno dodata!",
"tchange45":"AUTO KUPI SA",
"tchange46":"AUTO BUI"
},
"rewardsharepage":{
"rchange1":"Udeo nagrade",
@ -674,5 +687,14 @@
"schange19":"Kopiraj sponzorski ključ",
"schange20":"Stvaranje odnosa",
"schange21":"Uklonite sponzorski ključ"
},
"explorerpage":{
"exp1":"Adresa ili ime za pretragu",
"exp2":"Stanje na računu",
"exp3":"Više informacija",
"exp4":"Adresa ili ime nisu pronađeni!",
"exp5":"Imajte na umu da registrovana imena razlikuju velika i mala slova.",
"exp6":"Osnivač",
"exp7":"Info"
}
}
}

26
qortal-ui-core/language/ru.json

@ -308,7 +308,20 @@
"tchange30":"Не удалось получить баланс. Повторите попытку!",
"tchange31":"ПРОДАНО",
"tchange32":"КУПИЛ",
"tchange33":"Обменный курс"
"tchange33":"Средний",
"tchange34":"Сумма не может быть 0",
"tchange35":"Цена не может быть 0",
"tchange36":"ОЖИДАНИЕ ПОКУПКИ АВТО",
"tchange37":"Заказ на автоматическую покупку не найден!",
"tchange38":"ДОБАВЛЯТЬ",
"tchange39":"АВТО КУПИТЬ ЗАКАЗ",
"tchange40":"Цена",
"tchange41":"Заказ на автоматическую покупку успешно удален!",
"tchange42":"РЫНОК ОТКРЫТЫЕ ЗАКАЗЫ НА ПРОДАЖУ",
"tchange43":"МОЯ ИСТОРИЯ ПОКУПОК",
"tchange44":"Заказ на автоматическую покупку успешно добавлен!",
"tchange45":"АВТО КУПИТЬ С",
"tchange46":"АВТО КУПИТЬ"
},
"rewardsharepage":{
"rchange1":"Вознаграждения",
@ -674,5 +687,14 @@
"schange19":"Копировать спонсорский ключ",
"schange20":"Создание отношений",
"schange21":"Удалить спонсорский ключ"
},
"explorerpage":{
"exp1":"Адрес или имя для поиска",
"exp2":"Баланс",
"exp3":"Больше информации",
"exp4":"Адрес или имя не найдено!",
"exp5":"Обратите внимание, что зарегистрированные имена вводятся с учетом регистра.",
"exp6":"Основатель",
"exp7":"Информация"
}
}
}

24
qortal-ui-core/language/us.json

@ -308,7 +308,20 @@
"tchange30":"Failed to Fetch Balance. Try again!",
"tchange31":"SOLD",
"tchange32":"BOUGHT",
"tchange33":"Exchange Rate"
"tchange33":"Average",
"tchange34":"Amount can not be 0",
"tchange35":"Price can not be 0",
"tchange36":"PENDING AUTO BUY",
"tchange37":"No auto buy order found !",
"tchange38":"ADD",
"tchange39":"AUTO BUY ORDER",
"tchange40":"Price",
"tchange41":"Successfully removed auto buy order!",
"tchange42":"MARKET OPEN SELL ORDERS",
"tchange43":"MY BUY HISTORY",
"tchange44":"Successfully added auto buy order!",
"tchange45":"AUTO BUY WITH",
"tchange46":"AUTO BUY"
},
"rewardsharepage":{
"rchange1":"Rewardshares",
@ -674,5 +687,14 @@
"schange19":"Copy Sponsorship Key",
"schange20":"Creating relationship",
"schange21":"Remove Sponsorship Key"
},
"explorerpage":{
"exp1":"Address or name to search",
"exp2":"Account Balance",
"exp3":"More Info",
"exp4":"Address or Name not found !",
"exp5":"Note that registered names are case-sensitive.",
"exp6":"Founder",
"exp7":"Info"
}
}

26
qortal-ui-core/language/zhc.json

@ -308,7 +308,20 @@
"tchange30":"加载余额失败。请重新尝试!",
"tchange31":"已卖出",
"tchange32":"已买入",
"tchange33":"汇率"
"tchange33":"平均",
"tchange34":"金额不能为0",
"tchange35":"价格不能为0",
"tchange36":"待定汽车购买",
"tchange37":"未找到自动购买订单!",
"tchange38":"添加",
"tchange39":"自动购买订单",
"tchange40":"价格",
"tchange41":"成功删除自动购买订单!",
"tchange42":"开市卖单",
"tchange43":"我的购买历史",
"tchange44":"成功添加自动买单!",
"tchange45":"自动购买",
"tchange46":"自动购买"
},
"rewardsharepage":{
"rchange1":"铸币密钥",
@ -674,5 +687,14 @@
"schange19":"复制赞助密钥",
"schange20":"建立关系",
"schange21":"删除赞助密钥"
},
"explorerpage":{
"exp1":"要搜索的地址或名称",
"exp2":"账户余额",
"exp3":"更多信息",
"exp4":"找不到地址或姓名!",
"exp5":"请注意,注册名称区分大小写。",
"exp6":"创始人",
"exp7":"信息"
}
}
}

26
qortal-ui-core/language/zht.json

@ -308,7 +308,20 @@
"tchange30":"加載餘額失敗。請重新嘗試!",
"tchange31":"已賣出",
"tchange32":"已買入",
"tchange33":"匯率"
"tchange33":"平均",
"tchange34":"金額不能為0",
"tchange35":"價格不能為0",
"tchange36":"待定汽車購買",
"tchange37":"未找到自動購買訂單!",
"tchange38":"添加",
"tchange39":"自動購買訂單",
"tchange40":"價格",
"tchange41":"成功刪除自動購買訂單!",
"tchange42":"開市賣單",
"tchange43":"我的購買歷史",
"tchange44":"成功添加自動買單!",
"tchange45":"自動購買",
"tchange46":"自動購買"
},
"rewardsharepage":{
"rchange1":"鑄幣密鑰",
@ -674,5 +687,14 @@
"schange19":"複製贊助密鑰",
"schange20":"建立關係",
"schange21":"刪除贊助密鑰"
},
"explorerpage":{
"exp1":"要搜索的地址或名稱",
"exp2":"賬戶餘額",
"exp3":"更多信息",
"exp4":"找不到地址或姓名!",
"exp5":"請注意,註冊名稱區分大小寫。",
"exp6":"創始人",
"exp7":"信息"
}
}
}

28
qortal-ui-core/package.json

@ -1,6 +1,6 @@
{
"name": "qortal-ui-core",
"version": "2.2.3",
"version": "2.2.4",
"description": "QORTAL-UI Core",
"keywords": [
"QORT",
@ -17,12 +17,12 @@
"author": "QORTAL <[email protected]>",
"license": "GPL-3.0",
"dependencies": {
"@hapi/hapi": "20.2.2",
"@hapi/hapi": "21.0.0",
"@hapi/inert": "7.0.0",
"sass": "1.55.0"
"sass": "1.56.1"
},
"devDependencies": {
"@babel/core": "7.19.3",
"@babel/core": "7.20.2",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
"@material/mwc-dialog": "0.27.0",
@ -53,25 +53,25 @@
"@polymer/paper-spinner": "3.0.2",
"@polymer/paper-toast": "3.0.1",
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "4.0.0",
"@rollup/plugin-babel": "6.0.0",
"@rollup/plugin-commonjs": "23.0.0",
"@rollup/plugin-node-resolve": "15.0.0",
"@rollup/plugin-replace": "5.0.0",
"@vaadin/grid": "23.2.5",
"@vaadin/icons": "23.2.5",
"@vaadin/password-field": "23.2.5",
"@rollup/plugin-alias": "4.0.2",
"@rollup/plugin-babel": "6.0.2",
"@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.1",
"@vaadin/grid": "23.2.8",
"@vaadin/icons": "23.2.8",
"@vaadin/password-field": "23.2.8",
"asmcrypto.js": "2.3.2",
"bcryptjs": "2.4.3",
"epml": "0.3.3",
"file-saver": "2.0.5",
"lit": "2.4.0",
"lit": "2.4.1",
"lit-translate": "2.0.1",
"postcss": "8.4.18",
"pwa-helpers": "0.9.1",
"random-sentence-generator": "0.0.8",
"redux": "4.2.0",
"redux-thunk": "2.4.1",
"redux-thunk": "2.4.2",
"rollup": "2.79.1",
"rollup-plugin-node-globals": "1.4.0",
"rollup-plugin-postcss": "4.0.2",

2
qortal-ui-core/src/components/app-info.js

@ -114,7 +114,7 @@ class AppInfo extends connect(store)(LitElement) {
setInterval(() => {
this.getNodeInfo()
this.getCoreInfo()
}, 60000)
}, 30000)
}
async getNodeInfo() {

60
qortal-ui-core/src/components/app-view.js

@ -7,6 +7,9 @@ import '@polymer/paper-icon-button/paper-icon-button.js'
import '@polymer/iron-icons/iron-icons.js'
import '@polymer/app-layout/app-layout.js'
import '@polymer/paper-ripple'
import '@vaadin/icon'
import '@vaadin/icons'
import '@vaadin/text-field'
import './wallet-profile.js'
import './app-info.js'
@ -16,12 +19,14 @@ import './qort-theme-toggle.js'
import './language-selector.js'
import './settings-view/user-settings.js'
import './logout-view/logout-view.js'
import './user-info-view/user-info-view.js'
class AppView extends connect(store)(LitElement) {
static get properties() {
return {
config: { type: Object },
theme: { type: String, reflect: true }
theme: { type: String, reflect: true },
searchContentString: { type: String }
}
}
@ -29,9 +34,17 @@ class AppView extends connect(store)(LitElement) {
return [
css`
* {
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-error: rgb(255, 89, 89);
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-error: rgb(255, 89, 89);
--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);
}
:host {
@ -57,6 +70,12 @@ class AppView extends connect(store)(LitElement) {
border-top: var(--border);
}
.search {
display: inline;
width: 50%;
align-items: center;
}
#sideBar {
height: 100vh;
display: flex;
@ -89,6 +108,7 @@ class AppView extends connect(store)(LitElement) {
constructor() {
super()
this.searchContentString = ''
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
}
@ -115,6 +135,19 @@ class AppView extends connect(store)(LitElement) {
<img src="${this.config.coin.logo}" style="height:32px; padding-left:12px;">
</span>
</div>
<div class="search">
<vaadin-text-field
style="width: 375px"
theme="medium"
id="searchContent"
placeholder="${translate("explorerpage.exp1")}"
value="${this.searchContentString}"
@keydown="${this.searchKeyListener}"
clear-button-visible
>
</vaadin-text-field>
<paper-icon-button icon="icons:search" @click="${() => this.openUserInfo()}"></paper-icon-button>
</div>
<div style="display: inline;">
<span>
<img src="/img/${translate("selectmenu.languageflag")}-flag-round-icon-32.png" style="width: 32px; height: 32px; padding-top: 4px;">
@ -138,19 +171,36 @@ class AppView extends connect(store)(LitElement) {
<show-plugin></show-plugin>
</app-header-layout>
</app-drawer-layout>
<user-info-view></user-info-view>
<user-settings></user-settings>
<logout-view></logout-view>
`
}
firstUpdated() {
// ...
}
stateChanged(state) {
this.config = state.config
}
searchKeyListener(e) {
if (e.key === 'Enter') {
this.openUserInfo()
}
}
clearSearchField() {
this.shadowRoot.getElementById('searchContent').value = this.searchContentString
}
openUserInfo() {
let sendInfoAddress = this.shadowRoot.getElementById('searchContent').value
const infoDialog = document.getElementById('main-app').shadowRoot.querySelector('app-view').shadowRoot.querySelector('user-info-view')
infoDialog.openUserInfo(sendInfoAddress)
this.clearSearchField()
}
openSettings() {
const settingsDialog = document.getElementById('main-app').shadowRoot.querySelector('app-view').shadowRoot.querySelector('user-settings')
settingsDialog.openSettings()

12
qortal-ui-core/src/components/sidenav-menu.js

@ -168,6 +168,18 @@ class SidenavMenu extends connect(store)(LitElement) {
>
<vaadin-icon icon="vaadin:bullets" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item label="${translate('tradepage.tchange46')}" expanded>
<vaadin-icon icon="vaadin:calc-book" slot="icon"></vaadin-icon>
<side-menu-item label="${translate('tradepage.tchange45')} BTC" href="/app/trade-bot-btc">
<vaadin-icon icon="vaadin:start-cog" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item label="${translate('tradepage.tchange45')} LTC" href="/app/trade-bot-ltc">
<vaadin-icon icon="vaadin:start-cog" slot="icon"></vaadin-icon>
</side-menu-item>
<side-menu-item label="${translate('tradepage.tchange45')} DOGE" href="/app/trade-bot-doge">
<vaadin-icon icon="vaadin:start-cog" slot="icon"></vaadin-icon>
</side-menu-item>
</side-menu-item>
<side-menu-item
label="${translate('sidemenu.rewardshare')}"
href="/app/reward-share"

6
qortal-ui-core/src/components/start-minting.js

@ -187,7 +187,6 @@ class StartMinting extends connect(store)(LitElement) {
firstUpdated() {
this.getMintingAcccounts();
this.shadowRoot.querySelector('mdc-dialog--open').setAttribute('style', 'width: 100vw')
}
renderErrorMsg1() {
@ -229,9 +228,6 @@ class StartMinting extends connect(store)(LitElement) {
// Check to see if a sponsorship key on a newly-level 1 minter exists. If it does, remove it.
const findMintingAccountFromOtherUser = this.mintingAccountData.find((ma) => ma.recipientAccount === address && ma.mintingAccount !== address);
const removeMintingAccount = async (publicKey) => {
const url = `${nodeUrl}/admin/mintingaccounts?apiKey=${myNode.apiKey}`;
return await fetch(url, {
@ -495,8 +491,6 @@ class StartMinting extends connect(store)(LitElement) {
` : '' }
</div>
</div>
<!-- </mwc-dialog> -->
</div>
` : ""}

320
qortal-ui-core/src/components/user-info-view/user-info-view.js

@ -0,0 +1,320 @@
import { LitElement, html, css } from 'lit'
import { connect } from 'pwa-helpers'
import { store } from '../../store.js'
import { doLogout } from '../../redux/app/app-actions.js'
import { translate, translateUnsafeHTML } from 'lit-translate'
import '@polymer/paper-dialog/paper-dialog.js'
import '@material/mwc-button'
class UserInfoView extends connect(store)(LitElement) {
static get properties() {
return {
theme: { type: String, reflect: true },
infoAccountName: { type: String },
imageUrl: { type: String },
addressResult: { type: Array },
nameAddressResult: { type: Array },
displayAddress: { type: String },
displayLevel: { type: String },
displayBalance: { type: String }
}
}
static get styles() {
return css`
* {
--mdc-theme-primary: rgb(3, 169, 244);
--mdc-theme-secondary: var(--mdc-theme-primary);
--mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black);
box-sizing: border-box;
}
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;
}
.decline {
--mdc-theme-primary: var(--mdc-theme-error)
}
.buttons {
text-align:right;
}
`
}
constructor() {
super()
this.infoAccountName = ''
this.imageUrl = ''
this.addressResult = []
this.nameAddressResult = []
this.displayAddress = ''
this.displayLevel = ''
this.displayBalance = ''
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
}
render() {
return html`
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="userInfoDialog" modal>
<div class="card-container">
<span class="level">${translate("mintingpage.mchange27")} ${this.displayLevel}</span>
${this.founderBadge()}
${this.avatarImage()}
<h2>${this.infoAccountName}</h2>
<h4>${this.displayAddress}</h4>
<p>${translate("explorerpage.exp2")}: ${this.displayBalance} QORT</p>
</div>
<div class="buttons">
<mwc-button @click=${() => this.openMoreInfoDialog()}>${translate("explorerpage.exp3")}</mwc-button>
<mwc-button class='decline' @click=${() => this.closeInfoDialog()} dialog-dismiss>${translate("general.close")}</mwc-button>
</div>
</paper-dialog>
<paper-dialog style="background: var(--white); border: 1px solid var(--black); border-radius: 5px;" id="userErrorDialog" modal>
<div class="card-container">
<img class="badge" src="/img/notfound.png" />
<h2>${translate("explorerpage.exp4")}</h2>
<h4>${translate("explorerpage.exp5")}</h4>
</div>
<div class="buttons">
<mwc-button class='decline' @click=${() => this.closeErrorDialog()} dialog-dismiss>${translate("general.close")}</mwc-button>
</div>
</paper-dialog>
`
}
openUserInfo(userData) {
if (userData.startsWith('Q') && userData.length == 34) {
this.getAddressUserResult(userData)
} else {
this.getNameUserResult(userData)
}
}
async getAddressUserResult(resultAddress) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const addressUrl = `${nodeUrl}/addresses/${resultAddress}`
await fetch(addressUrl).then(res => {
if (res.status === 400) {
this.shadowRoot.getElementById('userErrorDialog').open()
} else {
this.getAllWithAddress(resultAddress)
}
})
}
async getNameUserResult(resultName) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const nameUrl = `${nodeUrl}/names/${resultName}`
await fetch(nameUrl).then(res => {
if (res.status === 404) {
this.shadowRoot.getElementById('userErrorDialog').open()
} else {
this.getAddressFromName(resultName)
}
})
}
async getAddressFromName(fromName) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const fromNameUrl = `${nodeUrl}/names/${fromName}`
const qortalNameInfo = await fetch(fromNameUrl).then(response => {
return response.json()
})
this.nameAddressResult = qortalNameInfo
const nameAddress = this.nameAddressResult.owner
this.getAllWithAddress(nameAddress)
}
async getAllWithAddress(myAddress) {
await this.getAddressUserInfo(myAddress)
await this.getAddressUserAvatar(myAddress)
await this.getAddressUserBalance(myAddress)
this.displayAddress = this.addressResult.address
this.displayLevel = this.addressResult.level
this.shadowRoot.getElementById('userInfoDialog').open()
}
async getAddressUserInfo(infoAddress) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const infoAddressUrl = `${nodeUrl}/addresses/${infoAddress}`
const qortalAddressInfo = await fetch(infoAddressUrl).then(response => {
return response.json()
})
this.addressResult = qortalAddressInfo
}
async getAddressUserAvatar(avatarAddress) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const nameUrl = `${nodeUrl}/names/address/${avatarAddress}?limit=0&reverse=true`
await fetch(nameUrl).then(res => {
return res.json()
}).then(jsonRes => {
if(jsonRes.length) {
jsonRes.map (item => {
this.infoAccountName = item.name
this.imageName = item.name
})
} else {
this.infoAccountName = "No registered name"
this.imageName = avatarAddress
}
})
const myImageUrl = `${nodeUrl}/arbitrary/THUMBNAIL/${this.imageName}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
this.imageUrl = myImageUrl
}
async getAddressUserBalance(balanceAddress) {
const myNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
const balanceAddressUrl = `${nodeUrl}/addresses/balance/${balanceAddress}`
const qortalBalanceInfo = await fetch(balanceAddressUrl).then(res => {
return res.json()
})
this.displayBalance = qortalBalanceInfo
}
avatarImage() {
return html`<img class="round" src="${this.imageUrl}" onerror="this.src='/img/incognito.png';" />`
}
founderBadge() {
if (this.addressResult.flags === 1) {
return html`<span class="founder">${translate("explorerpage.exp6")}</span>`
} else {
return html``
}
}
openMoreInfoDialog() {
this.shadowRoot.getElementById('userErrorDialog').open()
}
closeInfoDialog() {
this.shadowRoot.getElementById('userInfoDialog').close()
}
closeErrorDialog() {
this.shadowRoot.getElementById('userErrorDialog').close()
}
getApiKey() {
const apiNode = store.getState().app.nodeConfig.knownNodes[store.getState().app.nodeConfig.node];
let apiKey = apiNode.apiKey;
return apiKey;
}
}
window.customElements.define('user-info-view', UserInfoView)

2
qortal-ui-crypto/package.json

@ -1,6 +1,6 @@
{
"name": "qortal-ui-crypto",
"version": "2.2.3",
"version": "2.2.4",
"description": "QORTAL-UI Crypto",
"keywords": [
"QORT",

12
qortal-ui-plugins/build-config.js

@ -69,6 +69,18 @@ const generateForPlugins = () => {
in: 'plugins/core/trade-portal/trade-portal.src.js',
out: 'plugins/core/trade-portal/trade-portal.js',
},
{
in: 'plugins/core/trade-bot/trade-bot-btc/trade-bot-btc.src.js',
out: 'plugins/core/trade-bot/trade-bot-btc/trade-bot-btc.js',
},
{
in: 'plugins/core/trade-bot/trade-bot-ltc/trade-bot-ltc.src.js',
out: 'plugins/core/trade-bot/trade-bot-ltc/trade-bot-ltc.js',
},
{
in: 'plugins/core/trade-bot/trade-bot-doge/trade-bot-doge.src.js',
out: 'plugins/core/trade-bot/trade-bot-doge/trade-bot-doge.js',
},
{
in: 'plugins/core/wallet/wallet-app.src.js',
out: 'plugins/core/wallet/wallet-app.js',

22
qortal-ui-plugins/package.json

@ -1,6 +1,6 @@
{
"name": "qortal-ui-plugins",
"version": "2.2.3",
"version": "2.2.4",
"description": "QORTAL-UI Plugins",
"keywords": [
"QORT",
@ -22,7 +22,7 @@
"emoji-picker-js": "https://github.com/Qortal/emoji-picker-js"
},
"devDependencies": {
"@babel/core": "7.19.3",
"@babel/core": "7.20.2",
"@github/time-elements": "3.1.2",
"@material/mwc-button": "0.27.0",
"@material/mwc-checkbox": "0.27.0",
@ -41,18 +41,18 @@
"@polymer/paper-slider": "3.0.1",
"@polymer/paper-spinner": "3.0.2",
"@polymer/paper-tooltip": "3.0.1",
"@rollup/plugin-alias": "4.0.0",
"@rollup/plugin-babel": "6.0.0",
"@rollup/plugin-commonjs": "23.0.0",
"@rollup/plugin-node-resolve": "15.0.0",
"@rollup/plugin-replace": "5.0.0",
"@vaadin/button": "23.2.5",
"@vaadin/grid": "23.2.5",
"@vaadin/icons": "23.2.5",
"@rollup/plugin-alias": "4.0.2",
"@rollup/plugin-babel": "6.0.2",
"@rollup/plugin-commonjs": "23.0.2",
"@rollup/plugin-node-resolve": "15.0.1",
"@rollup/plugin-replace": "5.0.1",
"@vaadin/button": "23.2.8",
"@vaadin/grid": "23.2.8",
"@vaadin/icons": "23.2.8",
"epml": "0.3.3",
"file-saver": "2.0.5",
"html-escaper": "3.0.3",
"lit": "2.4.0",
"lit": "2.4.1",
"lit-translate": "2.0.1",
"rollup": "2.79.1",
"rollup-plugin-node-globals": "1.4.0",

1
qortal-ui-plugins/plugins/core/components/ChatHead.js

@ -1,4 +1,5 @@
import { LitElement, html, css } from 'lit'
import { render } from 'lit/html.js'
import { Epml } from '../../../epml.js'
import '@material/mwc-icon'

27
qortal-ui-plugins/plugins/core/main.src.js

@ -52,6 +52,33 @@ parentEpml.ready().then(() => {
menus: [],
parent: false,
},
{
url: 'trade-bot-btc',
domain: 'core',
page: 'trade-bot/trade-bot-btc/index.html',
title: 'Auto Buy With BTC',
icon: 'vaadin:automation',
menus: [],
parent: false,
},
{
url: 'trade-bot-ltc',
domain: 'core',
page: 'trade-bot/trade-bot-ltc/index.html',
title: 'Auto Buy With LTC',
icon: 'vaadin:automation',
menus: [],
parent: false,
},
{
url: 'trade-bot-doge',
domain: 'core',
page: 'trade-bot/trade-bot-doge/index.html',
title: 'Auto Buy With DOGE',
icon: 'vaadin:automation',
menus: [],
parent: false,
},
{
url: 'reward-share',
domain: 'core',

55
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-btc/index.html

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/font/material-icons.css">
<link rel="stylesheet" href="/font/switch-theme.css">
<script>
const checkBack = localStorage.getItem('qortalTheme')
if (checkBack === 'dark') {
newtheme = 'dark';
} else {
newtheme = 'light';
}
document.querySelector('html').setAttribute('theme', newtheme);
</script>
<style>
html {
--scrollbarBG: #a1a1a1;
--thumbBG: #6a6c75;
}
*::-webkit-scrollbar {
width: 11px;
}
* {
scrollbar-width: thin;
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
}
*::-webkit-scrollbar-track {
background: var(--scrollbarBG);
}
*::-webkit-scrollbar-thumb {
background-color: var(--thumbBG);
border-radius: 6px;
border: 3px solid var(--scrollbarBG);
}
html,
body {
margin: 0;
font-family: "Roboto", sans-serif;
background: var(--plugback);
}
</style>
</head>
<body>
<trade-bot-btc></trade-bot-btc>
<script src="trade-bot-btc.js"></script>
</body>
</html>

2155
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-btc/trade-bot-btc.src.js

File diff suppressed because it is too large Load Diff

55
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-doge/index.html

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/font/material-icons.css">
<link rel="stylesheet" href="/font/switch-theme.css">
<script>
const checkBack = localStorage.getItem('qortalTheme')
if (checkBack === 'dark') {
newtheme = 'dark';
} else {
newtheme = 'light';
}
document.querySelector('html').setAttribute('theme', newtheme);
</script>
<style>
html {
--scrollbarBG: #a1a1a1;
--thumbBG: #6a6c75;
}
*::-webkit-scrollbar {
width: 11px;
}
* {
scrollbar-width: thin;
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
}
*::-webkit-scrollbar-track {
background: var(--scrollbarBG);
}
*::-webkit-scrollbar-thumb {
background-color: var(--thumbBG);
border-radius: 6px;
border: 3px solid var(--scrollbarBG);
}
html,
body {
margin: 0;
font-family: "Roboto", sans-serif;
background: var(--plugback);
}
</style>
</head>
<body>
<trade-bot-doge></trade-bot-doge>
<script src="trade-bot-doge.js"></script>
</body>
</html>

2155
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-doge/trade-bot-doge.src.js

File diff suppressed because it is too large Load Diff

55
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-ltc/index.html

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/font/material-icons.css">
<link rel="stylesheet" href="/font/switch-theme.css">
<script>
const checkBack = localStorage.getItem('qortalTheme')
if (checkBack === 'dark') {
newtheme = 'dark';
} else {
newtheme = 'light';
}
document.querySelector('html').setAttribute('theme', newtheme);
</script>
<style>
html {
--scrollbarBG: #a1a1a1;
--thumbBG: #6a6c75;
}
*::-webkit-scrollbar {
width: 11px;
}
* {
scrollbar-width: thin;
scrollbar-color: var(--thumbBG) var(--scrollbarBG);
}
*::-webkit-scrollbar-track {
background: var(--scrollbarBG);
}
*::-webkit-scrollbar-thumb {
background-color: var(--thumbBG);
border-radius: 6px;
border: 3px solid var(--scrollbarBG);
}
html,
body {
margin: 0;
font-family: "Roboto", sans-serif;
background: var(--plugback);
}
</style>
</head>
<body>
<trade-bot-ltc></trade-bot-ltc>
<script src="trade-bot-ltc.js"></script>
</body>
</html>

2155
qortal-ui-plugins/plugins/core/trade-bot/trade-bot-ltc/trade-bot-ltc.src.js

File diff suppressed because it is too large Load Diff

509
qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js

File diff suppressed because it is too large Load Diff

2
scripts/notarize.js

@ -1,5 +1,5 @@
require('dotenv').config();
const { notarize } = require('electron-notarize');
const { notarize } = require('@electron/notarize');
exports.default = async function notarizing(context) {
const { electronPlatformName, appOutDir } = context;

Loading…
Cancel
Save