Add missing files become-minter

This commit is contained in:
AlphaX-Projects 2024-05-08 13:21:29 +02:00 committed by GitHub
parent fa29ff4c43
commit a66d945ed4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 269 additions and 0 deletions

View File

@ -0,0 +1,144 @@
import { html, LitElement } from 'lit'
import { Epml } from '../../../epml'
import { becomeMinterStyles } from '../components/plugins-css'
import '../components/ButtonIconCopy'
import '@material/mwc-button'
import '@material/mwc-textfield'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@vaadin/button'
// Multi language support
import { translate } from '../../../../core/translate'
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
class NotSponsored extends LitElement {
static properties = {
atMount: { type: Function },
isLoadingSponsorshipKeySubmit: { type: Boolean },
sponsorshipKeyValue: { type: String },
addMintingAccountMessage: { type: String }
}
static get styles() {
return [becomeMinterStyles]
}
constructor() {
super()
this.isLoadingSponsorshipKeySubmit = false
this.sponsorshipKeyValue = ''
this.addMintingAccountMessage = ''
this.atMount = () => {}
}
render() {
return html`
<div class="inner-container">
<div class="sub-main">
<h2 class="level-black">
${translate('mintingpage.mchange33')}
</h2>
<p class="description">
${translate('mintingpage.mchange34')}
</p>
<h2 class="level-black">
${translate('mintingpage.mchange35')}
</h2>
<p class="description">
${translate('mintingpage.mchange36')}
</p>
<p class="description">
${translate('mintingpage.mchange37')}
</p>
<p class="message">${this.addMintingAccountMessage}</p>
<div class="form-wrapper">
<div class="form-item form-item--input">
<mwc-textfield
?disabled="${this
.isLoadingSponsorshipKeySubmit}"
label="${translate('becomeMinterPage.bchange8')}"
id="addSponsorshipKey"
@input="${this.inputHandler}"
.value="${this.sponsorshipKeyValue || ''}"
fullWidth
>
</mwc-textfield>
</div>
<div class="form-item form-item--button">
<vaadin-button
theme="primary"
?disabled="${this.isLoadingSponsorshipKeySubmit}"
@click="${this.addMintingAccount}"
>
${this.isLoadingSponsorshipKeySubmit === false ?
html`
${translate('puzzlepage.pchange15')}
`
: html`
<paper-spinner-lite active></paper-spinner-lite>
`
}
</vaadin-button>
</div>
</div>
</div>
</div>
`
}
firstUpdated() {
// ...
}
renderErr1Text() {
return html`${translate('nodepage.nchange27')}`
}
renderErr2Text() {
return html`${translate('nodepage.nchange28')}`
}
addMintingAccount(e) {
this.isLoadingSponsorshipKeySubmit = true
this.addMintingAccountMessage = 'Loading...'
parentEpml.request('apiCall', {
url: `/admin/mintingaccounts?apiKey=${this.getApiKey()}`,
method: 'POST',
body: this.sponsorshipKeyValue
}).then((res) => {
if (res === true) {
// refetch data
this.atMount()
this.sponsorshipKeyValue = ''
this.addMintingAccountMessage = this.renderErr1Text()
this.isLoadingSponsorshipKeySubmit = false
} else {
this.sponsorshipKeyValue = ''
this.addMintingAccountMessage = this.renderErr2Text()
this.isLoadingSponsorshipKeySubmit = false
}
})
}
inputHandler(e) {
this.sponsorshipKeyValue = e.target.value
}
// Standard functions
getApiKey() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
return myNode.apiKey
}
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
}
round(number) {
return (Math.round(parseFloat(number) * 1e8) / 1e8).toFixed(8)
}
}
window.customElements.define('not-sponsored', NotSponsored)

View File

@ -0,0 +1,125 @@
import { html, LitElement } from 'lit'
import { blocksNeed } from '../../utils/functions'
import { becomeMinterStyles } from '../components/plugins-css'
import '../components/ButtonIconCopy'
import '@material/mwc-button'
import '@material/mwc-textfield'
import '@polymer/paper-spinner/paper-spinner-lite.js'
import '@vaadin/button'
// Multi language support
import { translate } from '../../../../core/translate'
class YesSponsored extends LitElement {
static get properties() {
return {
addressInfo: { type: Object },
rewardSharePublicKey: { type: String },
isMinting: {type: Boolean}
}
}
static get styles() {
return [becomeMinterStyles]
}
constructor() {
super()
this.addressInfo = {}
this.rewardSharePublicKey = ''
this.isMinting = false
}
render() {
return html`
<div class="inner-container">
<div class="column column-center">
<div class="column column-center">
<span class="level-black">
${translate('becomeMinterPage.bchange10')}
</span>
<hr style="width: 75%; color: #eee; border-radius: 80%; margin-bottom: 2rem;">
</div>
<br />
<div class="row row-center gap">
<div class="content-box">
<span class="title">
${translate('walletpage.wchange41')}
</span>
<hr style="color: #eee; border-radius: 90%; margin-bottom: 1rem;">
${this.isMinting ? html`
<h4>${translate('becomeMinterPage.bchange12')}</h4>
` : html`
<h4>${translate('mintingpage.mchange9')}</h4>
`}
</div>
</div>
<div class="row row-center gap">
<div class="content-box">
<span class="title">
${translate('becomeMinterPage.bchange13')}
</span>
<hr style="color: #eee; border-radius: 90%; margin-bottom: 1rem;">
<h4>
${this._levelUpBlocks()}
${translate('mintingpage.mchange26')}
</h4>
</div>
</div>
<div class="row row-center gap">
<div class="content-box">
<span class="title">
${translate('becomeMinterPage.bchange15')}
</span>
<hr style="color: #eee; border-radius: 90%; margin-bottom: 1rem;">
<h4 class="no-margin">
${translate('becomeMinterPage.bchange16')}
</h4>
<div class="row row-center column-center no-wrap">
<p class="address">
${this.rewardSharePublicKey}
</p>
<button-icon-copy
title="${translate('walletpage.wchange3')}"
onSuccessMessage="${translate('walletpage.wchange4')}"
onErrorMessage="${translate('walletpage.wchange39')}"
textToCopy=${this.rewardSharePublicKey}
buttonSize="28px"
iconSize="16px"
color="var(--copybutton)"
offsetLeft="4px"
>
</button-icon-copy>
</div>
</div>
</div>
</div>
</div>
`
}
firstUpdated() {
// ...
}
_levelUpBlocks() {
return (blocksNeed(0) - (this.addressInfo?.blocksMinted + this.addressInfo?.blocksMintedAdjustment)).toString()
}
// Standard functions
getApiKey() {
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
return myNode.apiKey
}
isEmptyArray(arr) {
if (!arr) { return true }
return arr.length === 0
}
round(number) {
return (Math.round(parseFloat(number) * 1e8) / 1e8).toFixed(8)
}
}
window.customElements.define('yes-sponsored', YesSponsored)