mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 17:55:51 +00:00
add RVN to Trade Portal
This commit is contained in:
parent
5474b6bff1
commit
1f254b4dda
@ -346,6 +346,10 @@ class TradePortal extends LitElement {
|
||||
background-image: url('/img/qortdoge.png');
|
||||
}
|
||||
|
||||
.rvn.coinName:before {
|
||||
background-image: url('/img/qortrvn.png');
|
||||
}
|
||||
|
||||
.coinName {
|
||||
display: inline-block;
|
||||
height: 26px;
|
||||
@ -444,10 +448,26 @@ class TradePortal extends LitElement {
|
||||
coinAmount: this.amountString
|
||||
}
|
||||
|
||||
let ravencoin = {
|
||||
name: "RAVENCOIN",
|
||||
balance: "0",
|
||||
coinCode: "RVN",
|
||||
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("RAVENCOIN", ravencoin)
|
||||
|
||||
workers.set("QORTAL", {
|
||||
tradesConnectedWorker: null,
|
||||
@ -464,6 +484,11 @@ class TradePortal extends LitElement {
|
||||
handleStuckTradesConnectedWorker: null
|
||||
})
|
||||
|
||||
workers.set("RAVENCOIN", {
|
||||
tradesConnectedWorker: null,
|
||||
handleStuckTradesConnectedWorker: null
|
||||
})
|
||||
|
||||
this.selectedCoin = "LITECOIN"
|
||||
this.selectedAddress = {}
|
||||
this.config = {}
|
||||
@ -846,6 +871,7 @@ class TradePortal extends LitElement {
|
||||
<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="DOGECOIN"><span class="coinName doge" style="color: var(--black);">QORT / DOGE</span></mwc-list-item>
|
||||
<mwc-list-item value="RAVENCOIN"><span class="coinName rvn" style="color: var(--black);">QORT / RVN</span></mwc-list-item>
|
||||
</mwc-select>
|
||||
</div>
|
||||
<div id="trade-portal">
|
||||
@ -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 'RAVENCOIN':
|
||||
_url = `/crosschain/rvn/walletbalance?apiKey=${this.getApiKey()}`
|
||||
_body = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet.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 {
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* RavencoinACCTv1 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 RavencoinACCTv1 = (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 'RAVENCOIN':
|
||||
RavencoinACCTv1(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 'RAVENCOIN':
|
||||
_receivingAddress = this.selectedAddress.rvnWallet.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 'RAVENCOIN':
|
||||
_foreignKey = this.selectedAddress.rvnWallet.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
|
||||
|
Loading…
x
Reference in New Issue
Block a user