CorkAdapter
Slippage-protected write operations for Cork Protocol integration
Address: 0xCCcCcCCCcccCBaD6F772a511B337d9CCc9570407 (same on all chains)
CorkAdapter wraps CorkPoolManager operations with slippage protection and deadline checks via Morpho Bundler3. Use this contract for all write operations in production integrations.
Common Parameters
Every CorkAdapter function takes a params struct. These fields appear across all operations:
poolId
bytes32
The MarketId identifying which Cork Pool to interact with
receiver
address
The address that receives the output tokens
deadline
uint256
Unix timestamp after which the transaction reverts. A reasonable default is block.timestamp + 300 (5 minutes).
Slippage fields vary per operation — each function has either a min*Out field (minimum acceptable output) or max*In field (maximum acceptable input). Set these using the corresponding preview* function on CorkPoolManager, adjusted for your slippage tolerance. For example, for 0.5% slippage on a deposit:
const expectedShares = await previewDeposit(marketId, amount)
const minSharesOut = expectedShares * 995n / 1000n // 0.5% slippageDeposit Operations
Provide Collateral Asset to receive Cork Principal Token (cPT) and Cork Swap Token (cST).
safeDeposit
Deposit a specific amount of Collateral Asset and receive cPT + cST shares.
poolId
bytes32
MarketId
collateralAssetsIn
uint256
Amount of Collateral Asset to deposit (in native token decimals)
receiver
address
Receives the minted cPT and cST
minCptAndCstSharesOut
uint256
Minimum cPT + cST shares to receive (18 decimals)
deadline
uint256
Transaction deadline
safeMint
Mint a specific amount of cPT + cST shares, spending up to a maximum of Collateral Asset.
poolId
bytes32
MarketId
cptAndCstSharesOut
uint256
Exact amount of cPT + cST shares to mint (18 decimals)
receiver
address
Receives the minted cPT and cST
maxCollateralAssetsIn
uint256
Maximum Collateral Asset to spend (native decimals)
deadline
uint256
Transaction deadline
Unwind Deposit
Return cPT + cST to get Collateral Asset back. Available before expiry only.
safeUnwindDeposit
Specify how much Collateral Asset you want back; burns the required cPT + cST.
poolId
bytes32
MarketId
collateralAssetsOut
uint256
Target Collateral Asset amount to receive
owner
address
Address that owns the cPT and cST being burned
receiver
address
Receives the Collateral Asset
maxCptAndCstSharesIn
uint256
Maximum cPT + cST shares to burn
deadline
uint256
Transaction deadline
safeUnwindMint
Specify how many cPT + cST shares to burn; receive the corresponding Collateral Asset.
poolId
bytes32
MarketId
cptAndCstSharesIn
uint256
Amount of cPT + cST shares to burn. Pass type(uint256).max to redeem all.
owner
address
Address that owns the shares
receiver
address
Receives the Collateral Asset
minCollateralAssetsOut
uint256
Minimum Collateral Asset to receive
deadline
uint256
Transaction deadline
Withdraw
Burn Cork Principal Token (cPT) to exit a position pre-expiry, receiving proportional Collateral Asset and Reference Asset based on current pool composition. This is the pre-expiry counterpart to Redeem.
safeWithdraw
Withdraw a specific amount of Collateral Asset by burning cPT.
poolId
bytes32
MarketId
collateralAssetsOut
uint256
Amount of Collateral Asset to withdraw
owner
address
Address that owns the cPT being burned
receiver
address
Receives the withdrawn assets
maxCptSharesIn
uint256
Maximum cPT shares to burn
deadline
uint256
Transaction deadline
safeWithdrawOther
Withdraw a specific amount of Reference Asset by burning cPT.
poolId
bytes32
MarketId
referenceAssetsOut
uint256
Amount of Reference Asset to withdraw
owner
address
Address that owns the cPT being burned
receiver
address
Receives the withdrawn assets
maxCptSharesIn
uint256
Maximum cPT shares to burn
deadline
uint256
Transaction deadline
Redeem (Post-Expiry)
Burn Cork Principal Token (cPT) after the pool has expired to receive proportional Collateral Asset and Reference Asset.
safeRedeem
poolId
bytes32
MarketId
cptSharesIn
uint256
Amount of cPT to redeem. Pass type(uint256).max to redeem all.
owner
address
Address that owns the cPT
receiver
address
Receives the redeemed assets
minReferenceAssetsOut
uint256
Minimum Reference Asset to receive
minCollateralAssetsOut
uint256
Minimum Collateral Asset to receive
deadline
uint256
Transaction deadline
Exercise
Exercise Cork Swap Token (cST) coverage — provide Reference Asset + cST to receive Collateral Asset (minus an exercise fee). Available before expiry only.
safeExercise
Specify the amount of cST to exercise.
poolId
bytes32
MarketId
cstSharesIn
uint256
Amount of cST shares to exercise
receiver
address
Receives the Collateral Asset
minCollateralAssetsOut
uint256
Minimum Collateral Asset to receive
maxReferenceAssetsIn
uint256
Maximum Reference Asset to spend
deadline
uint256
Transaction deadline
safeExerciseOther
Specify the amount of Reference Asset to provide; the required cST is computed automatically.
poolId
bytes32
MarketId
referenceAssetsIn
uint256
Amount of Reference Asset to provide
receiver
address
Receives the Collateral Asset
minCollateralAssetsOut
uint256
Minimum Collateral Asset to receive
maxCstSharesIn
uint256
Maximum cST shares to spend
deadline
uint256
Transaction deadline
safeSwap
Specify the amount of Collateral Asset to receive; the required cST and Reference Asset are computed automatically.
poolId
bytes32
MarketId
collateralAssetsOut
uint256
Exact amount of Collateral Asset to receive
receiver
address
Receives the Collateral Asset
maxCstSharesIn
uint256
Maximum cST shares to spend
maxReferenceAssetsIn
uint256
Maximum Reference Asset to spend
deadline
uint256
Transaction deadline
Repurchase (Unwind Exercise)
Reverse an exercise — provide Collateral Asset to get back Reference Asset + Cork Swap Token (cST). Available before expiry only.
safeUnwindSwap
Specify the Collateral Asset to provide; receive Reference Asset + cST.
poolId
bytes32
MarketId
collateralAssetsIn
uint256
Amount of Collateral Asset to provide. Pass type(uint256).max to use full balance.
receiver
address
Receives the Reference Asset and cST
minReferenceAssetsOut
uint256
Minimum Reference Asset to receive
minCstSharesOut
uint256
Minimum cST shares to receive
deadline
uint256
Transaction deadline
safeUnwindExercise
Specify the cST amount to unlock; provide Collateral Asset in exchange.
poolId
bytes32
MarketId
cstSharesOut
uint256
Amount of cST shares to unlock
receiver
address
Receives cST and Reference Asset
minReferenceAssetsOut
uint256
Minimum Reference Asset to receive
maxCollateralAssetsIn
uint256
Maximum Collateral Asset to spend
deadline
uint256
Transaction deadline
safeUnwindExerciseOther
Specify the Reference Asset amount to unlock; provide Collateral Asset in exchange.
poolId
bytes32
MarketId
referenceAssetsOut
uint256
Amount of Reference Asset to unlock
receiver
address
Receives cST and Reference Asset
minCstSharesOut
uint256
Minimum cST shares to receive
maxCollateralAssetsIn
uint256
Maximum Collateral Asset to spend
deadline
uint256
Transaction deadline
Error Reference
These errors may be thrown by CorkAdapter operations:
DeadlineExceeded()
Transaction was mined after the specified deadline
InsufficientLiquidity(uint256 available, uint256 requested)
The pool does not have enough Reference Asset + cST liquidity to fill the requested unwind swap amount
NotWhitelisted(address account, bytes32 marketId)
The caller is not on the whitelist for this market
Expired()
Attempted a pre-expiry operation on an expired pool
NotExpired()
Attempted a post-expiry operation (redeem) on a pool that has not expired
ZeroAmount()
Input amount is zero
InsufficientSharesAmount(uint256 minimumRequired, uint256 provided)
Slippage check failed — output is less than the specified minimum
InsufficientAmount()
Input amount does not meet the minimum requirements
Last updated