Add notification to add peer

This commit is contained in:
AlphaX-Projects 2023-11-27 16:52:22 +01:00 committed by GitHub
parent 1dac72b7f3
commit 65676b0413
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -2,7 +2,7 @@ import {css, html, LitElement} from 'lit'
import {render} from 'lit/html.js' import {render} from 'lit/html.js'
import {Epml} from '../../../epml.js' import {Epml} from '../../../epml.js'
import isElectron from 'is-electron' import isElectron from 'is-electron'
import {get, registerTranslateConfig, translate, use} from '../../../../core/translate/index.js' import {get, registerTranslateConfig, translate, use} from 'lit-translate'
import '@polymer/paper-spinner/paper-spinner-lite.js' import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@material/mwc-icon' import '@material/mwc-icon'
import '@material/mwc-textfield' import '@material/mwc-textfield'
@ -41,85 +41,85 @@ class NodeManagement extends LitElement {
static get styles() { static get styles() {
return css` return css`
* { * {
--mdc-theme-primary: rgb(3, 169, 244); --mdc-theme-primary: rgb(3, 169, 244);
--paper-input-container-focus-color: var(--mdc-theme-primary); --paper-input-container-focus-color: var(--mdc-theme-primary);
--mdc-theme-surface: var(--white); --mdc-theme-surface: var(--white);
--mdc-dialog-content-ink-color: var(--black); --mdc-dialog-content-ink-color: var(--black);
--lumo-primary-text-color: rgb(0, 167, 245); --lumo-primary-text-color: rgb(0, 167, 245);
--lumo-primary-color-50pct: rgba(0, 167, 245, 0.5); --lumo-primary-color-50pct: rgba(0, 167, 245, 0.5);
--lumo-primary-color-10pct: rgba(0, 167, 245, 0.1); --lumo-primary-color-10pct: rgba(0, 167, 245, 0.1);
--lumo-primary-color: hsl(199, 100%, 48%); --lumo-primary-color: hsl(199, 100%, 48%);
--lumo-base-color: var(--white); --lumo-base-color: var(--white);
--lumo-body-text-color: var(--black); --lumo-body-text-color: var(--black);
--lumo-secondary-text-color: var(--sectxt); --lumo-secondary-text-color: var(--sectxt);
--lumo-contrast-60pct: var(--vdicon); --lumo-contrast-60pct: var(--vdicon);
--_lumo-grid-border-color: var(--border); --_lumo-grid-border-color: var(--border);
--_lumo-grid-secondary-border-color: var(--border2); --_lumo-grid-secondary-border-color: var(--border2);
} }
paper-spinner-lite { paper-spinner-lite {
height: 24px; height: 24px;
width: 24px; width: 24px;
--paper-spinner-color: var(--mdc-theme-primary); --paper-spinner-color: var(--mdc-theme-primary);
--paper-spinner-stroke-width: 2px; --paper-spinner-stroke-width: 2px;
} }
#node-management-page { #node-management-page {
background: var(--white); background: var(--white);
} }
mwc-textfield { mwc-textfield {
width: 100%; width: 100%;
} }
.red { .red {
--mdc-theme-primary: #F44336; --mdc-theme-primary: #F44336;
} }
.red-button { .red-button {
--mdc-theme-primary: red; --mdc-theme-primary: red;
--mdc-theme-on-primary: white; --mdc-theme-on-primary: white;
} }
mwc-button.red-button { mwc-button.red-button {
--mdc-theme-primary: red; --mdc-theme-primary: red;
--mdc-theme-on-primary: white; --mdc-theme-on-primary: white;
} }
.node-card { .node-card {
padding: 12px 24px; padding: 12px 24px;
background: var(--white); background: var(--white);
border-radius: 2px; border-radius: 2px;
box-shadow: 11; box-shadow: 11;
} }
h2 { h2 {
margin: 0; margin: 0;
} }
h2, h2,
h3, h3,
h4, h4,
h5 { h5 {
color: var(--black); color: var(--black);
font-weight: 400; font-weight: 400;
} }
.sblack { .sblack {
color: var(--black); color: var(--black);
} }
[hidden] { [hidden] {
display: hidden !important; display: hidden !important;
visibility: none !important; visibility: none !important;
} }
.details { .details {
display: flex; display: flex;
font-size: 18px; font-size: 18px;
} }
`; `
} }
constructor() { constructor() {
@ -147,133 +147,99 @@ class NodeManagement extends LitElement {
render() { render() {
return html` return html`
<div id="node-management-page"> <div id="node-management-page">
<div class="node-card"> <div class="node-card">
<h2>${translate("nodepage.nchange1")} ${this.nodeDomain}</h2> <h2>${translate("nodepage.nchange1")} ${this.nodeDomain}</h2>
<mwc-button style="float:right;" class="red" ?hidden="${(this.upTime === "offline")}" @click=${() => this.stopNode()}><mwc-icon>dangerous</mwc-icon>&nbsp;${translate("nodepage.nchange31")}</mwc-button> <mwc-button style="float:right;" class="red" ?hidden="${(this.upTime === "offline")}" @click=${() => this.stopNode()}><mwc-icon>dangerous</mwc-icon>&nbsp;${translate("nodepage.nchange31")}</mwc-button>
<mwc-button style="float:right;" ?hidden="${(this.upTime === "offline")}" @click=${() => this.restartNode()}><mwc-icon>360</mwc-icon>&nbsp;${translate("nodepage.nchange33")}</mwc-button> <mwc-button style="float:right;" ?hidden="${(this.upTime === "offline")}" @click=${() => this.restartNode()}><mwc-icon>360</mwc-icon>&nbsp;${translate("nodepage.nchange33")}</mwc-button>
<span class="sblack"><br />${translate("nodepage.nchange2")} ${this.upTime}</span> <span class="sblack"><br>${translate("nodepage.nchange2")} ${this.upTime}</span>
<br /><br /> <br><br>
<div id="minting"> <div id="minting">
<div style="min-height:48px; display: flex; padding-bottom: 6px;"> <div style="min-height:48px; display: flex; padding-bottom: 6px;">
<h3 style="margin: 0; flex: 1; padding-top: 8px; display: inline;">${translate("nodepage.nchange3")}</h3> <h3 style="margin: 0; flex: 1; padding-top: 8px; display: inline;">${translate("nodepage.nchange3")}</h3>
<mwc-button <mwc-button style="float: right;" @click=${() => this.shadowRoot.getElementById('addMintingAccountDialog').show()}>
style="float:right;" <mwc-icon>add</mwc-icon>
@click=${() => this.shadowRoot.querySelector("#addMintingAccountDialog").show()} ${translate("nodepage.nchange4")}
> </mwc-button>
<mwc-icon>add</mwc-icon> </div>
${translate("nodepage.nchange4")} <vaadin-grid theme="large" id="mintingAccountsGrid" ?hidden="${this.isEmptyArray(this.mintingAccounts)}" .items="${this.mintingAccounts}" aria-label="Minting Accounts" all-rows-visible>
</mwc-button> <vaadin-grid-column auto-width header="${translate("nodepage.nchange9")}" path="mintingAccount"></vaadin-grid-column>
</div> <vaadin-grid-column auto-width header="${translate("nodepage.nchange10")}" path="recipientAccount"></vaadin-grid-column>
<vaadin-grid-column width="12em" header="${translate("nodepage.nchange11")}" .renderer=${(root, column, data) => {
render(html`
<mwc-button class="red" ?disabled=${this.removeMintingAccountLoading} @click=${() => this.removeMintingAccount(data.item.publicKey)}>
<mwc-icon>create</mwc-icon>&nbsp;${translate("nodepage.nchange12")}
</mwc-button>
`, root)
}}></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.mintingAccounts) ? html`<span style="color: var(--black);">${translate("nodepage.nchange13")}</span>` : ""}
</div><br>
<div id="peers">
<div style="min-height: 48px; display: flex; padding-bottom: 6px;">
<h3 style="margin: 0; flex: 1; padding-top: 8px; display: inline;">
<span>${translate("nodepage.nchange14")}</span>
<span>(${this.peers.length})</span>
</h3>
<mwc-button @click=${() => this.shadowRoot.getElementById('addPeerDialog').show()}><mwc-icon>add</mwc-icon>&nbsp;${translate("nodepage.nchange15")}</mwc-button>
</div>
<vaadin-grid theme="large" id="peersGrid" ?hidden="${this.isEmptyArray(this.peers)}" .items="${this.peers}" aria-label="Peers" all-rows-visible>
<vaadin-grid-column header="${translate("nodepage.nchange18")}" path="address"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange19")}" path="lastHeight"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange20")}" path="version"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange21")}" path="age"></vaadin-grid-column>
<vaadin-grid-column width="12em" header="${translate("nodepage.nchange22")}" .renderer=${(root, column, data) => {
render(html`
<mwc-button class="red" @click=${() => this.removePeer(data.item.address, data.index)}>
<mwc-icon>delete</mwc-icon>&nbsp;${translate("nodepage.nchange12")}
</mwc-button>
<mwc-button class="green" @click=${() => this.forceSyncPeer(data.item.address, data.index)}>
&nbsp;${translate("nodepage.nchange23")}
</mwc-button>
`, root)
}}></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.peers) ? html`<span style="color: var(--black);">${translate("nodepage.nchange24")}</span>` : ""}
</div><br>
</div>
</div>
<!-- Add Minting Account Dialog --> <mwc-dialog id="addPeerDialog" scrimClickAction="" escapeKeyAction="">
<mwc-dialog id="addMintingAccountDialog" scrimClickAction="${this.addMintingAccountLoading ? "" : "close"}"> <div>${translate("nodepage.nchange16")}</div><br>
<div>${translate("nodepage.nchange5")}</div> <mwc-textfield ?disabled="${this.addPeerLoading}" label="${translate("nodepage.nchange17")}" id="addPeerAddress" ></mwc-textfield>
<br /> <div style="text-align: center; height: 36px;" ?hidden="${!this.addPeerLoading}">
<mwc-textfield <span>
?disabled="${this.addMintingAccountLoading}" <paper-spinner-lite style="margin-top: 12px;" ?active="${this.addPeerLoading}" alt="Adding new peer"></paper-spinner-lite>
label="${translate("nodepage.nchange6")}" </span>
id="addMintingAccountKey" </div>
> <mwc-button ?disabled="${this.addPeerLoading}" @click="${this.addPeer}" slot="primaryAction">
</mwc-textfield> ${translate("nodepage.nchange8")}
<div style="text-align:right; height:36px;" ?hidden=${this.addMintingAccountMessage === ""}> </mwc-button>
<span ?hidden="${this.addMintingAccountLoading}"> <mwc-button slot="secondaryAction" ?disabled="${this.addPeerLoading}" @click="${() => this.closeAddPeerDialog()}" class="red">
${this.addMintingAccountMessage} &nbsp; ${translate("general.close")}
</span> </mwc-button>
<span ?hidden="${!this.addMintingAccountLoading}"> </mwc-dialog>
<!-- loading message -->
${translate("nodepage.nchange7")} &nbsp;
<paper-spinner-lite
style="margin-top:12px;"
?active="${this.addMintingAccountLoading}"
alt="Adding minting account"
>
</paper-spinner-lite>
</span>
</div>
<mwc-button
?disabled="${this.addMintingAccountLoading}"
slot="primaryAction"
@click=${this.addMintingAccount}
>
${translate("nodepage.nchange8")}
</mwc-button>
<mwc-button
?disabled="${this.addMintingAccountLoading}"
slot="secondaryAction"
dialogAction="cancel"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<vaadin-grid theme="large" id="mintingAccountsGrid" ?hidden="${this.isEmptyArray(this.mintingAccounts)}" .items="${this.mintingAccounts}" aria-label="Minting Accounts" all-rows-visible> <mwc-dialog id="addMintingAccountDialog" scrimClickAction="${this.addMintingAccountLoading ? "" : "close"}">
<vaadin-grid-column auto-width header="${translate("nodepage.nchange9")}" path="mintingAccount"></vaadin-grid-column> <div>${translate("nodepage.nchange5")}</div><br>
<vaadin-grid-column auto-width header="${translate("nodepage.nchange10")}" path="recipientAccount"></vaadin-grid-column> <mwc-textfield ?disabled="${this.addMintingAccountLoading}" label="${translate("nodepage.nchange6")}" id="addMintingAccountKey"></mwc-textfield>
<vaadin-grid-column width="12em" header="${translate("nodepage.nchange11")}" .renderer=${(root, column, data) => { <div style="text-align:right; height:36px;" ?hidden=${this.addMintingAccountMessage === ""}>
render(html`<mwc-button class="red" ?disabled=${this.removeMintingAccountLoading} @click=${() => this.removeMintingAccount(data.item.publicKey)}><mwc-icon>create</mwc-icon>&nbsp;${translate("nodepage.nchange12")}</mwc-button>`, root) <span ?hidden="${this.addMintingAccountLoading}">
}}></vaadin-grid-column> ${this.addMintingAccountMessage}&nbsp;
</vaadin-grid> </span>
${this.isEmptyArray(this.mintingAccounts) ? html`<span style="color: var(--black);">${translate("nodepage.nchange13")}</span>` : ""} <span ?hidden="${!this.addMintingAccountLoading}">
</div> ${translate("nodepage.nchange7")} &nbsp;
<br /> <paper-spinner-lite style="margin-top:12px;" ?active="${this.addMintingAccountLoading}" alt="Adding minting account"></paper-spinner-lite>
<div id="peers"> </span>
<div style="min-height: 48px; display: flex; padding-bottom: 6px;"> </div>
<h3 style="margin: 0; flex: 1; padding-top: 8px; display: inline;"> <mwc-button ?disabled="${this.addMintingAccountLoading}" slot="primaryAction" @click=${this.addMintingAccount}>
<span>${translate("nodepage.nchange14")}</span> ${translate("nodepage.nchange8")}
<span>(${this.peers.length})</span> </mwc-button>
</h3> <mwc-button ?disabled="${this.addMintingAccountLoading}" slot="secondaryAction" dialogAction="cancel" class="red">
<mwc-button @click=${() => this.shadowRoot.querySelector("#addPeerDialog").show()}><mwc-icon>add</mwc-icon>&nbsp;${translate("nodepage.nchange15")}</mwc-button> ${translate("general.close")}
</div> </mwc-button>
</mwc-dialog>
<mwc-dialog id="addPeerDialog" scrimClickAction="${this.addPeerLoading ? "" : "close"}"> `
<div>${translate("nodepage.nchange16")}</div>
<br />
<mwc-textfield ?disabled="${this.addPeerLoading}" label="${translate("nodepage.nchange17")}" id="addPeerAddress" ></mwc-textfield>
<div style="text-align:right; height:36px;" ?hidden=${this.addPeerMessage === ""}>
<span ?hidden="${this.addPeerLoading}"> ${this.addPeerMessage} &nbsp;</span>
<span ?hidden="${!this.addPeerLoading}">
<paper-spinner-lite
style="margin-top:12px;"
?active="${this.addPeerLoading}"
alt="Adding minting account"
>
</paper-spinner-lite>
</span>
</div>
<mwc-button
?disabled="${this.addPeerLoading}"
@click="${this.addPeer}"
slot="primaryAction"
>
${translate("nodepage.nchange8")}
</mwc-button>
<mwc-button
slot="secondaryAction"
dialogAction="cancel"
?disabled="${this.addPeerLoading}"
class="red"
>
${translate("general.close")}
</mwc-button>
</mwc-dialog>
<vaadin-grid theme="large" id="peersGrid" ?hidden="${this.isEmptyArray(this.peers)}" .items="${this.peers}" aria-label="Peers" all-rows-visible>
<vaadin-grid-column header="${translate("nodepage.nchange18")}" path="address"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange19")}" path="lastHeight"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange20")}" path="version"></vaadin-grid-column>
<vaadin-grid-column header="${translate("nodepage.nchange21")}" path="age"></vaadin-grid-column>
<vaadin-grid-column width="12em" header="${translate("nodepage.nchange22")}" .renderer=${(root, column, data) => {
render(html`<mwc-button class="red" @click=${() => this.removePeer(data.item.address, data.index)}><mwc-icon>delete</mwc-icon>&nbsp;${translate("nodepage.nchange12")}</mwc-button><mwc-button class="green" @click=${() => this.forceSyncPeer(data.item.address, data.index)}>&nbsp;${translate("nodepage.nchange23")}</mwc-button>`, root)
}}></vaadin-grid-column>
</vaadin-grid>
${this.isEmptyArray(this.peers) ? html`<span style="color: var(--black);">${translate("nodepage.nchange24")}</span>` : ""}
</div>
<br />
</div>
</div>
`
} }
firstUpdated() { firstUpdated() {
@ -321,7 +287,9 @@ class NodeManagement extends LitElement {
const getNodeUpTime = () => { const getNodeUpTime = () => {
this.upTime = "" this.upTime = ""
parentEpml.request("apiCall", { url: `/admin/uptime` }).then((res) => { parentEpml.request("apiCall", {
url: `/admin/uptime`
}).then((res) => {
this.upTime = convertMsToTime(res) this.upTime = convertMsToTime(res)
}) })
setTimeout(getNodeUpTime, 60000) setTimeout(getNodeUpTime, 60000)
@ -329,7 +297,9 @@ class NodeManagement extends LitElement {
const updatePeers = () => { const updatePeers = () => {
this.peers = [] this.peers = []
parentEpml.request("apiCall", { url: `/peers` }).then((res) => { parentEpml.request("apiCall", {
url: `/peers`
}).then((res) => {
this.peers = res this.peers = res
}) })
setTimeout(updatePeers, 60000) setTimeout(updatePeers, 60000)
@ -361,7 +331,9 @@ class NodeManagement extends LitElement {
}) })
}) })
parentEpml.imReady() parentEpml.imReady()
this.clearConsole() this.clearConsole()
setInterval(() => { setInterval(() => {
this.clearConsole() this.clearConsole()
}, 60000) }, 60000)
@ -405,16 +377,14 @@ class NodeManagement extends LitElement {
} }
forceSyncPeer(peerAddress, rowIndex) { forceSyncPeer(peerAddress, rowIndex) {
parentEpml parentEpml.request("apiCall", {
.request("apiCall", { url: `/admin/forcesync?apiKey=${this.getApiKey()}`,
url: `/admin/forcesync?apiKey=${this.getApiKey()}`, method: "POST",
method: "POST", body: peerAddress
body: peerAddress, }).then((res) => {
}) let snackString = get("nodepage.nchange25")
.then((res) => { parentEpml.request('showSnackBar', `${snackString}` + peerAddress)
let err3string = get("nodepage.nchange25") })
parentEpml.request('showSnackBar', `${err3string}` + peerAddress)
})
} }
removePeer(peerAddress, rowIndex) { removePeer(peerAddress, rowIndex) {
@ -422,11 +392,11 @@ class NodeManagement extends LitElement {
.request("apiCall", { .request("apiCall", {
url: `/peers?apiKey=${this.getApiKey()}`, url: `/peers?apiKey=${this.getApiKey()}`,
method: "DELETE", method: "DELETE",
body: peerAddress, body: peerAddress
}) })
.then((res) => { .then((res) => {
let err4string = get("nodepage.nchange26") let snackString = get("nodepage.nchange26")
parentEpml.request('showSnackBar', `${err4string}` + peerAddress) parentEpml.request('showSnackBar', `${snackString}` + peerAddress)
this.peers.splice(rowIndex, 1) this.peers.splice(rowIndex, 1)
}) })
} }
@ -438,8 +408,8 @@ class NodeManagement extends LitElement {
method: "GET" method: "GET"
}) })
.then((res) => { .then((res) => {
let err7string = get("nodepage.nchange32") let snackString = get("nodepage.nchange32")
parentEpml.request('showSnackBar', `${err7string}`) parentEpml.request('showSnackBar', `${snackString}`)
}) })
} }
@ -450,60 +420,70 @@ class NodeManagement extends LitElement {
method: "GET" method: "GET"
}) })
.then((res) => { .then((res) => {
let err7string = get("nodepage.nchange34") let snackString = get("nodepage.nchange34")
parentEpml.request('showSnackBar', `${err7string}`) parentEpml.request('showSnackBar', `${snackString}`)
}) })
} }
onPageNavigation(pageUrl) { async addPeer() {
parentEpml.request("setPageUrl", pageUrl)
}
addPeer(e) {
this.addPeerLoading = true this.addPeerLoading = true
const addPeerAddress = this.shadowRoot.querySelector("#addPeerAddress").value const addPeerAddress = this.shadowRoot.getElementById('addPeerAddress').value
console.log("ADDRESS", addPeerAddress)
parentEpml await parentEpml.request("apiCall", {
.request("apiCall", { url: `/peers?apiKey=${this.getApiKey()}`,
url: `/peers?apiKey=${this.getApiKey()}`, method: "POST",
method: "POST", body: addPeerAddress
body: addPeerAddress, }).then((res) => {
}) console.log("RES", res)
.then((res) => { if (res === true) {
this.addPeerMessage = res.message let trueString = get("walletpage.wchange52")
parentEpml.request('showSnackBar', `${trueString}`)
this.addPeerLoading = false this.addPeerLoading = false
}) this.shadowRoot.getElementById('addPeerAddress').value = ''
this.shadowRoot.getElementById('addPeerDialog').close()
} else if (res === false || res.error === 123) {
let falseString = get("tabmenu.tm41")
parentEpml.request('showSnackBar', `${falseString}`)
this.addPeerLoading = false
}
})
} }
addMintingAccount(e) { closeAddPeerDialog() {
this.addPeerLoading = false
this.shadowRoot.getElementById('addPeerAddress').value = ''
this.shadowRoot.getElementById('addPeerDialog').close()
}
addMintingAccount() {
this.addMintingAccountLoading = true this.addMintingAccountLoading = true
this.addMintingAccountMessage = "Loading..." this.addMintingAccountMessage = "Loading..."
this.addMintingAccountKey = this.shadowRoot.querySelector("#addMintingAccountKey").value this.addMintingAccountKey = this.shadowRoot.querySelector("#addMintingAccountKey").value
parentEpml parentEpml.request("apiCall", {
.request("apiCall", { url: `/admin/mintingaccounts?apiKey=${this.getApiKey()}`,
url: `/admin/mintingaccounts?apiKey=${this.getApiKey()}`, method: "POST",
method: "POST", body: this.addMintingAccountKey
body: this.addMintingAccountKey, }).then((res) => {
}) if (res === true) {
.then((res) => { this.updateMintingAccounts()
if (res === true) { this.addMintingAccountKey = ""
this.updateMintingAccounts() this.addMintingAccountMessage = this.renderErr1Text()
this.addMintingAccountKey = "" this.addMintingAccountLoading = false
this.addMintingAccountMessage = this.renderErr1Text() } else {
this.addMintingAccountLoading = false this.addMintingAccountKey = ""
} else { this.addMintingAccountMessage = this.renderErr2Text() // Corrected an error here thanks to crow (-_-)
this.addMintingAccountKey = "" this.addMintingAccountLoading = false
this.addMintingAccountMessage = this.renderErr2Text() // Corrected an error here thanks to crow (-_-) }
this.addMintingAccountLoading = false })
}
})
} }
updateMintingAccounts() { updateMintingAccounts() {
this.mintingAccounts = [] this.mintingAccounts = []
parentEpml.request("apiCall", { url: `/admin/mintingaccounts` }).then((res) => { parentEpml.request("apiCall", {
url: `/admin/mintingaccounts`
}).then((res) => {
this.mintingAccounts = res this.mintingAccounts = res
}) })
} }
@ -514,17 +494,17 @@ class NodeManagement extends LitElement {
parentEpml.request("apiCall", { parentEpml.request("apiCall", {
url: `/admin/mintingaccounts?apiKey=${this.getApiKey()}`, url: `/admin/mintingaccounts?apiKey=${this.getApiKey()}`,
method: "DELETE", method: "DELETE",
body: publicKey, body: publicKey
}).then((res) => { }).then((res) => {
if (res === true) { if (res === true) {
this.updateMintingAccounts() this.updateMintingAccounts()
this.removeMintingAccountLoading = false this.removeMintingAccountLoading = false
let err5string = get("nodepage.nchange29") let snackString = get("nodepage.nchange29")
parentEpml.request('showSnackBar', `${err5string}`) parentEpml.request('showSnackBar', `${snackString}`)
} else { } else {
this.removeMintingAccountLoading = false this.removeMintingAccountLoading = false
let err6string = get("nodepage.nchange30") let snackString = get("nodepage.nchange30")
parentEpml.request('showSnackBar', `${err6string}`) parentEpml.request('showSnackBar', `${snackString}`)
} }
}) })
} }