Smart Contract ABIs
This directory contains Application Binary Interface (ABI) definitions for the Thetanuts Finance smart contracts.
What is an ABI?
An ABI defines how to interact with a smart contract - it specifies:
Function names and their parameters
Event definitions
Return types
Available ABIs
erc20.ts - ERC20 Token Interface
Standard ERC20 token interface for USDC, WETH, and other tokens.
import { ERC20_ABI } from '@thetanuts-finance/thetanuts-client';Methods:
approve(spender, amount)
Approve token spending
transfer(to, amount)
Transfer tokens
transferFrom(from, to, amount)
Transfer on behalf
allowance(owner, spender)
Check allowance
balanceOf(account)
Get balance
decimals()
Get token decimals
symbol()
Get token symbol
name()
Get token name
totalSupply()
Get total supply
Events:
Approval(owner, spender, value)Transfer(from, to, value)
optionBook.ts - OptionBook Contract
Main trading contract for filling and canceling orders.
Key Structs:
Methods:
fillOrder(order, signature, referrer)
Fill an order
swapAndFillOrder(order, signature, swapRouter, swapSrcToken, swapSrcAmount, swapData, referrer)
Fill with token swap
cancelOrder(order)
Cancel an order
hashOrder(order)
Get order hash
computeNonce(order)
Compute nonce for an order
fees(token, referrer)
Get fee structure
claimFees(collateral)
Claim accumulated fees
amountFilled(nonce)
Get amount filled for a nonce
referrerFeeSplitBps(referrer)
Get referrer fee split in bps
setReferrerFeeSplit(referrer, feeBps)
Set referrer fee split (admin)
sweepProtocolFees(token)
Sweep protocol fees (admin)
factory()
Get factory address
PRICE_DECIMALS()
Get price decimals constant
eip712Domain()
Get EIP-712 domain info
LIMIT_ORDER_TYPEHASH()
Get limit order typehash
Events:
OrderFill(orderHash, maker, taker, option, isBuyer, amount, price)OrderCancelled(orderHash, maker)OptionCreated(option, underlying, collateral, strikes, expiry, optionType)
optionFactory.ts - OptionFactory Contract
Request for Quotation (RFQ) system for creating custom options.
Methods:
requestForQuotation(params)
Create an RFQ
makeOfferForQuotation(quotationId, params)
Submit encrypted offer
revealOfferForQuotation(quotationId, params)
Reveal offer
settleQuotation(quotationId)
Settle quotation
cancelQuotation(quotationId)
Cancel quotation
Events:
QuotationRequested(quotationId, requester, params)OfferMade(quotationId, maker, encryptedOffer)OfferRevealed(quotationId, maker, price, size)QuotationSettled(quotationId, winner, option)QuotationCancelled(quotationId)
option.ts - BaseOption Contract
Individual option position management. Exported as both OPTION_ABI and BASE_OPTION_ABI.
View Functions:
buyer()
Get buyer address
seller()
Get seller address
buyerAllowance(owner, spender)
Check buyer transfer approval
sellerAllowance(owner, spender)
Check seller transfer approval
collateralToken()
Get collateral token address
collateralAmount()
Get collateral amount
numContracts()
Get number of contracts
optionType()
Get option type (packed uint256)
unpackOptionType()
Unpack option type flags
getStrikes()
Get all strike prices
strikes(index)
Get strike at index
expiryTimestamp()
Get expiry timestamp
optionSettled()
Check if option is settled
chainlinkPriceFeed()
Get Chainlink price feed address
historicalTWAPConsumer()
Get TWAP consumer address
getTWAP()
Get current TWAP price
twapPeriod()
Get TWAP period
calculatePayout(price)
Calculate payout at settlement price
calculateRequiredCollateral(strikes, numContracts)
Calculate required collateral
simulatePayout(price, strikes, numContracts)
Simulate payout (pure)
getImplementation()
Get proxy implementation address
factory()
Get factory address
rescueAddress()
Get rescue address
PRICE_DECIMALS()
Get price decimals constant
packExtraOptionData()
Get packed extra option data
Write Functions:
close()
Close option position
payout()
Execute payout after expiry
transfer(isBuyer, target)
Transfer buyer or seller role
split(splitCollateralAmount)
Split position by collateral amount
approveTransfer(isBuyer, target, isApproved)
Approve address for transfer
rescueERC20(token)
Rescue stuck ERC20 tokens
validateParams(strikes)
Validate strike parameters
Events:
CollateralReturned
seller, amountReturned
OptionClosed
closedBy, collateralReturned
OptionExpired
settlementPrice
OptionPayout
buyer, amountPaidOut
OptionSettlementFailed
(no parameters)
OptionSplit
newOption, collateralAmount
RoleTransferred
from, to, isBuyer
TransferApproval
target, from, isBuyer, isApproved
ERC20Rescued
rescueAddress, tokenAddress, amount
Usage with ethers.js
Contract Addresses (Base Mainnet - 8453_v6)
OptionBook
0xd58b814C7Ce700f251722b5555e25aE0fa8169A1
OptionFactory
0x1aDcD391CF15Fb699Ed29B1D394F4A64106886e5
USDC
0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913
WETH
0x4200000000000000000000000000000000000006
cbBTC
0xcbB7C0000aB88B473b1f5aFd9ef808440eed33Bf
Note
These ABIs are automatically used by the SDK modules. You typically don't need to use them directly unless building custom functionality.
Last updated

