Skip to content

VIP-658 [BNB Chain, Ethereum, Arbitrum One, Base] DeviationSentinel 2026-08 Parameter Adjustment - #760

Merged
fred-venus merged 5 commits into
mainfrom
bot/VDB-56-work-on-deviation-sentinel-aug-2026
Aug 28, 2026
Merged

VIP-658 [BNB Chain, Ethereum, Arbitrum One, Base] DeviationSentinel 2026-08 Parameter Adjustment#760
fred-venus merged 5 commits into
mainfrom
bot/VDB-56-work-on-deviation-sentinel-aug-2026

Conversation

@trumpgpt-bot

@trumpgpt-bot trumpgpt-bot commented Aug 26, 2026

Copy link
Copy Markdown
Contributor

VIP-658: DeviationSentinel 2026-08 Parameter Adjustment

Summary

Retunes DeviationSentinel thresholds to a unified 5% across BNB Chain, Ethereum, Arbitrum One and Base, repoints several markets' price-source pools to deeper DEX pools, and disables monitoring for BSC TUSD. No new contracts are deployed and no ACM grants change — every setter used was permissioned in VIP-590 (BSC) / VIP-616 (remote chains), and the Curve/Uniswap targets are compatible with the already-deployed CurveOracle / UniswapOracle (as in VIP-624).

Scope

BNB Chain — 14 commands

  • Retune to 5%: U, USD1, lisUSD (1% → 5%); SolvBTC, slisBNB, wBETH (3% → 5%); FDUSD (10% → 5%)
  • Pool move + retune to 5%: USDC (1% → 5%) and USDT (3% → 5%) → PancakeSwap V3 USDT/USDC 0.05% (0x4f31Fa980a675570939B737Ebdde0471a4Be40Eb)
  • Disable monitoring: TUSD (setTokenMonitoringEnabled(TUSD, false)); DAI is already disabled on-chain (VIP-644), so no command is emitted for it

Ethereum — 26 commands

  • Retune to 5%: USDe (1% → 5%); USDS (10% → 5%)
  • Pool move + retune to 5%: USDC / USDT / DAI → Curve 3pool (0xbEbc44782C7dB0a1A60Cb6fe97d0b483032FF1C7); crvUSD → Curve USDT/crvUSD (0x390f3595bCa2Df7d23783dFd126427CCeb997BF4); sUSDe → Curve crvUSD/sUSDe (0x57064F49Ad7123C92560882a45518374ad982e85); sUSDS → Curve sUSDe/sUSDS (0x3CEf1AFC0E8324b57293a6E7cE663781bbEFBB79); WBTC → Uniswap V3 USDT/WBTC 0.30% (0x9Db9e0e53058C89e5B94e29621a205198648425B); LBTC → Uniswap V3 WBTC/LBTC 0.01% (0x0b599ebf4E05af48b56D38E2DDe520570C366460); tBTC → Curve WBTC/tBTC (0xB7ECB2AA52AA64a717180E030241bC75Cd946726)
  • Pool move only (threshold left at 10%): WETH → Uniswap V3 WETH/USDT 0.30% (0x4e68Ccd3E89f51C3074ca5072bbAC773960dFa36)

Note: for crvUSD, sUSDS, WBTC, LBTC and WETH the SentinelOracle already routes to the target DEX oracle (curve→curve / uniswap→uniswap), so only the pool binding (and, where applicable, the threshold) is updated — the redundant SentinelOracle repoint is elided, which also keeps the single cross-chain LayerZero message within its payload-size cap.

Arbitrum One — 7 commands

  • Retune to 5%: USDC, USD₮0 (1% → 5%)
  • Pool move + retune to 5%: WBTC (3% → 5%) → Uniswap V3 WBTC/WETH 0.05% (0x2f5e87C9312fa29aed5c179E456625D79015299c)
  • Pool move only (threshold unchanged): ARB → Uniswap V3 ARB/WETH 0.05% (0xC6F780497A95e246EB9449f5e4770916DCd6396A)

Base — 3 commands

  • Retune to 5%: USDC, cbBTC, wstETH (3% → 5%). No pool changes.

Notes

  • Shared-pool co-trip: moving BSC USDC + USDT onto the same PancakeSwap USDT/USDC pool, and Ethereum USDC / USDT / DAI onto the Curve 3pool, means those stables share a price source and can trip together (opposite directions) on a shared-pool deviation. This is the same design property documented in VIP-624 for pre-existing shared pools.
  • FDUSD (BSC) and USDS (Ethereum) were previously kept at 10% (thin-pool exceptions); this VIP retunes both to 5% per the recommendation.
  • WETH (Ethereum) and ARB (Arbitrum One) get a pool move but keep their existing thresholds — they are not in the recommendation's threshold tables.
  • TUSD (BSC) monitoring is disabled; its stored config is left intact (the DeviationSentinel has no removal function, and setTokenConfig rejects deviation = 0). A disabled market can neither be tripped nor report a deviation. DAI (BSC) was already disabled by VIP-644, so no command is emitted for it.

Simulations & preparation status

  • Fork simulations all green: bscmainnet 56 passing, ethereum 63 passing, arbitrumone 19 passing, basemainnet 13 passing.
  • Pre-VIP thresholds re-verified live on-chain 2026-08-27 (Base 3%×3; BSC TUSD (1%, enabled), DAI (10%, disabled), FDUSD (10%, enabled)).
  • propose() estimateGas from the proposer Safe: 12.78M = 76.2% of the BSC 16.78M per-tx cap (EIP-7825) — fits with headroom.
  • Cross-chain execute() legs target the mainnet OmnichainProposalSender 0x36a69dE601381be7b0DcAc5D5dD058825505F8f6 with non-zero LayerZero fee values (framework adds a 1 BNB refundable buffer per leg).

References

🤖 Generated with Claude Code

trumpgpt-bot and others added 2 commits August 26, 2026 13:24
Retune DeviationSentinel thresholds to a unified 5% across BSC, Ethereum,
Arbitrum One and Base, repoint several markets' SentinelOracle price sources
to deeper DEX pools, and disable monitoring for BSC TUSD (config-clear
deferred; a contract change would be needed). No new contracts or ACM grants.

Commands: BSC 14, Ethereum 26, Arbitrum One 7, Base 3. Fork sims green on all
four chains (BSC 52, Ethereum 63, Arbitrum 19, Base 13 passing).

Ref: VDB-56

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…1%, not 3%)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@trumpgpt-bot
trumpgpt-bot marked this pull request as ready for review August 26, 2026 13:30
trumpgpt-bot and others added 3 commits August 27, 2026 04:00
…k, cleanups

Address review round 1 (PR #760).

Blocking (false on-chain claims, Base-only):
- Base USDC currentPct 1% -> 3%. On-chain tokenConfigs(USDC) on DeviationSentinel
  0x12D0…3076 = (3, true); the Base Guardian retuned 1% -> 3% at block 50298851.
  Correct the addresses table and the voted proposal text ("USDC (3% -> 5%)").
- Base sim FORK_BLOCK 47410957 (~71d stale, pre-retune, pruned on archive nodes)
  -> 50503680, so pre-VIP assertions validate live state and the run is reproducible.

Framework (enables the Base bump): the recent Base fork post-dates a LayerZero
default-receive-library migration (0x38dE71… -> 0x58d53a…), so the hardcoded
LZ_LIBRARY reverts remote delivery with "invalid default library". Resolve the
endpoint's current defaultReceiveLibraryAddress() dynamically, falling back to the
configured LZ_LIBRARY. No behavior change at any fork block where the hardcoded
value is still current.

Non-blocking cleanups (net ~-320 lines):
- Delete duplicate simulations/vip-658/abi/PancakeSwapOracle.json (byte-identical to
  UniswapOracle.json); use the Uniswap ABI for all uniswap-type markets.
- Remove the dead "promote" action (no market uses it) across config, builder and sim.
- Reuse the builder's dexOracleFor resolver in the sim (drop duplicate dexOracleAddress).
- Type the post-execution callback as TransactionResponse (drop six `as never` casts).
- Command-count assertion reads ctx.dstChainId (drop the EXPECTED_DST_CHAIN_ID map).
- Extract expectSentinelRoutesTo helper (dedupe the routing assertion).

All four fork sims green: BSC 52, Ethereum 63, Arbitrum 19, Base 13.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@fred-venus fred-venus changed the title VDB-56: Work on Deviation Sentinel (Aug 2026) VIP-658 [BNB Chain, Ethereum, Arbitrum One, Base] DeviationSentinel 2026-08 Parameter Adjustment Aug 27, 2026
@fred-venus

Copy link
Copy Markdown
Contributor

@fred-venus
fred-venus merged commit 97c1607 into main Aug 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants