Skip to main content

Class: ReadHyperdrive

A base class for read-only models.

Hierarchy

Properties

contract

Readonly contract: CachedReadContract<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: "uint256" ; name: "curve" ; type: "uint256" }, { internalType: "uint256" ; name: "flat" ; type: "uint256" }, { internalType: "uint256" ; name: "governanceLP" ; type: "uint256" }, { internalType: "uint256" ; name: "governanceZombie" ; type: "uint256" }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:44


contractFactory

contractFactory: ReadContractFactory

Inherited from

ReadModel.contractFactory

Defined in

packages/hyperdrive-js-core/src/model/ReadModel.ts:29


name

name: string

Inherited from

ReadModel.name

Defined in

packages/hyperdrive-js-core/src/model/ReadModel.ts:27


network

network: Network

Inherited from

ReadModel.network

Defined in

packages/hyperdrive-js-core/src/model/ReadModel.ts:28

Methods

getBaseToken

getBaseToken(): Promise<ReadErc20 | ReadEth>

Returns the base token of the pool.

Returns

Promise<ReadErc20 | ReadEth>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:74


getCheckpoint

getCheckpoint(«destructured»): Promise<{ vaultSharePrice: bigint }>

Parameters

NameType
«destructured»Object
› checkpointIdbigint
› options?ContractReadOptions

Returns

Promise<{ vaultSharePrice: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:125


getCheckpointEvents

getCheckpointEvents(options?): Promise<CheckpointEvent[]>

Parameters

NameType
options?ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: "uint256" ; name: "curve" ; type: "uint256" }, { internalType: "uint256" ; name: "flat" ; type: "uint256" }, { internalType: "uint256" ; name: "governanceLP" ; type: "uint256" }, { internalType: "uint256" ; name: "governanceZombie" ; type: "uint256" }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "CreateCheckpoint">

Returns

Promise<CheckpointEvent[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:567


getCheckpointExposure

getCheckpointExposure(«destructured»): Promise<bigint>

Parameters

NameType
«destructured»Object
› checkpointIdbigint
› options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:139


getClosedLongs

getClosedLongs(«destructured»): Promise<ClosedLong[]>

Gets the closed longs by a specific user.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<ClosedLong[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:793


getClosedLpShares

getClosedLpShares(«destructured»): Promise<ClosedLpShares[]>

Gets the amount of closed LP shares a user has.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<ClosedLpShares[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:1156


getClosedShorts

getClosedShorts(«destructured»): Promise<ClosedShort[]>

Gets the inactive shorts opened by a specific user.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<ClosedShort[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:838


getDecimals

getDecimals(): Promise<number>

Returns

Promise<number>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:106


getIdleLiquidity

getIdleLiquidity(options?): Promise<bigint>

Gets the market liquidity available for trading and removing LP.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:234


getImpliedRate

getImpliedRate(«destructured»): Promise<bigint>

Gets the implied variable rate of opening a short

Parameters

NameType
«destructured»Object
› bondAmountbigint
› options?ContractReadOptions
› timestampbigint
› variableApybigint

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:197


getLongEvents

getLongEvents(options?): Promise<{ assetId: bigint ; baseAmount: bigint ; blockNumber: undefined | bigint ; bondAmount: bigint ; eventName: "CloseLong" | "OpenLong" ; trader: `0x${string}` ; transactionHash: undefined | `0x${string}` }[]>

Parameters

NameType
options?ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "OpenLong"> & ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "CloseLong">

Returns

Promise<{ assetId: bigint ; baseAmount: bigint ; blockNumber: undefined | bigint ; bondAmount: bigint ; eventName: "CloseLong" | "OpenLong" ; trader: `0x${string}` ; transactionHash: undefined | `0x${string}` }[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:410


getLongPrice

getLongPrice(options?): Promise<bigint>

Gets the spot price of a long

Parameters

NameTypeDescription
options?ContractReadOptionsThe read options

Returns

Promise<bigint>

the spot price of a long

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:375


getLpApy

getLpApy(«destructured»): Promise<{ lpApy: number }>

This returns the LP APY using the following formula for continuous compounding: r = rate of return p_0 = from lpSharePrice p_1 = to lpSharePrice t = time frame between p_0 and p_1 r = ln(p_1 / p_0) / t

Parameters

NameType
«destructured»Object
› fromBlockbigint
› toBlockbigint

Returns

Promise<{ lpApy: number }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:510


getLpEvents

getLpEvents(options?): Promise<{ addLiquidity: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "AddLiquidity">[] ; redeemWithdrawalShares: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RedeemWithdrawalShares">[] ; removeLiquidity: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RemoveLiquidity">[] }>

Parameters

NameType
options?ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "AddLiquidity"> & ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RemoveLiquidity"> & ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [{ internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }, { internalType: ... ; name: ... ; type: ... }] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RedeemWithdrawalShares">

Returns

Promise<{ addLiquidity: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "AddLiquidity">[] ; redeemWithdrawalShares: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RedeemWithdrawalShares">[] ; removeLiquidity: Event<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "addLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }] ; name: "balanceOf" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "baseToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256[]" ; name: "ids" ; type: "uint256[]" }, { internalType: "uint256[]" ; name: "values" ; type: "uint256[]" }] ; name: "batchTransferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxIterations" ; type: "uint256" }] ; name: "checkpoint" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeLong" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "closeShort" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "collectGovernanceFee" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "decimals" ; outputs: readonly [{ internalType: "uint8" ; name: "" ; type: "uint8" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "domainSeparator" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpoint" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "vaultSharePrice" ; type: "uint128" }] ; internalType: "struct IHyperdrive.Checkpoint" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_checkpointTime" ; type: "uint256" }] ; name: "getCheckpointExposure" ; outputs: readonly [{ internalType: "int256" ; name: "" ; type: "int256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getMarketState" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "shareReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "bondReserves" ; type: "uint128" }, { internalType: "uint128" ; name: "longExposure" ; type: "uint128" }, { internalType: "uint128" ; name: "longsOutstanding" ; type: "uint128" }, { internalType: "int128" ; name: "shareAdjustment" ; type: "int128" }, { internalType: "uint128" ; name: "shortsOutstanding" ; type: "uint128" }, { internalType: "uint128" ; name: "longAverageMaturityTime" ; type: "uint128" }, { internalType: "uint128" ; name: "shortAverageMaturityTime" ; type: "uint128" }, { internalType: "bool" ; name: "isInitialized" ; type: "bool" }, { internalType: "bool" ; name: "isPaused" ; type: "bool" }, { internalType: "uint112" ; name: "zombieBaseProceeds" ; type: "uint112" }, { internalType: "uint128" ; name: "zombieShareReserves" ; type: "uint128" }] ; internalType: "struct IHyperdrive.MarketState" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolConfig" ; outputs: readonly [{ components: readonly [{ internalType: "contract IERC20" ; name: "baseToken" ; type: "address" }, { internalType: "contract IERC20" ; name: "vaultSharesToken" ; type: "address" }, { internalType: "address" ; name: "linkerFactory" ; type: "address" }, { internalType: "bytes32" ; name: "linkerCodeHash" ; type: "bytes32" }, { internalType: "uint256" ; name: "initialVaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "minimumTransactionAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "positionDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "checkpointDuration" ; type: "uint256" }, { internalType: "uint256" ; name: "timeStretch" ; type: "uint256" }, { internalType: "address" ; name: "governance" ; type: "address" }, { internalType: "address" ; name: "feeCollector" ; type: "address" }, { internalType: "address" ; name: "sweepCollector" ; type: "address" }, { components: readonly [..., ..., ..., ...] ; internalType: "struct IHyperdrive.Fees" ; name: "fees" ; type: "tuple" }] ; internalType: "struct IHyperdrive.PoolConfig" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getPoolInfo" ; outputs: readonly [{ components: readonly [{ internalType: "uint256" ; name: "shareReserves" ; type: "uint256" }, { internalType: "int256" ; name: "shareAdjustment" ; type: "int256" }, { internalType: "uint256" ; name: "zombieBaseProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "zombieShareReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "bondReserves" ; type: "uint256" }, { internalType: "uint256" ; name: "lpTotalSupply" ; type: "uint256" }, { internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "longAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "shortsOutstanding" ; type: "uint256" }, { internalType: "uint256" ; name: "shortAverageMaturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesReadyToWithdraw" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesProceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "longExposure" ; type: "uint256" }] ; internalType: "struct IHyperdrive.PoolInfo" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getUncollectedGovernanceFees" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "getWithdrawPool" ; outputs: readonly [{ components: readonly [{ internalType: "uint128" ; name: "readyToWithdraw" ; type: "uint128" }, { internalType: "uint128" ; name: "proceeds" ; type: "uint128" }] ; internalType: "struct IHyperdrive.WithdrawPool" ; name: "" ; type: "tuple" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_apr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "initialize" ; outputs: readonly [{ internalType: "uint256" ; name: "lpShares" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "isApprovedForAll" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_account" ; type: "address" }] ; name: "isPauser" ; outputs: readonly [{ internalType: "bool" ; name: "" ; type: "bool" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256[]" ; name: "_slots" ; type: "uint256[]" }] ; name: "load" ; outputs: readonly [{ internalType: "bytes32[]" ; name: "" ; type: "bytes32[]" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; 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: "uint256" ; name: "_amount" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutput" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openLong" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "bondProceeds" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_bondAmount" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxDeposit" ; type: "uint256" }, { internalType: "uint256" ; name: "_minVaultSharePrice" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "openShort" ; outputs: readonly [{ internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { internalType: "uint256" ; name: "deposit" ; type: "uint256" }] ; stateMutability: "payable" ; type: "function" }, { inputs: readonly [{ internalType: "bool" ; name: "_status" ; type: "bool" }] ; name: "pause" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }, { internalType: "address" ; name: "owner" ; type: "address" }, { internalType: "address" ; name: "spender" ; type: "address" }] ; name: "perTokenApprovals" ; 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: "bool" ; name: "_approved" ; type: "bool" }, { 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: "permitForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_withdrawalShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "redeemWithdrawalShares" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalSharesRedeemed" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_lpShares" ; type: "uint256" }, { internalType: "uint256" ; name: "_minOutputPerShare" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type: "tuple" }] ; name: "removeLiquidity" ; outputs: readonly [{ internalType: "uint256" ; name: "proceeds" ; type: "uint256" }, { internalType: "uint256" ; name: "withdrawalShares" ; type: "uint256" }] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "setApproval" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "setApprovalBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "operator" ; type: "address" }, { internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "setApprovalForAll" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setFeeCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setGovernance" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "who" ; type: "address" }, { internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "setPauser" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "address" ; name: "_who" ; type: "address" }] ; name: "setSweepCollector" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "contract IERC20" ; name: "_target" ; type: "address" }] ; name: "sweep" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "symbol" ; outputs: readonly [{ internalType: "string" ; name: "" ; type: "string" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target0" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target1" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target2" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target3" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [] ; name: "target4" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenId" ; type: "uint256" }] ; name: "totalSupply" ; outputs: readonly [{ internalType: "uint256" ; name: "" ; type: "uint256" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }] ; name: "transferFrom" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "tokenID" ; type: "uint256" }, { internalType: "address" ; name: "from" ; type: "address" }, { internalType: "address" ; name: "to" ; type: "address" }, { internalType: "uint256" ; name: "amount" ; type: "uint256" }, { internalType: "address" ; name: "caller" ; type: "address" }] ; name: "transferFromBridge" ; outputs: readonly [] ; stateMutability: "nonpayable" ; type: "function" }, { inputs: readonly [] ; name: "vaultSharesToken" ; outputs: readonly [{ internalType: "address" ; name: "" ; type: "address" }] ; stateMutability: "view" ; type: "function" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "AddLiquidity" ; type: "event" }, { 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: "account" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "approved" ; type: "bool" }] ; name: "ApprovalForAll" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "basePayment" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "CloseShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "fees" ; type: "uint256" }] ; name: "CollectGovernanceFee" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "uint256" ; name: "checkpointTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "checkpointVaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultSharePrice" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedShorts" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturedLongs" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "CreateCheckpoint" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newFeeCollector" ; type: "address" }] ; name: "FeeCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newGovernance" ; type: "address" }] ; name: "GovernanceUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "apr" ; type: "uint256" }] ; name: "Initialize" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenLong" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "trader" ; type: "address" }, { indexed: true ; internalType: "uint256" ; name: "assetId" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "maturityTime" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "baseProceeds" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "bondAmount" ; type: "uint256" }] ; name: "OpenShort" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: false ; internalType: "bool" ; name: "isPaused" ; type: "bool" }] ; name: "PauseStatusUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newPauser" ; type: "address" }, { indexed: false ; internalType: "bool" ; name: "status" ; type: "bool" }] ; name: "PauserUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }] ; name: "RedeemWithdrawalShares" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "provider" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "destination" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "lpAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "baseAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "vaultShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "bool" ; name: "asBase" ; type: "bool" }, { indexed: false ; internalType: "uint256" ; name: "withdrawalShareAmount" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "lpSharePrice" ; type: "uint256" }] ; name: "RemoveLiquidity" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "collector" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "target" ; type: "address" }] ; name: "Sweep" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "newSweepCollector" ; type: "address" }] ; name: "SweepCollectorUpdated" ; type: "event" }, { anonymous: false ; inputs: readonly [{ indexed: true ; internalType: "address" ; name: "operator" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "from" ; type: "address" }, { indexed: true ; internalType: "address" ; name: "to" ; type: "address" }, { indexed: false ; internalType: "uint256" ; name: "id" ; type: "uint256" }, { indexed: false ; internalType: "uint256" ; name: "value" ; type: "uint256" }] ; name: "TransferSingle" ; type: "event" }, { inputs: readonly [] ; name: "BatchInputLengthMismatch" ; type: "error" }, { inputs: readonly [] ; name: "BelowMinimumContribution" ; type: "error" }, { inputs: readonly [] ; name: "DecreasedPresentValueWhenAddingLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "DistributeExcessIdleFailed" ; type: "error" }, { inputs: readonly [] ; name: "ExpInvalidExponent" ; type: "error" }, { inputs: readonly [] ; name: "ExpiredDeadline" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientBalance" ; type: "error" }, { inputs: readonly [] ; name: "InsufficientLiquidity" ; type: "error" }, { inputs: readonly [] ; name: "InvalidApr" ; type: "error" }, { inputs: readonly [] ; name: "InvalidCheckpointTime" ; type: "error" }, { inputs: readonly [] ; name: "InvalidERC20Bridge" ; type: "error" }, { inputs: readonly [] ; name: "InvalidFeeDestination" ; type: "error" }, { inputs: readonly [] ; name: "InvalidInitialVaultSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidLPSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "InvalidPresentValue" ; type: "error" }, { inputs: readonly [] ; name: "InvalidSignature" ; type: "error" }, { inputs: readonly [] ; name: "InvalidTimestamp" ; type: "error" }, { inputs: readonly [] ; name: "LnInvalidInput" ; type: "error" }, { inputs: readonly [] ; name: "MinimumSharePrice" ; type: "error" }, { inputs: readonly [] ; name: "MinimumTransactionAmount" ; type: "error" }, { inputs: readonly [] ; name: "NotPayable" ; type: "error" }, { inputs: readonly [] ; name: "OutputLimit" ; type: "error" }, { inputs: readonly [] ; name: "PoolAlreadyInitialized" ; type: "error" }, { inputs: readonly [] ; name: "PoolIsPaused" ; type: "error" }, { inputs: readonly [] ; name: "RestrictedZeroAddress" ; type: "error" }, { inputs: readonly [{ internalType: "bytes" ; name: "data" ; type: "bytes" }] ; name: "ReturnData" ; type: "error" }, { inputs: readonly [] ; name: "SweepFailed" ; type: "error" }, { inputs: readonly [] ; name: "TransferFailed" ; type: "error" }, { inputs: readonly [] ; name: "Unauthorized" ; type: "error" }, { inputs: readonly [] ; name: "UnexpectedSuccess" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt128" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToInt256" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint112" ; type: "error" }, { inputs: readonly [] ; name: "UnsafeCastToUint128" ; type: "error" }, { inputs: readonly [] ; name: "UnsupportedToken" ; type: "error" }, { inputs: readonly [] ; name: "UpdateLiquidityFailed" ; type: "error" }], "RemoveLiquidity">[] }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:473


getLpShares

getLpShares(«destructured»): Promise<bigint>

Gets the amount of LP shares a user has.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:1001


getLpSharesTotalSupply

getLpSharesTotalSupply(args?): Promise<bigint>

Parameters

NameType
args?Object
args.options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:988


getMarketState

getMarketState(options?): Promise<{ bondReserves: bigint ; isInitialized: boolean ; isPaused: boolean ; longAverageMaturityTime: bigint ; longExposure: bigint ; longsOutstanding: bigint ; shareAdjustment: bigint ; shareReserves: bigint ; shortAverageMaturityTime: bigint ; shortsOutstanding: bigint ; zombieBaseProceeds: bigint ; zombieShareReserves: bigint }>

This function retrieves the market state. This is helpful for retrieving general market state statistics, such as whether the market has been paused.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<{ bondReserves: bigint ; isInitialized: boolean ; isPaused: boolean ; longAverageMaturityTime: bigint ; longExposure: bigint ; longsOutstanding: bigint ; shareAdjustment: bigint ; shareReserves: bigint ; shortAverageMaturityTime: bigint ; shortsOutstanding: bigint ; zombieBaseProceeds: bigint ; zombieShareReserves: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:159


getMaxLong

getMaxLong(options?): Promise<{ maxBaseIn: bigint ; maxBondsOut: bigint ; maxSharesIn: bigint }>

Gets the maximum amount of bonds a user can open a long for.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<{ maxBaseIn: bigint ; maxBondsOut: bigint ; maxSharesIn: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:939


getMaxShort

getMaxShort(options?): Promise<{ maxBaseIn: bigint ; maxBondsOut: bigint ; maxSharesIn: bigint }>

Gets the maximum amount of bonds a user can open a short for.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<{ maxBaseIn: bigint ; maxBondsOut: bigint ; maxSharesIn: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:884


getOpenLongs

getOpenLongs(account): Promise<Long[]>

Gets the active longs opened by a specific user.

Parameters

NameTypeDescription
accountObjectThe user's address
account.account`0x${string}`-
account.options?ContractReadOptions-

Returns

Promise<Long[]>

the active longs opened by a specific user

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:639


getOpenLpPosition

getOpenLpPosition(«destructured»): Promise<{ baseAmountPaid: bigint ; baseValue: bigint ; lpShareBalance: bigint ; sharesValue: bigint }>

Gets a user's current LP position.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<{ baseAmountPaid: bigint ; baseValue: bigint ; lpShareBalance: bigint ; sharesValue: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:1018


getOpenShorts

getOpenShorts(account): Promise<OpenShort[]>

Gets the active shorts opened by a specific user.

Parameters

NameTypeDescription
accountObjectThe user's address
account.account`0x${string}`-
account.options?ContractReadOptions-

Returns

Promise<OpenShort[]>

the active shorts opened by a specific user

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:669


getPoolConfig

getPoolConfig(options?): Promise<{ baseToken: `0x${string}` ; checkpointDuration: bigint ; feeCollector: `0x${string}` ; fees: { curve: bigint ; flat: bigint ; governanceLP: bigint ; governanceZombie: bigint } ; governance: `0x${string}` ; initialVaultSharePrice: bigint ; linkerCodeHash: `0x${string}` ; linkerFactory: `0x${string}` ; minimumShareReserves: bigint ; minimumTransactionAmount: bigint ; positionDuration: bigint ; sweepCollector: `0x${string}` ; timeStretch: bigint ; vaultSharesToken: `0x${string}` }>

Gets the pool's configuration parameters

Parameters

NameType
options?ContractReadOptions

Returns

Promise<{ baseToken: `0x${string}` ; checkpointDuration: bigint ; feeCollector: `0x${string}` ; fees: { curve: bigint ; flat: bigint ; governanceLP: bigint ; governanceZombie: bigint } ; governance: `0x${string}` ; initialVaultSharePrice: bigint ; linkerCodeHash: `0x${string}` ; linkerFactory: `0x${string}` ; minimumShareReserves: bigint ; minimumTransactionAmount: bigint ; positionDuration: bigint ; sweepCollector: `0x${string}` ; timeStretch: bigint ; vaultSharesToken: `0x${string}` }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:166


getPoolInfo

getPoolInfo(options?): Promise<{ bondReserves: bigint ; longAverageMaturityTime: bigint ; longExposure: bigint ; longsOutstanding: bigint ; lpSharePrice: bigint ; lpTotalSupply: bigint ; shareAdjustment: bigint ; shareReserves: bigint ; shortAverageMaturityTime: bigint ; shortsOutstanding: bigint ; vaultSharePrice: bigint ; withdrawalSharesProceeds: bigint ; withdrawalSharesReadyToWithdraw: bigint ; zombieBaseProceeds: bigint ; zombieShareReserves: bigint }>

Gets info about the pool's reserves and other state that is important to evaluate potential trades.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<{ bondReserves: bigint ; longAverageMaturityTime: bigint ; longExposure: bigint ; longsOutstanding: bigint ; lpSharePrice: bigint ; lpTotalSupply: bigint ; shareAdjustment: bigint ; shareReserves: bigint ; shortAverageMaturityTime: bigint ; shortsOutstanding: bigint ; vaultSharePrice: bigint ; withdrawalSharesProceeds: bigint ; withdrawalSharesReadyToWithdraw: bigint ; zombieBaseProceeds: bigint ; zombieShareReserves: bigint }>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:174


getPresentValue

getPresentValue(options?): Promise<bigint>

Gets the total present value of the pool.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:251


getRedeemedWithdrawalShares

getRedeemedWithdrawalShares(«destructured»): Promise<RedeemedWithdrawalShares[]>

Gets the amount of redeemed withdrawal shares a user has.

Parameters

NameType
«destructured»Object
› account`0x${string}`
› options?ContractReadOptions

Returns

Promise<RedeemedWithdrawalShares[]>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:1210


getSharesToken

getSharesToken(): Promise<ReadErc20>

Returns the share token of the pool.

Returns

Promise<ReadErc20>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:96


getShortAccruedYield

getShortAccruedYield(«destructured»): Promise<bigint>

Gets the yield accrued on an amount of bonds shorted in a given checkpoint. Note that shorts stop accruing yield once they reach maturity.

Parameters

NameType
«destructured»Object
› bondAmountbigint
› checkpointIdbigint
› decimalsnumber
› options?ContractReadOptions

Returns

Promise<bigint>

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadHyperdrive/ReadHyperdrive.ts:272


getShortEvents

getShortEvents(options?): Promise<{ assetId: bigint ; baseAmount: bigint ; blockNumber: undefined | bigint ; bondAmount: bigint ; eventName: "CloseShort" | "OpenShort" ; trader: `0x${string}` ; transactionHash: undefined | `0x${string}` }[]>

Parameters

NameType
options?ContractGetEventsOptions<readonly [{ inputs: readonly [] ; name: "PERMIT_TYPEHASH" ; outputs: readonly [{ internalType: "bytes32" ; name: "" ; type: "bytes32" }] ; stateMutability: "view" ; type: "function" }, { inputs: readonly [{ internalType: "uint256" ; name: "_contribution" ; type: "uint256" }, { internalType: "uint256" ; name: "_minLpSharePrice" ; type: "uint256" }, { internalType: "uint256" ; name: "_minApr" ; type: "uint256" }, { internalType: "uint256" ; name: "_maxApr" ; type: "uint256" }, { components: readonly [{ internalType: "address" ; name: "destination" ; type: "address" }, { internalType: "bool" ; name: "asBase" ; type: "bool" }, { internalType: "bytes" ; name: "extraData" ; type: "bytes" }] ; internalType: "struct IHyperdrive.Options" ; name: "_options" ; type