diff --git a/core/language/de.json b/core/language/de.json index 1bad4508..b6fbb936 100644 --- a/core/language/de.json +++ b/core/language/de.json @@ -214,7 +214,8 @@ "wp1": "Prägung", "wp2": "Nicht am Prägen", "wp3": "Kerninformationen", - "wp4": "Synchronisiert" + "wp4": "Synchronisiert", + "wp5": "Synchronisierungsstatus" }, "general": { "yes": "Ja", diff --git a/core/language/es.json b/core/language/es.json index c0265f80..e8f2c274 100644 --- a/core/language/es.json +++ b/core/language/es.json @@ -214,7 +214,8 @@ "wp1": "Acuñación", "wp2": "Sin acuñar", "wp3": "Información básica", - "wp4": "Sincronizado" + "wp4": "Sincronizado", + "wp5": "Estado de sincronización" }, "general": { "yes": "Sí", diff --git a/core/language/fr.json b/core/language/fr.json index fbf6931d..0d134291 100644 --- a/core/language/fr.json +++ b/core/language/fr.json @@ -214,7 +214,8 @@ "wp1": "Monnaie", "wp2": "Pas de frappe", "wp3": "Informations de base", - "wp4": "Synchronisé" + "wp4": "Synchronisé", + "wp5": "État de la synchronisation" }, "general": { "yes": "Oui", diff --git a/core/language/hindi.json b/core/language/hindi.json index fd3d282c..36ab28c8 100644 --- a/core/language/hindi.json +++ b/core/language/hindi.json @@ -215,7 +215,8 @@ "wp1": "खनन", "wp2": "नॉट मिंटिंग", "wp3": "मुख्य जानकारी", - "wp4": "सिंक्रोनाइज़्ड" + "wp4": "सिंक्रोनाइज़्ड", + "wp5": "सिंक स्थिति" }, "general": { "yes": "हाँ", diff --git a/core/language/hr.json b/core/language/hr.json index 17b452a9..7a1e82a4 100644 --- a/core/language/hr.json +++ b/core/language/hr.json @@ -214,7 +214,8 @@ "wp1": "Kovanje", "wp2": "Nije kovano", "wp3": "Osnovne informacije", - "wp4": "Sinkronizirano" + "wp4": "Sinkronizirano", + "wp5": "Status sinkronizacije" }, "general": { "yes": "Da", diff --git a/core/language/hu.json b/core/language/hu.json index 817fc0b1..65c1ec2d 100644 --- a/core/language/hu.json +++ b/core/language/hu.json @@ -214,7 +214,8 @@ "wp1": "verés", "wp2": "Nem pénzverés", "wp3": "Alapinformációk", - "wp4": "Szinkronizált" + "wp4": "Szinkronizált", + "wp5": "Szinkronizálás állapota" }, "general": { "yes": "Igen", diff --git a/core/language/it.json b/core/language/it.json index cc91142b..45b5fdd1 100644 --- a/core/language/it.json +++ b/core/language/it.json @@ -214,7 +214,8 @@ "wp1": "Conio", "wp2": "Non conio", "wp3": "Informazioni principali", - "wp4": "Sincronizzato" + "wp4": "Sincronizzato", + "wp5": "Stato sincronizzazione" }, "general": { "yes": "Yes", diff --git a/core/language/jp.json b/core/language/jp.json index 8ad2adc7..ef09fc52 100644 --- a/core/language/jp.json +++ b/core/language/jp.json @@ -216,7 +216,8 @@ "wp1": "ミント", "wp2": "鋳造しない", "wp3": "コア情報", - "wp4": "同期済み" + "wp4": "同期済み", + "wp5": "同期ステータス" }, "general": { "yes": "はい", diff --git a/core/language/ko.json b/core/language/ko.json index d0c9a87d..eb68f8b7 100644 --- a/core/language/ko.json +++ b/core/language/ko.json @@ -214,7 +214,8 @@ "wp1": "조폐", "wp2": "조폐되지 않음", "wp3": "핵심 정보", - "wp4": "동기화됨" + "wp4": "동기화됨", + "wp5": "동기화 상태" }, "general": { "yes": "예", diff --git a/core/language/no.json b/core/language/no.json index f464c159..55823220 100644 --- a/core/language/no.json +++ b/core/language/no.json @@ -214,7 +214,8 @@ "wp1": "Minting", "wp2": "Ikke preging", "wp3": "Kjerneinformasjon", - "wp4": "Synkronisert" + "wp4": "Synkronisert", + "wp5": "Synkroniseringsstatus" }, "general": { "yes": "Ja", diff --git a/core/language/pl.json b/core/language/pl.json index ee52e236..311a8817 100644 --- a/core/language/pl.json +++ b/core/language/pl.json @@ -214,7 +214,8 @@ "wp1": "Bicie", "wp2": "Nie bije", "wp3": "Podstawowe informacje", - "wp4": "Zsynchronizowany" + "wp4": "Zsynchronizowany", + "wp5": "Stan synchronizacji" }, "general": { "yes": "Tak", diff --git a/core/language/pt.json b/core/language/pt.json index dbdd62af..120079d1 100644 --- a/core/language/pt.json +++ b/core/language/pt.json @@ -214,7 +214,8 @@ "wp1": "Criação", "wp2": "Não está cunhando", "wp3": "Informações essenciais", - "wp4": "Sincronizado" + "wp4": "Sincronizado", + "wp5": "Status da sincronização" }, "general": { "yes": "Sim", diff --git a/core/language/ro.json b/core/language/ro.json index 8a4b2d86..2bef7a2d 100644 --- a/core/language/ro.json +++ b/core/language/ro.json @@ -214,7 +214,8 @@ "wp1": "Battering", "wp2": "Nu se bate", "wp3": "Informații de bază", - "wp4": "Sincronizat" + "wp4": "Sincronizat", + "wp5": "Stare sincronizare" }, "general": { "yes": "Da", diff --git a/core/language/rs.json b/core/language/rs.json index ca92d273..fb214346 100644 --- a/core/language/rs.json +++ b/core/language/rs.json @@ -214,7 +214,8 @@ "wp1": "Kovanje", "wp2": "Ne kuje", "wp3": "Osnovne informacije", - "wp4": "Sinhronizovano" + "wp4": "Sinhronizovano", + "wp5": "Status sinhronizacije" }, "general": { "yes": "Da", diff --git a/core/language/ru.json b/core/language/ru.json index 775174b6..21b24a99 100644 --- a/core/language/ru.json +++ b/core/language/ru.json @@ -214,7 +214,8 @@ "wp1": "Чеканка", "wp2": "Не чеканить", "wp3": "Основная информация", - "wp4": "Синхронизировано" + "wp4": "Синхронизировано", + "wp5": "Статус синхронизации" }, "general": { "yes": "Да", diff --git a/core/language/us.json b/core/language/us.json index 0a6b6dea..b9e03682 100644 --- a/core/language/us.json +++ b/core/language/us.json @@ -215,7 +215,8 @@ "wp1": "Minting", "wp2": "Not Minting", "wp3": "Core Information", - "wp4": "Synchronized" + "wp4": "Synchronized", + "wp5": "Sync Status" }, "general": { "yes": "Yes", diff --git a/core/language/zhc.json b/core/language/zhc.json index 351e379f..55b0c839 100644 --- a/core/language/zhc.json +++ b/core/language/zhc.json @@ -214,7 +214,8 @@ "wp1": "铸造", "wp2": "不铸造", "wp3": "核心信息", - "wp4": "已同步" + "wp4": "已同步", + "wp5": "同步状态" }, "general": { "yes": "是", diff --git a/core/language/zht.json b/core/language/zht.json index d217bf99..89fa0e8a 100644 --- a/core/language/zht.json +++ b/core/language/zht.json @@ -214,7 +214,8 @@ "wp1": "鑄造", "wp2": "不鑄造", "wp3": "核心信息", - "wp4": "已同步" + "wp4": "已同步", + "wp5": "同步狀態" }, "general": { "yes": "是", diff --git a/plugins/plugins/core/overview-page/overview-page-css.js b/plugins/plugins/core/overview-page/overview-page-css.js index 1fab3397..a5fe82e8 100644 --- a/plugins/plugins/core/overview-page/overview-page-css.js +++ b/plugins/plugins/core/overview-page/overview-page-css.js @@ -79,6 +79,8 @@ a:not([href]):not([tabindex]):focus { img { vertical-align: middle; border-style: none; + height: 128px; + width: 128px; } caption { diff --git a/plugins/plugins/core/overview-page/overview-page.src.js b/plugins/plugins/core/overview-page/overview-page.src.js index d0f95ecd..792fcba3 100644 --- a/plugins/plugins/core/overview-page/overview-page.src.js +++ b/plugins/plugins/core/overview-page/overview-page.src.js @@ -1,13 +1,15 @@ import { LitElement, html, css } from 'lit' import { Epml } from '../../../epml.js' import { use, get, translate, registerTranslateConfig } from 'lit-translate' -import isElectron from 'is-electron' import { overviewStyle } from './overview-page-css.js' import { asyncReplace } from 'lit/directives/async-replace.js' +import isElectron from 'is-electron' + import "@material/mwc-button" import '@material/mwc-dialog' -import '@vaadin/button'; import '@polymer/paper-spinner/paper-spinner-lite.js' +import '@vaadin/button' + registerTranslateConfig({ loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()), @@ -15,8 +17,8 @@ registerTranslateConfig({ async function* countDown(count, callback) { while (count > 0) { - yield count--; - await new Promise((r) => setTimeout(r, 1000)); + yield count-- + await new Promise((r) => setTimeout(r, 1000)) if (count === 0) { callback() } @@ -114,7 +116,7 @@ class OverviewPage extends LitElement {
${this.renderSyncStatus()} - ${translate("walletpage.wchange41")} + ${translate("walletprofile.wp5")}
@@ -168,14 +170,18 @@ class OverviewPage extends LitElement { setInterval(() => { this.refreshItems() }, 60000) + + setInterval(() => { + this.getAvatar() + }, 180000) } changeTheme() { const checkTheme = localStorage.getItem('qortalTheme') if (checkTheme === 'dark') { - this.theme = 'dark'; + this.theme = 'dark' } else { - this.theme = 'light'; + this.theme = 'light' } document.querySelector('html').setAttribute('theme', this.theme) } @@ -288,7 +294,7 @@ class StartMintingNow extends LitElement { status: { type: Number }, timer: { type: Number }, privateRewardShareKey: { type: String } - }; + } } static get styles() { @@ -424,24 +430,24 @@ class StartMintingNow extends LitElement { color: var(--error); } `, - ]; + ] } constructor() { - super(); - this.mintingAccountData = []; - this.errorMsg = ''; - this.openDialogRewardShare = false; - this.status = 0; - this.privateRewardShareKey = ""; + super() + this.mintingAccountData = [] + this.errorMsg = '' + this.openDialogRewardShare = false + this.status = 0 + this.privateRewardShareKey = "" } render() { - return html` ${this.renderStartMintingButton()} `; + return html` ${this.renderStartMintingButton()} ` } firstUpdated() { - this.getMintingAcccounts(); + this.getMintingAcccounts() } renderErrorMsg1() { @@ -465,7 +471,7 @@ class StartMintingNow extends LitElement { const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port const url = `${nodeUrl}/admin/mintingaccounts` try { - const res = await fetch(url); + const res = await fetch(url) const mintingAccountData = await res.json() this.mintingAccountData = mintingAccountData @@ -509,7 +515,7 @@ class StartMintingNow extends LitElement { } } catch (error) { this.errorMsg = this.renderErrorMsg2() - return; + return } try { @@ -540,7 +546,7 @@ class StartMintingNow extends LitElement { } if (!stop) { - stop = true; + stop = true try { const address = window.parent.reduxStore.getState().app?.selectedAddress?.address const myRewardShareArray = await rewardShares(address) @@ -554,7 +560,7 @@ class StartMintingNow extends LitElement { } stop = false } - }; + } interval = setInterval(getAnswer, 5000) } @@ -570,7 +576,7 @@ class StartMintingNow extends LitElement { const isMinterButKeyMintingKeyNotAssigned = addressInfo?.error !== 124 && addressInfo?.level >= 1 && !findMintingAccount const makeTransactionRequest = async (lastRef) => { - let mylastRef = lastRef; + let mylastRef = lastRef let rewarddialog1 = get('transactions.rewarddialog1') let rewarddialog2 = get('transactions.rewarddialog2') let rewarddialog3 = get('transactions.rewarddialog3') @@ -594,18 +600,18 @@ class StartMintingNow extends LitElement { } const getTxnRequestResponse = (txnResponse) => { - let err6string = get('rewardsharepage.rchange21'); + let err6string = get('rewardsharepage.rchange21') if (txnResponse?.extraData?.rewardSharePrivateKey && (txnResponse?.data?.message?.includes('multiple') || txnResponse?.data?.message?.includes('SELF_SHARE_EXISTS'))) { return err6string } if (txnResponse.success === false && txnResponse.message) { - throw (txnResponse); + throw (txnResponse) } else if ( txnResponse.success === true && !txnResponse.data.error ) { - return err6string; + return err6string } else { throw (txnResponse) } @@ -617,7 +623,7 @@ class StartMintingNow extends LitElement { let myTransaction = await makeTransactionRequest(lastRef) - getTxnRequestResponse(myTransaction); + getTxnRequestResponse(myTransaction) return myTransaction?.extraData?.rewardSharePrivateKey } @@ -637,7 +643,7 @@ class StartMintingNow extends LitElement { if(findMintingAccountsFromUser.length > 2){ this.errorMsg = translate("startminting.smchange10") - return; + return } try { @@ -646,7 +652,7 @@ class StartMintingNow extends LitElement { } catch (error) { console.log({ error }) this.errorMsg = error?.data?.message || this.renderErrorMsg4() - return; + return } } @@ -741,7 +747,7 @@ class StartMintingNow extends LitElement { ` : ""} ` : ''} - `; + ` } } window.customElements.define('start-minting-now', StartMintingNow) @@ -751,7 +757,7 @@ class MyButton extends LitElement { onClick: { type: Function }, isLoading: { type: Boolean }, label: { type: String }, - }; + } static styles = css` vaadin-button { @@ -769,13 +775,13 @@ class MyButton extends LitElement { vaadin-button:hover { opacity: 0.9; } - `; + ` constructor() { - super(); - this.onClick = () => {}; - this.isLoading = false; - this.label = ''; + super() + this.onClick = () => {} + this.isLoading = false + this.label = '' } render() { @@ -788,7 +794,7 @@ class MyButton extends LitElement { ? html`${this.label}` : html``} - `; + ` } } customElements.define('my-button', MyButton) \ No newline at end of file diff --git a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js index 7e565213..8f1470e9 100644 --- a/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js +++ b/plugins/plugins/core/sponsorship-list/sponsorship-list.src.js @@ -1,33 +1,30 @@ -import { LitElement, html } from "lit" -import { Epml } from "../../../epml.js" -import "../components/ButtonIconCopy.js" -import { use, get, translate, registerTranslateConfig } from "lit-translate" -import { blocksNeed } from "../../utils/blocks-needed.js" -import "../components/ButtonIconCopy.js" +import { LitElement, html } from 'lit' +import { Epml } from '../../../epml.js' +import { use, get, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate' +import { blocksNeed } from '../../utils/blocks-needed.js' +import { asyncReplace } from 'lit/directives/async-replace.js' +import { pageStyles } from './sponsorship-list-css.src.js' import isElectron from 'is-electron' registerTranslateConfig({ loader: (lang) => fetch(`/language/${lang}.json`).then((res) => res.json()), }) -import "@polymer/paper-spinner/paper-spinner-lite.js" -import "@material/mwc-button" +import '@material/mwc-button' +import '@material/mwc-dialog' import '@material/mwc-icon' import '@material/mwc-icon-button' -import "@material/mwc-textfield" -import "@vaadin/button" -import "@polymer/paper-spinner/paper-spinner-lite.js" -import '@material/mwc-dialog' -import {asyncReplace} from 'lit/directives/async-replace.js'; +import '@material/mwc-textfield' +import '@polymer/paper-spinner/paper-spinner-lite.js' +import '@vaadin/button' +import '../components/ButtonIconCopy.js' -import { pageStyles } from "./sponsorship-list-css.src.js" - -const parentEpml = new Epml({ type: "WINDOW", source: window.parent }) +const parentEpml = new Epml({ type: 'WINDOW', source: window.parent }) async function* countDown(count, callback) { while (count > 0) { - yield count--; - await new Promise((r) => setTimeout(r, 1000)); + yield count-- + await new Promise((r) => setTimeout(r, 1000)) if(count === 0) { callback() } @@ -64,29 +61,356 @@ class SponsorshipList extends LitElement { constructor() { super() - this.theme = localStorage.getItem("qortalTheme") ? localStorage.getItem("qortalTheme") : "light" + this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light' this.isPageLoading = true this.nodeInfo = {} this.addressInfo = {} - this.rewardSharePublicKey = "" + this.rewardSharePublicKey = '' this.mintingAccountData = null this.sponsorships = [] this.removeRewardShareLoading = false - this.errorMessage = "" + this.errorMessage = '' this.isLoadingCreateSponsorship = false - this.publicKeyValue = "" + this.publicKeyValue = '' this.isOpenModal = false this.status = 0 - this.privateRewardShareKey = "" + this.privateRewardShareKey = '' this.openDialogRewardShare = false this.isOpenDialogPublicKeyLookup = false - this.lookupAddressValue = "" - this.lookupPublicAddressValue = "" - this.errorLookup = "" + this.lookupAddressValue = '' + this.lookupPublicAddressValue = '' + this.errorLookup = '' + } + + render() { + return html` + ${ + this.isPageLoading + ? html` +
+
+
+
+ ` + : '' + } + +
+

+ ${translate('mintingpage.mchange35')} +

+
+
+
+
+ ${this.sponsorships.length === 0 ? html` +
+

${translate('sponsorshipspage.schange9')}

+
+ ` : ''} + ${this.sponsorships.length > 0 ? html` +
+

${translate('sponsorshipspage.schange1')}

+
+
+
+

${translate('settings.account')}

+
+
+

${translate('walletprofile.blocksminted')}

+
+
+

${translate('sponsorshipspage.schange19')}

+
+
+

${translate('sponsorshipspage.schange21')}

+
+
+ ${this.sponsorships.map((sponsorship) => html` + + `)} + +
+

+ ${translate('sponsorshipspage.schange3')}  + + ${this.sponsorships.length} + +

+

+ ${translate('sponsorshipspage.schange4')}  + + ${this.nextSponsorshipEnding + ?.blocksRemaining}  + + ${translate('mintingpage.mchange26')} +

+
+ ` : ''} +

${this.errorMessage}

+
+ + +
+ + +
+ +
+ + ${translate('puzzlepage.pchange15')} + +
+ +
+ + ${translate('sponsorshipspage.schange10')} + +
+
+
+ + +
+

${translate('sponsorshipspage.schange6')}

+
+
+
+

${this.sponsorships.filter(s=> s.blocksRemaining <= 0).length} ${translate('sponsorshipspage.schange7')}!

+

${translate('sponsorshipspage.schange8')}

+ ${this.sponsorships.filter(s=> s.blocksRemaining <= 0).map((ms)=> html` +

${ms.address}

+ `)} +
+ + ${translate('general.close')} + +
+ + +
+
+

${translate('sponsorshipspage.schange14')}

+
3 && 'hide'}`}>
+
+
+
+
+
    +
  • +

    + 1. ${translate('sponsorshipspage.schange20')} +

    +
    +
  • +
  • +

    + 2. ${translate('startminting.smchange6')} +

    +
    +
  • +
  • +

    + 3. ${translate('sponsorshipspage.schange15')} +

    +
    +
    ${asyncReplace(this.timer)} +
    +
  • +
  • +

    + 4. ${translate('startminting.smchange9')} +

    +
  • + ${this.privateRewardShareKey && this.status === 4 ? html` +
  • +

    + ${translate('sponsorshipspage.schange16')} +

    +
    + ${this.privateRewardShareKey} +
    + {this.saveToClipboard(this.privateRewardShareKey, this.renderCopyMsg())}} + > + ${translate('sponsorshipspage.schange11')} + +
  • + ` : ''} +
+ ${this.status === 4 ? '' : html` +
+

+ ${translate('sponsorshipspage.schange18')} +

+

${this.errorMessage}

+
+ `} +
+ { + this.openDialogRewardShare = false + this.errorMessage = '' + this.isLoadingCreateSponsorship = false + this.privateRewardShareKey = '' + this.atMount() + }} + class='red' + > + ${translate('general.close')} + +
+ + +
+

${translate('sponsorshipspage.schange10')}

+
+
+
+

+ ${translate('sponsorshipspage.schange12')} +

+
+ + +
+

${this.errorLookup}

+
+ + ${translate('sponsorshipspage.schange10')} + +
+ ${this.lookupPublicAddressValue ? html` +
+ ${this.lookupPublicAddressValue} +
+
+ {this.saveToClipboard(this.lookupPublicAddressValue, this.renderCopyMsg())}} + > + ${translate('sponsorshipspage.schange11')} + +
+ ` : ''} +
+ { + this.lookupAddressValue = '' + this.lookupPublicAddressValue = '' + this.isOpenDialogPublicKeyLookup = false + this.errorLookup = '' + + }} + > + ${translate('general.close')} + +
+
+ ` + } + + async firstUpdated() { + this.changeTheme() + this.changeLanguage() + await this.atMount() + + window.addEventListener('storage', () => { + const checkLanguage = localStorage.getItem('qortalLanguage') + const checkTheme = localStorage.getItem('qortalTheme') + + use(checkLanguage) + + if (checkTheme === 'dark') { + this.theme = 'dark' + } else { + this.theme = 'light' + } + document.querySelector('html').setAttribute('theme', this.theme) + }) + + if (!isElectron()) { + } else { + window.addEventListener('contextmenu', (event) => { + event.preventDefault() + window.parent.electronAPI.showMyMenu() + }) + } } renderCopyMsg() { - let copystring = get("sponsorshipspage.schange17") + let copystring = get('sponsorshipspage.schange17') return `${copystring}` } @@ -98,46 +422,30 @@ class SponsorshipList extends LitElement { this.lookupAddressValue = e.target.value } - changeLanguage() { - const checkLanguage = localStorage.getItem("qortalLanguage") + changeTheme() { + const checkTheme = localStorage.getItem('qortalTheme') + if (checkTheme === 'dark') { + this.theme = 'dark' + } else { + this.theme = 'light' + } + document.querySelector('html').setAttribute('theme', this.theme) + } + changeLanguage() { + const checkLanguage = localStorage.getItem('qortalLanguage') if (checkLanguage === null || checkLanguage.length === 0) { - localStorage.setItem("qortalLanguage", "us") - use("us") + localStorage.setItem('qortalLanguage', 'us') + use('us') } else { use(checkLanguage) } } - _handleStorage() { - const checkLanguage = localStorage.getItem("qortalLanguage") - const checkTheme = localStorage.getItem("qortalTheme") - - use(checkLanguage) - - if (checkTheme === "dark") { - this.theme = "dark" - } else { - this.theme = "light" - } - document.querySelector("html").setAttribute("theme", this.theme) - } - - connectedCallback() { - super.connectedCallback() - window.addEventListener("storage", this._handleStorage) - } - - disconnectedCallback() { - window.removeEventListener("storage", this._handleStorage) - super.disconnectedCallback() - } - async getNodeInfo() { - const nodeInfo = await parentEpml.request("apiCall", { - url: `/admin/status`, + const nodeInfo = await parentEpml.request('apiCall', { + url: `/admin/status` }) - return nodeInfo } @@ -149,26 +457,23 @@ class SponsorshipList extends LitElement { console.error('Copy to clipboard error:', err) } } - changeStatus(value){ + + changeStatus(value) { this.status = value - let copystring1 = get("sponsorshipspage.schange17") + let copystring1 = get('sponsorshipspage.schange17') this.saveToClipboard(this.privateRewardShareKey, `${copystring1}`) } getApiKey() { - const apiNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]; - let apiKey = apiNode.apiKey; - return apiKey; + const apiNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node] + let apiKey = apiNode.apiKey + return apiKey } async atMount() { - - this.changeLanguage() - this.addressInfo = window.parent.reduxStore.getState().app.accountInfo.addressInfo this.isPageLoading = true try { - const address = window.parent.reduxStore.getState().app?.selectedAddress?.address let rewardShares = await this.getRewardShareRelationship(address) @@ -176,17 +481,17 @@ class SponsorshipList extends LitElement { rewardShares = rewardShares.filter((rs) => rs.recipient !== address) const getAccountInfo = rewardShares.map(async (rs) => { - const addressInfo = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/${rs.recipient}`, + const addressInfo = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/${rs.recipient}` }) - const getNames = await parentEpml.request("apiCall", { - type: "api", - url: `/names/address/${rs.recipient}`, + const getNames = await parentEpml.request('apiCall', { + type: 'api', + url: `/names/address/${rs.recipient}` }) - let url = "" - if(getNames?.length > 0 ){ + let url = '' + if(getNames?.length > 0 ) { const avatarNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node] const avatarUrl = avatarNode.protocol + '://' + avatarNode.domain + ':' + avatarNode.port const urlPic = `${avatarUrl}/arbitrary/THUMBNAIL/${getNames[0].name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}` @@ -215,47 +520,31 @@ class SponsorshipList extends LitElement { this.isPageLoading = false const openModal = accountInfoValues.find(s=> s.blocksRemaining <= 0) - if(openModal){ + if(openModal) { this.shadowRoot.querySelector('#showDialog').show() } } catch (error) { - this.isPageLoading = false } } - async firstUpdated() { - await this.atMount() - if (!isElectron()) { - } else { - window.addEventListener('contextmenu', (event) => { - event.preventDefault() - window.parent.electronAPI.showMyMenu() - }) - } - } - async getRewardShareRelationship(recipientAddress) { - const myRewardShareArray = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/rewardshares?minters=${recipientAddress}`, + const myRewardShareArray = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/rewardshares?minters=${recipientAddress}` }) return myRewardShareArray } _levelUpBlocks(accountInfo) { - let countBlocksString = ( - blocksNeed(0) - - (accountInfo?.blocksMinted + accountInfo?.blocksMintedAdjustment) - ).toString() + let countBlocksString = (blocksNeed(0) - (accountInfo?.blocksMinted + accountInfo?.blocksMintedAdjustment)).toString() return countBlocksString } async removeRewardShare(rewardShareObject) { - const selectedAddress = - window.parent.reduxStore.getState().app?.selectedAddress + const selectedAddress = window.parent.reduxStore.getState().app?.selectedAddress const myPercentageShare = -1 @@ -264,9 +553,9 @@ class SponsorshipList extends LitElement { // Get Last Ref const getLastRef = async () => { - let myRef = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/lastreference/${selectedAddress?.address}`, + let myRef = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/lastreference/${selectedAddress?.address}` }) return myRef } @@ -282,14 +571,14 @@ class SponsorshipList extends LitElement { // Make Transaction Request const makeTransactionRequest = async (lastRef) => { let mylastRef = lastRef - let rewarddialog5 = get("transactions.rewarddialog5") - let rewarddialog6 = get("transactions.rewarddialog6") - let myTxnrequest = await parentEpml.request("transaction", { + let rewarddialog5 = get('transactions.rewarddialog5') + let rewarddialog6 = get('transactions.rewarddialog6') + let myTxnrequest = await parentEpml.request('transaction', { type: 381, nonce: selectedAddress?.nonce, params: { rewardShareKeyPairPublicKey: - rewardShareObject.rewardSharePublicKey, + rewardShareObject.rewardSharePublicKey, recipient: rewardShareObject.recipient, percentageShare: myPercentageShare, lastReference: mylastRef, @@ -303,19 +592,19 @@ class SponsorshipList extends LitElement { const getTxnRequestResponse = (txnResponse) => { if (txnResponse.success === false && txnResponse.message) { this.removeRewardShareLoading = false - parentEpml.request("showSnackBar", txnResponse.message) + parentEpml.request('showSnackBar', txnResponse.message) throw new Error(txnResponse) } else if ( txnResponse.success === true && !txnResponse.data.error ) { - let err7tring = get("rewardsharepage.rchange22") + let err7tring = get('rewardsharepage.rchange22') this.removeRewardShareLoading = false - parentEpml.request("showSnackBar", `${err7tring}`) + parentEpml.request('showSnackBar', `${err7tring}`) this.sponsorships = this.sponsorships.filter((s)=> s.address !== rewardShareObject.address) } else { this.removeRewardShareLoading = false - parentEpml.request("showSnackBar", txnResponse.data.message) + parentEpml.request('showSnackBar', txnResponse.data.message) throw new Error(txnResponse) } } @@ -324,12 +613,12 @@ class SponsorshipList extends LitElement { async createRewardShare(publicKeyValue, isCopy) { this.openDialogRewardShare = true - if(!publicKeyValue){ - this.errorMessage = "unable to pull public key from the chain, account has no outgoing transactions" + if(!publicKeyValue) { + this.errorMessage = 'unable to pull public key from the chain, account has no outgoing transactions' return } - this.privateRewardShareKey = "" - this.errorMessage = "" + this.privateRewardShareKey = '' + this.errorMessage = '' const recipientPublicKey = publicKeyValue const percentageShare = 0 const selectedAddress = window.parent.reduxStore.getState().app?.selectedAddress @@ -339,18 +628,18 @@ class SponsorshipList extends LitElement { // Get Last Ref const getLastRef = async () => { - let myRef = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/lastreference/${selectedAddress.address}`, + let myRef = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/lastreference/${selectedAddress.address}` }) return myRef } // Get Account Details const getAccountDetails = async () => { - let myAccountDetails = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/${selectedAddress.address}`, + let myAccountDetails = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/${selectedAddress.address}` }) return myAccountDetails } @@ -361,28 +650,23 @@ class SponsorshipList extends LitElement { try { accountDetails = await getAccountDetails() } catch (error) { - this.errorMessage = "Couldn't fetch account details" + this.errorMessage = 'Couldn't fetch account details' } let lastRef = await getLastRef() if (accountDetails.level >= 5 || accountDetails.flags === 1) { this.status = 1 - this.errorMessage = "" + this.errorMessage = '' try { const myTransaction = await makeTransactionRequest(lastRef) - - getTxnRequestResponse(myTransaction) } catch (error) { this.errorMessage = error } - - } else { - - let err5string = get("rewardsharepage.rchange20") + let err5string = get('rewardsharepage.rchange20') this.errorMessage = `${err5string} ${accountDetails.level}` } @@ -391,11 +675,11 @@ class SponsorshipList extends LitElement { // Make Transaction Request const makeTransactionRequest = async (lastRef) => { let mylastRef = lastRef - let rewarddialog1 = get("transactions.rewarddialog1") - let rewarddialog2 = get("transactions.rewarddialog2") - let rewarddialog3 = get("transactions.rewarddialog3") - let rewarddialog4 = get("transactions.rewarddialog4") - let myTxnrequest = await parentEpml.request("transaction", { + let rewarddialog1 = get('transactions.rewarddialog1') + let rewarddialog2 = get('transactions.rewarddialog2') + let rewarddialog3 = get('transactions.rewarddialog3') + let rewarddialog4 = get('transactions.rewarddialog4') + let myTxnrequest = await parentEpml.request('transaction', { type: 38, nonce: selectedAddress.nonce, params: { @@ -413,7 +697,7 @@ class SponsorshipList extends LitElement { } const getTxnRequestResponse = (txnResponse) => { - if(txnResponse?.extraData?.rewardSharePrivateKey && (txnResponse?.data?.message?.includes('multiple') || txnResponse?.data?.message?.includes('SELF_SHARE_EXISTS')) ){ + if(txnResponse?.extraData?.rewardSharePrivateKey && (txnResponse?.data?.message?.includes('multiple') || txnResponse?.data?.message?.includes('SELF_SHARE_EXISTS'))) { this.privateRewardShareKey = txnResponse?.extraData?.rewardSharePrivateKey this.confirmRelationship(publicKeyValue, isCopy) } else if (txnResponse.success === false && txnResponse?.message) { @@ -435,7 +719,7 @@ class SponsorshipList extends LitElement { validateReceiver() } - async confirmRelationship(recipientPublicKey, isCopy){ + async confirmRelationship(recipientPublicKey, isCopy) { this.status = 2 let interval = null let stop = false @@ -443,45 +727,38 @@ class SponsorshipList extends LitElement { const getAnswer = async () => { if (!stop) { - stop= true; + stop= true try { - - const recipientAddress = - window.parent.base58PublicKeyToAddress(recipientPublicKey) - + const recipientAddress = window.parent.base58PublicKeyToAddress(recipientPublicKey) const minterAddress = window.parent.reduxStore.getState().app?.selectedAddress.address - const myRewardShareArray = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/rewardshares?minters=${minterAddress}&recipients=${recipientAddress}`, - }) - if(myRewardShareArray.length > 0){ + const myRewardShareArray = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/rewardshares?minters=${minterAddress}&recipients=${recipientAddress}` + }) + if(myRewardShareArray.length > 0) { clearInterval(interval) this.status = 3 - - - this.timer = countDown(isCopy ? 5 : 180, ()=> this.changeStatus(4)); - } - + this.timer = countDown(isCopy ? 5 : 180, ()=> this.changeStatus(4)) + } } catch (error) { console.error(error) - } stop = false } - }; - interval = setInterval(getAnswer, 5000); + } + interval = setInterval(getAnswer, 5000) } - async lookUpPublicAddressFunc(){ + async lookUpPublicAddressFunc() { this.errorLookup = '' try { - const response = await parentEpml.request("apiCall", { - type: "api", - url: `/addresses/publickey/${this.lookupAddressValue}`, + const response = await parentEpml.request('apiCall', { + type: 'api', + url: `/addresses/publickey/${this.lookupAddressValue}` }) - if(response.error){ + if(response.error) { throw(response.message) } this.lookupPublicAddressValue = response @@ -490,305 +767,6 @@ class SponsorshipList extends LitElement { console.error(error) } } - - render() { - return html` - ${ - this.isPageLoading - ? html` -
-
-
-
- ` - : "" - } - -
-

- ${translate("mintingpage.mchange35")} -

-
-
-
-
- ${this.sponsorships.length === 0 ? html` -
-

${translate("sponsorshipspage.schange9")}

-
- ` : ''} - ${this.sponsorships.length > 0 ? html` -
-

${translate("sponsorshipspage.schange1")}

-
-
-
-

${translate("settings.account")}

-
-
-

${translate("walletprofile.blocksminted")}

-
-
-

${translate("sponsorshipspage.schange19")}

-
-
-

${translate("sponsorshipspage.schange21")}

-
-
- ${this.sponsorships.map((sponsorship) => html` - - `)} - -
-

- ${translate("sponsorshipspage.schange3")}  - - ${this.sponsorships.length} - -

-

- ${translate("sponsorshipspage.schange4")}  - - ${this.nextSponsorshipEnding - ?.blocksRemaining}  - - ${translate("mintingpage.mchange26")} -

-
- ` : ''} -

${this.errorMessage}

-
- - -
- - -
- -
- - ${translate("puzzlepage.pchange15")} - -
- -
- - ${translate("sponsorshipspage.schange10")} - -
-
-
- - -
-

${translate("sponsorshipspage.schange6")}

-
-
-
-

${this.sponsorships.filter(s=> s.blocksRemaining <= 0).length} ${translate("sponsorshipspage.schange7")}!

-

${translate("sponsorshipspage.schange8")}

- ${this.sponsorships.filter(s=> s.blocksRemaining <= 0).map((ms)=> html` -

${ms.address}

- `)} -
- - ${translate("general.close")} - -
- - -
-
-

${translate("sponsorshipspage.schange14")}

-
3 && 'hide'}`}>
-
-
-
-
-
    -
  • -

    - 1. ${translate("sponsorshipspage.schange20")} -

    -
    -
  • -
  • -

    - 2. ${translate("startminting.smchange6")} -

    -
    -
  • -
  • -

    - 3. ${translate("sponsorshipspage.schange15")} -

    -
    -
    ${asyncReplace(this.timer)} -
    -
  • -
  • -

    - 4. ${translate("startminting.smchange9")} -

    -
  • - ${this.privateRewardShareKey && this.status === 4 ? html` -
  • -

    - ${translate("sponsorshipspage.schange16")} -

    -
    - ${this.privateRewardShareKey} -
    - {this.saveToClipboard(this.privateRewardShareKey, this.renderCopyMsg())}} - > - ${translate("sponsorshipspage.schange11")} - -
  • - ` : ''} -
- ${this.status === 4 ? '' : html` -
-

- ${translate("sponsorshipspage.schange18")} -

-

${this.errorMessage}

-
- `} -
- { - this.openDialogRewardShare = false - this.errorMessage = '' - this.isLoadingCreateSponsorship = false - this.privateRewardShareKey = "" - this.atMount() - }} - class="red" - > - ${translate("general.close")} - -
- - -
-

${translate("sponsorshipspage.schange10")}

-
-
-
-

- ${translate("sponsorshipspage.schange12")} -

-
- - -
-

${this.errorLookup}

-
- - ${translate("sponsorshipspage.schange10")} - -
- ${this.lookupPublicAddressValue ? html` -
- ${this.lookupPublicAddressValue} -
-
- {this.saveToClipboard(this.lookupPublicAddressValue, this.renderCopyMsg())}} - > - ${translate("sponsorshipspage.schange11")} - -
- ` : ''} -
- { - this.lookupAddressValue = "" - this.lookupPublicAddressValue = "" - this.isOpenDialogPublicKeyLookup = false - this.errorLookup = "" - - }} - > - ${translate("general.close")} - -
-
- ` - } } -window.customElements.define("sponsorship-list", SponsorshipList) +window.customElements.define('sponsorship-list', SponsorshipList)