Browse Source

Merge pull request #305 from AlphaX-Projects/master

modifications to Qortal wallet views, vaadin support for scroller on older macs, fix issue with local storage and new tab links, updated and added dependencies.
master
crowetic 4 months ago committed by GitHub
parent
commit
368f80e8b7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 4
      core/language/de.json
  2. 4
      core/language/es.json
  3. 4
      core/language/et.json
  4. 4
      core/language/fi.json
  5. 4
      core/language/fr.json
  6. 4
      core/language/hindi.json
  7. 4
      core/language/hr.json
  8. 4
      core/language/hu.json
  9. 4
      core/language/it.json
  10. 4
      core/language/jp.json
  11. 4
      core/language/ko.json
  12. 4
      core/language/nl.json
  13. 4
      core/language/no.json
  14. 4
      core/language/pl.json
  15. 4
      core/language/pt.json
  16. 4
      core/language/ro.json
  17. 4
      core/language/rs.json
  18. 4
      core/language/ru.json
  19. 4
      core/language/us.json
  20. 4
      core/language/zhc.json
  21. 4
      core/language/zht.json
  22. 28
      core/src/components/show-plugin.js
  23. 83
      package-lock.json
  24. 9
      package.json
  25. 20
      plugins/plugins/core/components/plugins-css.js
  26. 12
      plugins/plugins/core/q-chat/q-chat.src.js
  27. 431
      plugins/plugins/core/wallet/wallet-app.src.js

4
core/language/de.json

@ -248,7 +248,9 @@
"balance": "Guthaben",
"balances": "IHR WALLET-GUTHABEN",
"update": "AKTUALISIERE WALLET-GUTHABEN",
"view": "Ansehen"
"view": "Ansehen",
"all": "Alle",
"page": "Seite"
},
"gifs": {
"gchange1": "GIF-Explorer",

4
core/language/es.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "LOS SALDOS DE TU BILLETERA",
"update": "ACTUALIZAR SALDOS DE CARTERA",
"view": "Vista"
"view": "Vista",
"all": "Todo",
"page": "Página"
},
"gifs": {
"gchange1": "Explorador de gifs",

4
core/language/et.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "Sinu saldoseisud",
"update": "Saldoseisude uuendamine",
"view": "Vaata"
"view": "Vaata",
"all": "Kõik",
"page": "Lehekülg"
},
"gifs": {
"gchange1": "Gif avastaja",

4
core/language/fi.json

@ -248,7 +248,9 @@
"balance": "Saldosi",
"balances": "Sinun saldosi",
"update": "Saldot päivitetään",
"view": "Katso"
"view": "Katso",
"all": "Kaikki",
"page": "Sivu"
},
"gifs": {
"gchange1": "Gif tutkija",

4
core/language/fr.json

@ -248,7 +248,9 @@
"balance": "Solde",
"balances": "VOS SOLDES DE PORTEFEUILLE",
"update": "METTRE À JOUR LES SOLDES DES PORTEFEUILLES",
"view": "Voir"
"view": "Voir",
"all": "Tous",
"page": "Page"
},
"gifs": {
"gchange1": "Explorateur GIF",

4
core/language/hindi.json

@ -248,7 +248,9 @@
"balance": "सलन",
"balances": "आपकट बस",
"update": "अपडट वट बस",
"view": "दखन"
"view": "दखन",
"all": "सभ",
"page": "पठ"
},
"gifs": {
"gchange1": "जआईएफ एकसपरर",

4
core/language/hr.json

@ -248,7 +248,9 @@
"balance": "Kreditna",
"balances": "VAŠ NOVČANIK JE NA SALJU",
"update": "AŽURIRAJTE STANJE NOVČANIKA",
"view": "Pogled"
"view": "Pogled",
"all": "svi",
"page": "Stranica"
},
"gifs": {
"gchange1": "Gif Explorer",

4
core/language/hu.json

@ -248,7 +248,9 @@
"balance": "Hitel",
"balances": "A PÉNZTÁRCSA EGYENLEGEK",
"update": "FRISSÍTSE A PÉNZTÁRCSA-EGYENLEGEKET",
"view": "Kilátás"
"view": "Kilátás",
"all": "Minden",
"page": "Oldal"
},
"gifs": {
"gchange1": "Gif Explorer",

4
core/language/it.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "I SALDI DEL TUO PORTAFOGLIO",
"update": "AGGIORNA I SALDI DEL PORTAFOGLIO",
"view": "Vedere"
"view": "Vedere",
"all": "Tutto",
"page": "Pagina"
},
"gifs": {
"gchange1": "Esplora Gif",

4
core/language/jp.json

@ -248,7 +248,9 @@
"balance": "残高",
"balances": "あなたのウォレット残高",
"update": "ウォレット残高を更新",
"view": "表示"
"view": "表示",
"all": "全て",
"page": "ページ"
},
"gifs": {
"gchange1": "GIF エクスプローラー",

4
core/language/ko.json

@ -248,7 +248,9 @@
"balance": "균형",
"balances": "지갑 잔액",
"update": "월렛 잔액 업데이트",
"view": "보다"
"view": "보다",
"all": "모두",
"page": "페이지"
},
"gifs": {
"gchange1": "Gif 탐색기",

4
core/language/nl.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "SALDI VAN UW PORTEFEUILLES",
"update": "SALDI VAN PORTEFEUILLES HEROPVRAGEN",
"view": "Bekijken"
"view": "Bekijken",
"all": "Alle",
"page": "Bladzijde"
},
"gifs": {
"gchange1": "GIF-Explorer",

4
core/language/no.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "DIN WALLET-SALDO",
"update": "OPPDATERT WALLET-SALDOER",
"view": "Utsikt"
"view": "Utsikt",
"all": "Alle",
"page": "Side"
},
"gifs": {
"gchange1": "Gif Explorer",

4
core/language/pl.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "SALDO TWOJEGO PORTFELA",
"update": "AKTUALIZUJ SALDA W PORTFELU",
"view": "Pogląd"
"view": "Pogląd",
"all": "Wszystko",
"page": "Strona"
},
"gifs": {
"gchange1": "Eksplorator gifów",

4
core/language/pt.json

@ -248,7 +248,9 @@
"balance": "Saldo",
"balances": "SEUS SALDOS DE CARTEIRA",
"update": "ATUALIZAR SALDOS DA CARTEIRA",
"view": "Ver"
"view": "Ver",
"all": "Todos",
"page": "Página"
},
"gifs": {
"gchange1": "Gif Explorer",

4
core/language/ro.json

@ -248,7 +248,9 @@
"balance": "Credit",
"balances": "SOLDELE PORTOTELULUI DVS",
"update": "ACTUALIZAȚI SOLDELE PORTOTELULUI",
"view": "Vedere"
"view": "Vedere",
"all": "Toate",
"page": "Pagină"
},
"gifs": {
"gchange1": "Explorator GIF",

4
core/language/rs.json

@ -248,7 +248,9 @@
"balance": "Kredit",
"balances": "VAŠI STANJE U NOVČANIKU",
"update": "AŽURIRAJTE STANJE NOVČANIKA",
"view": "Pogled"
"view": "Pogled",
"all": "Sve",
"page": "Strana"
},
"gifs": {
"gchange1": "Gif Ekplorer",

4
core/language/ru.json

@ -248,7 +248,9 @@
"balance": "кредит",
"balances": "БАЛАНС ВАШЕГО КОШЕЛЬКА",
"update": "ОБНОВИТЬ БАЛАНС КОШЕЛЬКА",
"view": "Вид"
"view": "Вид",
"all": "Все",
"page": "Страница"
},
"gifs": {
"gchange1": "Проводник гифок",

4
core/language/us.json

@ -248,7 +248,9 @@
"balance": "Balance",
"balances": "YOUR WALLET BALANCES",
"update": "UPDATE WALLET BALANCES",
"view": "View"
"view": "View",
"all": "All",
"page": "Page"
},
"gifs": {
"gchange1": "Gif Explorer",

4
core/language/zhc.json

@ -248,7 +248,9 @@
"balance": "余额",
"balances": "您的钱包余额",
"update": "更新钱包余额",
"view": "看法"
"view": "看法",
"all": "全部",
"page": "页"
},
"gifs": {
"gchange1": "Gif 浏览器",

4
core/language/zht.json

@ -248,7 +248,9 @@
"balance": "餘額",
"balances": "您的錢包餘額",
"update": "更新錢包餘額",
"view": "看法"
"view": "看法",
"all": "全部",
"page": "頁"
},
"gifs": {
"gchange1": "Gif 瀏覽器",

28
core/src/components/show-plugin.js

@ -1225,6 +1225,34 @@ class NavBar extends connect(store)(LitElement) {
this.myMenuPlugins = JSON.parse(localStorage.getItem('myMenuPlugs') || '[]')
} else {
let newPluginMenu = JSON.parse(localStorage.getItem('myMenuPlugs') || '[]')
const oldQchat = 'messaging/q-chat/index.html'
const newQchat = 'q-chat/index.html'
const oldMinting = 'minting/index.html'
const newMinting = 'minting-info/index.html'
const oldWebsites = 'qdn/index.html'
const newWebsites = 'q-website/index.html'
const oldDatamanager = 'qdn/data-management/index.html'
const newDatamanager = 'data-management/index.html'
// Check if local storage have broken links and replace them
newPluginMenu.find(a => {
if (a.page === oldQchat) {
a.page = newQchat
} else if (a.page === oldMinting) {
a.page = newMinting
} else if (a.page === oldWebsites) {
a.page = newWebsites
} else if (a.page === oldDatamanager) {
a.page = newDatamanager
} else {}
})
localStorage.setItem('myMenuPlugs', JSON.stringify(newPluginMenu))
await appDelay(250)
this.myMenuPlugins = JSON.parse(localStorage.getItem('myMenuPlugs') || '[]')
}
}

83
package-lock.json generated

@ -47,7 +47,7 @@
"prosemirror-state": "1.4.3",
"prosemirror-transform": "1.9.0",
"prosemirror-view": "1.33.6",
"sass": "1.77.1",
"sass": "1.77.2",
"short-unique-id": "5.2.0",
"xhr2": "0.2.1"
},
@ -101,10 +101,13 @@
"@vaadin/grid": "24.2.9",
"@vaadin/icons": "24.2.9",
"@vaadin/password-field": "24.2.9",
"@vaadin/scroller": "24.2.9",
"@vaadin/tabs": "24.2.9",
"@vaadin/tabsheet": "24.2.9",
"@vaadin/tooltip": "24.2.9",
"@zip.js/zip.js": "2.7.44",
"axios": "1.6.8",
"electron": "30.0.5",
"axios": "1.7.1",
"electron": "30.0.6",
"electron-builder": "24.13.3",
"epml": "0.3.3",
"eslint": "8.57.0",
@ -3965,6 +3968,50 @@
"@vaadin/vaadin-themable-mixin": "~24.2.9"
}
},
"node_modules/@vaadin/scroller": {
"version": "24.2.9",
"resolved": "https://registry.npmjs.org/@vaadin/scroller/-/scroller-24.2.9.tgz",
"integrity": "sha512-CFAaJ6hGzncq46wARiu+B+AoSBiW+qJ4mJ4jmn2gIeTEAbv/IhMPv7GeuF2zKO6/eW6YyHm6wJRTMWcJszOYaQ==",
"dev": true,
"dependencies": {
"@polymer/polymer": "^3.0.0",
"@vaadin/a11y-base": "~24.2.9",
"@vaadin/component-base": "~24.2.9",
"@vaadin/vaadin-lumo-styles": "~24.2.9",
"@vaadin/vaadin-material-styles": "~24.2.9",
"@vaadin/vaadin-themable-mixin": "~24.2.9"
}
},
"node_modules/@vaadin/tabs": {
"version": "24.2.9",
"resolved": "https://registry.npmjs.org/@vaadin/tabs/-/tabs-24.2.9.tgz",
"integrity": "sha512-cmiFzWyhEKXPGk7r3ExvZLiHJ7aVrN2fN//6PCPwag2ofLqNXvL2xw9RJrCDx1n8/aabNpRvYz0mAf+ucuE1Sw==",
"dev": true,
"dependencies": {
"@polymer/polymer": "^3.0.0",
"@vaadin/a11y-base": "~24.2.9",
"@vaadin/component-base": "~24.2.9",
"@vaadin/item": "~24.2.9",
"@vaadin/vaadin-lumo-styles": "~24.2.9",
"@vaadin/vaadin-material-styles": "~24.2.9",
"@vaadin/vaadin-themable-mixin": "~24.2.9"
}
},
"node_modules/@vaadin/tabsheet": {
"version": "24.2.9",
"resolved": "https://registry.npmjs.org/@vaadin/tabsheet/-/tabsheet-24.2.9.tgz",
"integrity": "sha512-M5Wn60dEJepSQR6BmLveHVQqeZ+OiaoHBG4KAl8cAg3xFRy7peO3w6fVJfn5XhHO1BEoGx5rqAa31YXguV9hiw==",
"dev": true,
"dependencies": {
"@polymer/polymer": "^3.0.0",
"@vaadin/component-base": "~24.2.9",
"@vaadin/scroller": "~24.2.9",
"@vaadin/tabs": "~24.2.9",
"@vaadin/vaadin-lumo-styles": "~24.2.9",
"@vaadin/vaadin-material-styles": "~24.2.9",
"@vaadin/vaadin-themable-mixin": "~24.2.9"
}
},
"node_modules/@vaadin/text-field": {
"version": "24.2.9",
"resolved": "https://registry.npmjs.org/@vaadin/text-field/-/text-field-24.2.9.tgz",
@ -4619,9 +4666,9 @@
}
},
"node_modules/axios": {
"version": "1.6.8",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz",
"integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
"version": "1.7.1",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.1.tgz",
"integrity": "sha512-+LV37nQcd1EpFalkXksWNBiA17NZ5m5/WspmHGmZmdx1qBOg/VNq/c4eRJiA9VQQHBOs+N0ZhhdU10h2TyNK7Q==",
"dev": true,
"dependencies": {
"follow-redirects": "^1.15.6",
@ -5018,9 +5065,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001618",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001618.tgz",
"integrity": "sha512-p407+D1tIkDvsEAPS22lJxLQQaG8OTBEqo0KhzfABGk0TU4juBNDSfH0hyAp/HRyx+M8L17z/ltyhxh27FTfQg==",
"version": "1.0.30001620",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001620.tgz",
"integrity": "sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==",
"dev": true,
"funding": [
{
@ -5741,9 +5788,9 @@
}
},
"node_modules/electron": {
"version": "30.0.5",
"resolved": "https://registry.npmjs.org/electron/-/electron-30.0.5.tgz",
"integrity": "sha512-+a7PjcAq2HrfF1l+Ez8n0W9YeZIam7E9ERHEGs+L2dqKu7qxk8GNSEFoBEPCpLI00p/fc0d76L9IcLCQJdNFqA==",
"version": "30.0.6",
"resolved": "https://registry.npmjs.org/electron/-/electron-30.0.6.tgz",
"integrity": "sha512-PkhEPFdpYcTzjAO3gMHZ+map7g2+xCrMDedo/L1i0ir2BRXvAB93IkTJX497U6Srb/09r2cFt+k20VPNVCdw3Q==",
"dev": true,
"hasInstallScript": true,
"dependencies": {
@ -6032,9 +6079,9 @@
}
},
"node_modules/electron-to-chromium": {
"version": "1.4.769",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.769.tgz",
"integrity": "sha512-bZu7p623NEA2rHTc9K1vykl57ektSPQYFFqQir8BOYf6EKOB+yIsbFB9Kpm7Cgt6tsLr9sRkqfqSZUw7LP1XxQ==",
"version": "1.4.774",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.774.tgz",
"integrity": "sha512-132O1XCd7zcTkzS3FgkAzKmnBuNJjK8WjcTtNuoylj7MYbqw5eXehjQ5OK91g0zm7OTKIPeaAG4CPoRfD9M1Mg==",
"dev": true
},
"node_modules/electron-updater": {
@ -9701,9 +9748,9 @@
}
},
"node_modules/sass": {
"version": "1.77.1",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.77.1.tgz",
"integrity": "sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==",
"version": "1.77.2",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.77.2.tgz",
"integrity": "sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==",
"dependencies": {
"chokidar": ">=3.0.0 <4.0.0",
"immutable": "^4.0.0",

9
package.json

@ -69,7 +69,7 @@
"prosemirror-state": "1.4.3",
"prosemirror-transform": "1.9.0",
"prosemirror-view": "1.33.6",
"sass": "1.77.1",
"sass": "1.77.2",
"short-unique-id": "5.2.0",
"xhr2": "0.2.1"
},
@ -123,10 +123,13 @@
"@vaadin/grid": "24.2.9",
"@vaadin/icons": "24.2.9",
"@vaadin/password-field": "24.2.9",
"@vaadin/scroller": "24.2.9",
"@vaadin/tabs": "24.2.9",
"@vaadin/tabsheet": "24.2.9",
"@vaadin/tooltip": "24.2.9",
"@zip.js/zip.js": "2.7.44",
"axios": "1.6.8",
"electron": "30.0.5",
"axios": "1.7.1",
"electron": "30.0.6",
"electron-builder": "24.13.3",
"epml": "0.3.3",
"eslint": "8.57.0",

20
plugins/plugins/core/components/plugins-css.js

@ -6791,8 +6791,6 @@ export const qchatStyles = css`
--_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2);
--mdc-dialog-min-width: 750px;
scrollbar-width: thin;
scrollbar-color: #6a6c75 #a1a1a1;
}
paper-spinner-lite {
@ -6824,7 +6822,7 @@ export const qchatStyles = css`
float: left;
height: 100vh;
overflow-y: hidden;
border-right: 3px #ddd solid;
border-right: 2px #ddd solid;
}
.people-list .blockedusers {
@ -6972,20 +6970,6 @@ export const qchatStyles = css`
overflow-x: hidden;
}
.people-list ul::-webkit-scrollbar-track {
background: #a1a1a1;
}
.people-list ul::-webkit-scrollbar {
width: 11px;
}
.people-list ul::-webkit-scrollbar-thumb {
background-color: #6a6c75;
border-radius: 6px;
border: 3px solid #a1a1a1;
}
.chat {
width: 80vw;
height: 100vh;
@ -13205,7 +13189,7 @@ export const multiWalletStyles = css`
}
#transactions {
margin-top: 30px;
margin-top: 25px;
margin-left: 20px;
margin-right: 20px;
border-top: 1px solid var(--border);

12
plugins/plugins/core/q-chat/q-chat.src.js

@ -24,6 +24,7 @@ import '@material/mwc-icon'
import '@material/mwc-snackbar'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@vaadin/grid'
import '@vaadin/scroller'
import '@vaadin/tooltip'
// Multi language support
@ -149,9 +150,14 @@ class Chat extends LitElement {
</div>
</div>
</div>
<ul class="list">
${this.isEmptyArray(this.chatHeads) ? this.renderLoadingText() : this.renderChatHead(this.chatHeads)}
</ul>
<vaadin-scroller
scroll-direction="vertical"
style="border-bottom: 1px solid var(--lumo-contrast-20pct); padding: var(--lumo-space-s);"
>
<ul class="list">
${this.isEmptyArray(this.chatHeads) ? this.renderLoadingText() : this.renderChatHead(this.chatHeads)}
</ul>
</vaadin-scroller>
</div>
<div class="chat">
<div id="newMessageBar" class="new-message-bar hide-new-message-bar clearfix" @click=${() => this.scrollToBottom()}>

431
plugins/plugins/core/wallet/wallet-app.src.js

@ -29,6 +29,8 @@ import '@vaadin/grid'
import '@vaadin/icon'
import '@vaadin/icons'
import '@vaadin/password-field'
import '@vaadin/tabs'
import '@vaadin/tabsheet'
// Multi language support
import { get, registerTranslateConfig, translate, use } from '../../../../core/translate'
@ -127,7 +129,12 @@ class MultiWallet extends LitElement {
bookDogecoinAddress: { type: String },
bookDigibyteAddress: { type: String },
bookRavencoinAddress: { type: String },
bookPiratechainAddress: { type: String }
bookPiratechainAddress: { type: String },
visitedTab: { type: Number },
searchOffset: { type: Number },
searchLimit: { type: Number },
counter: { type: Number },
pageButtonsHidden: { type: Boolean }
}
}
@ -235,6 +242,11 @@ class MultiWallet extends LitElement {
this.bookDigibyteAddress = ''
this.bookRavencoinAddress = ''
this.bookPiratechainAddress = ''
this.visitedTab = 0
this.searchOffset = 0
this.searchLimit = 10
this.counter = 1
this.pageButtonsHidden = false
this.wallets = new Map()
let coinProp = {
@ -387,6 +399,7 @@ class MultiWallet extends LitElement {
<div class="qrcode-pos" ?hidden="${this.getSelectedWalletAddress().length < 1}">
<qortal-qrcode-generator data="${this.getSelectedWalletAddress()}" mode="octet" format="html" auto></qortal-qrcode-generator>
</div>
${this.renderTabTransactions()}
<div id="transactions">
${this.loading ? html`
<paper-spinner-lite style="display: block; margin: 5px auto;" active></paper-spinner-lite>
@ -2246,7 +2259,7 @@ class MultiWallet extends LitElement {
this.transactionsDOM = this.shadowRoot.getElementById('transactionsDOM')
this.showWallet()
this.showNewQortWallet()
window.addEventListener('storage', () => {
const checkLanguage = localStorage.getItem('qortalLanguage')
@ -2282,6 +2295,38 @@ class MultiWallet extends LitElement {
}, 600000)
}
async myTabChanged(value) {
this.pageButtonsHidden = false
this.visitedTab = value
this.searchOffset = 0
this.searchLimit = 10
this.counter = 1
await this.renderNewDom()
}
renderTabTransactions() {
if (this._selectedWallet == 'qort') {
return html`
<div style="margin-top: 10px;">
<vaadin-tabs>
<vaadin-tab id="type" disabled><span style="color: var(--black);">${translate("walletpage.wchange6")} :</span></vaadin-tab>
<vaadin-tab id="payment-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(0)}>PAYMENT</vaadin-tab>
<vaadin-tab id="arbitary-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(1)}>ARBITARY</vaadin-tab>
<vaadin-tab id="at-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(2)}>AT</vaadin-tab>
<vaadin-tab id="group-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(3)}>GROUP</vaadin-tab>
<vaadin-tab id="name-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(4)}>NAME</vaadin-tab>
<vaadin-tab id="asset-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(5)}>ASSET</vaadin-tab>
<vaadin-tab id="poll-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(6)}>POLL</vaadin-tab>
<vaadin-tab id="rewarshare-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(7)}>REWARDSHARE</vaadin-tab>
<vaadin-tab id="misc-tab" style="cursor: pointer;" @click=${(e) => this.myTabChanged(8)}>MISC</vaadin-tab>
</vaadin-tabs>
</div>
`
} else {
return html``
}
}
async paymentFee() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
@ -2499,7 +2544,11 @@ class MultiWallet extends LitElement {
tabWalletQort() {
this._selectedWallet = 'qort'
this.showWallet()
this.visitedTab = 0
this.searchOffset = 0
this.searchLimit = 10
this.pageButtonsHidden = false
this.showNewQortWallet()
}
tabWalletBtc() {
@ -3538,19 +3587,18 @@ class MultiWallet extends LitElement {
renderCAB() {
return html`
<span>${this.selectedTransaction.aTAddress}</span>
<button-icon-copy
title="${translate("blockpage.bcchange8")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.selectedTransaction.aTAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
`
<span>${this.selectedTransaction.aTAddress}</span>
<button-icon-copy
title="${translate("blockpage.bcchange8")}"
onSuccessMessage="${translate("walletpage.wchange4")}"
onErrorMessage="${translate("walletpage.wchange39")}"
textToCopy=${this.selectedTransaction.aTAddress}
buttonSize="24px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
></button-icon-copy>
`
}
renderFetchText() {
@ -3857,7 +3905,7 @@ class MultiWallet extends LitElement {
}
}
await validateReceiver(recipient)
await this.showWallet()
await this.showNewQortWallet()
}
async sendBtc() {
@ -4139,15 +4187,21 @@ class MultiWallet extends LitElement {
if (this._selectedWallet == 'qort') {
if (!window.parent.reduxStore.getState().app.blockInfo.height) {
await parentEpml.request('apiCall', { url: `/blocks/height`, type: 'api' })
.then(height => parentEpml.request('updateBlockInfo', { height }))
await parentEpml.request('apiCall', {
url: `/blocks/height`,
type: 'api'
}).then(height => parentEpml.request('updateBlockInfo', {
height
}))
}
}
const coin = this._selectedWallet
await this.fetchWalletAddress(this._selectedWallet)
await this.fetchWalletServer(this._selectedWallet)
await this.fetchWalletDetails(this._selectedWallet)
await this.fetchWalletServer(this._selectedWallet)
if (this._selectedWallet == coin) {
await this.renderTransactions()
await this.getTransactionGrid(this._selectedWallet)
@ -4157,32 +4211,314 @@ class MultiWallet extends LitElement {
}
}
async showNewQortWallet() {
this.pageButtonsHidden = false
this.transactionsDOM.hidden = true
this.loading = true
if (!window.parent.reduxStore.getState().app.blockInfo.height) {
await parentEpml.request('apiCall', {
url: `/blocks/height`,
type: 'api'
}).then(height => parentEpml.request('updateBlockInfo', {
height
}))
}
const coin = this._selectedWallet
this.balanceString = this.renderFetchText()
parentEpml.request('apiCall', {
url: `/addresses/balance/${this.wallets.get('qort').wallet.address}`
}).then((res) => {
if (isNaN(Number(res))) {
let snack4string = get("walletpage.wchange32")
parentEpml.request('showSnackBar', `${snack4string}`)
} else {
if (this._selectedWallet == coin) {
this.wallets.get(coin).balance = Number(res).toFixed(8)
this.balanceString = this.wallets.get(this._selectedWallet).balance + " " + this._selectedWallet.toLocaleUpperCase()
this.balance = this.wallets.get(this._selectedWallet).balance
}
}
})
await this.fetchWalletDetails(this._selectedWallet)
await this.fetchWalletServer(this._selectedWallet)
this.shadowRoot.getElementById('type').selected = false
this.shadowRoot.getElementById('payment-tab').selected = true
this.shadowRoot.getElementById('arbitary-tab').selected = false
this.shadowRoot.getElementById('at-tab').selected = false
this.shadowRoot.getElementById('group-tab').selected = false
this.shadowRoot.getElementById('name-tab').selected = false
this.shadowRoot.getElementById('asset-tab').selected = false
this.shadowRoot.getElementById('poll-tab').selected = false
this.shadowRoot.getElementById('rewarshare-tab').selected = false
this.shadowRoot.getElementById('misc-tab').selected = false
if (this._selectedWallet == coin) {
await this.renderTransactions()
await this.getTransactionGrid(this._selectedWallet)
this.loading = false
this.transactionsDOM.hidden = false
}
}
async renderNewDom() {
this.transactionsDOM.hidden = true
this.loading = true
if (!window.parent.reduxStore.getState().app.blockInfo.height) {
await parentEpml.request('apiCall', {
url: `/blocks/height`,
type: 'api'
}).then(height => parentEpml.request('updateBlockInfo', {
height
}))
}
const coin = this._selectedWallet
await this.fetchWalletDetails(this._selectedWallet)
if (this._selectedWallet == coin) {
await this.renderTransactions()
await this.getTransactionGrid(this._selectedWallet)
this.loading = false
this.transactionsDOM.hidden = false
}
}
goBackwardTX() {
if (this.searchOffset === 0) {
this.pageButtonsHidden = false
this.searchLimit = 10
this.counter = 1
} else {
this.pageButtonsHidden = false
this.searchLimit = 10
this.counter = this.searchOffset / 10
this.searchOffset = this.searchOffset - 10
this.renderNewDom()
}
}
goForwardTX() {
this.pageButtonsHidden = false
this.searchLimit = 10
this.searchOffset = this.searchOffset + 10
this.counter = (this.searchOffset / 10) + 1
this.renderNewDom()
}
showAllTX() {
this.pageButtonsHidden = true
this.searchLimit = 0
this.searchOffset = 0
this.counter = 1
this.renderNewDom()
}
async fetchWalletDetails(coin) {
switch (coin) {
case 'qort':
this.balanceString = this.renderFetchText()
parentEpml.request('apiCall', {
url: `/addresses/balance/${this.wallets.get('qort').wallet.address}?apiKey=${this.getApiKey()}`
}).then((res) => {
if (isNaN(Number(res))) {
let snack4string = get("walletpage.wchange32")
parentEpml.request('showSnackBar', `${snack4string}`)
} else {
if (this._selectedWallet == coin) {
this.wallets.get(coin).balance = Number(res).toFixed(8)
this.balanceString = this.wallets.get(this._selectedWallet).balance + " " + this._selectedWallet.toLocaleUpperCase()
this.balance = this.wallets.get(this._selectedWallet).balance
}
}
const paymentTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=PAYMENT
`
})
const pendingPaymentTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=PAYMENT
`
})
const arbitaryTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=ARBITRARY
`
})
const pendingArbitaryTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=ARBITRARY
`
})
const atTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=AT
&txType=DEPLOY_AT
&txType=MESSAGE
`
})
const pendingAtTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=AT
&txType=DEPLOY_AT
&txType=MESSAGE
`
})
const groupTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=CREATE_GROUP
&txType=UPDATE_GROUP
&txType=ADD_GROUP_ADMIN
&txType=REMOVE_GROUP_ADMIN
&txType=GROUP_BAN
&txType=CANCEL_GROUP_BAN
&txType=GROUP_KICK
&txType=GROUP_INVITE
&txType=CANCEL_GROUP_INVITE
&txType=JOIN_GROUP
&txType=LEAVE_GROUP
&txType=GROUP_APPROVAL
&txType=SET_GROUP
`
})
const pendingGroupTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=CREATE_GROUP
&txType=UPDATE_GROUP
&txType=ADD_GROUP_ADMIN
&txType=REMOVE_GROUP_ADMIN
&txType=GROUP_BAN
&txType=CANCEL_GROUP_BAN
&txType=GROUP_KICK
&txType=GROUP_INVITE
&txType=CANCEL_GROUP_INVITE
&txType=JOIN_GROUP
&txType=LEAVE_GROUP
&txType=GROUP_APPROVAL
&txType=SET_GROUP
`
})
const txsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true&txType=PAYMENT&txType=REGISTER_NAME&txType=UPDATE_NAME&txType=SELL_NAME&txType=CANCEL_SELL_NAME&txType=BUY_NAME&txType=CREATE_POLL&txType=VOTE_ON_POLL&txType=ARBITRARY&txType=ISSUE_ASSET&txType=TRANSFER_ASSET&txType=CREATE_ASSET_ORDER&txType=CANCEL_ASSET_ORDER&txType=MULTI_PAYMENT&txType=DEPLOY_AT&txType=MESSAGE&txType=AIRDROP&txType=AT&txType=CREATE_GROUP&txType=UPDATE_GROUP&txType=ADD_GROUP_ADMIN&txType=REMOVE_GROUP_ADMIN&txType=GROUP_BAN&txType=CANCEL_GROUP_BAN&txType=GROUP_KICK&txType=GROUP_INVITE&txType=CANCEL_GROUP_INVITE&txType=JOIN_GROUP&txType=LEAVE_GROUP&txType=GROUP_APPROVAL&txType=SET_GROUP&txType=UPDATE_ASSET&txType=ACCOUNT_FLAGS&txType=ENABLE_FORGING&txType=REWARD_SHARE&txType=ACCOUNT_LEVEL&txType=TRANSFER_PRIVS&txType=PRESENCE`,
const nameTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=REGISTER_NAME
&txType=UPDATE_NAME
&txType=SELL_NAME
&txType=CANCEL_SELL_NAME
&txType=BUY_NAME
`
})
const pendingTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true&txType=PAYMENT&txType=REGISTER_NAME&txType=UPDATE_NAME&txType=SELL_NAME&txType=CANCEL_SELL_NAME&txType=BUY_NAME&txType=CREATE_POLL&txType=VOTE_ON_POLL&txType=ARBITRARY&txType=ISSUE_ASSET&txType=TRANSFER_ASSET&txType=CREATE_ASSET_ORDER&txType=CANCEL_ASSET_ORDER&txType=MULTI_PAYMENT&txType=DEPLOY_AT&txType=MESSAGE&txType=AIRDROP&txType=AT&txType=CREATE_GROUP&txType=UPDATE_GROUP&txType=ADD_GROUP_ADMIN&txType=REMOVE_GROUP_ADMIN&txType=GROUP_BAN&txType=CANCEL_GROUP_BAN&txType=GROUP_KICK&txType=GROUP_INVITE&txType=CANCEL_GROUP_INVITE&txType=JOIN_GROUP&txType=LEAVE_GROUP&txType=GROUP_APPROVAL&txType=SET_GROUP&txType=UPDATE_ASSET&txType=ACCOUNT_FLAGS&txType=ENABLE_FORGING&txType=REWARD_SHARE&txType=ACCOUNT_LEVEL&txType=TRANSFER_PRIVS&txType=PRESENCE`,
const pendingNameTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=REGISTER_NAME
&txType=UPDATE_NAME
&txType=SELL_NAME
&txType=CANCEL_SELL_NAME
&txType=BUY_NAME
`
})
const assetTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=ISSUE_ASSET
&txType=TRANSFER_ASSET
&txType=CREATE_ASSET_ORDER
&txType=CANCEL_ASSET_ORDER
&txType=UPDATE_ASSET
`
})
const pendingAssetTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=ISSUE_ASSET
&txType=TRANSFER_ASSET
&txType=CREATE_ASSET_ORDER
&txType=CANCEL_ASSET_ORDER
&txType=UPDATE_ASSET
`
})
const pollTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=CREATE_POLL
&txType=VOTE_ON_POLL
`
})
const pendingPollTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=CREATE_POLL
&txType=VOTE_ON_POLL
`
})
const rewardshareTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=REWARD_SHARE
`
})
const pendingRewardshareTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=REWARD_SHARE
`
})
const miscTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/search?address=${this.wallets.get('qort').wallet.address}&confirmationStatus=CONFIRMED&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=TRANSFER_PRIVS
&txType=PRESENCE
`
})
const pendingMiscTxsQort = await parentEpml.request('apiCall', {
url: `/transactions/unconfirmed?creator=${this.wallets.get('qort').wallet.base58PublicKey}&reverse=true
&limit=${this.searchLimit}
&offset=${this.searchOffset}
&txType=TRANSFER_PRIVS
&txType=PRESENCE
`
})
if (this._selectedWallet == coin) {
this.wallets.get(coin).transactions = pendingTxsQort.concat(txsQort)
if (this.visitedTab === 0) {
this.wallets.get(coin).transactions = pendingPaymentTxsQort.concat(paymentTxsQort)
} else if (this.visitedTab === 1) {
this.wallets.get(coin).transactions = pendingArbitaryTxsQort.concat(arbitaryTxsQort)
} else if (this.visitedTab === 2) {
this.wallets.get(coin).transactions = pendingAtTxsQort.concat(atTxsQort)
} else if (this.visitedTab === 3) {
this.wallets.get(coin).transactions = pendingGroupTxsQort.concat(groupTxsQort)
} else if (this.visitedTab === 4) {
this.wallets.get(coin).transactions = pendingNameTxsQort.concat(nameTxsQort)
} else if (this.visitedTab === 5) {
this.wallets.get(coin).transactions = pendingAssetTxsQort.concat(assetTxsQort)
} else if (this.visitedTab === 6) {
this.wallets.get(coin).transactions = pendingPollTxsQort.concat(pollTxsQort)
} else if (this.visitedTab === 7) {
this.wallets.get(coin).transactions = pendingRewardshareTxsQort.concat(rewardshareTxsQort)
} else if (this.visitedTab === 8) {
this.wallets.get(coin).transactions = pendingMiscTxsQort.concat(miscTxsQort)
}
}
break
case 'btc':
@ -4643,7 +4979,7 @@ class MultiWallet extends LitElement {
}
return html`
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">${translate("walletpage.wchange38")}</span></div>
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" .items="${this.wallets.get(this._selectedWallet).transactions}" all-rows-visible>
<vaadin-grid-column
auto-width
header="${translate("walletpage.wchange41")}"
@ -4709,7 +5045,20 @@ class MultiWallet extends LitElement {
>
</vaadin-grid-column>
</vaadin-grid>
<div id="pages"></div>
<div style="margin-top: 10px;">
<vaadin-button theme="primary small" style="cursor: pointer;" ?hidden="${this.pageButtonsHidden}" @click=${() => this.goBackwardTX()}>
<< <span style="text-transform: uppercase; font-size: 14px;">${translate("general.back")}</span>
</vaadin-button>
<span style="color: var(--black); font-size: 16px; font-weight: 600;">&nbsp;${translate("general.page")} ${this.counter}&nbsp;</span>
<vaadin-button theme="primary small" style="cursor: pointer;" ?hidden="${this.wallets.get(this._selectedWallet).transactions.length < 10 || this.pageButtonsHidden}" @click=${() => this.goForwardTX()}>
<span style="text-transform: uppercase; font-size: 14px;">${translate("general.next")}</span> >>
</vaadin-button>
<div style="float: right;">
<vaadin-button theme="primary small" style="cursor: pointer;" @click=${() => this.showAllTX()}>
<span style="text-transform: uppercase; font-size: 14px;">${translate("general.view")} ${translate("general.all")}</span>
</vaadin-button>
</div>
</div>
`
}

Loading…
Cancel
Save