From a3483634e1ab1bb926181cd2161a69194ccde783 Mon Sep 17 00:00:00 2001 From: QuickMythril Date: Tue, 26 Apr 2022 11:28:33 -0400 Subject: [PATCH] add DGB to Trade Portal --- .../core/trade-portal/trade-portal.src.js | 108 +++++++++++++++--- 1 file changed, 95 insertions(+), 13 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 fb7e8c1c..c7560c1c 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 @@ -346,6 +346,10 @@ class TradePortal extends LitElement { background-image: url('/img/qortdoge.png'); } + .dgb.coinName:before { + background-image: url('/img/qortdgb.png'); + } + .coinName { display: inline-block; height: 26px; @@ -444,10 +448,26 @@ class TradePortal extends LitElement { coinAmount: this.amountString } + let digibyte = { + name: "DIGIBYTE", + balance: "0", + coinCode: "DGB", + openOrders: [], + openFilteredOrders: [], + historicTrades: [], + myOrders: [], + myHistoricTrades: [], + myOfferingOrders: [], + openTradeOrders: null, + tradeOffersSocketCounter: 1, + coinAmount: this.amountString + } + this.listedCoins = new Map() this.listedCoins.set("QORTAL", qortal) this.listedCoins.set("LITECOIN", litecoin) this.listedCoins.set("DOGECOIN", dogecoin) + this.listedCoins.set("DIGIBYTE", digibyte) workers.set("QORTAL", { tradesConnectedWorker: null, @@ -464,6 +484,11 @@ class TradePortal extends LitElement { handleStuckTradesConnectedWorker: null }) + workers.set("DIGIBYTE", { + tradesConnectedWorker: null, + handleStuckTradesConnectedWorker: null + }) + this.selectedCoin = "LITECOIN" this.selectedAddress = {} this.config = {} @@ -846,6 +871,7 @@ class TradePortal extends LitElement { QORT / LTC QORT / DOGE + QORT / DGB
@@ -1008,6 +1034,10 @@ class TradePortal extends LitElement { _url = `/crosschain/doge/walletbalance?apiKey=${this.getApiKey()}` _body = window.parent.reduxStore.getState().app.selectedAddress.dogeWallet.derivedMasterPublicKey break + case 'DIGIBYTE': + _url = `/crosschain/dgb/walletbalance?apiKey=${this.getApiKey()}` + _body = window.parent.reduxStore.getState().app.selectedAddress.dgbWallet.derivedMasterPublicKey + break default: break } @@ -1020,7 +1050,7 @@ class TradePortal extends LitElement { .then((res) => { if (isNaN(Number(res))) { let snack1string = get("tradepage.tchange30") - parentEpml.request('showSnackBar', `${snack1tring}`) + parentEpml.request('showSnackBar', `${snack1string}`) } else { this.listedCoins.get(this.selectedCoin).balance = (Number(res) / 1e8).toFixed(8) } @@ -1385,6 +1415,49 @@ class TradePortal extends LitElement { }) } + /** + * DigibyteACCTv1 TRADEBOT STATES + * - BOB_WAITING_FOR_AT_CONFIRM + * - BOB_WAITING_FOR_MESSAGE + * - BOB_WAITING_FOR_AT_REDEEM + * - BOB_DONE + * - BOB_REFUNDED + * - ALICE_WAITING_FOR_AT_LOCK + * - ALICE_DONE + * - ALICE_REFUNDING_A + * - ALICE_REFUNDED + * + * @param {[{}]} states + */ + + const DigibyteACCTv1 = (states) => { + // Reverse the states + states.reverse() + states.forEach((state) => { + if (state.creatorAddress === this.selectedAddress.address) { + if (state.tradeState == 'BOB_WAITING_FOR_AT_CONFIRM') { + this.changeTradeBotState(state, 'PENDING') + } else if (state.tradeState == 'BOB_WAITING_FOR_MESSAGE') { + this.changeTradeBotState(state, 'LISTED') + } else if (state.tradeState == 'BOB_WAITING_FOR_AT_REDEEM') { + this.changeTradeBotState(state, 'TRADING') + } else if (state.tradeState == 'BOB_DONE') { + this.handleCompletedState(state) + } else if (state.tradeState == 'BOB_REFUNDED') { + this.handleCompletedState(state) + } else if (state.tradeState == 'ALICE_WAITING_FOR_AT_LOCK') { + this.changeTradeBotState(state, 'BUYING') + } else if (state.tradeState == 'ALICE_DONE') { + this.handleCompletedState(state) + } else if (state.tradeState == 'ALICE_REFUNDING_A') { + this.changeTradeBotState(state, 'REFUNDING') + } else if (state.tradeState == 'ALICE_REFUNDED') { + this.handleCompletedState(state) + } + } + }) + } + switch (this.selectedCoin) { case 'BITCOIN': BitcoinACCTv1(tradeStates) @@ -1395,6 +1468,9 @@ class TradePortal extends LitElement { case 'DOGECOIN': DogecoinACCTv1(tradeStates) break + case 'DIGIBYTE': + DigibyteACCTv1(tradeStates) + break default: break } @@ -1640,19 +1716,19 @@ class TradePortal extends LitElement { } const restartPresenceWebSocket = () => { - setTimeout(() => initPresenceWebSocket(true), 3000) + setTimeout(() => initPresenceWebSocket(true), 5000) } const restartTradePresenceWebSocket = () => { - setTimeout(() => initTradePresenceWebSocket(true), 3000) + setTimeout(() => initTradePresenceWebSocket(true), 5000) } const restartTradeOffersWebSocket = () => { - setTimeout(() => initTradeOffersWebSocket(true), 3000) + setTimeout(() => initTradeOffersWebSocket(true), 5000) } const restartTradeBotWebSocket = () => { - setTimeout(() => initTradeBotWebSocket(true), 3000) + setTimeout(() => initTradeBotWebSocket(true), 5000) } // Start TradeOffersWebSocket @@ -1684,6 +1760,9 @@ class TradePortal extends LitElement { case 'DOGECOIN': _receivingAddress = this.selectedAddress.dogeWallet.address break + case 'DIGIBYTE': + _receivingAddress = this.selectedAddress.dgbWallet.address + break default: break } @@ -1710,12 +1789,12 @@ class TradePortal extends LitElement { this.isSellLoading = false this.sellBtnDisable = false let snack2string = get("tradepage.tchange20") - parentEpml.request('showSnackBar', `${snack2tring}`) + parentEpml.request('showSnackBar', `${snack2string}`) } else { this.isSellLoading = false this.sellBtnDisable = false let snack3string = get("tradepage.tchange21") - parentEpml.request('showSnackBar', `${snack3tring}: ${response.message}`) + parentEpml.request('showSnackBar', `${snack3string}: ${response.message}`) } } @@ -1723,7 +1802,7 @@ class TradePortal extends LitElement { this.isSellLoading = false this.sellBtnDisable = false let snack4string = get("tradepage.tchange22") - parentEpml.request('showSnackBar', `${snack4tring}`) + parentEpml.request('showSnackBar', `${snack4string}`) return false } else { const res = await makeRequest() @@ -1744,6 +1823,9 @@ class TradePortal extends LitElement { case 'DOGECOIN': _foreignKey = this.selectedAddress.dogeWallet.derivedMasterPrivateKey break + case 'DIGIBYTE': + _foreignKey = this.selectedAddress.dgbWallet.derivedMasterPrivateKey + break default: break } @@ -1766,17 +1848,17 @@ class TradePortal extends LitElement { this.shadowRoot.getElementById('buyTotalInput').value = this.initialAmount this.shadowRoot.getElementById('qortalAtAddress').value = '' let snack5string = get("tradepage.tchange23") - parentEpml.request('showSnackBar', `${snack5tring}`) + parentEpml.request('showSnackBar', `${snack5string}`) } else if (response === false) { this.isBuyLoading = false this.buyBtnDisable = false let snack6string = get("tradepage.tchange24") - parentEpml.request('showSnackBar', `${snack6tring}`) + parentEpml.request('showSnackBar', `${snack6string}`) } else { this.isBuyLoading = false this.buyBtnDisable = false let snack7string = get("tradepage.tchange25") - parentEpml.request('showSnackBar', `${snack7tring}: ${response.message}`) + parentEpml.request('showSnackBar', `${snack7string}: ${response.message}`) } } @@ -1803,12 +1885,12 @@ class TradePortal extends LitElement { button.remove() this.cancelBtnDisable = false let snack8string = get("tradepage.tchange26") - parentEpml.request('showSnackBar', `${snack8tring}`) + parentEpml.request('showSnackBar', `${snack8string}`) } else if (response === false) { button.innerHTML = 'CANCEL' this.cancelBtnDisable = false let snack9string = get("tradepage.tchange27") - parentEpml.request('showSnackBar', `${snack9tring}`) + parentEpml.request('showSnackBar', `${snack9string}`) } else { button.innerHTML = 'CANCEL' this.cancelBtnDisable = false