Correct mainnet addresses and read pool activity from chain
Every address is now confirmed on-chain via name/symbol/decimals or getClassAt against two independent RPC providers. Three documented values were wrong in ways that fail silently: USDC pointed at bridged USDC.e rather than native Circle USDC. Inside the pool that is ~19,600 shielded events against 80, so the planner would have routed value into a venue with almost no anonymity set. The pool fee is 6 STRK on-chain, not the documented 4. A MAX pre-fill computed from 4 fails after the user has already signed. The Vesu anonymizer class hash is not declared on mainnet, so the private-lending route cannot execute. It is marked undeclared rather than removed, since the hash is real and comes from an RC tag. Adds strkBTC, the third most-shielded asset in the pool, which the USDC to strkBTC swap in the spec requires. Pool activity is read from real events rather than invented. Two things the chain forced: amounts are not recoverable from private actions (they emit commitments, so bucketing by "first non-zero data word" would tier commitment hashes), and inter-arrival gaps must come from observed event spacing — filling them with a constant would report the pool as perfectly periodic and corrupt the timing term outright. The Blast public RPC now errors on every call and is replaced as the keyless fallback. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
S
Shariq Shaukat committed
b6d2194d4fb9330e1357f9c8c76838ce2c50c10a
Parent: f12911d