fork: vendor OIF in-tree, drop lib/OIF submodule - #125
Merged
Conversation
…ork/OIF into merge-finalise
Consolidate finalise functions on CompactSettler
* Standardize chainid maps for oracles Implements standardized chainid maps for oracles. This also lets oracles opt out of mapping in case they conform to a chainid standardization. This applies to Polymer for EVM chains. The advantage of non-mapped oracles is that they are ownerless making the system entirely permissionless and providing a base implementation that is entirely configless: **One deterministic deployment** * Fix overwrite implementation of the map in Polymer
… more. (#2) * Initial documentation pass of everything except oracles and input settlers and readme * typos * Complete the contracts and libraries * Update readme * grammar * Output chain instaed of destination chain * Apply suggestions from code review Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com> * Rename IOIFCallback to IOpenIntentCallback * Rename inputs callback and fillBatch * delete unused tests * review comments: Remove remote references * update test encoding --------- Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com>
* Initial documentation pass of everything except oracles and input settlers and readme * typos * Complete the contracts and libraries * Update readme * grammar * Output chain instaed of destination chain * Apply suggestions from code review Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com> * Rename IOIFCallback to IOpenIntentCallback * Rename inputs callback and fillBatch * delete unused tests * Upgrade compact version to post audit fixes * Apply suggestions from code review Co-authored-by: jsanmigimeno <8038323+jsanmigimeno@users.noreply.github.com> --------- Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com> Co-authored-by: jsanmigimeno <8038323+jsanmigimeno@users.noreply.github.com>
* Initial documentation pass of everything except oracles and input settlers and readme * typos * Complete the contracts and libraries * Update readme * grammar * Output chain instaed of destination chain * Apply suggestions from code review Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com> * Rename IOIFCallback to IOpenIntentCallback * Rename inputs callback and fillBatch * delete unused tests * Upgrade compact version to post audit fixes * Disallow intents from settler --------- Co-authored-by: Gustavo Gonzalez <ggonzalezsomer@gmail.com>
* Refactor LibAddress: Move and enhance address identifier conversion library * remove ownbale, pausable that cursor added for no reason * add using for bytes32 and remove unnecesary md file * fmt * fix order of using * use assembly in toIdentifier * remove unnecesary import --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Alexander <git@lindgren.xyz>
… the set destination (#26)
…for _getProofPeriod (#20)
- Bump lib/OIF to permit2-virtual (virtual _PERMIT2 fetch) - InputSettlerEscrowLIFITron overrides _PERMIT2 with the Tron deployment TTJxU3P8rHycAyFY4kVtGNfmnMH4ezcuM9 (0xBE365314f2E77FD1257d60C346Bb32DbDa369403) - Tron test suite etches Permit2 at the Tron address - Mirror upstream orderStatus claimed-marking in InputSettlerCompactLIFI._resolveLock Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
InputSettlerEscrowLIFITron, OutputSettlerSimple and PolymerOracle deployed via script/tron/deploy-oif.ts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Pepe Blasco <pepeblascondc@gmail.com>
Co-authored-by: Pepe Blasco <pepeblascondc@gmail.com> Co-authored-by: Pepe Blasco <pepe.blasco@openzeppelin.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ayout) Convert lifi-oif from consuming OIF via the lib/OIF submodule into a true in-tree fork. Merges openintentsframework/OIF main (39df288) with --allow-unrelated-histories, so `upstream` is now a real parent and future `git fetch upstream && git merge upstream/main` are normal 3-way merges. Layout & dependency reconciliation: - OIF src/test/script/audits/docs land at repo root (no path collisions); the LIFI overlay contracts sit alongside their OIF bases. - Remove lib/OIF (now redundant) and dead lib/bitcoinprism-evm (0 references). - Unify lib/: keep lifi pins for the shared deps the-compact (V0 b9c3b54) and forge-std (v1.9.7) — the merged tree builds against these, the behavior- preserving baseline; add OIF's openzeppelin-contracts, broadcaster and tron-contracts; vendor lib/@eth-optimism; keep solady; permit2 is identical. - remappings.txt: OIF/src=src, OIF/test=test (zero overlay import edits); drop OIF/=lib/OIF and bitcoinprism-evm. - foundry.toml: keep [profile.tron] + bytecode_hash='none'; union fs_permissions. Build-forced reconciliation (the only Solidity edit): OIF main #186 added a virtual InputSettlerEscrow._transfer, so LIFI's override gains the `override` specifier (behavior unchanged — still solady safeTransfer). Verified: `forge build` (default) and `FOUNDRY_PROFILE=tron forge build` both pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- snapshots/inputSettler.json: regenerated — gas paths shift now that OIF compiles in-tree (other snapshot groups byte-identical). gas-snapshot-check passes against the regenerated values. - CI: drop OIF's evm-test.yml. LIFI's test.yml already runs forge build/test over the whole in-tree tree (incl. OIF's tests); evm-test.yml only added forge fmt --check + --gas-snapshot-check, which the LIFI team had deliberately removed (3cda515 "No fmt check", b1a7f6d "Remove snapshot check from ci"). Extend test.yml coverage excludes to OIF's vendored oracle externals (integrations/oracles/.*/external). Verified post-fork: full suite green — 382 tests, 0 failed, 0 skipped; default + Tron (solc 0.8.35) builds pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d4995cfc16
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
gvladika
approved these changes
Jul 13, 2026
- Add LICENSE-MIT with upstream OIF's MIT license and copyright notice (the notice previously traveled with lib/OIF/LICENSE and was lost when the submodule was vendored in-tree); point README's OIF entry at it. - Align shared dependency pins with OIF main (39df288): forge-std 77041d2 -> 100b0d7 (v1.11.0), the-compact b9c3b54 -> ac25e50 (V1), in both the submodules and foundry.lock. - the-compact ac25e50 pins pragma =0.8.30, which the Tron profile's solc 0.8.35 cannot satisfy. Add a skip list to [profile.tron] for the-compact and its dependents, mirroring the --skip flags already documented in script/tron/deploy-oif.ts (the Tron deploy never uses the compact settler; its artifacts are unaffected). Verified: forge build (default + tron profiles) and full suite green (382 tests, 0 failed). Gas snapshots intentionally not regenerated: local nightly foundry produces materially different values than the committed baseline; regenerate deliberately on a pinned version. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Forks OIF directly into this repository, replacing the
lib/OIFsubmodule with vendored, in-tree sources. Two commits:2a62da3: merges upstreamopenintentsframework/OIFhistory into this repo and vendors the OIF sources in-tree, dropping thelib/OIFsubmodule. Upstream commit history is preserved via the merge, sogit log/git blamecontinue to work across the vendored files.d4995cf: regenerates gas snapshots against the vendored tree and consolidates CI (removes the separateevm-test.ymlworkflow in favor of the unifiedtest.yml).Why
Owning the OIF sources in-tree removes the submodule coupling to upstream and unblocks contract changes that require modifying OIF itself — starting with the provable non-fill refunds work (API-699), which stacks on this PR.
Stacked PRs
This is PR 1 of 2. PR 2 (
feature/api-699-provable-non-fill-refunds) is based on this branch and will retarget tomainautomatically when this merges.🤖 Generated with Claude Code