@@ -1435,6 +1503,82 @@ class MultiWallet extends LitElement {
${translate("general.close")}
+
+
+
+
+

+
${translate("walletpage.wchange17")} ARRR
+
+
+
+ ${translate("walletpage.wchange18")}:
+ ${this.getSelectedWalletAddress()}
+
+
+ ${translate("walletpage.wchange19")}:
+ ${this.balanceString}
+
+
+ { this._checkAmount(e) }}"
+ id="arrrAmountInput"
+ label="${translate("walletpage.wchange11")} (ARRR)"
+ type="number"
+ auto-validate="false"
+ value="${this.arrrAmount}"
+ >
+
+
+
+
+
+
+
+
+ ${translate("walletpage.wchange24")}: ${(this.arrrFeePerByte / 1e8).toFixed(8)} ARRR
L${translate("walletpage.wchange25")}
+
+
(this.arrrFeePerByte = e.target.value)}"
+ id="arrrFeeSlider"
+ min="${this.arrrSatMinFee}"
+ max="${this.arrrSatMaxFee}"
+ value="${this.arrrFeePerByte}"
+ >
+
+
+
${this.errorMessage}
+
${this.successMessage}
+ ${this.sendMoneyLoading ? html`
` : ''}
+
+
+
+ ${translate("general.close")}
+
+
`
}
@@ -1700,6 +1844,29 @@ class MultiWallet extends LitElement {
checkSelectedTextAndShowMenu()
})
+ this.shadowRoot.getElementById('dgbRecipient').addEventListener('contextmenu', (event) => {
+ const getSelectedText = () => {
+ var text = ''
+ if (typeof window.getSelection != 'undefined') {
+ text = window.getSelection().toString()
+ } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
+ text = this.shadowRoot.selection.createRange().text
+ }
+ return text
+ }
+ const checkSelectedTextAndShowMenu = () => {
+ let selectedText = getSelectedText()
+ if (selectedText && typeof selectedText === 'string') {
+ } else {
+ this.pasteMenu(event, 'dgbRecipient')
+ this.isPasteMenuOpen = true
+ event.preventDefault()
+ event.stopPropagation()
+ }
+ }
+ checkSelectedTextAndShowMenu()
+ })
+
this.shadowRoot.getElementById('rvnAmountInput').addEventListener('contextmenu', (event) => {
const getSelectedText = () => {
var text = ''
@@ -1746,7 +1913,7 @@ class MultiWallet extends LitElement {
checkSelectedTextAndShowMenu()
})
- this.shadowRoot.getElementById('dgbRecipient').addEventListener('contextmenu', (event) => {
+ this.shadowRoot.getElementById('arrrAmountInput').addEventListener('contextmenu', (event) => {
const getSelectedText = () => {
var text = ''
if (typeof window.getSelection != 'undefined') {
@@ -1760,7 +1927,30 @@ class MultiWallet extends LitElement {
let selectedText = getSelectedText()
if (selectedText && typeof selectedText === 'string') {
} else {
- this.pasteMenu(event, 'dgbRecipient')
+ this.pasteMenu(event, 'arrrAmountInput')
+ this.isPasteMenuOpen = true
+ event.preventDefault()
+ event.stopPropagation()
+ }
+ }
+ checkSelectedTextAndShowMenu()
+ })
+
+ this.shadowRoot.getElementById('arrrRecipient').addEventListener('contextmenu', (event) => {
+ const getSelectedText = () => {
+ var text = ''
+ if (typeof window.getSelection != 'undefined') {
+ text = window.getSelection().toString()
+ } else if (typeof this.shadowRoot.selection != 'undefined' && this.shadowRoot.selection.type == 'Text') {
+ text = this.shadowRoot.selection.createRange().text
+ }
+ return text
+ }
+ const checkSelectedTextAndShowMenu = () => {
+ let selectedText = getSelectedText()
+ if (selectedText && typeof selectedText === 'string') {
+ } else {
+ this.pasteMenu(event, 'arrrRecipient')
this.isPasteMenuOpen = true
event.preventDefault()
event.stopPropagation()
@@ -2237,6 +2427,52 @@ class MultiWallet extends LitElement {
this.showWallet()
}
+ async sendArrr() {
+ const arrrAmount = this.shadowRoot.getElementById('arrrAmountInput').value
+ let arrrRecipient = this.shadowRoot.getElementById('arrrRecipient').value
+ const xprv58 = this.wallets.get(this._selectedWallet).wallet.derivedMasterPrivateKey
+
+ this.sendMoneyLoading = true
+ this.btnDisable = true
+
+ const makeRequest = async () => {
+ const opts = {
+ xprv58: xprv58,
+ receivingAddress: arrrRecipient,
+ ravencoinAmount: arrrAmount,
+ feePerByte: (this.arrrFeePerByte / 1e8).toFixed(8),
+ }
+ const response = await parentEpml.request('sendArrr', opts)
+ return response
+ }
+
+ const manageResponse = (response) => {
+ if (response.length === 64) {
+ this.shadowRoot.getElementById('arrrAmountInput').value = 0
+ this.shadowRoot.getElementById('arrrRecipient').value = ''
+ this.errorMessage = ''
+ this.arrrRecipient = ''
+ this.arrrAmount = 0
+ this.successMessage = this.renderSuccessText()
+ this.sendMoneyLoading = false
+ this.btnDisable = false
+ } else if (response === false) {
+ this.errorMessage = this.renderFailText()
+ this.sendMoneyLoading = false
+ this.btnDisable = false
+ throw new Error(txnResponse)
+ } else {
+ this.errorMessage = response.message
+ this.sendMoneyLoading = false
+ this.btnDisable = false
+ throw new Error(response)
+ }
+ }
+ const res = await makeRequest()
+ manageResponse(res)
+ this.showWallet()
+ }
+
async showWallet() {
this.transactionsDOM.hidden = true
this.loading = true
@@ -2289,6 +2525,7 @@ class MultiWallet extends LitElement {
case 'doge':
case 'dgb':
case 'rvn':
+ case 'arrr':
const walletName = `${coin}Wallet`
parentEpml.request('apiCall', {
url: `/crosschain/${coin}/walletbalance?apiKey=${this.getApiKey()}`,
@@ -2343,6 +2580,8 @@ class MultiWallet extends LitElement {
return html`
this.openSendDgb()}> ${translate("walletpage.wchange17")} DGB`
} else if ( this._selectedWallet === "rvn" ) {
return html`
this.openSendRvn()}> ${translate("walletpage.wchange17")} RVN`
+ } else if ( this._selectedWallet === "arrr" ) {
+ return html`
this.openSendArrr()}> ${translate("walletpage.wchange17")} ARRR`
} else {
return html``
}
@@ -2372,6 +2611,10 @@ class MultiWallet extends LitElement {
this.shadowRoot.querySelector("#sendRvnDialog").show();
}
+ openSendArrr() {
+ this.shadowRoot.querySelector("#sendArrrDialog").show();
+ }
+
changeTheme() {
const checkTheme = localStorage.getItem('qortalTheme')
if (checkTheme === 'dark') {
@@ -2446,12 +2689,12 @@ class MultiWallet extends LitElement {
},
{ passive: true }
)
- } else if (coin === 'dgb') {
+ } else if (coin === 'arrr') {
this.transactionsGrid.addEventListener(
'click',
(e) => {
let dgbItem = this.transactionsGrid.getEventContext(e).item
- this.showDgbTransactionDetails(dgbItem, this.wallets.get(this._selectedWallet).transactions)
+ this.showArrrTransactionDetails(dgbItem, this.wallets.get(this._selectedWallet).transactions)
},
{ passive: true }
)
@@ -2474,6 +2717,8 @@ class MultiWallet extends LitElement {
render(this.renderDgbTransactions(this.wallets.get(this._selectedWallet).transactions, this._selectedWallet), this.transactionsDOM)
} else if (this._selectedWallet === 'rvn') {
render(this.renderRvnTransactions(this.wallets.get(this._selectedWallet).transactions, this._selectedWallet), this.transactionsDOM)
+ } else if (this._selectedWallet === 'arrr') {
+ render(this.renderArrrTransactions(this.wallets.get(this._selectedWallet).transactions, this._selectedWallet), this.transactionsDOM)
}
}
@@ -2859,6 +3104,71 @@ class MultiWallet extends LitElement {
`
}
+ renderArrrTransactions(transactions, coin) {
+ return html`
+
${translate("walletpage.wchange38")}
+
+ {
+ render(html`check`, root)
+ }}
+ >
+
+ {
+ render(html` ${translate("walletpage.wchange40")} ${data.item.amount > 0 ? html`${translate("walletpage.wchange7")}` : html`${translate("walletpage.wchange8")}`} `, root)
+ }}
+ >
+
+
+
+ {
+ const amount = (Number(data.item.totalAmount) / 1e8).toFixed(8)
+ render(html`${amount}`, root)
+ }}
+ >
+
+ {
+ const time = new Date(data.item.timestamp * 1000)
+ render(html` `, root)
+ }}
+ >
+
+
+
+ `
+ }
+
async updateItemsFromPage(page, changeWallet = false) {
if (page === undefined) {
return
@@ -3059,6 +3369,20 @@ class MultiWallet extends LitElement {
})
}
+ showArrrTransactionDetails(myTransaction, allTransactions) {
+ allTransactions.forEach((transaction) => {
+ if (myTransaction.txHash === transaction.txHash) {
+ let arrrTxnFlow = myTransaction.inputs[0].address === this.wallets.get(this._selectedWallet).wallet.address ? 'OUT' : 'IN'
+ let arrrSender = myTransaction.inputs[0].address
+ let arrrReceiver = myTransaction.outputs[0].address
+ this.selectedTransaction = { ...transaction, arrrTxnFlow, arrrSender, arrrReceiver }
+ if (this.selectedTransaction.txHash.length != 0) {
+ this.shadowRoot.querySelector('#showArrrTransactionDetailsDialog').show()
+ }
+ }
+ })
+ }
+
isEmptyArray(arr) {
if (!arr) {
return true
From b2ecd7a3af56c7959808752b1661b13123ffb10b Mon Sep 17 00:00:00 2001
From: CalDescent <>
Date: Fri, 6 May 2022 16:04:09 +0100
Subject: [PATCH 03/33] Send a base58 encoded, ARRR-specific seed derived from
the master seed, to use as the entropy for the ARRR wallet seed in the core.
This will need a lot of sanity checking before going live, as it may not be
the best approach.
---
.../api/bitcoin/AltcoinHDWallet.js | 3 ++
.../plugins/core/wallet/wallet-app.src.js | 42 +++++++++++++++++--
2 files changed, 42 insertions(+), 3 deletions(-)
diff --git a/qortal-ui-crypto/api/bitcoin/AltcoinHDWallet.js b/qortal-ui-crypto/api/bitcoin/AltcoinHDWallet.js
index 0c7c70f8..0d416d54 100644
--- a/qortal-ui-crypto/api/bitcoin/AltcoinHDWallet.js
+++ b/qortal-ui-crypto/api/bitcoin/AltcoinHDWallet.js
@@ -276,6 +276,8 @@ export default class AltcoinHDWallet {
const privateKeyHash = seedHash.slice(0, 32);
+ this.seed58 = Base58.encode(privateKeyHash);
+
const _privateKeyHash = [...privateKeyHash]
let privateKeyBigInt = BigInteger.fromByteArrayUnsigned(_privateKeyHash);
@@ -865,6 +867,7 @@ export default class AltcoinHDWallet {
derivedMasterPublicKey: this.masterPublicKey,
_tDerivedMasterPrivateKey: this._tMasterPrivateKey,
_tDerivedmasterPublicKey: this._tmasterPublicKey,
+ seed58: this.seed58,
// derivedPrivateChildKey: this.xPrivateChildKey,
// derivedPublicChildKey: this.xPublicChildKey,
// derivedPrivateGrandChildKey: this.xPrivateGrandChildKey,
diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
index 5d968e62..3ad60f5f 100644
--- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
+++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
@@ -2430,14 +2430,14 @@ class MultiWallet extends LitElement {
async sendArrr() {
const arrrAmount = this.shadowRoot.getElementById('arrrAmountInput').value
let arrrRecipient = this.shadowRoot.getElementById('arrrRecipient').value
- const xprv58 = this.wallets.get(this._selectedWallet).wallet.derivedMasterPrivateKey
+ const seed58 = this.wallets.get(this._selectedWallet).wallet.seed58
this.sendMoneyLoading = true
this.btnDisable = true
const makeRequest = async () => {
const opts = {
- xprv58: xprv58,
+ xprv58: seed58,
receivingAddress: arrrRecipient,
ravencoinAmount: arrrAmount,
feePerByte: (this.arrrFeePerByte / 1e8).toFixed(8),
@@ -2525,7 +2525,6 @@ class MultiWallet extends LitElement {
case 'doge':
case 'dgb':
case 'rvn':
- case 'arrr':
const walletName = `${coin}Wallet`
parentEpml.request('apiCall', {
url: `/crosschain/${coin}/walletbalance?apiKey=${this.getApiKey()}`,
@@ -2562,6 +2561,43 @@ class MultiWallet extends LitElement {
this.wallets.get(this._selectedWallet).transactions = sortedTransactions
}
break
+ case 'arrr':
+ const arrrWalletName = `${coin}Wallet`
+ parentEpml.request('apiCall', {
+ url: `/crosschain/${coin}/walletbalance?apiKey=${this.getApiKey()}`,
+ method: 'POST',
+ body: `${window.parent.reduxStore.getState().app.selectedAddress[arrrWalletName].seed58}`,
+ })
+ .then((res) => {
+ if (isNaN(Number(res))) {
+ let snack5string = get("walletpage.wchange33")
+ let snack6string = get("walletpage.wchange34")
+ parentEpml.request('showSnackBar', `${snack5string} ${coin.toLocaleUpperCase()} ${snack6string}!`)
+ } else {
+ if (this._selectedWallet == coin) {
+ this.wallets.get(this._selectedWallet).balance = (Number(res) / 1e8).toFixed(8)
+ this.balanceString = this.wallets.get(this._selectedWallet).balance + " " + this._selectedWallet.toLocaleUpperCase()
+ this.balance = this.wallets.get(this._selectedWallet).balance
+ }
+ }
+ })
+
+ const arrrTxs = await parentEpml.request('apiCall', {
+ url: `/crosschain/${coin}/wallettransactions?apiKey=${this.getApiKey()}`,
+ method: 'POST',
+ body: `${window.parent.reduxStore.getState().app.selectedAddress[arrrWalletName].seed58}`,
+ })
+
+ const arrrCompareFn = (a, b) => {
+ return b.timestamp - a.timestamp
+ }
+
+ const arrrSortedTransactions = arrrTxs.sort(arrrCompareFn)
+ console.log(arrrSortedTransactions)
+ if (this._selectedWallet == coin) {
+ this.wallets.get(this._selectedWallet).transactions = arrrSortedTransactions
+ }
+ break
default:
break
}
From 0c682d0cbc3b99e8190c951627f8f96a1e7d168a Mon Sep 17 00:00:00 2001
From: CalDescent <>
Date: Fri, 6 May 2022 17:04:41 +0100
Subject: [PATCH 04/33] ARRR wallet now uses address returned by the core API.
It would be great if we could derive the z addresses directly in the UI by the time this is released, but this is an alternative for now.
---
.../plugins/core/wallet/wallet-app.src.js | 36 +++++++++++++++++--
1 file changed, 33 insertions(+), 3 deletions(-)
diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
index 3ad60f5f..d81042fb 100644
--- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
+++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
@@ -53,6 +53,7 @@ class MultiWallet extends LitElement {
arrrRecipient: { type: String },
arrrAmount: { type: Number },
errorMessage: { type: String },
+ arrrWalletAddress: { type: String },
successMessage: { type: String },
sendMoneyLoading: { type: Boolean },
btnDisable: { type: Boolean },
@@ -577,6 +578,7 @@ class MultiWallet extends LitElement {
this.dgbRecipient = ''
this.rvnRecipient = ''
this.arrrRecipient = ''
+ this.arrrWalletAddress = ''
this.errorMessage = ''
this.successMessage = ''
this.sendMoneyLoading = false
@@ -2484,6 +2486,7 @@ class MultiWallet extends LitElement {
}
}
const coin = this._selectedWallet
+ await this.fetchWalletAddress(this._selectedWallet)
await this.fetchWalletDetails(this._selectedWallet)
if (this._selectedWallet == coin) {
await this.renderTransactions()
@@ -2603,6 +2606,27 @@ class MultiWallet extends LitElement {
}
}
+ async fetchWalletAddress(coin) {
+ switch (coin) {
+ case 'arrr':
+ const arrrWalletName = `${coin}Wallet`
+ let res = await parentEpml.request('apiCall', {
+ url: `/crosschain/${coin}/walletaddress?apiKey=${this.getApiKey()}`,
+ method: 'POST',
+ body: `${window.parent.reduxStore.getState().app.selectedAddress[arrrWalletName].seed58}`,
+ })
+ if (res != null) {
+ this.arrrWalletAddress = res
+ console.log("this.arrrWalletAddress set to " + this.arrrWalletAddress)
+ }
+ break
+
+ default:
+ // Not used for other coins yet
+ break
+ }
+ }
+
renderSendButton() {
if ( this._selectedWallet === "qort" ) {
return html`
this.openSendQort()}> ${translate("walletpage.wchange17")} QORT`
@@ -2673,9 +2697,15 @@ class MultiWallet extends LitElement {
}
getSelectedWalletAddress() {
- return this._selectedWallet === 'qort'
- ? this.wallets.get(this._selectedWallet).wallet.address
- : this.wallets.get(this._selectedWallet).wallet.address
+ switch (this._selectedWallet) {
+ case "arrr":
+ // Use address returned by core API
+ return this.arrrWalletAddress
+
+ default:
+ // Use locally derived address
+ return this.wallets.get(this._selectedWallet).wallet.address
+ }
}
async getTransactionGrid(coin) {
From c64ee0aa11308fd81a3f657a94424b00bc2e5998 Mon Sep 17 00:00:00 2001
From: CalDescent <>
Date: Sat, 7 May 2022 11:43:08 +0100
Subject: [PATCH 05/33] Removed fee slider from ARRR since fees are determined
automatically by the wallet (currently 0.0001 ARRR per transaction,
regardless of size)
---
.../plugins/core/wallet/wallet-app.src.js | 22 +------------------
1 file changed, 1 insertion(+), 21 deletions(-)
diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
index d81042fb..54cac360 100644
--- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
+++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
@@ -64,7 +64,6 @@ class MultiWallet extends LitElement {
dogeFeePerByte: { type: Number },
dgbFeePerByte: { type: Number },
rvnFeePerByte: { type: Number },
- arrrFeePerByte: { type: Number },
balanceString: { type: String }
}
}
@@ -607,9 +606,6 @@ class MultiWallet extends LitElement {
this.rvnFeePerByte = 1125
this.rvnSatMinFee = 1000
this.rvnSatMaxFee = 10000
- this.arrrFeePerByte = 8
- this.arrrSatMinFee = 1
- this.arrrSatMaxFee = 50
this.wallets = new Map()
@@ -1545,22 +1541,6 @@ class MultiWallet extends LitElement {
>
-
-
- ${translate("walletpage.wchange24")}: ${(this.arrrFeePerByte / 1e8).toFixed(8)} ARRR
L${translate("walletpage.wchange25")}
-
-
(this.arrrFeePerByte = e.target.value)}"
- id="arrrFeeSlider"
- min="${this.arrrSatMinFee}"
- max="${this.arrrSatMaxFee}"
- value="${this.arrrFeePerByte}"
- >
-
-
${this.errorMessage}
${this.successMessage}
${this.sendMoneyLoading ? html`
` : ''}
@@ -2442,7 +2422,7 @@ class MultiWallet extends LitElement {
xprv58: seed58,
receivingAddress: arrrRecipient,
ravencoinAmount: arrrAmount,
- feePerByte: (this.arrrFeePerByte / 1e8).toFixed(8),
+ //feePerByte: (this.arrrFeePerByte / 1e8).toFixed(8), // Not supported in ARRR
}
const response = await parentEpml.request('sendArrr', opts)
return response
From 686e65e512cd704ba67013b8328a35b0fadbce16 Mon Sep 17 00:00:00 2001
From: CalDescent <>
Date: Sat, 7 May 2022 11:43:18 +0100
Subject: [PATCH 06/33] Fixed send coin request params
---
qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
index 54cac360..72e58a24 100644
--- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
+++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
@@ -2419,9 +2419,9 @@ class MultiWallet extends LitElement {
const makeRequest = async () => {
const opts = {
- xprv58: seed58,
+ entropy58: seed58,
receivingAddress: arrrRecipient,
- ravencoinAmount: arrrAmount,
+ arrrAmount: arrrAmount,
//feePerByte: (this.arrrFeePerByte / 1e8).toFixed(8), // Not supported in ARRR
}
const response = await parentEpml.request('sendArrr', opts)
From 3eec5b0c5f3f7619f7a70afbfdd5a9ab81e362f5 Mon Sep 17 00:00:00 2001
From: CalDescent <>
Date: Sat, 7 May 2022 11:43:26 +0100
Subject: [PATCH 07/33] Reduce log spam
---
qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js | 1 -
1 file changed, 1 deletion(-)
diff --git a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
index 72e58a24..c5d15795 100644
--- a/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
+++ b/qortal-ui-plugins/plugins/core/wallet/wallet-app.src.js
@@ -2597,7 +2597,6 @@ class MultiWallet extends LitElement {
})
if (res != null) {
this.arrrWalletAddress = res
- console.log("this.arrrWalletAddress set to " + this.arrrWalletAddress)
}
break
From 2f2577f8494d2360384dc4e0a85997567d1535c0 Mon Sep 17 00:00:00 2001
From: QuickMythril
Date: Fri, 6 May 2022 19:49:50 -0400
Subject: [PATCH 08/33] Added tx fee estimates to Trade Portal
This can be updated with a more exact system later.
---
.../core/trade-portal/trade-portal.src.js | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js b/qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js
index be67d43f..22dc2b27 100644
--- a/qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js
+++ b/qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js
@@ -239,7 +239,7 @@ class TradePortal extends LitElement {
overflow: hidden;
}
- .you-have {
+ .amt-text {
color: var(--tradehave);
font-size: 15px;
text-align: right;
@@ -419,7 +419,8 @@ class TradePortal extends LitElement {
name: "QORTAL",
balance: "0",
coinCode: "QORT",
- coinAmount: this.amountString
+ coinAmount: this.amountString,
+ tradeFee: "0.002"
}
let litecoin = {
@@ -434,7 +435,8 @@ class TradePortal extends LitElement {
myOfferingOrders: [],
openTradeOrders: null,
tradeOffersSocketCounter: 1,
- coinAmount: this.amountString
+ coinAmount: this.amountString,
+ tradeFee: "~0.00005"
}
let dogecoin = {
@@ -449,7 +451,8 @@ class TradePortal extends LitElement {
myOfferingOrders: [],
openTradeOrders: null,
tradeOffersSocketCounter: 1,
- coinAmount: this.amountString
+ coinAmount: this.amountString,
+ tradeFee: "~0.005"
}
let digibyte = {
@@ -687,7 +690,8 @@ class TradePortal extends LitElement {
>
- ${translate("tradepage.tchange16")}: ${this.listedCoins.get(this.selectedCoin).balance} ${this.listedCoins.get(this.selectedCoin).coinCode}
+ ${translate("tradepage.tchange16")}: ${this.listedCoins.get(this.selectedCoin).balance} ${this.listedCoins.get(this.selectedCoin).coinCode}
+ ${translate("walletpage.wchange12")}: ${this.listedCoins.get(this.selectedCoin).tradeFee} ${this.listedCoins.get(this.selectedCoin).coinCode}