mirror of
https://github.com/luxfi/graph.git
synced 2026-09-24 00:26:07 +00:00
Red MEDIUM (FIX C): maybeResetForRegenesis rewound to StartBlock on the FIRST poll where head << cursor, so an idle chain (eth_blockNumber=0x0, 'Building block') or a briefly-lagging RPC backend triggered a full re-index from genesis (DoS amplification). Add hysteresis: require the low head to persist across regenesisConfirmations consecutive polls; a recovered/normal head clears the streak. A genuine relaunch holds low for many polls; a transient dip recovers in one or two. Red MEDIUM: bumpFactory wrote SeedFactoryData with empty TVL/volume, and SeedFactory is INSERT OR REPLACE, so every pool-create/swap clobbered totalVolumeUSD/totalValueLockedUSD (emptying the landing-page header). Carry both USD aggregates through the read-modify-write (asString helper). Red LOW: handleInitializeV4 now MERGES with any volume stub a prior fill accumulated (don't reset volume24h/tradeCount to 0 when enriching with the token pair/fee). decodeUint256 guards the SetString ok bool (malformed hex -> clean 0, not a half-parsed amount). Tests: regenesis requires sustained low head; idle-low-head-that-recovers does NOT wipe; shallow reorg no reset; Initialize builds a rich Market (pair+fee), merges stub volume; bumpFactory preserves TVL/volume; decodeInt256 signed. New engine end-to-end: the dex schema resolves the FE markets/fills query shapes against indexed entities, amm does NOT (the exchange-api routing rationale, mirroring Red's live finding). Full graph suite green (CGO_ENABLED=1).