4
1
mirror of https://github.com/Qortal/qortal-ui.git synced 2025-02-11 17:55:51 +00:00

Added BTC, NMC, DASH, & FIRO to Trade Portal

Also fixed the estimated trade fee for RVN, and updated the ACCT for BTC.
This commit is contained in:
QuickMythril 2022-05-07 03:30:17 -04:00
parent fb6b5d54fa
commit 1f37de8f12

View File

@ -338,6 +338,10 @@ class TradePortal extends LitElement {
top: 10px; top: 10px;
} }
.btc.coinName:before {
background-image: url('/img/qortbtc.png');
}
.ltc.coinName:before { .ltc.coinName:before {
background-image: url('/img/qortltc.png'); background-image: url('/img/qortltc.png');
} }
@ -354,6 +358,18 @@ class TradePortal extends LitElement {
background-image: url('/img/qortrvn.png'); 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 { .coinName {
display: inline-block; display: inline-block;
height: 26px; height: 26px;
@ -423,6 +439,22 @@ class TradePortal extends LitElement {
tradeFee: "0.002" 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 = { let litecoin = {
name: "LITECOIN", name: "LITECOIN",
balance: "0", balance: "0",
@ -484,21 +516,78 @@ class TradePortal extends LitElement {
openTradeOrders: null, openTradeOrders: null,
tradeOffersSocketCounter: 1, tradeOffersSocketCounter: 1,
coinAmount: this.amountString, 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 = new Map()
this.listedCoins.set("QORTAL", qortal) this.listedCoins.set("QORTAL", qortal)
this.listedCoins.set("BITCOIN", bitcoin)
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) this.listedCoins.set("DIGIBYTE", digibyte)
this.listedCoins.set("RAVENCOIN", ravencoin) this.listedCoins.set("RAVENCOIN", ravencoin)
this.listedCoins.set("NAMECOIN", namecoin)
this.listedCoins.set("DASH", dash)
this.listedCoins.set("FIRO", firo)
workers.set("QORTAL", { workers.set("QORTAL", {
tradesConnectedWorker: null, tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null handleStuckTradesConnectedWorker: null
}) })
workers.set("BITCOIN", {
tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null
})
workers.set("LITECOIN", { workers.set("LITECOIN", {
tradesConnectedWorker: null, tradesConnectedWorker: null,
handleStuckTradesConnectedWorker: null handleStuckTradesConnectedWorker: null
@ -519,6 +608,21 @@ class TradePortal extends LitElement {
handleStuckTradesConnectedWorker: null 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.selectedCoin = "LITECOIN"
this.selectedAddress = {} this.selectedAddress = {}
this.config = {} this.config = {}
@ -902,9 +1006,13 @@ class TradePortal extends LitElement {
<h2 style="margin: 0 0 15px 0; line-height: 50px; display: inline;">Qortal ${translate("tradepage.tchange1")} - &nbsp;</h2> <h2 style="margin: 0 0 15px 0; line-height: 50px; display: inline;">Qortal ${translate("tradepage.tchange1")} - &nbsp;</h2>
<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="BITCOIN"><span class="coinName btc" style="color: var(--black);">QORT / BTC</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-list-item value="DIGIBYTE"><span class="coinName dgb" style="color: var(--black);">QORT / DGB</span></mwc-list-item>
<mwc-list-item value="RAVENCOIN"><span class="coinName rvn" style="color: var(--black);">QORT / RVN</span></mwc-list-item> <mwc-list-item value="RAVENCOIN"><span class="coinName rvn" style="color: var(--black);">QORT / RVN</span></mwc-list-item>
<mwc-list-item value="NAMECOIN"><span class="coinName nmc" style="color: var(--black);">QORT / NMC</span></mwc-list-item>
<mwc-list-item value="DASH"><span class="coinName dash" style="color: var(--black);">QORT / DASH</span></mwc-list-item>
<mwc-list-item value="FIRO"><span class="coinName firo" style="color: var(--black);">QORT / FIRO</span></mwc-list-item>
</mwc-select> </mwc-select>
</div> </div>
<div id="trade-portal"> <div id="trade-portal">
@ -1059,6 +1167,10 @@ class TradePortal extends LitElement {
let _body = null let _body = null
switch (this.selectedCoin) { switch (this.selectedCoin) {
case 'BITCOIN':
_url = `/crosschain/btc/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.btcWallet.derivedMasterPublicKey
break
case 'LITECOIN': case 'LITECOIN':
_url = `/crosschain/ltc/walletbalance?apiKey=${this.getApiKey()}` _url = `/crosschain/ltc/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.ltcWallet.derivedMasterPublicKey _body = window.parent.reduxStore.getState().app.selectedAddress.ltcWallet.derivedMasterPublicKey
@ -1074,6 +1186,18 @@ class TradePortal extends LitElement {
case 'RAVENCOIN': case 'RAVENCOIN':
_url = `/crosschain/rvn/walletbalance?apiKey=${this.getApiKey()}` _url = `/crosschain/rvn/walletbalance?apiKey=${this.getApiKey()}`
_body = window.parent.reduxStore.getState().app.selectedAddress.rvnWallet.derivedMasterPublicKey _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 break
default: default:
break break
@ -1312,23 +1436,19 @@ class TradePortal extends LitElement {
processTradeBotStates(tradeStates) { processTradeBotStates(tradeStates) {
/** /**
* BitcoinACCTv1 TRADEBOT STATES * BitcoinACCTv1 TRADEBOT STATES
* - BOB_WAITING_FOR_AT_CONFIRM * - BOB_WAITING_FOR_AT_CONFIRM
* - BOB_WAITING_FOR_MESSAGE * - BOB_WAITING_FOR_MESSAGE
* - BOB_WAITING_FOR_P2SH_B * - BOB_WAITING_FOR_AT_REDEEM
* - BOB_WAITING_FOR_AT_REDEEM * - BOB_DONE
* - BOB_DONE * - BOB_REFUNDED
* - BOB_REFUNDED * - ALICE_WAITING_FOR_AT_LOCK
* - ALICE_WAITING_FOR_P2SH_A * - ALICE_DONE
* - ALICE_WAITING_FOR_AT_LOCK * - ALICE_REFUNDING_A
* - ALICE_WATCH_P2SH_B * - ALICE_REFUNDED
* - ALICE_DONE *
* - ALICE_REFUNDING_B * @param {[{}]} states
* - ALICE_REFUNDING_A */
* - ALICE_REFUNDED
*
* @param {[{}]} states
*/
const BitcoinACCTv1 = (states) => { const BitcoinACCTv1 = (states) => {
// Reverse the states // Reverse the states
@ -1339,24 +1459,16 @@ class TradePortal extends LitElement {
this.changeTradeBotState(state, 'PENDING') this.changeTradeBotState(state, 'PENDING')
} else if (state.tradeState == 'BOB_WAITING_FOR_MESSAGE') { } else if (state.tradeState == 'BOB_WAITING_FOR_MESSAGE') {
this.changeTradeBotState(state, 'LISTED') 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') { } else if (state.tradeState == 'BOB_WAITING_FOR_AT_REDEEM') {
this.changeTradeBotState(state, 'REDEEMING') this.changeTradeBotState(state, 'TRADING')
} else if (state.tradeState == 'BOB_DONE') { } else if (state.tradeState == 'BOB_DONE') {
this.handleCompletedState(state) this.handleCompletedState(state)
} else if (state.tradeState == 'BOB_REFUNDED') { } else if (state.tradeState == 'BOB_REFUNDED') {
this.handleCompletedState(state) 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') { } else if (state.tradeState == 'ALICE_WAITING_FOR_AT_LOCK') {
this.changeTradeBotState(state, 'TRADING') this.changeTradeBotState(state, 'BUYING')
} else if (state.tradeState == 'ALICE_WATCH_P2SH_B') {
this.changeTradeBotState(state, 'TRADING')
} else if (state.tradeState == 'ALICE_DONE') { } else if (state.tradeState == 'ALICE_DONE') {
this.handleCompletedState(state) this.handleCompletedState(state)
} else if (state.tradeState == 'ALICE_REFUNDING_B') {
this.changeTradeBotState(state, 'REFUNDING')
} else if (state.tradeState == 'ALICE_REFUNDING_A') { } else if (state.tradeState == 'ALICE_REFUNDING_A') {
this.changeTradeBotState(state, 'REFUNDING') this.changeTradeBotState(state, 'REFUNDING')
} else if (state.tradeState == 'ALICE_REFUNDED') { } 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) { switch (this.selectedCoin) {
case 'BITCOIN': case 'BITCOIN':
BitcoinACCTv1(tradeStates) BitcoinACCTv1(tradeStates)
@ -1554,6 +1795,15 @@ class TradePortal extends LitElement {
case 'RAVENCOIN': case 'RAVENCOIN':
RavencoinACCTv1(tradeStates) RavencoinACCTv1(tradeStates)
break break
case 'NAMECOIN':
NamecoinACCTv1(tradeStates)
break
case 'DASH':
DashACCTv1(tradeStates)
break
case 'FIRO':
FiroACCTv1(tradeStates)
break
default: default:
break break
} }
@ -1837,6 +2087,9 @@ class TradePortal extends LitElement {
const makeRequest = async () => { const makeRequest = async () => {
let _receivingAddress = null let _receivingAddress = null
switch (this.selectedCoin) { switch (this.selectedCoin) {
case 'BITCOIN':
_receivingAddress = this.selectedAddress.btcWallet.address
break
case 'LITECOIN': case 'LITECOIN':
_receivingAddress = this.selectedAddress.ltcWallet.address _receivingAddress = this.selectedAddress.ltcWallet.address
break break
@ -1848,6 +2101,15 @@ class TradePortal extends LitElement {
break break
case 'RAVENCOIN': case 'RAVENCOIN':
_receivingAddress = this.selectedAddress.rvnWallet.address _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 break
default: default:
break break
@ -1903,6 +2165,9 @@ class TradePortal extends LitElement {
let _foreignKey = "" let _foreignKey = ""
switch (this.selectedCoin) { switch (this.selectedCoin) {
case 'BITCOIN':
_foreignKey = this.selectedAddress.btcWallet.derivedMasterPrivateKey
break
case 'LITECOIN': case 'LITECOIN':
_foreignKey = this.selectedAddress.ltcWallet.derivedMasterPrivateKey _foreignKey = this.selectedAddress.ltcWallet.derivedMasterPrivateKey
break break
@ -1914,6 +2179,15 @@ class TradePortal extends LitElement {
break break
case 'RAVENCOIN': case 'RAVENCOIN':
_foreignKey = this.selectedAddress.rvnWallet.derivedMasterPrivateKey _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 break
default: default:
break break