Skip to content

Conversation

@lfportal
Copy link
Contributor

@lfportal lfportal commented Oct 29, 2025

Seaport 1.6 and Immutable Signed Zone V3

  • Adds Seaport 1.6 contract (Immutable fork with zone restrictions)
  • Adds Immutable Signed Zone V3, notable differences compared to V2:

Note

Introduces Seaport 1.6 with zone allowlisting and a new SIP-7 Immutable Signed Zone V3 (incl. authorizeOrder), with full tests and CI/dependency updates.

  • Contracts:
    • Add contracts/trading/seaport16/ImmutableSeaport.sol (Seaport 1.6 fork) with allowedZones, restricted-order enforcement, and zone validation across fulfill/match paths.
    • Add Conduit wrapper contracts/trading/seaport16/conduit/ConduitController.sol.
  • Zones:
    • Add ImmutableSignedZoneV3 (SIP-7) with EIP-712 signing, authorizeOrder, validateOrder, access control, active signer management, and support for substandards 1, 3, 4, 6, 7, 8.
    • Add zone access control and SIP interfaces/errors.
  • Validators:
    • Add Seaport 1.6 validator shims (SeaportValidator, ReadOnlyOrderValidator, SeaportValidatorHelper).
  • Tests:
    • New Seaport 1.6 and Zone V3 unit/integration tests, helpers, and mocks under test/trading/seaport16/**.
  • Tooling/CI:
    • Workflows: add Foundry install/forge steps; add Forge test job; dry-run publish compiles with Foundry.
    • Hardhat: add @nomicfoundation/hardhat-foundry, compiler 0.8.24 (Cancún), per-file overrides for seaport16.
  • Deps/Remappings:
    • Add seaport 1.6 libs (seaport-16, seaport-core-16, seaport-types-16), Limit Break creator-token-standards; update remappings.txt, .gitmodules, DEPS.md, foundry.lock, and package.json.
    • .gitignore: add cache_hardhat and Foundry outputs.

Written by Cursor Bugbot for commit 0d669d0. This will update automatically on new commits. Configure here.

@lfportal lfportal marked this pull request as ready for review November 6, 2025 02:25
@lfportal lfportal requested review from a team as code owners November 6, 2025 02:25
@lfportal
Copy link
Contributor Author

lfportal commented Nov 7, 2025

Note for discussion: The authorizeOrder and validateOrder functions are assumed to be called together in that order which Seaport will guarantee. The functions are not view or pure (to support SIP-7 substandards 7 and 8 creator token standard callbacks), so they may change state. The functions are also currently not restricted to any particular caller - this was fine for previous versions of this zone which designated validateOrder as view function. Given the assumptions, the functions should be caller restricted to preserve the semantics of the creator token standard. What options do we have to apply restrictions?

Edit: Added caller (msg.sender) restriction to authorizeOrder and validateOrder functions. The Seaport address is obtained via the zone constructor for simplicity.

@lfportal lfportal requested a review from ermyas November 10, 2025 23:47
@lfportal lfportal requested a review from drinkcoffee November 16, 2025 22:55
drinkcoffee
drinkcoffee previously approved these changes Nov 16, 2025
ermyas
ermyas previously approved these changes Nov 17, 2025
@lfportal lfportal dismissed stale reviews from ermyas and drinkcoffee via f563d67 November 17, 2025 23:29
@lfportal lfportal requested a review from ermyas November 18, 2025 22:32
@lfportal lfportal merged commit 434bb18 into main Nov 19, 2025
11 checks passed
@lfportal lfportal deleted the peter-seaport16 branch November 19, 2025 01:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

5 participants