Static Readonly abi
abi: readonly [{
inputs: readonly [];
name: "ERC20Base__ApproveFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__ApproveToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__BurnExceedsBalance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__BurnFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__InsufficientAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__MintToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferExceedsBalance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferFromZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Base__TransferToZeroAddress";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Extended__ExcessiveAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Extended__InsufficientAllowance";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Permit__ExpiredDeadline";
type: "error";
}, {
inputs: readonly [];
name: "ERC20Permit__InvalidSignature";
type: "error";
}, {
inputs: readonly [];
name: "ERC4626Base__AllowanceExceeded";
type: "error";
}, {
inputs: readonly [];
name: "ERC4626Base__MaximumAmountExceeded";
type: "error";
}, {
inputs: readonly [{
internalType: "UD60x18";
name: "totalPremium";
type: "uint256";
}, {
internalType: "UD60x18";
name: "premiumLimit";
type: "uint256";
}];
name: "Vault__AboveMaxSlippage";
type: "error";
}, {
inputs: readonly [];
name: "Vault__AddressZero";
type: "error";
}, {
inputs: readonly [];
name: "Vault__InsufficientFunds";
type: "error";
}, {
inputs: readonly [];
name: "Vault__InsufficientShorts";
type: "error";
}, {
inputs: readonly [];
name: "Vault__InvalidSettingsUpdate";
type: "error";
}, {
inputs: readonly [];
name: "Vault__InvariantViolated";
type: "error";
}, {
inputs: readonly [{
internalType: "UD60x18";
name: "maximum";
type: "uint256";
}, {
internalType: "UD60x18";
name: "amount";
type: "uint256";
}];
name: "Vault__MaximumAmountExceeded";
type: "error";
}, {
inputs: readonly [];
name: "Vault__NotAuthorized";
type: "error";
}, {
inputs: readonly [{
internalType: "uint256";
name: "timestamp";
type: "uint256";
}, {
internalType: "uint256";
name: "maturity";
type: "uint256";
}];
name: "Vault__OptionExpired";
type: "error";
}, {
inputs: readonly [];
name: "Vault__OptionPoolNotListed";
type: "error";
}, {
inputs: readonly [];
name: "Vault__OptionTypeMismatchWithVault";
type: "error";
}, {
inputs: readonly [];
name: "Vault__OutOfDTEBounds";
type: "error";
}, {
inputs: readonly [];
name: "Vault__OutOfDeltaBounds";
type: "error";
}, {
inputs: readonly [];
name: "Vault__SellDisabled";
type: "error";
}, {
inputs: readonly [];
name: "Vault__SettingsNotFromRegistry";
type: "error";
}, {
inputs: readonly [];
name: "Vault__SettingsUpdateIsEmpty";
type: "error";
}, {
inputs: readonly [];
name: "Vault__StrikeZero";
type: "error";
}, {
inputs: readonly [];
name: "Vault__TradeMustBeBuy";
type: "error";
}, {
inputs: readonly [{
internalType: "UD60x18";
name: "balance";
type: "uint256";
}, {
internalType: "UD60x18";
name: "amount";
type: "uint256";
}];
name: "Vault__TransferExceedsBalance";
type: "error";
}, {
inputs: readonly [];
name: "Vault__ZeroAsset";
type: "error";
}, {
inputs: readonly [];
name: "Vault__ZeroShares";
type: "error";
}, {
inputs: readonly [];
name: "Vault__ZeroSize";
type: "error";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "spender";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Approval";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "feeReceiver";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "feesClaimed";
type: "uint256";
}];
name: "ClaimProtocolFees";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "caller";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "assets";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "shares";
type: "uint256";
}];
name: "Deposit";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "managementFee";
type: "uint256";
}];
name: "ManagementFeePaid";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "recipient";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "performanceFee";
type: "uint256";
}];
name: "PerformanceFeePaid";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "UD60x18";
name: "pricePerShare";
type: "uint256";
}];
name: "PricePerShare";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "pool";
type: "address";
}, {
indexed: false;
internalType: "UD60x18";
name: "contractSize";
type: "uint256";
}, {
indexed: false;
internalType: "UD60x18";
name: "fee";
type: "uint256";
}];
name: "Settle";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "user";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "pool";
type: "address";
}, {
indexed: false;
internalType: "UD60x18";
name: "contractSize";
type: "uint256";
}, {
indexed: false;
internalType: "bool";
name: "isBuy";
type: "bool";
}, {
indexed: false;
internalType: "UD60x18";
name: "premium";
type: "uint256";
}, {
indexed: false;
internalType: "UD60x18";
name: "takerFee";
type: "uint256";
}, {
indexed: false;
internalType: "UD60x18";
name: "makerRebate";
type: "uint256";
}, {
indexed: false;
internalType: "UD60x18";
name: "vaultFee";
type: "uint256";
}];
name: "Trade";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "from";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "to";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "value";
type: "uint256";
}];
name: "Transfer";
type: "event";
}, {
anonymous: false;
inputs: readonly [];
name: "UpdateQuotes";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: false;
internalType: "bytes";
name: "settings";
type: "bytes";
}];
name: "UpdateSettings";
type: "event";
}, {
anonymous: false;
inputs: readonly [{
indexed: true;
internalType: "address";
name: "caller";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "receiver";
type: "address";
}, {
indexed: true;
internalType: "address";
name: "owner";
type: "address";
}, {
indexed: false;
internalType: "uint256";
name: "assets";
type: "uint256";
}, {
indexed: false;
internalType: "uint256";
name: "shares";
type: "uint256";
}];
name: "Withdraw";
type: "event";
}, {
inputs: readonly [];
name: "DOMAIN_SEPARATOR";
outputs: readonly [{
internalType: "bytes32";
name: "domainSeparator";
type: "bytes32";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "holder";
type: "address";
}, {
internalType: "address";
name: "spender";
type: "address";
}];
name: "allowance";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "approve";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "asset";
outputs: readonly [{
internalType: "address";
name: "";
type: "address";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "account";
type: "address";
}];
name: "balanceOf";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
name: "convertToAssets";
outputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
name: "convertToShares";
outputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "decimals";
outputs: readonly [{
internalType: "uint8";
name: "";
type: "uint8";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "decreaseAllowance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}, {
internalType: "address";
name: "receiver";
type: "address";
}];
name: "deposit";
outputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "address";
name: "base";
type: "address";
}, {
internalType: "address";
name: "quote";
type: "address";
}, {
internalType: "address";
name: "oracleAdapter";
type: "address";
}, {
internalType: "UD60x18";
name: "strike";
type: "uint256";
}, {
internalType: "uint256";
name: "maturity";
type: "uint256";
}, {
internalType: "bool";
name: "isCallPool";
type: "bool";
}];
internalType: "struct IPoolFactory.PoolKey";
name: "poolKey";
type: "tuple";
}, {
internalType: "UD60x18";
name: "size";
type: "uint256";
}, {
internalType: "bool";
name: "isBuy";
type: "bool";
}, {
internalType: "address";
name: "taker";
type: "address";
}];
name: "getQuote";
outputs: readonly [{
internalType: "uint256";
name: "premium";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getSettings";
outputs: readonly [{
internalType: "bytes";
name: "";
type: "bytes";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "getUtilisation";
outputs: readonly [{
internalType: "UD60x18";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "increaseAllowance";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "receiver";
type: "address";
}];
name: "maxDeposit";
outputs: readonly [{
internalType: "uint256";
name: "maxAssets";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "receiver";
type: "address";
}];
name: "maxMint";
outputs: readonly [{
internalType: "uint256";
name: "maxShares";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "maxRedeem";
outputs: readonly [{
internalType: "uint256";
name: "maxShares";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "maxWithdraw";
outputs: readonly [{
internalType: "uint256";
name: "maxAssets";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}, {
internalType: "address";
name: "receiver";
type: "address";
}];
name: "mint";
outputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "name";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}];
name: "nonces";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "owner";
type: "address";
}, {
internalType: "address";
name: "spender";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}, {
internalType: "uint256";
name: "deadline";
type: "uint256";
}, {
internalType: "uint8";
name: "v";
type: "uint8";
}, {
internalType: "bytes32";
name: "r";
type: "bytes32";
}, {
internalType: "bytes32";
name: "s";
type: "bytes32";
}];
name: "permit";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
name: "previewDeposit";
outputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
name: "previewMint";
outputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
name: "previewRedeem";
outputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
name: "previewWithdraw";
outputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}, {
internalType: "address";
name: "receiver";
type: "address";
}, {
internalType: "address";
name: "owner";
type: "address";
}];
name: "redeem";
outputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [];
name: "symbol";
outputs: readonly [{
internalType: "string";
name: "";
type: "string";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "totalAssets";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [];
name: "totalSupply";
outputs: readonly [{
internalType: "uint256";
name: "";
type: "uint256";
}];
stateMutability: "view";
type: "function";
}, {
inputs: readonly [{
components: readonly [{
internalType: "address";
name: "base";
type: "address";
}, {
internalType: "address";
name: "quote";
type: "address";
}, {
internalType: "address";
name: "oracleAdapter";
type: "address";
}, {
internalType: "UD60x18";
name: "strike";
type: "uint256";
}, {
internalType: "uint256";
name: "maturity";
type: "uint256";
}, {
internalType: "bool";
name: "isCallPool";
type: "bool";
}];
internalType: "struct IPoolFactory.PoolKey";
name: "poolKey";
type: "tuple";
}, {
internalType: "UD60x18";
name: "size";
type: "uint256";
}, {
internalType: "bool";
name: "isBuy";
type: "bool";
}, {
internalType: "uint256";
name: "premiumLimit";
type: "uint256";
}, {
internalType: "address";
name: "referrer";
type: "address";
}];
name: "trade";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transfer";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "address";
name: "holder";
type: "address";
}, {
internalType: "address";
name: "recipient";
type: "address";
}, {
internalType: "uint256";
name: "amount";
type: "uint256";
}];
name: "transferFrom";
outputs: readonly [{
internalType: "bool";
name: "";
type: "bool";
}];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "bytes";
name: "settings";
type: "bytes";
}];
name: "updateSettings";
outputs: readonly [];
stateMutability: "nonpayable";
type: "function";
}, {
inputs: readonly [{
internalType: "uint256";
name: "assetAmount";
type: "uint256";
}, {
internalType: "address";
name: "receiver";
type: "address";
}, {
internalType: "address";
name: "owner";
type: "address";
}];
name: "withdraw";
outputs: readonly [{
internalType: "uint256";
name: "shareAmount";
type: "uint256";
}];
stateMutability: "nonpayable";
type: "function";
}]