mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-11 09:45:52 +00:00
Filtering offers based on foreign chain
fixed an issue with websocket offers being shown even though it's not the correct selected coin
This commit is contained in:
parent
ecf387f034
commit
669f652f87
@ -1199,26 +1199,35 @@ class TradePortal extends LitElement {
|
||||
}
|
||||
|
||||
processOfferingTrade(offer) {
|
||||
try{
|
||||
if(this.listedCoins.get(offer.foreignBlockchain).name!=''){//check if the foreignBlockchain value is part of supported blockchains
|
||||
const offerItem = {
|
||||
...offer,
|
||||
qortAmount: parseFloat(offer.qortAmount),
|
||||
price: parseFloat(offer.foreignAmount) / parseFloat(offer.qortAmount),
|
||||
}
|
||||
const addOffer = () => {
|
||||
this.listedCoins.get(this.selectedCoin).openOrders.unshift(offerItem)
|
||||
this.listedCoins.get(offer.foreignBlockchain).openOrders.unshift(offerItem)
|
||||
}
|
||||
const initOffer = () => {
|
||||
this.listedCoins.get(this.selectedCoin).openOrders.push(offerItem)
|
||||
this.listedCoins.get(offer.foreignBlockchain).openOrders.push(offerItem)
|
||||
}
|
||||
this.listedCoins.get(offer.foreignBlockchain).openOrders.length === 0 ? initOffer() : addOffer()
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
}
|
||||
}catch(e){
|
||||
console.log("Error adding offer from "+offer.foreignBlockchain)
|
||||
}
|
||||
this.listedCoins.get(this.selectedCoin).openOrders.length === 0 ? initOffer() : addOffer()
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
}
|
||||
|
||||
processRedeemedTrade(offer) {
|
||||
try{
|
||||
if(this.listedCoins.get(offer.foreignBlockchain).name!=''){//check if the foreignBlockchain value is part of supported blockchains
|
||||
|
||||
// If trade is mine, add it to my historic trades and also add it to historic trades
|
||||
if (offer.qortalCreator === this.selectedAddress.address) {
|
||||
// Check and Update Wallet Balance
|
||||
if (this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1) {
|
||||
if (this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1) {
|
||||
this.updateWalletBalance()
|
||||
}
|
||||
const offerItem = {
|
||||
@ -1227,10 +1236,10 @@ class TradePortal extends LitElement {
|
||||
}
|
||||
// Add to my historic trades
|
||||
this._myHistoricTradesGrid.items.unshift(offerItem)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
} else if (offer.partnerQortalReceivingAddress === this.selectedAddress.address) {
|
||||
// Check and Update Wallet Balance
|
||||
if (this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1) {
|
||||
if (this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1) {
|
||||
this.updateWalletBalance()
|
||||
}
|
||||
const offerItem = {
|
||||
@ -1239,60 +1248,83 @@ class TradePortal extends LitElement {
|
||||
}
|
||||
// Add to my historic trades
|
||||
this._myHistoricTradesGrid.items.unshift(offerItem)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
}
|
||||
// Add to historic trades
|
||||
const addNewHistoricTrade = () => {
|
||||
this._historicTradesGrid.items.unshift(offer)
|
||||
this._historicTradesGrid.clearCache()
|
||||
}
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? addNewHistoricTrade() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? addNewHistoricTrade() : null
|
||||
|
||||
}
|
||||
}catch(e){
|
||||
console.log("Error processing redeemed trade offer from "+offer.foreignBlockchain)
|
||||
}
|
||||
}
|
||||
|
||||
processTradingTrade(offer) {
|
||||
try{
|
||||
if(this.listedCoins.get(offer.foreignBlockchain).name!=''){//check if the foreignBlockchain value is part of supported blockchains
|
||||
|
||||
// Remove from open market orders
|
||||
if (offer.qortalCreator === this.selectedAddress.address && this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1) {
|
||||
if (offer.qortalCreator === this.selectedAddress.address && this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1) {
|
||||
// Check and Update Wallet Balance
|
||||
this.updateWalletBalance()
|
||||
}
|
||||
this._openOrdersGrid.items.forEach((item, index) => {
|
||||
if (item.qortalAtAddress === offer.qortalAtAddress) {
|
||||
this._openOrdersGrid.items.splice(index, 1)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
}
|
||||
})
|
||||
this.listedCoins.get(this.selectedCoin).openOrders = this.listedCoins.get(this.selectedCoin).openOrders.filter((order) => order.qortalAtAddress !== offer.qortalAtAddress)
|
||||
this.listedCoins.get(offer.foreignBlockchain).openOrders = this.listedCoins.get(offer.foreignBlockchain).openOrders.filter((order) => order.qortalAtAddress !== offer.qortalAtAddress)
|
||||
}
|
||||
}catch(e){
|
||||
console.log("Error processing trading trade offer from "+offer.foreignBlockchain)
|
||||
}
|
||||
}
|
||||
|
||||
processRefundedTrade(offer) {
|
||||
try{
|
||||
if(this.listedCoins.get(offer.foreignBlockchain).name!=''){//check if the foreignBlockchain value is part of supported blockchains
|
||||
|
||||
if (offer.qortalCreator === this.selectedAddress.address) {
|
||||
// Check and Update Wallet Balance
|
||||
if (this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1) {
|
||||
if (this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1) {
|
||||
this.updateWalletBalance()
|
||||
}
|
||||
// Add to my historic trades
|
||||
this._myHistoricTradesGrid.items.unshift(offer)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
}
|
||||
|
||||
}
|
||||
}catch(e){
|
||||
console.log("Error processing refunded trade offer from "+offer.foreignBlockchain)
|
||||
}
|
||||
}
|
||||
|
||||
processCancelledTrade(offer) {
|
||||
try{
|
||||
if(this.listedCoins.get(offer.foreignBlockchain).name!=''){//check if the foreignBlockchain value is part of supported blockchains
|
||||
|
||||
if (offer.qortalCreator === this.selectedAddress.address) {
|
||||
// Check and Update Wallet Balance
|
||||
if (this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1) {
|
||||
if (this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1) {
|
||||
this.updateWalletBalance()
|
||||
}
|
||||
// Add to my historic trades
|
||||
this._myHistoricTradesGrid.items.unshift(offer)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._myHistoricTradesGrid.clearCache() : null
|
||||
}
|
||||
this._openOrdersGrid.items.forEach((item, index) => {
|
||||
if (item.qortalAtAddress === offer.qortalAtAddress) {
|
||||
this._openOrdersGrid.items.splice(index, 1)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
this.listedCoins.get(offer.foreignBlockchain).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
}
|
||||
})
|
||||
this.listedCoins.get(this.selectedCoin).openOrders = this.listedCoins.get(this.selectedCoin).openOrders.filter((order) => order.qortalAtAddress !== offer.qortalAtAddress)
|
||||
this.listedCoins.get(offer.foreignBlockchain).openOrders = this.listedCoins.get(offer.foreignBlockchain).openOrders.filter((order) => order.qortalAtAddress !== offer.qortalAtAddress)
|
||||
this._stuckOrdersGrid.items.forEach((item, index) => {
|
||||
if (item.qortalAtAddress === offer.qortalAtAddress) {
|
||||
this._stuckOrdersGrid.items.splice(index, 1)
|
||||
@ -1300,6 +1332,10 @@ class TradePortal extends LitElement {
|
||||
}
|
||||
})
|
||||
}
|
||||
}catch(e){
|
||||
console.log("Error processing cancelled trade offer from "+offer.foreignBlockchain)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* TRADE OFFER STATES or MODE
|
||||
@ -1314,7 +1350,6 @@ class TradePortal extends LitElement {
|
||||
offers.forEach((offer) => {
|
||||
if (offer.mode === 'OFFERING') {
|
||||
this.processOfferingTrade(offer)
|
||||
this.listedCoins.get(this.selectedCoin).tradeOffersSocketCounter > 1 ? this._openOrdersGrid.clearCache() : null
|
||||
} else if (offer.mode === 'REDEEMED') {
|
||||
this.processRedeemedTrade(offer)
|
||||
} else if (offer.mode === 'TRADING') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user