4
1
mirror of https://github.com/Qortal/qortal-ui.git synced 2025-02-16 04:05:48 +00:00

finish sponsor plugin

This commit is contained in:
AlphaX-Projects 2022-09-06 13:30:55 +02:00
parent 4826f2d48e
commit c19ea6af4e
19 changed files with 131 additions and 152 deletions

View File

@ -661,6 +661,7 @@
"schange17":"In die Zwischenablage kopiert", "schange17":"In die Zwischenablage kopiert",
"schange18":"Warnung: Verlassen Sie dieses Plugin nicht und schließen Sie die Qortal-Benutzeroberfläche nicht, bis es fertig ist!", "schange18":"Warnung: Verlassen Sie dieses Plugin nicht und schließen Sie die Qortal-Benutzeroberfläche nicht, bis es fertig ist!",
"schange19":"Sponsoring-Schlüssel kopieren", "schange19":"Sponsoring-Schlüssel kopieren",
"schange20":"Beziehung schaffen" "schange20":"Beziehung schaffen",
"schange21":"Sponsoring-Schlüssel entfernen"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copiado al portapapeles", "schange17":"Copiado al portapapeles",
"schange18":"Advertencia: ¡no deje este complemento ni cierre la interfaz de usuario de Qortal hasta que finalice!", "schange18":"Advertencia: ¡no deje este complemento ni cierre la interfaz de usuario de Qortal hasta que finalice!",
"schange19":"Copiar clave de patrocinio", "schange19":"Copiar clave de patrocinio",
"schange20":"Creando relación" "schange20":"Creando relación",
"schange21":"Eliminar clave de patrocinio"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copié dans le presse-papier", "schange17":"Copié dans le presse-papier",
"schange18":"Attention : ne quittez pas ce plugin ou ne fermez pas l'interface utilisateur de Qortal jusqu'à ce qu'il soit terminé !", "schange18":"Attention : ne quittez pas ce plugin ou ne fermez pas l'interface utilisateur de Qortal jusqu'à ce qu'il soit terminé !",
"schange19":"Copier la clé de parrainage", "schange19":"Copier la clé de parrainage",
"schange20":"Créer une relation" "schange20":"Créer une relation",
"schange21":"Supprimer la clé de parrainage"
} }
} }

View File

@ -662,6 +662,7 @@
"schange17":"क्लिपबोर्ड पर नकल", "schange17":"क्लिपबोर्ड पर नकल",
"schange18":"चेतावनी: इस प्लगइन को न छोड़ें या पूरा होने तक Qortal UI को बंद न करें!", "schange18":"चेतावनी: इस प्लगइन को न छोड़ें या पूरा होने तक Qortal UI को बंद न करें!",
"schange19":"कॉपी प्रायोजन कुंजी", "schange19":"कॉपी प्रायोजन कुंजी",
"schange20":"संबंध बनाना" "schange20":"संबंध बनाना",
"schange21":"प्रायोजन कुंजी हटाएं"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Kopirano u međuspremnik", "schange17":"Kopirano u međuspremnik",
"schange18":"Upozorenje: nemojte napuštati ovaj dodatak niti zatvarati Qortal UI do završetka!", "schange18":"Upozorenje: nemojte napuštati ovaj dodatak niti zatvarati Qortal UI do završetka!",
"schange19":"Kopiraj ključ sponzorstva", "schange19":"Kopiraj ključ sponzorstva",
"schange20":"Stvaranje odnosa" "schange20":"Stvaranje odnosa",
"schange21":"Ukloni sponzorski ključ"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Vágólapra másolva", "schange17":"Vágólapra másolva",
"schange18":"Figyelmeztetés: ne hagyja el ezt a beépülő modult, és ne zárja be a Qortal felhasználói felületet a befejezésig!", "schange18":"Figyelmeztetés: ne hagyja el ezt a beépülő modult, és ne zárja be a Qortal felhasználói felületet a befejezésig!",
"schange19":"Szponzori kulcs másolása", "schange19":"Szponzori kulcs másolása",
"schange20":"Kapcsolatteremtés" "schange20":"Kapcsolatteremtés",
"schange21":"Szponzori kulcs távolítsa"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copiato negli appunti", "schange17":"Copiato negli appunti",
"schange18":"Attenzione: non abbandonare questo plugin o chiudere l'interfaccia utente di Qortal fino al completamento!", "schange18":"Attenzione: non abbandonare questo plugin o chiudere l'interfaccia utente di Qortal fino al completamento!",
"schange19":"Copia la chiave di sponsorizzazione", "schange19":"Copia la chiave di sponsorizzazione",
"schange20":"Creare relazione" "schange20":"Creare relazione",
"schange21":"Rimuovi la chiave di sponsorizzazione"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"클립보드에 복사됨", "schange17":"클립보드에 복사됨",
"schange18":"경고: 완료될 때까지 이 플러그인을 종료하거나 Qortal UI를 닫지 마십시오!", "schange18":"경고: 완료될 때까지 이 플러그인을 종료하거나 Qortal UI를 닫지 마십시오!",
"schange19":"후원 키 복사", "schange19":"후원 키 복사",
"schange20":"관계 만들기" "schange20":"관계 만들기",
"schange21":"후원 키 제거"
} }
} }

View File

@ -656,6 +656,7 @@
"schange17":"Kopiert til utklippstavlen", "schange17":"Kopiert til utklippstavlen",
"schange18":"Advarsel: ikke forlat denne plugin-en eller lukk Qortal-grensesnittet før det er fullført!", "schange18":"Advarsel: ikke forlat denne plugin-en eller lukk Qortal-grensesnittet før det er fullført!",
"schange19":"Kopier sponsornøkkel", "schange19":"Kopier sponsornøkkel",
"schange20":"Skaper forhold" "schange20":"Skaper forhold",
"schange21":"Fjern sponsornøkkel"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Skopiowane do schowka", "schange17":"Skopiowane do schowka",
"schange18":"Ostrzeżenie: nie opuszczaj tej wtyczki ani nie zamykaj interfejsu użytkownika Qortal do czasu zakończenia!", "schange18":"Ostrzeżenie: nie opuszczaj tej wtyczki ani nie zamykaj interfejsu użytkownika Qortal do czasu zakończenia!",
"schange19":"Kopiuj klucz sponsorski", "schange19":"Kopiuj klucz sponsorski",
"schange20":"Tworzenie relacji" "schange20":"Tworzenie relacji",
"schange21":"Usuń klucz sponsorsk"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copiado para a área de transferência", "schange17":"Copiado para a área de transferência",
"schange18":"Aviso: não saia deste plugin ou feche a interface do usuário do Qortal até a conclusão!", "schange18":"Aviso: não saia deste plugin ou feche a interface do usuário do Qortal até a conclusão!",
"schange19":"Copiar chave de patrocínio", "schange19":"Copiar chave de patrocínio",
"schange20":"Criando relacionamento" "schange20":"Criando relacionamento",
"schange21":"Remover chave de patrocínio"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copiat în clipboard", "schange17":"Copiat în clipboard",
"schange18":"Atentie: nu lasati acest plugin si nu închideti interfata Qortal pâna la finalizare!", "schange18":"Atentie: nu lasati acest plugin si nu închideti interfata Qortal pâna la finalizare!",
"schange19":"Copiati cheia de sponsorizare", "schange19":"Copiati cheia de sponsorizare",
"schange20":"Crearea unei relatii" "schange20":"Crearea unei relatii",
"schange21":"Eliminati cheia de sponsorizare"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Kopirano u međuspremnik", "schange17":"Kopirano u međuspremnik",
"schange18":"Upozorenje: ne napuštajte ovaj dodatak ili zatvarajte Kortal UI dok se ne završi!", "schange18":"Upozorenje: ne napuštajte ovaj dodatak ili zatvarajte Kortal UI dok se ne završi!",
"schange19":"Kopiraj sponzorski ključ", "schange19":"Kopiraj sponzorski ključ",
"schange20":"Stvaranje odnosa" "schange20":"Stvaranje odnosa",
"schange21":"Uklonite sponzorski ključ"
} }
} }

View File

@ -656,6 +656,7 @@
"schange17":"Скопировано в буфер обмена", "schange17":"Скопировано в буфер обмена",
"schange18":"Предупреждение: не покидайте этот плагин и не закрывайте пользовательский интерфейс Qortal до завершения!", "schange18":"Предупреждение: не покидайте этот плагин и не закрывайте пользовательский интерфейс Qortal до завершения!",
"schange19":"Копировать спонсорский ключ", "schange19":"Копировать спонсорский ключ",
"schange20":"Создание отношений" "schange20":"Создание отношений",
"schange21":"Удалить спонсорский ключ"
} }
} }

View File

@ -661,6 +661,7 @@
"schange17":"Copied to clipboard", "schange17":"Copied to clipboard",
"schange18":"Warning: do not leave this plugin or close the Qortal UI until completion!", "schange18":"Warning: do not leave this plugin or close the Qortal UI until completion!",
"schange19":"Copy Sponsorship Key", "schange19":"Copy Sponsorship Key",
"schange20":"Creating relationship" "schange20":"Creating relationship",
"schange21":"Remove Sponsorship Key"
} }
} }

View File

@ -651,16 +651,17 @@
"schange7":"已完成", "schange7":"已完成",
"schange8":"钱包地址", "schange8":"钱包地址",
"schange9":"您目前没有有效的赞助记录", "schange9":"您目前没有有效的赞助记录",
"schange10":"搜寻共密钥", "schange10":"公钥查找",
"schange11":"复制", "schange11":"复制",
"schange12":"钱包地址公共密钥转换器", "schange12":"地址公钥转换器",
"schange13":"输入钱包地址", "schange13":"输入地址",
"schange14":"处理中", "schange14":"进行中",
"schange15":"即将完成", "schange15":"整理起来",
"schange16":"复制下面的铸币密钥并分享给被赞助的人。", "schange16":"复制下面的密钥并与您的赞助人分享。",
"schange17":"已复制到剪贴板", "schange17":"已复制到剪贴板",
"schange18":"警告:在完成之前不要离开这个页面或关闭 Qortal UI", "schange18":"警告:在完成之前不要离开这个插件或关闭 Qortal UI",
"schange19":"复制赞助密钥", "schange19":"复制赞助密钥",
"schange20":"建立赞助" "schange20":"建立关系",
"schange21":"删除赞助密钥"
} }
} }

View File

@ -651,16 +651,17 @@
"schange7":"已完成", "schange7":"已完成",
"schange8":"錢包地址", "schange8":"錢包地址",
"schange9":"您目前沒有有效的贊助記錄", "schange9":"您目前沒有有效的贊助記錄",
"schange10":"搜尋共密鑰", "schange10":"公鑰查找",
"schange11":"複製", "schange11":"複製",
"schange12":"錢包地址公共密鑰轉換器", "schange12":"地址公鑰轉換器",
"schange13":"輸入錢包地址", "schange13":"輸入地址",
"schange14":"處理中", "schange14":"進行中",
"schange15":"即將完成", "schange15":"整理起來",
"schange16":"複製下面的鑄幣密鑰並分享給被贊助的人。", "schange16":"複製下面的密鑰並與您的讚助人分享。",
"schange17":"已復製到剪貼板", "schange17":"已復製到剪貼板",
"schange18":"警告:在完成之前不要離開這個頁面或關閉 Qortal UI", "schange18":"警告:在完成之前不要離開這個插件或關閉 Qortal UI",
"schange19":"複製贊助密鑰", "schange19":"複製贊助密鑰",
"schange20":"建立贊助" "schange20":"建立關係",
"schange21":"刪除贊助密鑰"
} }
} }

View File

@ -26,8 +26,8 @@ export const pageStyles = css`
.avatar-img { .avatar-img {
border-radius: 50%; border-radius: 50%;
height: 20px; height: 24px;
width: 20px; width: 24px;
margin-right: 10px; margin-right: 10px;
} }
@ -53,7 +53,7 @@ export const pageStyles = css`
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
width: 95%; width: 95%;
max-width: 1100px; max-width: 1024px;
} }
.message-error { .message-error {
@ -212,8 +212,7 @@ export const pageStyles = css`
.smallLoading { .smallLoading {
border-width: 0.6em; border-width: 0.6em;
border-style: solid; border-style: solid;
border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
font-size: 10px; font-size: 10px;
position: relative; position: relative;
text-indent: -9999em; text-indent: -9999em;
@ -232,8 +231,7 @@ export const pageStyles = css`
margin: 10px auto; margin: 10px auto;
border-width: 0.6em; border-width: 0.6em;
border-style: solid; border-style: solid;
border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) border-color: rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
rgba(3, 169, 244, 0.2) rgb(3, 169, 244);
font-size: 10px; font-size: 10px;
position: relative; position: relative;
text-indent: -9999em; text-indent: -9999em;
@ -265,23 +263,16 @@ export const pageStyles = css`
.tableGrid { .tableGrid {
display: grid; display: grid;
grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax( grid-template-columns: minmax(0, 3fr) minmax(0, 1fr) minmax(0, 2fr) minmax(0, 2fr);
0,
2fr
) minmax(0, 1fr);
align-items: center; align-items: center;
gap: 5px; gap: 5px;
width: 100%; width: 100%;
margin-bottom: 15px; margin-bottom: 15px;
padding: 5px; padding: 5px;
} }
.header { .header {
align-self: flex-start; align-self: flex-start;
} }
.header p { .header p {
@ -314,11 +305,16 @@ export const pageStyles = css`
font-weight: bold; font-weight: bold;
} }
.text--bold--green {
font-weight: bold;
color: var(--paper-green-500);
}
.summary-box { .summary-box {
display: flex; display: inline;
text-align: center;
margin-top: 25px; margin-top: 25px;
width: 100%; width: 100%;
flex-wrap: wrap;
} }
.publicKeyLookupBtn { .publicKeyLookupBtn {
@ -327,10 +323,6 @@ export const pageStyles = css`
right: 15px; right: 15px;
} }
.summary-box p:first-child {
margin-right: 30px;
}
.text--normal { .text--normal {
font-weight: normal; font-weight: normal;
} }

View File

@ -164,19 +164,13 @@ class SponsorshipList extends LitElement {
this.changeLanguage() this.changeLanguage()
this.addressInfo = this.addressInfo = window.parent.reduxStore.getState().app.accountInfo.addressInfo
window.parent.reduxStore.getState().app.accountInfo.addressInfo
this.isPageLoading = true this.isPageLoading = true
try { try {
const address = const address = window.parent.reduxStore.getState().app?.selectedAddress?.address
window.parent.reduxStore.getState().app?.selectedAddress
?.address
let rewardShares = await this.getRewardShareRelationship(address)
let rewardShares = await this.getRewardShareRelationship(
address
)
rewardShares = rewardShares.filter((rs) => rs.recipient !== address) rewardShares = rewardShares.filter((rs) => rs.recipient !== address)
@ -198,8 +192,6 @@ class SponsorshipList extends LitElement {
url = urlPic url = urlPic
} }
let blocksRemaining = this._levelUpBlocks(addressInfo) let blocksRemaining = this._levelUpBlocks(addressInfo)
blocksRemaining = +blocksRemaining > 0 ? +blocksRemaining : 0 blocksRemaining = +blocksRemaining > 0 ? +blocksRemaining : 0
return { return {
@ -210,12 +202,15 @@ class SponsorshipList extends LitElement {
blocksRemaining: blocksRemaining, blocksRemaining: blocksRemaining,
} }
}) })
const accountInfoValues = await Promise.all(getAccountInfo) const accountInfoValues = await Promise.all(getAccountInfo)
this.sponsorships = accountInfoValues this.sponsorships = accountInfoValues
this.nextSponsorshipEnding = accountInfoValues this.nextSponsorshipEnding = accountInfoValues
.filter((sponsorship) => sponsorship.blocksRemaining !== 0) .filter((sponsorship) => sponsorship.blocksRemaining !== 0)
.sort((a, b) => a.blocksRemaining - b.blocksRemaining)[0] .sort((a, b) => a.blocksRemaining - b.blocksRemaining)[0]
this.isPageLoading = false this.isPageLoading = false
const openModal = accountInfoValues.find(s=> s.blocksRemaining <= 0) const openModal = accountInfoValues.find(s=> s.blocksRemaining <= 0)
@ -239,7 +234,6 @@ class SponsorshipList extends LitElement {
type: "api", type: "api",
url: `/addresses/rewardshares?minters=${recipientAddress}`, url: `/addresses/rewardshares?minters=${recipientAddress}`,
}) })
return myRewardShareArray return myRewardShareArray
} }
@ -328,17 +322,14 @@ class SponsorshipList extends LitElement {
return return
} }
this.privateRewardShareKey = "" this.privateRewardShareKey = ""
this.errorMessage = "" this.errorMessage = ""
const recipientPublicKey = publicKeyValue const recipientPublicKey = publicKeyValue
const percentageShare = 0 const percentageShare = 0
const selectedAddress = const selectedAddress = window.parent.reduxStore.getState().app?.selectedAddress
window.parent.reduxStore.getState().app?.selectedAddress
// Check for valid... // Check for valid...
this.isLoadingCreateSponsorship = true this.isLoadingCreateSponsorship = true
// Get Last Ref // Get Last Ref
const getLastRef = async () => { const getLastRef = async () => {
let myRef = await parentEpml.request("apiCall", { let myRef = await parentEpml.request("apiCall", {
@ -357,8 +348,6 @@ class SponsorshipList extends LitElement {
return myAccountDetails return myAccountDetails
} }
// Validate Reward Share by Level // Validate Reward Share by Level
const validateReceiver = async () => { const validateReceiver = async () => {
let accountDetails let accountDetails
@ -417,13 +406,10 @@ class SponsorshipList extends LitElement {
} }
const getTxnRequestResponse = (txnResponse) => { 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.privateRewardShareKey = txnResponse?.extraData?.rewardSharePrivateKey
this.confirmRelationship(publicKeyValue, isCopy) this.confirmRelationship(publicKeyValue, isCopy)
} else if (txnResponse.success === false && txnResponse?.message) { } else if (txnResponse.success === false && txnResponse?.message) {
this.errorMessage = txnResponse?.message this.errorMessage = txnResponse?.message
this.isLoadingCreateSponsorship = false this.isLoadingCreateSponsorship = false
throw(txnResponse?.message) throw(txnResponse?.message)
@ -431,19 +417,15 @@ class SponsorshipList extends LitElement {
txnResponse.success === true && txnResponse.success === true &&
!txnResponse.data.error !txnResponse.data.error
) { ) {
this.privateRewardShareKey = txnResponse?.extraData?.rewardSharePrivateKey this.privateRewardShareKey = txnResponse?.extraData?.rewardSharePrivateKey
this.confirmRelationship(publicKeyValue, isCopy) this.confirmRelationship(publicKeyValue, isCopy)
} else { } else {
this.errorMessage = txnResponse?.data?.message || txnResponse?.message this.errorMessage = txnResponse?.data?.message || txnResponse?.message
this.isLoadingCreateSponsorship = false this.isLoadingCreateSponsorship = false
throw(txnResponse?.data?.message || txnResponse?.message) throw(txnResponse?.data?.message || txnResponse?.message)
} }
} }
validateReceiver() validateReceiver()
} }
async confirmRelationship(recipientPublicKey, isCopy){ async confirmRelationship(recipientPublicKey, isCopy){
@ -520,7 +502,7 @@ class SponsorshipList extends LitElement {
${translate("mintingpage.mchange35")} ${translate("mintingpage.mchange35")}
</h1> </h1>
<div class="fullWidth"> <div class="fullWidth">
<hr class="divider" /> <hr class="divider">
</div> </div>
<div class="inner-container"> <div class="inner-container">
${this.sponsorships.length === 0 ? html` ${this.sponsorships.length === 0 ? html`
@ -528,8 +510,7 @@ class SponsorshipList extends LitElement {
<p>${translate("sponsorshipspage.schange9")}</p> <p>${translate("sponsorshipspage.schange9")}</p>
</div> </div>
` : ''} ` : ''}
${this.sponsorships.length > 0 ? ${this.sponsorships.length > 0 ? html`
html`
<div class="sub-title"> <div class="sub-title">
<p>${translate("sponsorshipspage.schange1")}</p> <p>${translate("sponsorshipspage.schange1")}</p>
</div> </div>
@ -540,21 +521,16 @@ class SponsorshipList extends LitElement {
<div class="grid-item header"> <div class="grid-item header">
<p>${translate("walletprofile.blocksminted")}</p> <p>${translate("walletprofile.blocksminted")}</p>
</div> </div>
<div class="grid-item header"> <div class="grid-item header">
<p>${translate("becomeMinterPage.bchange17")}</p> <p>${translate("sponsorshipspage.schange19")}</p>
</div> </div>
<div class="grid-item header"> <div class="grid-item header">
<p>${translate("sponsorshipspage.schange21")}</p>
</div> </div>
</div> </div>
${this.sponsorships.map( ${this.sponsorships.map((sponsorship) => html`
(sponsorship) => html`
<ul class="tableGrid"> <ul class="tableGrid">
<li class="grid-item"> <li class="grid-item">
<p class="grid-item-text">
${translate("settings.account")}
</p>
<div class="name-container"> <div class="name-container">
${sponsorship?.name ? html` ${sponsorship?.name ? html`
<img src=${sponsorship.url} <img src=${sponsorship.url}
@ -566,16 +542,10 @@ class SponsorshipList extends LitElement {
</div> </div>
</li> </li>
<li class="grid-item"> <li class="grid-item">
<p class="grid-item-text">
${translate("walletprofile.blocksminted")}
</p>
${+sponsorship.blocksMinted + ${+sponsorship.blocksMinted +
+sponsorship.blocksMintedAdjustment} +sponsorship.blocksMintedAdjustment}
</li> </li>
<li class="grid-item"> <li class="grid-item">
<p class="grid-item-text">
${translate("sponsorshipspage.schange19")}
</p>
<mwc-button <mwc-button
@click=${()=> {this.createRewardShare(sponsorship?.publicKey, true)}} @click=${()=> {this.createRewardShare(sponsorship?.publicKey, true)}}
> >
@ -592,27 +562,25 @@ class SponsorshipList extends LitElement {
</mwc-button> </mwc-button>
</li> </li>
</ul> </ul>
` `)}
)}
<div class="summary-box"> <div class="summary-box">
<p class="text text--bold"> <p class="text text--bold">
${translate("sponsorshipspage.schange3")} = ${translate("sponsorshipspage.schange3")}&nbsp;
<span class="text text--normal"> <span class="text text--bold--green">
${this.sponsorships.length} ${this.sponsorships.length}
</span> </span>
</p> </p>
<p class="text text--bold"> <p class="text text--bold">
${translate("sponsorshipspage.schange4")} = ${translate("sponsorshipspage.schange4")}&nbsp;
<span class="text text--normal"> <span class="text text--bold--green">
${this.nextSponsorshipEnding ${this.nextSponsorshipEnding
?.blocksRemaining} ?.blocksRemaining}&nbsp;
${translate("mintingpage.mchange26")}
</span> </span>
${translate("mintingpage.mchange26")}
</p> </p>
</div> </div>
` ` : ''}
: ''}
<p class="message-error">${this.errorMessage}</p> <p class="message-error">${this.errorMessage}</p>
<div class="form-wrapper"> <div class="form-wrapper">
<div class="sponsor-minter-wrapper"> <div class="sponsor-minter-wrapper">
@ -630,6 +598,7 @@ class SponsorshipList extends LitElement {
> >
</mwc-textfield> </mwc-textfield>
</div> </div>
<div class="form-item form-item--button"> <div class="form-item form-item--button">
<vaadin-button <vaadin-button
theme="primary" theme="primary"
@ -639,6 +608,7 @@ class SponsorshipList extends LitElement {
${translate("puzzlepage.pchange15")} ${translate("puzzlepage.pchange15")}
</vaadin-button> </vaadin-button>
</div> </div>
<div class="publicKeyLookupBtn"> <div class="publicKeyLookupBtn">
<vaadin-button <vaadin-button
theme="primary" theme="primary"