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 5ef9ef91..44131cec 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
@@ -338,6 +338,10 @@ class TradePortal extends LitElement {
top: 10px;
}
+ .btc.coinName:before {
+ background-image: url('/img/qortbtc.png');
+ }
+
.ltc.coinName:before {
background-image: url('/img/qortltc.png');
}
@@ -354,6 +358,18 @@ class TradePortal extends LitElement {
background-image: url('/img/qortrvn.png');
}
+ .nmc.coinName:before {
+ background-image: url('/img/qortnmc.png');
+ }
+
+ .dash.coinName:before {
+ background-image: url('/img/qortdash.png');
+ }
+
+ .firo.coinName:before {
+ background-image: url('/img/qortfiro.png');
+ }
+
.coinName {
display: inline-block;
height: 26px;
@@ -423,6 +439,22 @@ class TradePortal extends LitElement {
tradeFee: "0.002"
}
+ let bitcoin = {
+ name: "BITCOIN",
+ balance: "0",
+ coinCode: "BTC",
+ openOrders: [],
+ openFilteredOrders: [],
+ historicTrades: [],
+ myOrders: [],
+ myHistoricTrades: [],
+ myOfferingOrders: [],
+ openTradeOrders: null,
+ tradeOffersSocketCounter: 1,
+ coinAmount: this.amountString,
+ tradeFee: "~0.0005"
+ }
+
let litecoin = {
name: "LITECOIN",
balance: "0",
@@ -484,21 +516,78 @@ class TradePortal extends LitElement {
openTradeOrders: null,
tradeOffersSocketCounter: 1,
coinAmount: this.amountString,
- tradeFee: "~0.006"
+ tradeFee: "~0.015"
+ }
+
+ let namecoin = {
+ name: "NAMECOIN",
+ balance: "0",
+ coinCode: "NMC",
+ openOrders: [],
+ openFilteredOrders: [],
+ historicTrades: [],
+ myOrders: [],
+ myHistoricTrades: [],
+ myOfferingOrders: [],
+ openTradeOrders: null,
+ tradeOffersSocketCounter: 1,
+ coinAmount: this.amountString,
+ tradeFee: "~0.005"
+ }
+
+ let dash = {
+ name: "DASH",
+ balance: "0",
+ coinCode: "DASH",
+ openOrders: [],
+ openFilteredOrders: [],
+ historicTrades: [],
+ myOrders: [],
+ myHistoricTrades: [],
+ myOfferingOrders: [],
+ openTradeOrders: null,
+ tradeOffersSocketCounter: 1,
+ coinAmount: this.amountString,
+ tradeFee: "~0.000015"
+ }
+
+ let firo = {
+ name: "FIRO",
+ balance: "0",
+ coinCode: "FIRO",
+ openOrders: [],
+ openFilteredOrders: [],
+ historicTrades: [],
+ myOrders: [],
+ myHistoricTrades: [],
+ myOfferingOrders: [],
+ openTradeOrders: null,
+ tradeOffersSocketCounter: 1,
+ coinAmount: this.amountString,
+ tradeFee: "~0.000015"
}
this.listedCoins = new Map()
this.listedCoins.set("QORTAL", qortal)
+ this.listedCoins.set("BITCOIN", bitcoin)
this.listedCoins.set("LITECOIN", litecoin)
this.listedCoins.set("DOGECOIN", dogecoin)
this.listedCoins.set("DIGIBYTE", digibyte)
this.listedCoins.set("RAVENCOIN", ravencoin)
+ this.listedCoins.set("NAMECOIN", namecoin)
+ this.listedCoins.set("DASH", dash)
+ this.listedCoins.set("FIRO", firo)
workers.set("QORTAL", {
tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null
})
+ workers.set("BITCOIN", {
+ tradesConnectedWorker: null,
+ handleStuckTradesConnectedWorker: null
+ })
+
workers.set("LITECOIN", {
tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null
@@ -519,6 +608,21 @@ class TradePortal extends LitElement {
handleStuckTradesConnectedWorker: null
})
+ workers.set("NAMECOIN", {
+ tradesConnectedWorker: null,
+ handleStuckTradesConnectedWorker: null
+ })
+
+ workers.set("DASH", {
+ tradesConnectedWorker: null,
+ handleStuckTradesConnectedWorker: null
+ })
+
+ workers.set("FIRO", {
+ tradesConnectedWorker: null,
+ handleStuckTradesConnectedWorker: null
+ })
+
this.selectedCoin = "LITECOIN"
this.selectedAddress = {}
this.config = {}
@@ -902,9 +1006,13 @@ class TradePortal extends LitElement {
Qortal ${translate("tradepage.tchange1")} -
@@ -1059,6 +1167,10 @@ class TradePortal extends LitElement {
let _body = null
switch (this.selectedCoin) {
+ case 'BITCOIN':
+ _url = `/crosschain/btc/walletbalance?apiKey=${this.getApiKey()}`
+ _body = window.parent.reduxStore.getState().app.selectedAddress.btcWallet.derivedMasterPublicKey
+ break
case 'LITECOIN':
_url = `/crosschain/ltc/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.ltcWallet.derivedMasterPublicKey
@@ -1074,6 +1186,18 @@ class TradePortal extends LitElement {
case 'RAVENCOIN':
_url = `/crosschain/rvn/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet.derivedMasterPublicKey
+ break
+ case 'NAMECOIN':
+ _url = `/crosschain/nmc/walletbalance?apiKey=${this.getApiKey()}`
+ _body = window.parent.reduxStore.getState().app.selectedAddress.nmcWallet.derivedMasterPublicKey
+ break
+ case 'DASH':
+ _url = `/crosschain/dash/walletbalance?apiKey=${this.getApiKey()}`
+ _body = window.parent.reduxStore.getState().app.selectedAddress.dashWallet.derivedMasterPublicKey
+ break
+ case 'FIRO':
+ _url = `/crosschain/firo/walletbalance?apiKey=${this.getApiKey()}`
+ _body = window.parent.reduxStore.getState().app.selectedAddress.firoWallet.derivedMasterPublicKey
break
default:
break
@@ -1312,23 +1436,19 @@ class TradePortal extends LitElement {
processTradeBotStates(tradeStates) {
/**
- * BitcoinACCTv1 TRADEBOT STATES
- * - BOB_WAITING_FOR_AT_CONFIRM
- * - BOB_WAITING_FOR_MESSAGE
- * - BOB_WAITING_FOR_P2SH_B
- * - BOB_WAITING_FOR_AT_REDEEM
- * - BOB_DONE
- * - BOB_REFUNDED
- * - ALICE_WAITING_FOR_P2SH_A
- * - ALICE_WAITING_FOR_AT_LOCK
- * - ALICE_WATCH_P2SH_B
- * - ALICE_DONE
- * - ALICE_REFUNDING_B
- * - ALICE_REFUNDING_A
- * - ALICE_REFUNDED
- *
- * @param {[{}]} states
- */
+ * BitcoinACCTv1 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 BitcoinACCTv1 = (states) => {
// Reverse the states
@@ -1339,24 +1459,16 @@ class TradePortal extends LitElement {
this.changeTradeBotState(state, 'PENDING')
} else if (state.tradeState == 'BOB_WAITING_FOR_MESSAGE') {
this.changeTradeBotState(state, 'LISTED')
- } else if (state.tradeState == 'BOB_WAITING_FOR_P2SH_B') {
- this.changeTradeBotState(state, 'TRADING')
} else if (state.tradeState == 'BOB_WAITING_FOR_AT_REDEEM') {
- this.changeTradeBotState(state, 'REDEEMING')
+ 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_P2SH_A') {
- this.changeTradeBotState(state, 'PENDING')
} else if (state.tradeState == 'ALICE_WAITING_FOR_AT_LOCK') {
- this.changeTradeBotState(state, 'TRADING')
- } else if (state.tradeState == 'ALICE_WATCH_P2SH_B') {
- this.changeTradeBotState(state, 'TRADING')
+ this.changeTradeBotState(state, 'BUYING')
} else if (state.tradeState == 'ALICE_DONE') {
this.handleCompletedState(state)
- } else if (state.tradeState == 'ALICE_REFUNDING_B') {
- this.changeTradeBotState(state, 'REFUNDING')
} else if (state.tradeState == 'ALICE_REFUNDING_A') {
this.changeTradeBotState(state, 'REFUNDING')
} else if (state.tradeState == 'ALICE_REFUNDED') {
@@ -1538,6 +1650,135 @@ class TradePortal extends LitElement {
})
}
+ /**
+ * NamecoinACCTv1 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 NamecoinACCTv1 = (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)
+ }
+ }
+ })
+ }
+
+ /**
+ * DashACCTv1 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 DashACCTv1 = (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)
+ }
+ }
+ })
+ }
+
+ /**
+ * FiroACCTv1 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 FiroACCTv1 = (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)
@@ -1554,6 +1795,15 @@ class TradePortal extends LitElement {
case 'RAVENCOIN':
RavencoinACCTv1(tradeStates)
break
+ case 'NAMECOIN':
+ NamecoinACCTv1(tradeStates)
+ break
+ case 'DASH':
+ DashACCTv1(tradeStates)
+ break
+ case 'FIRO':
+ FiroACCTv1(tradeStates)
+ break
default:
break
}
@@ -1837,6 +2087,9 @@ class TradePortal extends LitElement {
const makeRequest = async () => {
let _receivingAddress = null
switch (this.selectedCoin) {
+ case 'BITCOIN':
+ _receivingAddress = this.selectedAddress.btcWallet.address
+ break
case 'LITECOIN':
_receivingAddress = this.selectedAddress.ltcWallet.address
break
@@ -1848,6 +2101,15 @@ class TradePortal extends LitElement {
break
case 'RAVENCOIN':
_receivingAddress = this.selectedAddress.rvnWallet.address
+ break
+ case 'NAMECOIN':
+ _receivingAddress = this.selectedAddress.nmcWallet.address
+ break
+ case 'DASH':
+ _receivingAddress = this.selectedAddress.dashWallet.address
+ break
+ case 'FIRO':
+ _receivingAddress = this.selectedAddress.firoWallet.address
break
default:
break
@@ -1903,6 +2165,9 @@ class TradePortal extends LitElement {
let _foreignKey = ""
switch (this.selectedCoin) {
+ case 'BITCOIN':
+ _foreignKey = this.selectedAddress.btcWallet.derivedMasterPrivateKey
+ break
case 'LITECOIN':
_foreignKey = this.selectedAddress.ltcWallet.derivedMasterPrivateKey
break
@@ -1914,6 +2179,15 @@ class TradePortal extends LitElement {
break
case 'RAVENCOIN':
_foreignKey = this.selectedAddress.rvnWallet.derivedMasterPrivateKey
+ break
+ case 'NAMECOIN':
+ _foreignKey = this.selectedAddress.nmcWallet.derivedMasterPrivateKey
+ break
+ case 'DASH':
+ _foreignKey = this.selectedAddress.dashWallet.derivedMasterPrivateKey
+ break
+ case 'FIRO':
+ _foreignKey = this.selectedAddress.firoWallet.derivedMasterPrivateKey
break
default:
break