diff --git a/src/lib/alarms/rollback.ts b/src/lib/alarms/rollback.ts index aab38f67..f3919a59 100644 --- a/src/lib/alarms/rollback.ts +++ b/src/lib/alarms/rollback.ts @@ -30,7 +30,10 @@ function findRollbackTrades(pendingTrades: SlimTrade[], tradeHistory: TradeHisto // Does it correspond to an active CSFloat sale? const csfloatTrade = pendingTrades.find( - (e) => e.state === TradeState.PENDING && all_ids.includes(e.contract.item.asset_id) + (e) => + e.state === TradeState.PENDING && + all_ids.includes(e.contract.item.asset_id) && + (trade.other_party_id === e.seller_id || trade.other_party_id === e.buyer_id) ); if (!csfloatTrade) { continue; diff --git a/src/lib/alarms/trade_history.ts b/src/lib/alarms/trade_history.ts index 563a5842..0e7c9ac7 100644 --- a/src/lib/alarms/trade_history.ts +++ b/src/lib/alarms/trade_history.ts @@ -147,6 +147,7 @@ export async function getTradeHistoryFromAPI( .map((e) => { return { other_party_url: `https://steamcommunity.com/profiles/${e.steamid_other}`, + other_party_id: e.steamid_other, received_assets: (e.assets_received || []) .filter((e) => e.appid === AppId.CSGO) .map((e) => { @@ -193,6 +194,7 @@ function parseTradeHistoryHTML(body: string): TradeHistoryStatus[] { const statuses = [...links].map((e) => { return { other_party_url: `https://steamcommunity.com/${e[1]}`, + other_party_id: '', received_assets: [], given_assets: [], trade_id: '', diff --git a/src/lib/alarms/trade_offer.ts b/src/lib/alarms/trade_offer.ts index b51b10d6..f9bfe0e1 100644 --- a/src/lib/alarms/trade_offer.ts +++ b/src/lib/alarms/trade_offer.ts @@ -112,7 +112,8 @@ export async function pingCancelTrades(pendingTrades: SlimTrade[], tradeHistory: const rolledBackTrade = (tradeHistory || []).find( (e) => e.status === TradeStatus.TradeProtectionRollback && - !!e.received_assets.find((a) => a.asset_id === trade.contract?.item?.asset_id) + !!e.received_assets.find((a) => a.asset_id === trade.contract?.item?.asset_id) && + (e.other_party_id === trade.seller_id || e.other_party_id === trade.buyer_id) ); if (!rolledBackTrade) { // no rollback, trade offer was accepted, shouldn't cancel diff --git a/src/lib/bridge/handlers/trade_history_status.ts b/src/lib/bridge/handlers/trade_history_status.ts index daa4396d..ba7fa493 100644 --- a/src/lib/bridge/handlers/trade_history_status.ts +++ b/src/lib/bridge/handlers/trade_history_status.ts @@ -11,6 +11,7 @@ export interface TradeHistoryStatus { trade_id: string; status: number; other_party_url: string; + other_party_id: string; received_assets: TradeHistoryAsset[]; given_assets: TradeHistoryAsset[]; time_init: number;