mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-04-28 05:47:52 +00:00
Translate Wallet Page
This commit is contained in:
parent
7cfb91c384
commit
77f625127a
@ -122,7 +122,6 @@
|
|||||||
"continue": "繼續",
|
"continue": "繼續",
|
||||||
"save": "節省"
|
"save": "節省"
|
||||||
},
|
},
|
||||||
"mintingpage": {
|
|
||||||
"mintingpage": {
|
"mintingpage": {
|
||||||
"mchange1": "General Minting Details",
|
"mchange1": "General Minting Details",
|
||||||
"mchange2": "Blockchain Statistics",
|
"mchange2": "Blockchain Statistics",
|
||||||
@ -162,5 +161,49 @@
|
|||||||
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
||||||
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Fetching balance ...",
|
||||||
|
"wchange2": "Current Wallet",
|
||||||
|
"wchange3": "Copy wallet address to clipboard",
|
||||||
|
"wchange4": "Address copied to clipboard",
|
||||||
|
"wchange5": "Transaction Details",
|
||||||
|
"wchange6": "Transaction Type",
|
||||||
|
"wchange7": "OUT",
|
||||||
|
"wchange8": "IN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Receiver",
|
||||||
|
"wchange11": "Amount",
|
||||||
|
"wchange12": "Transaction Fee",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Time",
|
||||||
|
"wchange15": "Transaction Signature",
|
||||||
|
"wchange16": "Transaction Hash",
|
||||||
|
"wchange17": "Send",
|
||||||
|
"wchange18": "From address",
|
||||||
|
"wchange19": "Available balance",
|
||||||
|
"wchange20": "To (address or name)",
|
||||||
|
"wchange21": "Current static fee:",
|
||||||
|
"wchange22": "Wallets",
|
||||||
|
"wchange23": "To (address)",
|
||||||
|
"wchange24": "Current fee per byte",
|
||||||
|
"wchange25": "Low fees may result in slow or unconfirmed transactions.",
|
||||||
|
"wchange26": "Insufficient Funds!",
|
||||||
|
"wchange27": "Invalid Amount!",
|
||||||
|
"wchange28": "Receiver cannot be empty!",
|
||||||
|
"wchange29": "Inalid Receiver!",
|
||||||
|
"wchange30": "Transaction Successful!",
|
||||||
|
"wchange31": "Transaction Failed!",
|
||||||
|
"wchange32": "Failed to Fetch QORT Balance. Try again!",
|
||||||
|
"wchange33": "Failed to Fetch",
|
||||||
|
"wchange34": "Balance. Try again!",
|
||||||
|
"wchange35": "Type",
|
||||||
|
"wchange36": "Fee",
|
||||||
|
"wchange37": "Total Amount",
|
||||||
|
"wchange38": "Address has no transactions yet.",
|
||||||
|
"wchange39": "Unable to copy address.",
|
||||||
|
"wchange40": "PAYMENT",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Confirmations"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -161,5 +161,49 @@
|
|||||||
"mchange36": "Ihr Sponsor stellt Ihnen einen „Sponsorship Key“ aus, den Sie zum Hinzufügen zu Ihrem Knoten verwenden und mit dem Prägen beginnen (keine Belohnungen bis zum Erreichen von Level 1). Sobald Sie Level 1 erreicht haben, erstellen/weisen Sie Ihren eigenen „Minting Key“ und Beginnen Sie mit dem Verdienen von Belohnungen. Sie haben noch XXXX-Blöcke in Ihrem Sponsoring-Zeitraum.",
|
"mchange36": "Ihr Sponsor stellt Ihnen einen „Sponsorship Key“ aus, den Sie zum Hinzufügen zu Ihrem Knoten verwenden und mit dem Prägen beginnen (keine Belohnungen bis zum Erreichen von Level 1). Sobald Sie Level 1 erreicht haben, erstellen/weisen Sie Ihren eigenen „Minting Key“ und Beginnen Sie mit dem Verdienen von Belohnungen. Sie haben noch XXXX-Blöcke in Ihrem Sponsoring-Zeitraum.",
|
||||||
"mchange37": "Wenden Sie sich einfach an einen Minter in Qortal, der hoch genug ist, um einen Sponsoring-Schlüssel auszustellen, erhalten Sie diesen Schlüssel, kommen Sie dann hierher zurück und geben Sie den Schlüssel ein, um Ihre Minting-Reise zu beginnen!",
|
"mchange37": "Wenden Sie sich einfach an einen Minter in Qortal, der hoch genug ist, um einen Sponsoring-Schlüssel auszustellen, erhalten Sie diesen Schlüssel, kommen Sie dann hierher zurück und geben Sie den Schlüssel ein, um Ihre Minting-Reise zu beginnen!",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Hole Kontostand ...",
|
||||||
|
"wchange2": "Aktuelle Brieftasche",
|
||||||
|
"wchange3": "Brieftaschenadresse in die Zwischenablage kopieren",
|
||||||
|
"wchange4": "Adresse in die Zwischenablage kopiert",
|
||||||
|
"wchange5": "Transaktionsdetails",
|
||||||
|
"wchange6": "Art der Transaktion",
|
||||||
|
"wchange7": "RAUS",
|
||||||
|
"wchange8": "REIN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Empfäner",
|
||||||
|
"wchange11": "Menge",
|
||||||
|
"wchange12": "Transaktionsgebühr",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Zeit",
|
||||||
|
"wchange15": "Transaktionssignatur",
|
||||||
|
"wchange16": "Transaktions-Hash",
|
||||||
|
"wchange17": "Sende",
|
||||||
|
"wchange18": "Von der Adresse",
|
||||||
|
"wchange19": "Verfügbares Guthaben",
|
||||||
|
"wchange20": "An (Adresse oder Name)",
|
||||||
|
"wchange21": "Aktuelle statische Gebühr",
|
||||||
|
"wchange22": "Geldbörsen",
|
||||||
|
"wchange23": "An (Adresse)",
|
||||||
|
"wchange24": "Aktuelle Gebühr pro Byte",
|
||||||
|
"wchange25": "Niedrige Gebühren können zu langsamen oder unbestätigten Transaktionen führen.",
|
||||||
|
"wchange26": "Unzureichendes Guthaben!",
|
||||||
|
"wchange27": "Ungültige Menge!",
|
||||||
|
"wchange28": "Empfänger darf nicht leer sein!",
|
||||||
|
"wchange29": "Ungültiger Empfänger!",
|
||||||
|
"wchange30": "Transaktion Erfolgreich!",
|
||||||
|
"wchange31": "Transaktion fehlgeschlagen!",
|
||||||
|
"wchange32": "QORT-Guthaben konnte nicht abgerufen werden. Versuchen Sie es nochmal!",
|
||||||
|
"wchange33": "Fehler beim Abrufen vom",
|
||||||
|
"wchange34": "Guthaben. Versuchen Sie es nochmal!",
|
||||||
|
"wchange35": "Typ",
|
||||||
|
"wchange36": "Gebühr",
|
||||||
|
"wchange37": "Gesamtsumme",
|
||||||
|
"wchange38": "Adresse hat noch keine Transaktionen.",
|
||||||
|
"wchange39": "Adresse kann nicht kopiert werden.",
|
||||||
|
"wchange40": "ZAHLUNG",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Bestätigungen"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -122,7 +122,6 @@
|
|||||||
"continue": "Continuez",
|
"continue": "Continuez",
|
||||||
"save": "Sauver"
|
"save": "Sauver"
|
||||||
},
|
},
|
||||||
"mintingpage": {
|
|
||||||
"mintingpage": {
|
"mintingpage": {
|
||||||
"mchange1": "General Minting Details",
|
"mchange1": "General Minting Details",
|
||||||
"mchange2": "Blockchain Statistics",
|
"mchange2": "Blockchain Statistics",
|
||||||
@ -162,5 +161,49 @@
|
|||||||
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
||||||
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Fetching balance ...",
|
||||||
|
"wchange2": "Current Wallet",
|
||||||
|
"wchange3": "Copy wallet address to clipboard",
|
||||||
|
"wchange4": "Address copied to clipboard",
|
||||||
|
"wchange5": "Transaction Details",
|
||||||
|
"wchange6": "Transaction Type",
|
||||||
|
"wchange7": "OUT",
|
||||||
|
"wchange8": "IN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Receiver",
|
||||||
|
"wchange11": "Amount",
|
||||||
|
"wchange12": "Transaction Fee",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Time",
|
||||||
|
"wchange15": "Transaction Signature",
|
||||||
|
"wchange16": "Transaction Hash",
|
||||||
|
"wchange17": "Send",
|
||||||
|
"wchange18": "From address",
|
||||||
|
"wchange19": "Available balance",
|
||||||
|
"wchange20": "To (address or name)",
|
||||||
|
"wchange21": "Current static fee:",
|
||||||
|
"wchange22": "Wallets",
|
||||||
|
"wchange23": "To (address)",
|
||||||
|
"wchange24": "Current fee per byte",
|
||||||
|
"wchange25": "Low fees may result in slow or unconfirmed transactions.",
|
||||||
|
"wchange26": "Insufficient Funds!",
|
||||||
|
"wchange27": "Invalid Amount!",
|
||||||
|
"wchange28": "Receiver cannot be empty!",
|
||||||
|
"wchange29": "Inalid Receiver!",
|
||||||
|
"wchange30": "Transaction Successful!",
|
||||||
|
"wchange31": "Transaction Failed!",
|
||||||
|
"wchange32": "Failed to Fetch QORT Balance. Try again!",
|
||||||
|
"wchange33": "Failed to Fetch",
|
||||||
|
"wchange34": "Balance. Try again!",
|
||||||
|
"wchange35": "Type",
|
||||||
|
"wchange36": "Fee",
|
||||||
|
"wchange37": "Total Amount",
|
||||||
|
"wchange38": "Address has no transactions yet.",
|
||||||
|
"wchange39": "Unable to copy address.",
|
||||||
|
"wchange40": "PAYMENT",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Confirmations"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -161,5 +161,49 @@
|
|||||||
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
||||||
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Fetching balance ...",
|
||||||
|
"wchange2": "Current Wallet",
|
||||||
|
"wchange3": "Copy wallet address to clipboard",
|
||||||
|
"wchange4": "Address copied to clipboard",
|
||||||
|
"wchange5": "Transaction Details",
|
||||||
|
"wchange6": "Transaction Type",
|
||||||
|
"wchange7": "OUT",
|
||||||
|
"wchange8": "IN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Receiver",
|
||||||
|
"wchange11": "Amount",
|
||||||
|
"wchange12": "Transaction Fee",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Time",
|
||||||
|
"wchange15": "Transaction Signature",
|
||||||
|
"wchange16": "Transaction Hash",
|
||||||
|
"wchange17": "Send",
|
||||||
|
"wchange18": "From address",
|
||||||
|
"wchange19": "Available balance",
|
||||||
|
"wchange20": "To (address or name)",
|
||||||
|
"wchange21": "Current static fee:",
|
||||||
|
"wchange22": "Wallets",
|
||||||
|
"wchange23": "To (address)",
|
||||||
|
"wchange24": "Current fee per byte",
|
||||||
|
"wchange25": "Low fees may result in slow or unconfirmed transactions.",
|
||||||
|
"wchange26": "Insufficient Funds!",
|
||||||
|
"wchange27": "Invalid Amount!",
|
||||||
|
"wchange28": "Receiver cannot be empty!",
|
||||||
|
"wchange29": "Inalid Receiver!",
|
||||||
|
"wchange30": "Transaction Successful!",
|
||||||
|
"wchange31": "Transaction Failed!",
|
||||||
|
"wchange32": "Failed to Fetch QORT Balance. Try again!",
|
||||||
|
"wchange33": "Failed to Fetch",
|
||||||
|
"wchange34": "Balance. Try again!",
|
||||||
|
"wchange35": "Type",
|
||||||
|
"wchange36": "Fee",
|
||||||
|
"wchange37": "Total Amount",
|
||||||
|
"wchange38": "Address has no transactions yet.",
|
||||||
|
"wchange39": "Unable to copy address.",
|
||||||
|
"wchange40": "PAYMENT",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Confirmations"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -161,5 +161,49 @@
|
|||||||
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
||||||
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Fetching balance ...",
|
||||||
|
"wchange2": "Current Wallet",
|
||||||
|
"wchange3": "Copy wallet address to clipboard",
|
||||||
|
"wchange4": "Address copied to clipboard",
|
||||||
|
"wchange5": "Transaction Details",
|
||||||
|
"wchange6": "Transaction Type",
|
||||||
|
"wchange7": "OUT",
|
||||||
|
"wchange8": "IN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Receiver",
|
||||||
|
"wchange11": "Amount",
|
||||||
|
"wchange12": "Transaction Fee",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Time",
|
||||||
|
"wchange15": "Transaction Signature",
|
||||||
|
"wchange16": "Transaction Hash",
|
||||||
|
"wchange17": "Send",
|
||||||
|
"wchange18": "From address",
|
||||||
|
"wchange19": "Available balance",
|
||||||
|
"wchange20": "To (address or name)",
|
||||||
|
"wchange21": "Current static fee:",
|
||||||
|
"wchange22": "Wallets",
|
||||||
|
"wchange23": "To (address)",
|
||||||
|
"wchange24": "Current fee per byte",
|
||||||
|
"wchange25": "Low fees may result in slow or unconfirmed transactions.",
|
||||||
|
"wchange26": "Insufficient Funds!",
|
||||||
|
"wchange27": "Invalid Amount!",
|
||||||
|
"wchange28": "Receiver cannot be empty!",
|
||||||
|
"wchange29": "Inalid Receiver!",
|
||||||
|
"wchange30": "Transaction Successful!",
|
||||||
|
"wchange31": "Transaction Failed!",
|
||||||
|
"wchange32": "Failed to Fetch QORT Balance. Try again!",
|
||||||
|
"wchange33": "Failed to Fetch",
|
||||||
|
"wchange34": "Balance. Try again!",
|
||||||
|
"wchange35": "Type",
|
||||||
|
"wchange36": "Fee",
|
||||||
|
"wchange37": "Total Amount",
|
||||||
|
"wchange38": "Address has no transactions yet.",
|
||||||
|
"wchange39": "Unable to copy address.",
|
||||||
|
"wchange40": "PAYMENT",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Confirmations"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -161,5 +161,49 @@
|
|||||||
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
"mchange36": "Your sponsor will issue you a ‘Sponsorship Key’ which you will use to add to your node, and begin minting (for no rewards until reaching level 1.) Once you reach level 1, you create/assign your own ‘Minting Key’ and begin earning rewards. You have XXXX blocks remaining in your sponsorship period.",
|
||||||
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
"mchange37": "Simply reach out to a minter in Qortal who is high enough level to issue a sponsorship key, obtain that key, then come back here and input the key to begin your minting journey !",
|
||||||
"mchange38": "in"
|
"mchange38": "in"
|
||||||
|
},
|
||||||
|
"walletpage": {
|
||||||
|
"wchange1": "Fetching balance ...",
|
||||||
|
"wchange2": "Current Wallet",
|
||||||
|
"wchange3": "Copy wallet address to clipboard",
|
||||||
|
"wchange4": "Address copied to clipboard",
|
||||||
|
"wchange5": "Transaction Details",
|
||||||
|
"wchange6": "Transaction Type",
|
||||||
|
"wchange7": "OUT",
|
||||||
|
"wchange8": "IN",
|
||||||
|
"wchange9": "Sender",
|
||||||
|
"wchange10": "Receiver",
|
||||||
|
"wchange11": "Amount",
|
||||||
|
"wchange12": "Transaction Fee",
|
||||||
|
"wchange13": "Block",
|
||||||
|
"wchange14": "Time",
|
||||||
|
"wchange15": "Transaction Signature",
|
||||||
|
"wchange16": "Transaction Hash",
|
||||||
|
"wchange17": "Send",
|
||||||
|
"wchange18": "From address",
|
||||||
|
"wchange19": "Available balance",
|
||||||
|
"wchange20": "To (address or name)",
|
||||||
|
"wchange21": "Current static fee:",
|
||||||
|
"wchange22": "Wallets",
|
||||||
|
"wchange23": "To (address)",
|
||||||
|
"wchange24": "Current fee per byte",
|
||||||
|
"wchange25": "Low fees may result in slow or unconfirmed transactions.",
|
||||||
|
"wchange26": "Insufficient Funds!",
|
||||||
|
"wchange27": "Invalid Amount!",
|
||||||
|
"wchange28": "Receiver cannot be empty!",
|
||||||
|
"wchange29": "Invalid Receiver!",
|
||||||
|
"wchange30": "Transaction Successful!",
|
||||||
|
"wchange31": "Transaction Failed!",
|
||||||
|
"wchange32": "Failed to Fetch QORT Balance. Try again!",
|
||||||
|
"wchange33": "Failed to Fetch",
|
||||||
|
"wchange34": "Balance. Try again!",
|
||||||
|
"wchange35": "Type",
|
||||||
|
"wchange36": "Fee",
|
||||||
|
"wchange37": "Total Amount",
|
||||||
|
"wchange38": "Address has no transactions yet.",
|
||||||
|
"wchange39": "Unable to copy address.",
|
||||||
|
"wchange40": "PAYMENT",
|
||||||
|
"wchange41": "Status",
|
||||||
|
"wchange42": "Confirmations"
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,6 +1,11 @@
|
|||||||
import { LitElement, html, css } from 'lit'
|
import { LitElement, html, css } 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 { use, translate, translateUnsafeHTML, registerTranslateConfig } from 'lit-translate'
|
||||||
|
|
||||||
|
registerTranslateConfig({
|
||||||
|
loader: lang => fetch(`/language/${lang}.json`).then(res => res.json())
|
||||||
|
})
|
||||||
|
|
||||||
import '../components/ButtonIconCopy'
|
import '../components/ButtonIconCopy'
|
||||||
import '@material/mwc-button'
|
import '@material/mwc-button'
|
||||||
@ -50,7 +55,7 @@ class MultiWallet extends LitElement {
|
|||||||
btcFeePerByte: { type: Number },
|
btcFeePerByte: { type: Number },
|
||||||
ltcFeePerByte: { type: Number },
|
ltcFeePerByte: { type: Number },
|
||||||
dogeFeePerByte: { type: Number },
|
dogeFeePerByte: { type: Number },
|
||||||
balanceString: 'Fetching balance ...'
|
balanceString: { type: String }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -535,6 +540,7 @@ class MultiWallet extends LitElement {
|
|||||||
height: 0,
|
height: 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.balanceString = this.renderFetchText()
|
||||||
this.selectedTransaction = {}
|
this.selectedTransaction = {}
|
||||||
this.isTextMenuOpen = false
|
this.isTextMenuOpen = false
|
||||||
this.loading = true
|
this.loading = true
|
||||||
@ -612,7 +618,7 @@ class MultiWallet extends LitElement {
|
|||||||
return html`
|
return html`
|
||||||
<div class="wrapper">
|
<div class="wrapper">
|
||||||
<div class="wallet">
|
<div class="wallet">
|
||||||
<div style="font-size: 20px; color: var(--black); padding: 16px; border-bottom: 1px solid var(--border);">Wallets</div>
|
<div style="font-size: 20px; color: var(--black); padding: 16px; border-bottom: 1px solid var(--border);">${translate("walletpage.wchange22")}</div>
|
||||||
<div class="cards">
|
<div class="cards">
|
||||||
<div coin="qort" class="currency-box qort active">
|
<div coin="qort" class="currency-box qort active">
|
||||||
<div class="currency-image"></div>
|
<div class="currency-image"></div>
|
||||||
@ -635,13 +641,13 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
<div class="transactions-wrapper">
|
<div class="transactions-wrapper">
|
||||||
<h2 class="wallet-header">
|
<h2 class="wallet-header">
|
||||||
Current Wallet
|
${translate("walletpage.wchange2")}
|
||||||
<div class="wallet-address">
|
<div class="wallet-address">
|
||||||
<span>${this.getSelectedWalletAddress()}</span>
|
<span>${this.getSelectedWalletAddress()}</span>
|
||||||
<button-icon-copy
|
<button-icon-copy
|
||||||
title="Copy wallet address to clipboard"
|
title="${translate("walletpage.wchange3")}"
|
||||||
onSuccessMessage="Address copied to clipboard"
|
onSuccessMessage="${translate("walletpage.wchange4")}"
|
||||||
onErrorMessage="Unable to copy address"
|
onErrorMessage="${translate("walletpage.wchange39")}"
|
||||||
textToCopy=${this.getSelectedWalletAddress()}
|
textToCopy=${this.getSelectedWalletAddress()}
|
||||||
buttonSize="28px"
|
buttonSize="28px"
|
||||||
iconSize="16px"
|
iconSize="16px"
|
||||||
@ -663,37 +669,37 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
<mwc-dialog id="showTransactionDetailsDialog" scrimClickAction="${this.showTransactionDetailsLoading ? '' : 'close'}">
|
<mwc-dialog id="showTransactionDetailsDialog" scrimClickAction="${this.showTransactionDetailsLoading ? '' : 'close'}">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<h1>Transaction Details</h1>
|
<h1>${translate("walletpage.wchange5")}</h1>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div id="transactionList">
|
<div id="transactionList">
|
||||||
<span class="title"> Transaction Type </span>
|
<span class="title"> ${translate("walletpage.wchange6")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.type}</span>
|
<span>${this.selectedTransaction.type}</span>
|
||||||
${this.selectedTransaction.txnFlow === 'OUT' ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`}
|
${this.selectedTransaction.txnFlow === 'OUT' ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`}
|
||||||
</div>
|
</div>
|
||||||
<span class="title">Sender</span>
|
<span class="title"> ${translate("walletpage.wchange9")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.creatorAddress}</span></div>
|
<div><span>${this.selectedTransaction.creatorAddress}</span></div>
|
||||||
<span class="title">Receiver</span>
|
<span class="title"> ${translate("walletpage.wchange10")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.recipient}</span></div>
|
<div><span>${this.selectedTransaction.recipient}</span></div>
|
||||||
${!this.selectedTransaction.amount ? '' : html`
|
${!this.selectedTransaction.amount ? '' : html`
|
||||||
<span class="title">Amount</span>
|
<span class="title"> ${translate("walletpage.wchange11")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.amount} QORT</span></div>
|
<div><span>${this.selectedTransaction.amount} QORT</span></div>
|
||||||
`}
|
`}
|
||||||
<span class="title"> Transaction Fee </span>
|
<span class="title"> ${translate("walletpage.wchange12")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.fee}</span></div>
|
<div><span>${this.selectedTransaction.fee}</span></div>
|
||||||
<span class="title">Block</span>
|
<span class="title"> ${translate("walletpage.wchange13")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.blockHeight}</span></div>
|
<div><span>${this.selectedTransaction.blockHeight}</span></div>
|
||||||
<span class="title">Time</span>
|
<span class="title"> ${translate("walletpage.wchange14")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
||||||
<span class="title"> Transaction Signature </span>
|
<span class="title"> ${translate("walletpage.wchange15")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${this.selectedTransaction.signature}</span></div>
|
<div><span>${this.selectedTransaction.signature}</span></div>
|
||||||
</div>
|
</div>
|
||||||
@ -702,46 +708,46 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
<mwc-dialog id="showBtcTransactionDetailsDialog" scrimClickAction="${this.showBtcTransactionDetailsLoading ? '' : 'close'}">
|
<mwc-dialog id="showBtcTransactionDetailsDialog" scrimClickAction="${this.showBtcTransactionDetailsLoading ? '' : 'close'}">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<h1>Transaction Details</h1>
|
<h1>${translate("walletpage.wchange5")}</h1>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div id="transactionList">
|
<div id="transactionList">
|
||||||
<span class="title"> Transaction Type </span>
|
<span class="title"> ${translate("walletpage.wchange6")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>PAYMENT</span>
|
<span>${translate("walletpage.wchange40")}</span>
|
||||||
${this.selectedTransaction.btcTxnFlow === 'OUT' ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`}
|
${this.selectedTransaction.btcTxnFlow === 'OUT' ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`}
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Sender </span>
|
<span class="title"> ${translate("walletpage.wchange9")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.btcSender}</span>
|
<span>${this.selectedTransaction.btcSender}</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Receiver </span>
|
<span class="title"> ${translate("walletpage.wchange10")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.btcReceiver}</span>
|
<span>${this.selectedTransaction.btcReceiver}</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Transaction Fee </span>
|
<span class="title"> ${translate("walletpage.wchange12")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} BTC</span>
|
<span>${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} BTC</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Total Amount </span>
|
<span class="title"> ${translate("walletpage.wchange37")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} BTC</span>
|
<span>${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} BTC</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Time </span>
|
<span class="title"> ${translate("walletpage.wchange14")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
||||||
<span class="title"> Transaction Hash </span>
|
<span class="title"> ${translate("walletpage.wchange16")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.txHash}</span>
|
<span>${this.selectedTransaction.txHash}</span>
|
||||||
@ -752,46 +758,46 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
<mwc-dialog id="showLtcTransactionDetailsDialog" scrimClickAction="${this.showLtcTransactionDetailsLoading ? '' : 'close'}">
|
<mwc-dialog id="showLtcTransactionDetailsDialog" scrimClickAction="${this.showLtcTransactionDetailsLoading ? '' : 'close'}">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<h1>Transaction Details</h1>
|
<h1>${translate("walletpage.wchange5")}</h1>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div id="transactionList">
|
<div id="transactionList">
|
||||||
<span class="title"> Transaction Type </span>
|
<span class="title"> ${translate("walletpage.wchange6")}e </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>PAYMENT</span>
|
<span>${translate("walletpage.wchange40")}</span>
|
||||||
${this.selectedTransaction.ltcTxnFlow === 'OUT' ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`}
|
${this.selectedTransaction.ltcTxnFlow === 'OUT' ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`}
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Sender </span>
|
<span class="title"> ${translate("walletpage.wchange9")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.ltcSender}</span>
|
<span>${this.selectedTransaction.ltcSender}</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Receiver </span>
|
<span class="title"> ${translate("walletpage.wchange10")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.ltcReceiver}</span>
|
<span> ${this.selectedTransaction.ltcReceiver} </span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Transaction Fee </span>
|
<span class="title"> ${translate("walletpage.wchange12")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} LTC</span>
|
<span> ${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} LTC </span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Total Amount </span>
|
<span class="title"> ${translate("walletpage.wchange37")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} LTC</span>
|
<span> ${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} LTC </span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Time </span>
|
<span class="title"> ${translate("walletpage.wchange14")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
||||||
<span class="title"> Transaction Hash </span>
|
<span class="title"> ${translate("walletpage.wchange16")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.txHash}</span>
|
<span>${this.selectedTransaction.txHash}</span>
|
||||||
@ -802,46 +808,46 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
<mwc-dialog id="showDogeTransactionDetailsDialog" scrimClickAction="${this.showDogeTransactionDetailsLoading ? '' : 'close'}">
|
<mwc-dialog id="showDogeTransactionDetailsDialog" scrimClickAction="${this.showDogeTransactionDetailsLoading ? '' : 'close'}">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<h1>Transaction Details</h1>
|
<h1>${translate("walletpage.wchange5")}</h1>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div id="transactionList">
|
<div id="transactionList">
|
||||||
<span class="title"> Transaction Type </span>
|
<span class="title"> ${translate("walletpage.wchange6")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>PAYMENT</span>
|
<span>${translate("walletpage.wchange40")}</span>
|
||||||
${this.selectedTransaction.dogeTxnFlow === 'OUT' ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`}
|
${this.selectedTransaction.dogeTxnFlow === 'OUT' ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`}
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Sender </span>
|
<span class="title"> ${translate("walletpage.wchange9")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.dogeSender}</span>
|
<span>${this.selectedTransaction.dogeSender}</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Receiver </span>
|
<span class="title"> ${translate("walletpage.wchange10")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.dogeReceiver}</span>
|
<span>${this.selectedTransaction.dogeReceiver}</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Transaction Fee </span>
|
<span class="title"> ${translate("walletpage.wchange12")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} DOGE</span>
|
<span>${(this.selectedTransaction.feeAmount / 1e8).toFixed(8)} DOGE</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Total Amount </span>
|
<span class="title"> ${translate("walletpage.wchange37")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} DOGE</span>
|
<span>${(this.selectedTransaction.totalAmount / 1e8).toFixed(8)} DOGE</span>
|
||||||
</div>
|
</div>
|
||||||
<span class="title"> Time </span>
|
<span class="title"> ${translate("walletpage.wchange14")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
<div><span>${new Date(this.selectedTransaction.timestamp).toString()}</span></div>
|
||||||
<span class="title"> Transaction Hash </span>
|
<span class="title"> ${translate("walletpage.wchange16")} </span>
|
||||||
<br />
|
<br />
|
||||||
<div>
|
<div>
|
||||||
<span>${this.selectedTransaction.txHash}</span>
|
<span>${this.selectedTransaction.txHash}</span>
|
||||||
@ -852,7 +858,7 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
@ -860,15 +866,15 @@ class MultiWallet extends LitElement {
|
|||||||
<div class="send-coin-dialog">
|
<div class="send-coin-dialog">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<img src="/img/qort.png" width="32" height="32">
|
<img src="/img/qort.png" width="32" height="32">
|
||||||
<h2> Send QORT</h2>
|
<h2> ${translate("walletpage.wchange17")} QORT</h2>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
<span>From address:</span><br />
|
<span>${translate("walletpage.wchange18")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span>Available balance:</span><br />
|
<span>${translate("walletpage.wchange19")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.balanceString}</span>
|
<span style="font-weight: bold;">${this.balanceString}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -877,7 +883,7 @@ class MultiWallet extends LitElement {
|
|||||||
required
|
required
|
||||||
@input="${(e) => { this._checkAmount(e) }}"
|
@input="${(e) => { this._checkAmount(e) }}"
|
||||||
id="amountInput"
|
id="amountInput"
|
||||||
label="Amount (QORT)"
|
label="${translate("walletpage.wchange11")} (QORT)"
|
||||||
type="number"
|
type="number"
|
||||||
auto-validate="false"
|
auto-validate="false"
|
||||||
value="${this.amount}"
|
value="${this.amount}"
|
||||||
@ -889,14 +895,14 @@ class MultiWallet extends LitElement {
|
|||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
required
|
required
|
||||||
id="recipient"
|
id="recipient"
|
||||||
label="To (address or name)"
|
label="${translate("walletpage.wchange20")}"
|
||||||
type="text"
|
type="text"
|
||||||
value="${this.recipient}"
|
value="${this.recipient}"
|
||||||
>
|
>
|
||||||
</mwc-textfield>
|
</mwc-textfield>
|
||||||
</p>
|
</p>
|
||||||
<div style="margin-bottom: 0;">
|
<div style="margin-bottom: 0;">
|
||||||
<p style="margin-bottom: 0;">Current static fee: <span style="font-weight: bold;">0.001 QORT<span></p>
|
<p style="margin-bottom: 0;">${translate("walletpage.wchange21")} <span style="font-weight: bold;">0.001 QORT<span></p>
|
||||||
</div>
|
</div>
|
||||||
<p style="color: red;">${this.errorMessage}</p>
|
<p style="color: red;">${this.errorMessage}</p>
|
||||||
<p style="color: green;">${this.successMessage}</p>
|
<p style="color: green;">${this.successMessage}</p>
|
||||||
@ -905,7 +911,7 @@ class MultiWallet extends LitElement {
|
|||||||
<div>
|
<div>
|
||||||
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendQort()}>
|
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendQort()}>
|
||||||
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
||||||
Send QORT
|
${translate("walletpage.wchange17")} QORT
|
||||||
</vaadin-button>
|
</vaadin-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -915,7 +921,7 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
@ -923,7 +929,7 @@ class MultiWallet extends LitElement {
|
|||||||
<div class="send-coin-dialog">
|
<div class="send-coin-dialog">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<img src="/img/btc.png" width="32" height="32">
|
<img src="/img/btc.png" width="32" height="32">
|
||||||
<h2>Send BTC</h2>
|
<h2>${translate("walletpage.wchange17")} BTC</h2>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
@ -940,7 +946,7 @@ class MultiWallet extends LitElement {
|
|||||||
required
|
required
|
||||||
@input="${(e) => { this._checkAmount(e) }}"
|
@input="${(e) => { this._checkAmount(e) }}"
|
||||||
id="btcAmountInput"
|
id="btcAmountInput"
|
||||||
label="Amount (BTC)"
|
label="${translate("walletpage.wchange11")} (BTC)"
|
||||||
type="number"
|
type="number"
|
||||||
auto-validate="false"
|
auto-validate="false"
|
||||||
value="${this.btcAmount}"
|
value="${this.btcAmount}"
|
||||||
@ -959,7 +965,7 @@ class MultiWallet extends LitElement {
|
|||||||
</mwc-textfield>
|
</mwc-textfield>
|
||||||
</p>
|
</p>
|
||||||
<div style="margin-bottom: 0;">
|
<div style="margin-bottom: 0;">
|
||||||
<p style="margin-bottom: 0;">Current fee per byte: <span style="font-weight: bold;">${(this.btcFeePerByte / 1e8).toFixed(8)} BTC</span><br>Low fees may result in slow or unconfirmed transactions.</p>
|
<p style="margin-bottom: 0;">${translate("walletpage.wchange24")}: <span style="font-weight: bold;">${(this.btcFeePerByte / 1e8).toFixed(8)} BTC</span><br>${translate("walletpage.wchange25")}</p>
|
||||||
<paper-slider
|
<paper-slider
|
||||||
class="blue"
|
class="blue"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
@ -979,7 +985,7 @@ class MultiWallet extends LitElement {
|
|||||||
<div>
|
<div>
|
||||||
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendBtc()}>
|
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendBtc()}>
|
||||||
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
||||||
Send BTC
|
${translate("walletpage.wchange17")} BTC
|
||||||
</vaadin-button>
|
</vaadin-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -989,7 +995,7 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
@ -997,15 +1003,15 @@ class MultiWallet extends LitElement {
|
|||||||
<div class="send-coin-dialog">
|
<div class="send-coin-dialog">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<img src="/img/ltc.png" width="32" height="32">
|
<img src="/img/ltc.png" width="32" height="32">
|
||||||
<h2>Send LTC</h2>
|
<h2>${translate("walletpage.wchange17")} LTC</h2>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
<span>From address:</span><br />
|
<span>${translate("walletpage.wchange18")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span>Available balance:</span><br />
|
<span>${translate("walletpage.wchange19")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.balanceString}</span>
|
<span style="font-weight: bold;">${this.balanceString}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -1014,7 +1020,7 @@ class MultiWallet extends LitElement {
|
|||||||
required
|
required
|
||||||
@input="${(e) => { this._checkAmount(e) }}"
|
@input="${(e) => { this._checkAmount(e) }}"
|
||||||
id="ltcAmountInput"
|
id="ltcAmountInput"
|
||||||
label="Amount (LTC)"
|
label="${translate("walletpage.wchange11")} (LTC)"
|
||||||
type="number"
|
type="number"
|
||||||
auto-validate="false"
|
auto-validate="false"
|
||||||
value="${this.ltcAmount}"
|
value="${this.ltcAmount}"
|
||||||
@ -1026,14 +1032,14 @@ class MultiWallet extends LitElement {
|
|||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
required
|
required
|
||||||
id="ltcRecipient"
|
id="ltcRecipient"
|
||||||
label="To (address)"
|
label="${translate("walletpage.wchange23")}"
|
||||||
type="text"
|
type="text"
|
||||||
value="${this.ltcRecipient}"
|
value="${this.ltcRecipient}"
|
||||||
>
|
>
|
||||||
</mwc-textfield>
|
</mwc-textfield>
|
||||||
</p>
|
</p>
|
||||||
<div style="margin-bottom: 0;">
|
<div style="margin-bottom: 0;">
|
||||||
<p style="margin-bottom: 0;">Current fee per byte: <span style="font-weight: bold;">${(this.ltcFeePerByte / 1e8).toFixed(8)} LTC</span><br>Low fees may result in slow or unconfirmed transactions.</p>
|
<p style="margin-bottom: 0;">${translate("walletpage.wchange24")}: <span style="font-weight: bold;">${(this.ltcFeePerByte / 1e8).toFixed(8)} LTC</span><br>${translate("walletpage.wchange25")}</p>
|
||||||
<paper-slider
|
<paper-slider
|
||||||
class="blue"
|
class="blue"
|
||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
@ -1053,7 +1059,7 @@ class MultiWallet extends LitElement {
|
|||||||
<div>
|
<div>
|
||||||
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendLtc()}>
|
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendLtc()}>
|
||||||
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
||||||
Send LTC
|
${translate("walletpage.wchange17")} LTC
|
||||||
</vaadin-button>
|
</vaadin-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1063,7 +1069,7 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
|
||||||
@ -1071,15 +1077,15 @@ class MultiWallet extends LitElement {
|
|||||||
<div class="send-coin-dialog">
|
<div class="send-coin-dialog">
|
||||||
<div style="text-align: center;">
|
<div style="text-align: center;">
|
||||||
<img src="/img/doge.png" width="32" height="32">
|
<img src="/img/doge.png" width="32" height="32">
|
||||||
<h2>Send DOGE</h2>
|
<h2>${translate("walletpage.wchange17")} DOGE</h2>
|
||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>
|
||||||
<span>From address:</span><br />
|
<span>${translate("walletpage.wchange18")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
<span style="font-weight: bold;">${this.getSelectedWalletAddress()}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span>Available balance:</span><br />
|
<span>${translate("walletpage.wchange19")}:</span><br />
|
||||||
<span style="font-weight: bold;">${this.balanceString}</span>
|
<span style="font-weight: bold;">${this.balanceString}</span>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@ -1088,7 +1094,7 @@ class MultiWallet extends LitElement {
|
|||||||
required
|
required
|
||||||
@input="${(e) => { this._checkAmount(e) }}"
|
@input="${(e) => { this._checkAmount(e) }}"
|
||||||
id="dogeAmountInput"
|
id="dogeAmountInput"
|
||||||
label="Amount (DOGE)"
|
label="${translate("walletpage.wchange11")} (DOGE)"
|
||||||
type="number"
|
type="number"
|
||||||
auto-validate="false"
|
auto-validate="false"
|
||||||
value="${this.dogeAmount}"
|
value="${this.dogeAmount}"
|
||||||
@ -1100,7 +1106,7 @@ class MultiWallet extends LitElement {
|
|||||||
style="width: 100%;"
|
style="width: 100%;"
|
||||||
required
|
required
|
||||||
id="dogeRecipient"
|
id="dogeRecipient"
|
||||||
label="To (address)"
|
label="${translate("walletpage.wchange23")}"
|
||||||
type="text"
|
type="text"
|
||||||
value="${this.dogeRecipient}"
|
value="${this.dogeRecipient}"
|
||||||
>
|
>
|
||||||
@ -1108,7 +1114,7 @@ class MultiWallet extends LitElement {
|
|||||||
</p>
|
</p>
|
||||||
<div style="margin-bottom: 0;">
|
<div style="margin-bottom: 0;">
|
||||||
<p style="margin-bottom: 0;">
|
<p style="margin-bottom: 0;">
|
||||||
Current fee per byte: <span style="font-weight: bold;">${(this.dogeFeePerByte / 1e8).toFixed(8)} DOGE</span><br>Low fees may result in slow or unconfirmed transactions.
|
${translate("walletpage.wchange24")}: <span style="font-weight: bold;">${(this.dogeFeePerByte / 1e8).toFixed(8)} DOGE</span><br>L${translate("walletpage.wchange25")}
|
||||||
</p>
|
</p>
|
||||||
<paper-slider
|
<paper-slider
|
||||||
class="blue"
|
class="blue"
|
||||||
@ -1129,7 +1135,7 @@ class MultiWallet extends LitElement {
|
|||||||
<div>
|
<div>
|
||||||
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendDoge()}>
|
<vaadin-button ?disabled="${this.btnDisable}" theme="primary medium" style="width: 100%;" @click=${() => this.sendDoge()}>
|
||||||
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
<vaadin-icon icon="vaadin:arrow-forward" slot="prefix"></vaadin-icon>
|
||||||
Send DOGE
|
${translate("walletpage.wchange17")} DOGE
|
||||||
</vaadin-button>
|
</vaadin-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1139,7 +1145,7 @@ class MultiWallet extends LitElement {
|
|||||||
dialogAction="cancel"
|
dialogAction="cancel"
|
||||||
class="red"
|
class="red"
|
||||||
>
|
>
|
||||||
Close
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
</div>
|
</div>
|
||||||
@ -1154,6 +1160,12 @@ class MultiWallet extends LitElement {
|
|||||||
this.changeTheme();
|
this.changeTheme();
|
||||||
}, 100)
|
}, 100)
|
||||||
|
|
||||||
|
this.changeLanguage()
|
||||||
|
|
||||||
|
setInterval(() => {
|
||||||
|
this.changeLanguage()
|
||||||
|
}, 100)
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
this.errorMessage = '';
|
this.errorMessage = '';
|
||||||
}, 5000)
|
}, 5000)
|
||||||
@ -1374,6 +1386,42 @@ class MultiWallet extends LitElement {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
renderFetchText() {
|
||||||
|
return html`${translate("walletpage.wchange1")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderFundsText() {
|
||||||
|
return html`${translate("walletpage.wchange26")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderInvalidText() {
|
||||||
|
return html`${translate("walletpage.wchange27")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderEmptyText() {
|
||||||
|
return html`${translate("walletpage.wchange28")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderReceiverText() {
|
||||||
|
return html`${translate("walletpage.wchange29")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderSuccessText() {
|
||||||
|
return html`${translate("walletpage.wchange30")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderFailText() {
|
||||||
|
return html`${translate("walletpage.wchange31")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderOutText() {
|
||||||
|
return html`${translate("walletpage.wchange7")}`
|
||||||
|
}
|
||||||
|
|
||||||
|
renderInText() {
|
||||||
|
return html`${translate("walletpage.wchange8")}`
|
||||||
|
}
|
||||||
|
|
||||||
selectWallet(event) {
|
selectWallet(event) {
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
|
||||||
@ -1401,7 +1449,7 @@ class MultiWallet extends LitElement {
|
|||||||
e.target.focus()
|
e.target.focus()
|
||||||
|
|
||||||
e.target.invalid = true
|
e.target.invalid = true
|
||||||
e.target.validationMessage = 'Invalid Amount!'
|
e.target.validationMessage = this.renderInvalidText()
|
||||||
} else {
|
} else {
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
}
|
}
|
||||||
@ -1412,7 +1460,7 @@ class MultiWallet extends LitElement {
|
|||||||
e.target.validityTransform = (newValue, nativeValidity) => {
|
e.target.validityTransform = (newValue, nativeValidity) => {
|
||||||
if (newValue.includes('-') === true) {
|
if (newValue.includes('-') === true) {
|
||||||
this.btnDisable = true
|
this.btnDisable = true
|
||||||
target.validationMessage = 'Invalid Amount!'
|
target.validationMessage = this.renderInvalidText()
|
||||||
|
|
||||||
return {
|
return {
|
||||||
valid: false,
|
valid: false,
|
||||||
@ -1422,7 +1470,7 @@ class MultiWallet extends LitElement {
|
|||||||
let myAmount = newValue.split('.')
|
let myAmount = newValue.split('.')
|
||||||
if (myAmount[1].length > 8) {
|
if (myAmount[1].length > 8) {
|
||||||
this.btnDisable = true
|
this.btnDisable = true
|
||||||
target.validationMessage = 'Invalid Amount!'
|
target.validationMessage = this.renderInvalidText()
|
||||||
} else {
|
} else {
|
||||||
return {
|
return {
|
||||||
valid: true,
|
valid: true,
|
||||||
@ -1459,21 +1507,21 @@ class MultiWallet extends LitElement {
|
|||||||
if (parseFloat(amount) + parseFloat(0.001) > parseFloat(this.balance)) {
|
if (parseFloat(amount) + parseFloat(0.001) > parseFloat(this.balance)) {
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
parentEpml.request('showSnackBar', 'Insufficient Funds!')
|
parentEpml.request('showSnackBar', this.renderFundsText())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parseFloat(amount) <= 0) {
|
if (parseFloat(amount) <= 0) {
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
parentEpml.request('showSnackBar', 'Invalid Amount!')
|
parentEpml.request('showSnackBar', this.renderInvalidText())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (recipient.length === 0) {
|
if (recipient.length === 0) {
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
parentEpml.request('showSnackBar', 'Receiver cannot be empty!')
|
parentEpml.request('showSnackBar', this.renderEmptyText())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1525,8 +1573,8 @@ class MultiWallet extends LitElement {
|
|||||||
let myTransaction = await makeTransactionRequest(myNameAddress, lastRef)
|
let myTransaction = await makeTransactionRequest(myNameAddress, lastRef)
|
||||||
getTxnRequestResponse(myTransaction)
|
getTxnRequestResponse(myTransaction)
|
||||||
} else {
|
} else {
|
||||||
console.error('INVALID_RECEIVER')
|
console.error(this.renderReceiverText())
|
||||||
this.errorMessage = 'INVALID_RECEIVER'
|
this.errorMessage = this.renderReceiverText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
}
|
}
|
||||||
@ -1562,7 +1610,7 @@ class MultiWallet extends LitElement {
|
|||||||
this.errorMessage = ''
|
this.errorMessage = ''
|
||||||
this.recipient = ''
|
this.recipient = ''
|
||||||
this.amount = 0
|
this.amount = 0
|
||||||
this.successMessage = 'Transaction Successful!'
|
this.successMessage = this.renderReceiverText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
} else {
|
} else {
|
||||||
@ -1602,11 +1650,11 @@ class MultiWallet extends LitElement {
|
|||||||
this.errorMessage = ''
|
this.errorMessage = ''
|
||||||
this.btcRecipient = ''
|
this.btcRecipient = ''
|
||||||
this.btcAmount = 0
|
this.btcAmount = 0
|
||||||
this.successMessage = 'Transaction Successful!'
|
this.successMessage = this.renderSuccessText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
} else if (response === false) {
|
} else if (response === false) {
|
||||||
this.errorMessage = 'Transaction Failed!'
|
this.errorMessage = this.renderFailText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
throw new Error(txnResponse)
|
throw new Error(txnResponse)
|
||||||
@ -1648,11 +1696,11 @@ class MultiWallet extends LitElement {
|
|||||||
this.errorMessage = ''
|
this.errorMessage = ''
|
||||||
this.ltcRecipient = ''
|
this.ltcRecipient = ''
|
||||||
this.ltcAmount = 0
|
this.ltcAmount = 0
|
||||||
this.successMessage = 'Transaction Successful!'
|
this.successMessage = this.renderSuccessText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
} else if (response === false) {
|
} else if (response === false) {
|
||||||
this.errorMessage = 'Transaction Failed!'
|
this.errorMessage = this.renderFailText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
throw new Error(txnResponse)
|
throw new Error(txnResponse)
|
||||||
@ -1694,11 +1742,11 @@ class MultiWallet extends LitElement {
|
|||||||
this.errorMessage = ''
|
this.errorMessage = ''
|
||||||
this.dogeRecipient = ''
|
this.dogeRecipient = ''
|
||||||
this.dogeAmount = 0
|
this.dogeAmount = 0
|
||||||
this.successMessage = 'Transaction Successful!'
|
this.successMessage = this.renderSuccessText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
} else if (response === false) {
|
} else if (response === false) {
|
||||||
this.errorMessage = 'Transaction Failed!'
|
this.errorMessage = this.renderFailText()
|
||||||
this.sendMoneyLoading = false
|
this.sendMoneyLoading = false
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
throw new Error(txnResponse)
|
throw new Error(txnResponse)
|
||||||
@ -1736,7 +1784,7 @@ class MultiWallet extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fetchWalletDetails(coin) {
|
async fetchWalletDetails(coin) {
|
||||||
this.balanceString = "Fetching balance ..."
|
this.balanceString = this.renderFetchText()
|
||||||
switch (coin) {
|
switch (coin) {
|
||||||
case 'qort':
|
case 'qort':
|
||||||
parentEpml.request('apiCall', {
|
parentEpml.request('apiCall', {
|
||||||
@ -1744,7 +1792,7 @@ class MultiWallet extends LitElement {
|
|||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (isNaN(Number(res))) {
|
if (isNaN(Number(res))) {
|
||||||
parentEpml.request('showSnackBar', `Failed to Fetch QORT Balance. Try again!`)
|
parentEpml.request('showSnackBar', `${translate("walletpage.wchange32")}`)
|
||||||
} else {
|
} else {
|
||||||
if (this._selectedWallet == coin) {
|
if (this._selectedWallet == coin) {
|
||||||
this.wallets.get(coin).balance = Number(res).toFixed(8)
|
this.wallets.get(coin).balance = Number(res).toFixed(8)
|
||||||
@ -1771,7 +1819,7 @@ class MultiWallet extends LitElement {
|
|||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (isNaN(Number(res))) {
|
if (isNaN(Number(res))) {
|
||||||
parentEpml.request('showSnackBar', `Failed to Fetch ${coin.toLocaleUpperCase()} Balance. Try again!`)
|
parentEpml.request('showSnackBar', `${translate("walletpage.wchange33")} ${coin.toLocaleUpperCase()} ${translate("walletpage.wchange34")}!`)
|
||||||
} else {
|
} else {
|
||||||
if (this._selectedWallet == coin) {
|
if (this._selectedWallet == coin) {
|
||||||
this.wallets.get(this._selectedWallet).balance = (Number(res) / 1e8).toFixed(8)
|
this.wallets.get(this._selectedWallet).balance = (Number(res) / 1e8).toFixed(8)
|
||||||
@ -1804,13 +1852,13 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
renderSendButton() {
|
renderSendButton() {
|
||||||
if ( this._selectedWallet === "qort" ) {
|
if ( this._selectedWallet === "qort" ) {
|
||||||
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendQort()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> Send QORT</vaadin-button>`
|
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendQort()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange17")} QORT</vaadin-button>`
|
||||||
} else if ( this._selectedWallet === "btc" ) {
|
} else if ( this._selectedWallet === "btc" ) {
|
||||||
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendBtc()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> Send BTC</vaadin-button>`
|
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendBtc()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange17")} BTC</vaadin-button>`
|
||||||
} else if ( this._selectedWallet === "ltc" ) {
|
} else if ( this._selectedWallet === "ltc" ) {
|
||||||
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendLtc()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> Send LTC</vaadin-button>`
|
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendLtc()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange17")} LTC</vaadin-button>`
|
||||||
} else if ( this._selectedWallet === "doge" ) {
|
} else if ( this._selectedWallet === "doge" ) {
|
||||||
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendDoge()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> Send DOGE</vaadin-button>`
|
return html`<vaadin-button theme="primary large" style="width: 75%;" @click=${() => this.openSendDoge()}><vaadin-icon icon="vaadin:coin-piles" slot="prefix"></vaadin-icon> ${translate("walletpage.wchange17")} DOGE</vaadin-button>`
|
||||||
} else {
|
} else {
|
||||||
return html``
|
return html``
|
||||||
}
|
}
|
||||||
@ -1842,6 +1890,17 @@ class MultiWallet extends LitElement {
|
|||||||
document.querySelector('html').setAttribute('theme', this.theme);
|
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')
|
||||||
|
} else {
|
||||||
|
use(checkLanguage)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
getSelectedWalletAddress() {
|
getSelectedWalletAddress() {
|
||||||
return this._selectedWallet === 'qort'
|
return this._selectedWallet === 'qort'
|
||||||
? this.wallets.get(this._selectedWallet).wallet.address
|
? this.wallets.get(this._selectedWallet).wallet.address
|
||||||
@ -1915,20 +1974,20 @@ class MultiWallet extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">Address has no transactions yet.</span></div>
|
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">${translate("walletpage.wchange38")}</span></div>
|
||||||
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
header="Status"
|
header="${translate("walletpage.wchange41")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
if (!currentBlockHeight) {
|
if (!currentBlockHeight) {
|
||||||
return render(html``, root)
|
return render(html``, root)
|
||||||
}
|
}
|
||||||
const confirmed = data.item.confirmations >= requiredConfirmations
|
const confirmed = data.item.confirmations >= requiredConfirmations
|
||||||
if (confirmed) {
|
if (confirmed) {
|
||||||
render(html`<mwc-icon title="${data.item.confirmations} Confirmations" style="color: #00C851">check</mwc-icon>`, root)
|
render(html`<mwc-icon title="${data.item.confirmations} ${translate("walletpage.wchange42")}" style="color: #00C851">check</mwc-icon>`, root)
|
||||||
} else {
|
} else {
|
||||||
render(html`<mwc-icon title="${data.item.confirmations || 0}/${requiredConfirmations} Confirmations" style="color: #777">schedule</mwc-icon>`, root)
|
render(html`<mwc-icon title="${data.item.confirmations || 0}/${requiredConfirmations} ${translate("walletpage.wchange42")}" style="color: #777">schedule</mwc-icon>`, root)
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -1936,20 +1995,20 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Type"
|
header="${translate("walletpage.wchange35")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html` ${data.item.type} ${data.item.creatorAddress === this.wallets.get('qort').wallet.address ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`} `, root)
|
render(html` ${data.item.type} ${data.item.creatorAddress === this.wallets.get('qort').wallet.address ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`} `, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable header="Sender" path="creatorAddress"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange9")}" path="creatorAddress"></vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable header="Receiver" path="recipient"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange10")}" path="recipient"></vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable path="fee"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange36")}" path="fee"></vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable path="amount"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange11")}" path="amount"></vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Time"
|
header="${translate("walletpage.wchange14")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const time = new Date(data.item.timestamp)
|
const time = new Date(data.item.timestamp)
|
||||||
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
||||||
@ -1963,11 +2022,11 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
renderBtcTransactions(transactions, coin) {
|
renderBtcTransactions(transactions, coin) {
|
||||||
return html`
|
return html`
|
||||||
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">Address has no transactions yet.</span></div>
|
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">${translate("walletpage.wchange38")}</span></div>
|
||||||
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
header="Status"
|
header="${translate("walletpage.wchange41")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
||||||
}}
|
}}
|
||||||
@ -1976,16 +2035,16 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Type"
|
header="${translate("walletpage.wchange35")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html` PAYMENT ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`} `, root)
|
render(html` ${translate("walletpage.wchange40")} ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`} `, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Sender"
|
header="${translate("walletpage.wchange9")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.inputs[0].address}`, root)
|
render(html`${data.item.inputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
@ -1994,17 +2053,17 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Receiver"
|
header="${translate("walletpage.wchange10")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.outputs[0].address}`, root)
|
render(html`${data.item.outputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable header="Transaction Hash" path="txHash"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange16")}" path="txHash"></vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Total Amount"
|
header="${translate("walletpage.wchange37")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
||||||
render(html`${amount}`, root)
|
render(html`${amount}`, root)
|
||||||
@ -2014,7 +2073,7 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Time"
|
header="${translate("walletpage.wchange14")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const time = new Date(data.item.timestamp * 1000)
|
const time = new Date(data.item.timestamp * 1000)
|
||||||
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
||||||
@ -2028,11 +2087,11 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
renderLtcTransactions(transactions, coin) {
|
renderLtcTransactions(transactions, coin) {
|
||||||
return html`
|
return html`
|
||||||
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">Address has no transactions yet.</span></div>
|
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">${translate("walletpage.wchange38")}</span></div>
|
||||||
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
header="Status"
|
header="${translate("walletpage.wchange41")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
||||||
}}
|
}}
|
||||||
@ -2041,16 +2100,16 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Type"
|
header="${translate("walletpage.wchange35")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html` PAYMENT ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`} `, root)
|
render(html` ${translate("walletpage.wchange40")} ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`} `, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Sender"
|
header="${translate("walletpage.wchange9")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.inputs[0].address}`, root)
|
render(html`${data.item.inputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
@ -2059,17 +2118,17 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Receiver"
|
header="${translate("walletpage.wchange10")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.outputs[0].address}`, root)
|
render(html`${data.item.outputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable header="Transaction Hash" path="txHash"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange16")}" path="txHash"></vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Total Amount"
|
header="${translate("walletpage.wchange37")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
||||||
render(html`${amount}`, root)
|
render(html`${amount}`, root)
|
||||||
@ -2079,7 +2138,7 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Time"
|
header="${translate("walletpage.wchange14")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const time = new Date(data.item.timestamp * 1000)
|
const time = new Date(data.item.timestamp * 1000)
|
||||||
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
||||||
@ -2093,11 +2152,11 @@ class MultiWallet extends LitElement {
|
|||||||
|
|
||||||
renderDogeTransactions(transactions, coin) {
|
renderDogeTransactions(transactions, coin) {
|
||||||
return html`
|
return html`
|
||||||
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">Address has no transactions yet.</span></div>
|
<div style="padding-left:12px;" ?hidden="${!this.isEmptyArray(transactions)}"><span style="color: var(--black);">${translate("walletpage.wchange38")}</span></div>
|
||||||
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
<vaadin-grid theme="large" id="${coin}TransactionsGrid" ?hidden="${this.isEmptyArray(this.wallets.get(this._selectedWallet).transactions)}" page-size="25" all-rows-visible>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
header="Status"
|
header="${translate("walletpage.wchange41")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
render(html`<mwc-icon style="color: #00C851">check</mwc-icon>`, root)
|
||||||
}}
|
}}
|
||||||
@ -2106,16 +2165,16 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Type"
|
header="${translate("walletpage.wchange35")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html` PAYMENT ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">OUT</span>` : html`<span class="color-in">IN</span>`} `, root)
|
render(html` ${translate("walletpage.wchange40")} ${data.item.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? html`<span class="color-out">${translate("walletpage.wchange7")}</span>` : html`<span class="color-in">${translate("walletpage.wchange8")}</span>`} `, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Sender"
|
header="${translate("walletpage.wchange9")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.inputs[0].address}`, root)
|
render(html`${data.item.inputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
@ -2124,17 +2183,17 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Receiver"
|
header="${translate("walletpage.wchange10")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
render(html`${data.item.outputs[0].address}`, root)
|
render(html`${data.item.outputs[0].address}`, root)
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
</vaadin-grid-column>
|
</vaadin-grid-column>
|
||||||
<vaadin-grid-column auto-width resizable header="Transaction Hash" path="txHash"></vaadin-grid-column>
|
<vaadin-grid-column auto-width resizable header="${translate("walletpage.wchange16")}" path="txHash"></vaadin-grid-column>
|
||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Total Amount"
|
header="${translate("walletpage.wchange37")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
|
||||||
render(html`${amount}`, root)
|
render(html`${amount}`, root)
|
||||||
@ -2144,7 +2203,7 @@ class MultiWallet extends LitElement {
|
|||||||
<vaadin-grid-column
|
<vaadin-grid-column
|
||||||
auto-width
|
auto-width
|
||||||
resizable
|
resizable
|
||||||
header="Time"
|
header="${translate("walletpage.wchange14")}"
|
||||||
.renderer=${(root, column, data) => {
|
.renderer=${(root, column, data) => {
|
||||||
const time = new Date(data.item.timestamp * 1000)
|
const time = new Date(data.item.timestamp * 1000)
|
||||||
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
render(html` <time-ago datetime=${time.toISOString()}> </time-ago> `, root)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user