Summary
Discard the current ETH-only ZapPlotLink.sol. Re-fork from MintPad's ZapUniV4MCV2 with the same multi-token fromToken interface, adapted for PlotLink's two-hop path (fromToken → PLOT → storyline token).
Reference
- MintPad ZapUniV4MCV2:
0xa2e7BcA51A84Ed635909a8E845d5f66602742A75 (Base mainnet, verified on Basescan)
- MintPad ABI:
mintpad/src/configs/abis.ts:1052-1114
Interface to match:
function mint(address fromToken, address storylineToken, uint256 storylineAmount, uint256 maxFromTokenAmount) payable returns (uint256 fromTokenUsed)
function mintReverse(address fromToken, address storylineToken, uint256 fromTokenAmount, uint256 minStorylineAmount) payable returns (uint256 storylineAmount)
function estimateMint(address fromToken, address storylineToken, uint256 storylineAmount) returns (uint256 fromTokenAmount, uint256 totalPlotRequired)
function estimateMintReverse(address fromToken, address storylineToken, uint256 fromTokenAmount) returns (uint256 storylineAmount, uint256 plotAmount)
PlotLink adaptations from original
- Replace HUNT with PLOT as the reserve token
- Keep
fromToken parameter for multi-token input
- Keep owner-updatable plot token address (
setPlotToken())
- Remove MT (MerkleTree) support if present in original
- Supported input tokens: ETH (address(0)), USDC, HUNT
Deploy to Base Mainnet
- PoolManager: Base mainnet Uniswap V4 PoolManager
- MCV2_Bond:
0xc5a076cad94176c2996B32d8466Be1cE757FAa27
- MCV2_BondPeriphery:
0x492C412369Db76C9cdD9939e6C521579301473a3
- WETH:
0x4200000000000000000000000000000000000006
- PLOT token: current reserve token address
- Verify on Sourcify + Basescan
- Ensure required Uniswap V4 pools exist on mainnet for each fromToken → PLOT path
Acceptance Criteria
Branch
task/432-zap-v2-contract in plotlink-contracts repo
Parent: #432
Summary
Discard the current ETH-only
ZapPlotLink.sol. Re-fork from MintPad'sZapUniV4MCV2with the same multi-tokenfromTokeninterface, adapted for PlotLink's two-hop path (fromToken → PLOT → storyline token).Reference
0xa2e7BcA51A84Ed635909a8E845d5f66602742A75(Base mainnet, verified on Basescan)mintpad/src/configs/abis.ts:1052-1114Interface to match:
PlotLink adaptations from original
fromTokenparameter for multi-token inputsetPlotToken())Deploy to Base Mainnet
0xc5a076cad94176c2996B32d8466Be1cE757FAa270x492C412369Db76C9cdD9939e6C521579301473a30x4200000000000000000000000000000000000006Acceptance Criteria
mint()andmintReverse()work with ETH, USDC, HUNT inputsestimateMint()andestimateMintReverse()return correct valuessetPlotToken()works (owner only)Branch
task/432-zap-v2-contractin plotlink-contracts repo