chore(deploy): staging deploy of intent contracts for new settlers - #2173
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
WalkthroughUpdated escrow contract configuration and staging deployment registries. Added ChangesStaging deployment updates
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Warning Review ran into problems🔥 ProblemsGit: Failed to clone repository. Please run the Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Which Linear task belongs to this PR?
Ref EXSC-736
Why did I implement it this way?
LI.FI Intents is switching to new settler contracts on 2026-08-06. Both of our on-chain bindings to those settlers are
immutable—LiFiIntentEscrowFacetV2.LIFI_INTENT_ESCROW_SETTLER_V2andReceiverOIF.OUTPUT_SETTLER— so repointing them is a redeploy, not a config write. This PR lands the staging half so BE can validate the new contracts end-to-end before Thursday, as requested in the switchover thread; the production rollout is a separate PR driven through Safe + timelock.config/lifiintentescrow.jsonis the single source of truth for both constructor args (viadeployRequirements.json), so swapping the two addresses there is the whole input change.PolymerOracleMappedneeds nothing on our side — the facet takesinputOracle/outputOracle/outputSettlerfrom calldata, so the oracle swap is purely a BE/API config change.Deployed to arbitrum and base staging (direct
diamondCut/diamondUpdatePeripheryfrom devWallet — staging diamonds are EOA-owned, no Safe involved):LiFiIntentEscrowFacetV2v1.0.00x1aAADa7ab2BD56de2482d46213AB0994a0C7ff9bdiamondCut(Add — V2 was not previously on either staging diamond)ReceiverOIFv1.0.00x6c75016288d838ED1a34BDc9bf84f24d5dd88363diamondUpdatePeriphery(replaces0x55C74A…on arbitrum,0xa89c67…on base)Verified on-chain after deploy:
LIFI_INTENT_ESCROW_SETTLER_V2()=0x00fC00edbe7C003b006f870068c548940000223eandOUTPUT_SETTLER()=0x75220B7600c300005038432a0000f308e0000068on both chains, withEXECUTOR()correctly chain-specific despite the shared CREATE3 address. Both contracts are explorer-verified and flaggedverified:truein the deployment log on both networks.No Solidity changed, so no version bumps: the upstream
open(StandardOrder)ABI is unchanged apart from becomingpayable(which does not alter the selector, and is irrelevant while the facet isnoNativeAsset), andIOutputCallback.outputFilledis untouched.Follow-ups deliberately left out of this PR: the fork tests in
LiFiIntentEscrowFacetV2.t.solandReceiverOIF.t.solstill hardcode the old settler addresses (they pass — the old contracts keep working — but should move with the production switchover), and_targetState.jsonlistsLiFiIntentEscrowFacetV2: 1.1.2on all 68 entries while src and every deployment are1.0.0, a leftover from the V1→V2 rename in #2164.Checklist before requesting a review
Checklist for reviewer (DO NOT DEPLOY and contracts BEFORE CHECKING THIS!!!)