Browse Source

add DGB to Trade Portal

digibyte
QuickMythril 2 years ago committed by GitHub
parent
commit
a3483634e1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 108
      qortal-ui-plugins/plugins/core/trade-portal/trade-portal.src.js

108
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'); background-image: url('/img/qortdoge.png');
} }
.dgb.coinName:before {
background-image: url('/img/qortdgb.png');
}
.coinName { .coinName {
display: inline-block; display: inline-block;
height: 26px; height: 26px;
@ -444,10 +448,26 @@ class TradePortal extends LitElement {
coinAmount: this.amountString 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 = new Map()
this.listedCoins.set("QORTAL", qortal) this.listedCoins.set("QORTAL", qortal)
this.listedCoins.set("LITECOIN", litecoin) this.listedCoins.set("LITECOIN", litecoin)
this.listedCoins.set("DOGECOIN", dogecoin) this.listedCoins.set("DOGECOIN", dogecoin)
this.listedCoins.set("DIGIBYTE", digibyte)
workers.set("QORTAL", { workers.set("QORTAL", {
tradesConnectedWorker: null, tradesConnectedWorker: null,
@ -464,6 +484,11 @@ class TradePortal extends LitElement {
handleStuckTradesConnectedWorker: null handleStuckTradesConnectedWorker: null
}) })
workers.set("DIGIBYTE", {
tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null
})
this.selectedCoin = "LITECOIN" this.selectedCoin = "LITECOIN"
this.selectedAddress = {} this.selectedAddress = {}
this.config = {} this.config = {}
@ -846,6 +871,7 @@ class TradePortal extends LitElement {
<mwc-select outlined id="coinSelectionMenu" label="${translate("tradepage.tchange2")}"> <mwc-select outlined id="coinSelectionMenu" label="${translate("tradepage.tchange2")}">
<mwc-list-item value="LITECOIN" selected><span class="coinName ltc" style="color: var(--black);">QORT / LTC</span></mwc-list-item> <mwc-list-item value="LITECOIN" selected><span class="coinName ltc" style="color: var(--black);">QORT / LTC</span></mwc-list-item>
<mwc-list-item value="DOGECOIN"><span class="coinName doge" style="color: var(--black);">QORT / DOGE</span></mwc-list-item> <mwc-list-item value="DOGECOIN"><span class="coinName doge" style="color: var(--black);">QORT / DOGE</span></mwc-list-item>
<mwc-list-item value="DIGIBYTE"><span class="coinName dgb" style="color: var(--black);">QORT / DGB</span></mwc-list-item>
</mwc-select> </mwc-select>
</div> </div>
<div id="trade-portal"> <div id="trade-portal">
@ -1008,6 +1034,10 @@ class TradePortal extends LitElement {
_url = `/crosschain/doge/walletbalance?apiKey=${this.getApiKey()}` _url = `/crosschain/doge/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.dogeWallet.derivedMasterPublicKey _body = window.parent.reduxStore.getState().app.selectedAddress.dogeWallet.derivedMasterPublicKey
break break
case 'DIGIBYTE':
_url = `/crosschain/dgb/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.dgbWallet.derivedMasterPublicKey
break
default: default:
break break
} }
@ -1020,7 +1050,7 @@ class TradePortal extends LitElement {
.then((res) => { .then((res) => {
if (isNaN(Number(res))) { if (isNaN(Number(res))) {
let snack1string = get("tradepage.tchange30") let snack1string = get("tradepage.tchange30")
parentEpml.request('showSnackBar', `${snack1tring}`) parentEpml.request('showSnackBar', `${snack1string}`)
} else { } else {
this.listedCoins.get(this.selectedCoin).balance = (Number(res) / 1e8).toFixed(8) 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) { switch (this.selectedCoin) {
case 'BITCOIN': case 'BITCOIN':
BitcoinACCTv1(tradeStates) BitcoinACCTv1(tradeStates)
@ -1395,6 +1468,9 @@ class TradePortal extends LitElement {
case 'DOGECOIN': case 'DOGECOIN':
DogecoinACCTv1(tradeStates) DogecoinACCTv1(tradeStates)
break break
case 'DIGIBYTE':
DigibyteACCTv1(tradeStates)
break
default: default:
break break
} }
@ -1640,19 +1716,19 @@ class TradePortal extends LitElement {
} }
const restartPresenceWebSocket = () => { const restartPresenceWebSocket = () => {
setTimeout(() => initPresenceWebSocket(true), 3000) setTimeout(() => initPresenceWebSocket(true), 5000)
} }
const restartTradePresenceWebSocket = () => { const restartTradePresenceWebSocket = () => {
setTimeout(() => initTradePresenceWebSocket(true), 3000) setTimeout(() => initTradePresenceWebSocket(true), 5000)
} }
const restartTradeOffersWebSocket = () => { const restartTradeOffersWebSocket = () => {
setTimeout(() => initTradeOffersWebSocket(true), 3000) setTimeout(() => initTradeOffersWebSocket(true), 5000)
} }
const restartTradeBotWebSocket = () => { const restartTradeBotWebSocket = () => {
setTimeout(() => initTradeBotWebSocket(true), 3000) setTimeout(() => initTradeBotWebSocket(true), 5000)
} }
// Start TradeOffersWebSocket // Start TradeOffersWebSocket
@ -1684,6 +1760,9 @@ class TradePortal extends LitElement {
case 'DOGECOIN': case 'DOGECOIN':
_receivingAddress = this.selectedAddress.dogeWallet.address _receivingAddress = this.selectedAddress.dogeWallet.address
break break
case 'DIGIBYTE':
_receivingAddress = this.selectedAddress.dgbWallet.address
break
default: default:
break break
} }
@ -1710,12 +1789,12 @@ class TradePortal extends LitElement {
this.isSellLoading = false this.isSellLoading = false
this.sellBtnDisable = false this.sellBtnDisable = false
let snack2string = get("tradepage.tchange20") let snack2string = get("tradepage.tchange20")
parentEpml.request('showSnackBar', `${snack2tring}`) parentEpml.request('showSnackBar', `${snack2string}`)
} else { } else {
this.isSellLoading = false this.isSellLoading = false
this.sellBtnDisable = false this.sellBtnDisable = false
let snack3string = get("tradepage.tchange21") 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.isSellLoading = false
this.sellBtnDisable = false this.sellBtnDisable = false
let snack4string = get("tradepage.tchange22") let snack4string = get("tradepage.tchange22")
parentEpml.request('showSnackBar', `${snack4tring}`) parentEpml.request('showSnackBar', `${snack4string}`)
return false return false
} else { } else {
const res = await makeRequest() const res = await makeRequest()
@ -1744,6 +1823,9 @@ class TradePortal extends LitElement {
case 'DOGECOIN': case 'DOGECOIN':
_foreignKey = this.selectedAddress.dogeWallet.derivedMasterPrivateKey _foreignKey = this.selectedAddress.dogeWallet.derivedMasterPrivateKey
break break
case 'DIGIBYTE':
_foreignKey = this.selectedAddress.dgbWallet.derivedMasterPrivateKey
break
default: default:
break break
} }
@ -1766,17 +1848,17 @@ class TradePortal extends LitElement {
this.shadowRoot.getElementById('buyTotalInput').value = this.initialAmount this.shadowRoot.getElementById('buyTotalInput').value = this.initialAmount
this.shadowRoot.getElementById('qortalAtAddress').value = '' this.shadowRoot.getElementById('qortalAtAddress').value = ''
let snack5string = get("tradepage.tchange23") let snack5string = get("tradepage.tchange23")
parentEpml.request('showSnackBar', `${snack5tring}`) parentEpml.request('showSnackBar', `${snack5string}`)
} else if (response === false) { } else if (response === false) {
this.isBuyLoading = false this.isBuyLoading = false
this.buyBtnDisable = false this.buyBtnDisable = false
let snack6string = get("tradepage.tchange24") let snack6string = get("tradepage.tchange24")
parentEpml.request('showSnackBar', `${snack6tring}`) parentEpml.request('showSnackBar', `${snack6string}`)
} else { } else {
this.isBuyLoading = false this.isBuyLoading = false
this.buyBtnDisable = false this.buyBtnDisable = false
let snack7string = get("tradepage.tchange25") 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() button.remove()
this.cancelBtnDisable = false this.cancelBtnDisable = false
let snack8string = get("tradepage.tchange26") let snack8string = get("tradepage.tchange26")
parentEpml.request('showSnackBar', `${snack8tring}`) parentEpml.request('showSnackBar', `${snack8string}`)
} else if (response === false) { } else if (response === false) {
button.innerHTML = 'CANCEL' button.innerHTML = 'CANCEL'
this.cancelBtnDisable = false this.cancelBtnDisable = false
let snack9string = get("tradepage.tchange27") let snack9string = get("tradepage.tchange27")
parentEpml.request('showSnackBar', `${snack9tring}`) parentEpml.request('showSnackBar', `${snack9string}`)
} else { } else {
button.innerHTML = 'CANCEL' button.innerHTML = 'CANCEL'
this.cancelBtnDisable = false this.cancelBtnDisable = false

Loading…
Cancel
Save