Contract ABIs
The Solidity sources are authoritative:
src/InterestRatePool.solsrc/periphery/QuoteMarket.solsrc/periphery/KeeperBundler.solsrc/interfaces/ICoreAdapter.sol
Generate current Foundry artifacts from the repository root:
forge buildThe resulting ABI is the abi field in:
out/InterestRatePool.sol/InterestRatePool.json
out/QuoteMarket.sol/QuoteMarket.json
out/KeeperBundler.sol/KeeperBundler.jsonThe pool links two external libraries, ExpiryEngineLib and ExpiryPositionLib; their events (TickSwept, PositionClaimed) and errors are emitted from the pool's address, so the pool's full ABI merges them in. Regenerate the checked-in ABIs after any Solidity change:
forge build && node scripts/deploy/generate-abis.mjsThis writes packages/sdk/src/abis/generated.ts (interestRatePoolAbi, quoteMarketAbi, keeperBundlerAbi, exported from @interestswap/sdk and @interestswap/sdk/abis) and deploy/goldsky/abis/*.json for the subgraph. Every TypeScript package imports the SDK ABIs; --check fails CI when they are stale.
Positions and series keys
A series key packs (feeEpoch, expiry, rate) into a bytes32 (16 + 64 + 128 bits). It names a backer book (VRT, token id keccak256(abi.encode(poolId, seriesKey))) and one fixed-rate leg of a borrower. A borrower holds one position per (poolId, expiry): several legs sharing one prepaid funding, so prepaid, keeper, liquidation and settlement calls take the expiry (borrowerPosition(poolId, expiry, user), supplyPrepaid(poolId, expiry, amount, onBehalf), settle(poolId, expiry, budget, recipient)), while leg calls take the series key (mintFRT, burnFRT, rollFRT, legOf).
EIP-712 Quote Type
QuoteMarket uses domain name QuoteMarket, version 1, the connected chain ID, and the deployed QuoteMarket as verifyingContract.
Quote(address maker,address taker,bytes32 poolId,bytes32 seriesKey,
uint128 notional,uint128 vrtAmount,uint64 nonce,uint64 deadline,
bytes32 salt)All integer fields must be signed exactly as on-chain values. Human-readable token and APY conversions happen before constructing the typed data.
