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`
+
+
+ `
+ : ''
+ }
+
+
+
+
+
+
+
+ ${this.sponsorships.length === 0 ? html`
+
+
${translate('sponsorshipspage.schange9')}
+
+ ` : ''}
+ ${this.sponsorships.length > 0 ? html`
+
+
${translate('sponsorshipspage.schange1')}
+
+
+ ${this.sponsorships.map((sponsorship) => html`
+
+ -
+
+ ${sponsorship?.name ? html`
+

+ ` : ''}
+ ${sponsorship?.name || sponsorship.address}
+
+
+ -
+ ${+sponsorship.blocksMinted +
+ +sponsorship.blocksMintedAdjustment}
+
+ -
+ {this.createRewardShare(sponsorship?.publicKey, true)}}
+ >
+ content_copy ${translate('sponsorshipspage.schange11')}
+
+
+ -
+ this.removeRewardShare(sponsorship)}
+ >
+ delete_forever ${translate('rewardsharepage.rchange17')}
+
+
+
+ `)}
+
+
+
+ ${translate('sponsorshipspage.schange3')}
+
+ ${this.sponsorships.length}
+
+
+
+ ${translate('sponsorshipspage.schange4')}
+
+ ${this.nextSponsorshipEnding
+ ?.blocksRemaining}
+
+ ${translate('mintingpage.mchange26')}
+
+
+ ` : ''}
+
${this.errorMessage}
+
+
+
+
+
+
+
${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')}
+
+
+
+
+
+
+
+ -
+
+ 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.schange12')}
+
+
+
+
+
+
${this.errorLookup}
+
+ {
+ this.lookupPublicAddressValue = ''
+ this.lookUpPublicAddressFunc()
+ }}'
+ >
+ ${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`
-
-
- `
- : ""
- }
-
-
-
-
-
-
-
- ${this.sponsorships.length === 0 ? html`
-
-
${translate("sponsorshipspage.schange9")}
-
- ` : ''}
- ${this.sponsorships.length > 0 ? html`
-
-
${translate("sponsorshipspage.schange1")}
-
-
- ${this.sponsorships.map((sponsorship) => html`
-
- -
-
- ${sponsorship?.name ? html`
-

- ` : ''}
- ${sponsorship?.name || sponsorship.address}
-
-
- -
- ${+sponsorship.blocksMinted +
- +sponsorship.blocksMintedAdjustment}
-
- -
- {this.createRewardShare(sponsorship?.publicKey, true)}}
- >
- content_copy ${translate("sponsorshipspage.schange11")}
-
-
- -
- this.removeRewardShare(sponsorship)}
- >
- delete_forever ${translate("rewardsharepage.rchange17")}
-
-
-
- `)}
-
-
-
- ${translate("sponsorshipspage.schange3")}
-
- ${this.sponsorships.length}
-
-
-
- ${translate("sponsorshipspage.schange4")}
-
- ${this.nextSponsorshipEnding
- ?.blocksRemaining}
-
- ${translate("mintingpage.mchange26")}
-
-
- ` : ''}
-
${this.errorMessage}
-
-
-
-
-
-
-
${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")}
-
-
-
-
-
-
-
- -
-
- 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.schange12")}
-
-
-
-
-
-
${this.errorLookup}
-
- {
- this.lookupPublicAddressValue = ""
- this.lookUpPublicAddressFunc()
- }}"
- >
- ${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)