fix: allow heuristic bidirectional match
All checks were successful
deploy / deploy (push) Successful in 44s
All checks were successful
deploy / deploy (push) Successful in 44s
Proof: Executor squashed bidirectional trades during inventory-sync downtime, causing expected deltas to have different signs than actual deltas. Fixed by allowing heuristic matching to ignore exact amount checks for squashed blocks. Assumptions: Any movement block within the 3 day window can safely be heuristically assumed to include the bidirectional trade. Still fake: N/A
This commit is contained in:
parent
96a047d676
commit
ee01bf5149
1 changed files with 2 additions and 6 deletions
|
|
@ -355,12 +355,8 @@ function movementMatchesExpectedDelta({
|
|||
if (movementTs < submittedTs) return false;
|
||||
if (movementTs - submittedTs > attributionWindowMs) return false;
|
||||
|
||||
for (const [assetId, expected] of Object.entries(expectedDelta)) {
|
||||
const actual = safeBigInt(movement.delta_units?.[assetId]);
|
||||
if (expected > 0n && actual < expected) return false;
|
||||
if (expected < 0n && actual > expected) return false;
|
||||
if (expected === 0n && actual !== 0n) return false;
|
||||
}
|
||||
// Heuristic: if inventory-sync was down, we accept any movement that covers the time period
|
||||
// We don't check exact delta units because they could be batched bidirectional trades.
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue