@@ -159,7 +159,9 @@ const asSideshiftTx = asObject({
159159 depositNetwork : asOptional ( asString ) ,
160160 depositHash : asOptional ( asString ) ,
161161 depositContractAddress : asOptional ( asString ) ,
162- depositEvmChainId : asOptional ( asNumber ) ,
162+ // asMaybe so an unexpected encoding (e.g. a numeric string) degrades to
163+ // undefined instead of throwing and aborting the whole 5-day query block
164+ depositEvmChainId : asMaybe ( asNumber ) ,
163165 invoiceAmount : asString ,
164166 settleAddress : asObject ( {
165167 address : asString
@@ -169,7 +171,7 @@ const asSideshiftTx = asObject({
169171 settleNetwork : asOptional ( asString ) ,
170172 settleHash : asOptional ( asString ) ,
171173 settleContractAddress : asOptional ( asString ) ,
172- settleEvmChainId : asOptional ( asNumber ) ,
174+ settleEvmChainId : asMaybe ( asNumber ) ,
173175 createdAt : asString ,
174176 settledAt : asOptional ( asString )
175177} )
@@ -371,6 +373,11 @@ export async function processSideshiftTx(
371373 status : statusMap [ tx . status ] ,
372374 orderId : tx . id ,
373375 countryCode : null ,
376+ // On EVM networks, TRON, Aptos, Sui, NEAR, and Algorand, SideShift's
377+ // depositHash is the internal sweep transaction (deposit contract to
378+ // their wallet), not the customer's own deposit transaction. The API
379+ // exposes no better field, so treat this as an order reference, not a
380+ // pointer to the customer's on-chain payment.
374381 depositTxid : tx . depositHash ,
375382 depositAddress,
376383 depositCurrency : tx . depositAsset ,
0 commit comments