Skip to content

chore(deploy): staging deploy of intent contracts for new settlers - #2173

Merged
gvladika merged 1 commit into
mainfrom
chore/exsc-736-lifi-intents-switchover-staging
Aug 6, 2026
Merged

chore(deploy): staging deploy of intent contracts for new settlers#2173
gvladika merged 1 commit into
mainfrom
chore/exsc-736-lifi-intents-switchover-staging

Conversation

@gvladika

@gvladika gvladika commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

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 immutableLiFiIntentEscrowFacetV2.LIFI_INTENT_ESCROW_SETTLER_V2 and ReceiverOIF.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.json is the single source of truth for both constructor args (via deployRequirements.json), so swapping the two addresses there is the whole input change. PolymerOracleMapped needs nothing on our side — the facet takes inputOracle/outputOracle/outputSettler from calldata, so the oracle swap is purely a BE/API config change.

Deployed to arbitrum and base staging (direct diamondCut / diamondUpdatePeriphery from devWallet — staging diamonds are EOA-owned, no Safe involved):

Contract Address (identical on both chains, CREATE3) Registration
LiFiIntentEscrowFacetV2 v1.0.0 0x1aAADa7ab2BD56de2482d46213AB0994a0C7ff9b diamondCut (Add — V2 was not previously on either staging diamond)
ReceiverOIF v1.0.0 0x6c75016288d838ED1a34BDc9bf84f24d5dd88363 diamondUpdatePeriphery (replaces 0x55C74A… on arbitrum, 0xa89c67… on base)

Verified on-chain after deploy: LIFI_INTENT_ESCROW_SETTLER_V2() = 0x00fC00edbe7C003b006f870068c548940000223e and OUTPUT_SETTLER() = 0x75220B7600c300005038432a0000f308e0000068 on both chains, with EXECUTOR() correctly chain-specific despite the shared CREATE3 address. Both contracts are explorer-verified and flagged verified:true in the deployment log on both networks.

No Solidity changed, so no version bumps: the upstream open(StandardOrder) ABI is unchanged apart from becoming payable (which does not alter the selector, and is irrelevant while the facet is noNativeAsset), and IOutputCallback.outputFilled is untouched.

Follow-ups deliberately left out of this PR: the fork tests in LiFiIntentEscrowFacetV2.t.sol and ReceiverOIF.t.sol still hardcode the old settler addresses (they pass — the old contracts keep working — but should move with the production switchover), and _targetState.json lists LiFiIntentEscrowFacetV2: 1.1.2 on all 68 entries while src and every deployment are 1.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!!!)

  • I have checked that any arbitrary calls to external contracts are validated and or restricted
  • I have checked that any privileged calls (i.e. storage modifications) are validated and or restricted
  • I have ensured that any new contracts have had AT A MINIMUM 1 preliminary audit conducted on by <company/auditor>

@lifi-action-bot
lifi-action-bot marked this pull request as draft August 4, 2026 14:57
@gvladika
gvladika marked this pull request as ready for review August 4, 2026 14:58
@coderabbitai

coderabbitai Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 6fa63f6b-f1a1-4b43-9d8b-e9a4bad480a8

📥 Commits

Reviewing files that changed from the base of the PR and between 7d0a8d6 and da8f6b0.

📒 Files selected for processing (5)
  • config/lifiintentescrow.json
  • deployments/arbitrum.diamond.staging.json
  • deployments/arbitrum.staging.json
  • deployments/base.diamond.staging.json
  • deployments/base.staging.json

Walkthrough

Updated escrow contract configuration and staging deployment registries. Added LiFiIntentEscrowFacetV2 entries and replaced ReceiverOIF addresses for Arbitrum and Base.

Changes

Staging deployment updates

Layer / File(s) Summary
Escrow contract configuration
config/lifiintentescrow.json
Replaced both configured escrow contract addresses.
Diamond facet and periphery deployments
deployments/arbitrum.diamond.staging.json, deployments/base.diamond.staging.json
Added LiFiIntentEscrowFacetV2 deployments and updated ReceiverOIF addresses.
Chain staging mappings
deployments/arbitrum.staging.json, deployments/base.staging.json
Added LiFiIntentEscrowFacetV2 and updated ReceiverOIF deployment addresses.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the staging deployment of updated intent settler contracts.
Description check ✅ Passed The description includes the Linear task, implementation rationale, deployment details, scope boundaries, and required checklist sections.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/exsc-736-lifi-intents-switchover-staging

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gvladika
gvladika enabled auto-merge (squash) August 4, 2026 15:04
@gvladika
gvladika merged commit 4e26a3b into main Aug 6, 2026
70 of 74 checks passed
@gvladika
gvladika deleted the chore/exsc-736-lifi-intents-switchover-staging branch August 6, 2026 07:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants