| @uniswap/uniswapx-sdk | patch |
|---|
Add Ink (chainId 57073) DutchV3 support. The reactor and OrderQuoter are deployed and source-verified on Ink; these are the mapping entries that let the SDK resolve them.
REACTOR_ADDRESS_MAPPING[57073][Dutch_V3]→0x000000007A1C8e570011EeDF86A2A35593013cBA. This is the same address as Robinhood (4663), as chains 130/196/1868 already share0x000000005aF6…;REVERSE_REACTOR_MAPPINGcollapses shared addresses to one key, which is correct since both areDutch_V3.UNISWAPX_ORDER_QUOTER_MAPPING[57073]→ canonical0x00000000a3db63Df9078cBF3dF88B4CAdD5a7F58. Required: without it the lookup falls throughconstructSameAddressMapto the legacy0x54539967…default, which is not deployed on Ink.PERMIT2_MAPPING[57073]→ canonical Permit2, verified on-chain (9,152 bytes, non-zeroDOMAIN_SEPARATOR()).EXCLUSIVE_FILLER_VALIDATION_MAPPING[57073]→ zero address, matching every other V3-only chain. Required: the default is0x8A66…, a contract that does not exist on Ink. Exclusivity is reactor-enforced viaExclusivityLib.
No entry is added for Priority, Dutch_V2, Hybrid, or the UNISWAPX_V4_* mappings — no such reactors are deployed on Ink, and the absence is what makes x-service's OffChainUniswapXOrderValidator.validateReactorAddress reject those order types for the chain.
Ink needs no chain-specific order-construction handling: it is a standard OP-stack L2 with 1s blocks, a real dynamic EIP-1559 basefee, and native ETH, so adjustmentPerGweiBaseFee keeps its normal non-zero treatment and the native sentinel is usable. @uniswap/sdk-core already has full Ink coverage (ChainId.INK, INK_ADDRESSES, WETH9[57073], 1s block time).