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..5bbbb3cf 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');
}
+ .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 {
@@ -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