Skip to main content

Class: ReadWriteErc4626Hyperdrive

Hierarchy

Constructors

constructor

new ReadWriteErc4626Hyperdrive(options): ReadWriteErc4626Hyperdrive

Parameters

NameType
optionsReadWriteHyperdriveOptions

Returns

ReadWriteErc4626Hyperdrive

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).constructor

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:28

Properties

contract

contract: CachedReadWriteContract<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" }]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).contract

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:25


contractFactory

contractFactory: ReadWriteContractFactory

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).contractFactory

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:26


name

name: string

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).name

Defined in

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


network

network: Network

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).network

Defined in

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

Methods

addLiquidity

addLiquidity(«destructured»): Promise<`0x${string}`>

Adds liquidity to the pool.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; contribution: bigint ; destination: `0x${string}` ; extraData?: `0x${string}` ; maxAPR: bigint ; minAPR: bigint ; minLpSharePrice: bigint }>

Returns

Promise<`0x${string}`>

lpShares The number of LP tokens created

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).addLiquidity

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:321


checkpoint

checkpoint(time): Promise<`0x${string}`>

Allows anyone to mint a new checkpoint.

Parameters

NameTypeDescription
timeReadWriteParams<{ time: number }>The time (in seconds) of the checkpoint to create.

Returns

Promise<`0x${string}`>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).checkpoint

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:64


closeLong

closeLong(«destructured»): Promise<`0x${string}`>

Closes a long position.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; bondAmountIn: bigint ; destination: `0x${string}` ; extraData?: `0x${string}` ; maturityTime: bigint ; minAmountOut: bigint }>

Returns

Promise<`0x${string}`>

The amount of underlying asset the user receives.

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).closeLong

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:236


closeShort

closeShort(«destructured»): Promise<`0x${string}`>

Closes a short position.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; bondAmountIn: bigint ; destination: `0x${string}` ; extraData?: `0x${string}` ; maturityTime: bigint ; minAmountOut: bigint }>

Returns

Promise<`0x${string}`>

The amount of base tokens produced by closing this short

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).closeShort

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:278


getBaseToken

getBaseToken(options?): Promise<ReadWriteErc20 | ReadWriteEth>

Parameters

NameType
options?ContractReadOptions

Returns

Promise<ReadWriteErc20 | ReadWriteEth>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getBaseToken

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:32


getCheckpoint

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

Parameters

NameType
«destructured»Object
› checkpointIdbigint
› options?ContractReadOptions

Returns

Promise<{ vaultSharePrice: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getCheckpoint

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[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getCheckpointEvents

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getCheckpointExposure

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[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getClosedLongs

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[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getClosedLpShares

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[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getClosedShorts

Defined in

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


getDecimals

getDecimals(): Promise<number>

Returns

Promise<number>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getDecimals

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getIdleLiquidity

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getImpliedRate

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}` }[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLongEvents

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

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLongPrice

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLpApy

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">[] }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLpEvents

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLpShares

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getLpSharesTotalSupply

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getMarketState

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getMaxLong

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getMaxShort

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

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getOpenLongs

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getOpenLpPosition

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

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getOpenShorts

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}` }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getPoolConfig

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 }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getPoolInfo

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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getPresentValue

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[]>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getRedeemedWithdrawalShares

Defined in

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


getSharesToken

getSharesToken(options?): Promise<ReadWriteErc4626>

Parameters

NameType
options?ContractReadOptions

Returns

Promise<ReadWriteErc4626>

Overrides

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getSharesToken

Defined in

packages/hyperdrive-js-core/src/hyperdrive/erc4626/ReadWriteErc4626Hyperdrive.ts:9


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>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getShortAccruedYield

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: "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" }], "OpenShort"> & 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" }], "CloseShort">

Returns

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

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getShortEvents

Defined in

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


getSpotRate

getSpotRate(options?): Promise<bigint>

Gets the pool's fixed APR, i.e. the fixed rate a user locks in when they open a long.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<bigint>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getSpotRate

Defined in

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


getTradingVolume

getTradingVolume(options?): Promise<{ longVolume: bigint ; shortVolume: bigint ; totalVolume: bigint }>

Calculates the total trading volume in bonds given a block window.

Parameters

NameTypeDescription
options?Object-
options.fromBlock?bigint | BlockTagThe start block, defaults to "earliest"
options.toBlock?bigint | BlockTagThe end block, defaults to "latest"

Returns

Promise<{ longVolume: bigint ; shortVolume: bigint ; totalVolume: bigint }>

the total amount of bonds traded

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getTradingVolume

Defined in

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


getWithdrawalShares

getWithdrawalShares(«destructured»): Promise<bigint>

Gets the amount of withdrawal shares a user has.

Parameters

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

Returns

Promise<bigint>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getWithdrawalShares

Defined in

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


getYieldSourceRate

getYieldSourceRate(«destructured»): Promise<bigint>

Parameters

NameType
«destructured»Object
› options?ContractReadOptions

Returns

Promise<bigint>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).getYieldSourceRate

Defined in

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


initialize

initialize(«destructured»): Promise<`0x${string}`>

Allows the first LP to initialize the market with a target APR.

Parameters

NameType
«destructured»ReadWriteParams<{ apr: bigint ; asBase?: boolean ; contribution: bigint ; destination: `0x${string}` ; extraData?: `0x${string}` }>

Returns

Promise<`0x${string}`>

The initial number of LP shares created.

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).initialize

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:109


openLong

openLong(«destructured»): Promise<`0x${string}`>

Opens a new long position.

Parameters

NameType
«destructured»ReadWriteParams<{ amount: bigint ; asBase?: boolean ; destination: `0x${string}` ; extraData?: `0x${string}` ; minBondsOut: bigint ; minVaultSharePrice: bigint }>

Returns

Promise<`0x${string}`>

bondProceeds - The amount of bonds the user received

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).openLong

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:152


openShort

openShort(«destructured»): Promise<`0x${string}`>

Opens a new short position.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; bondAmount: bigint ; destination: `0x${string}` ; extraData?: `0x${string}` ; maxDeposit: bigint ; minVaultSharePrice: bigint }>

Returns

Promise<`0x${string}`>

maturityTime - The maturity time of the short.

traderDeposit - The amount the user deposited for this trade.

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).openShort

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:194


pause

pause(paused): Promise<`0x${string}`>

Allows an authorized address to pause this contract

Parameters

NameTypeDescription
pausedReadWriteParams<{ paused: boolean }>True to pause all deposits and false to unpause them

Returns

Promise<`0x${string}`>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).pause

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:83


previewAddLiquidity

previewAddLiquidity(«destructured»): Promise<{ lpSharesOut: bigint ; slippagePaid: bigint }>

Predicts the amount of LP shares a user will receive when adding liquidity.

Parameters

NameTypeDefault value
«destructured»Objectundefined
› asBasebooleanundefined
› contributionbigintundefined
› destination`0x${string}`undefined
› extraData?`0x${string}`DEFAULT_EXTRA_DATA
› maxAPRbigintundefined
› minAPRbigintundefined
› minLpSharePricebigintundefined
› options?ContractWriteOptionsundefined

Returns

Promise<{ lpSharesOut: bigint ; slippagePaid: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewAddLiquidity

Defined in

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


previewCloseLong

previewCloseLong(«destructured»): Promise<bigint>

Predicts the amount of base asset a user will receive when closing a long.

Parameters

NameTypeDefault value
«destructured»Objectundefined
› asBasebooleanundefined
› bondAmountInbigintundefined
› destination`0x${string}`undefined
› extraData?`0x${string}`ZERO_ADDRESS
› maturityTimebigintundefined
› minAmountOutbigintundefined
› options?ContractWriteOptionsundefined

Returns

Promise<bigint>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewCloseLong

Defined in

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


previewCloseShort

previewCloseShort(«destructured»): Promise<bigint>

Predicts the amount of base asset a user will receive when closing a short.

Parameters

NameTypeDefault value
«destructured»Objectundefined
› asBasebooleanundefined
› destination`0x${string}`undefined
› extraData?`0x${string}`DEFAULT_EXTRA_DATA
› maturityTimebigintundefined
› minAmountOutbigintundefined
› options?ContractWriteOptionsundefined
› shortAmountInbigintundefined

Returns

Promise<bigint>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewCloseShort

Defined in

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


previewOpenLong

previewOpenLong(«destructured»): Promise<{ bondProceeds: bigint ; curveFee: bigint ; maturityTime: bigint ; spotPriceAfterOpen: bigint ; spotRateAfterOpen: bigint }>

Predicts the amount of bonds a user will receive when opening a long in either base or shares. The curve fee returned from this function is paid in bonds.

Parameters

NameType
«destructured»Object
› amountInbigint
› asBaseboolean
› options?ContractReadOptions

Returns

Promise<{ bondProceeds: bigint ; curveFee: bigint ; maturityTime: bigint ; spotPriceAfterOpen: bigint ; spotRateAfterOpen: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewOpenLong

Defined in

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


previewOpenShort

previewOpenShort(«destructured»): Promise<{ curveFee: bigint ; maturityTime: bigint ; spotPriceAfterOpen: bigint ; spotRateAfterOpen: bigint ; traderDeposit: bigint }>

Predicts the amount of base asset it will cost to open a short.

Parameters

NameType
«destructured»Object
› amountOfBondsToShortbigint
› asBaseboolean
› options?ContractReadOptions

Returns

Promise<{ curveFee: bigint ; maturityTime: bigint ; spotPriceAfterOpen: bigint ; spotRateAfterOpen: bigint ; traderDeposit: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewOpenShort

Defined in

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


previewRedeemWithdrawalShares

previewRedeemWithdrawalShares(«destructured»): Promise<{ asBase: boolean ; baseProceeds: bigint ; sharesProceeds: bigint ; withdrawalSharesRedeemed: bigint }>

Predicts the amount of base asset and redeemed shares a user will receive when redeeming withdrawal shares.

Parameters

NameTypeDefault value
«destructured»Objectundefined
› asBasebooleanundefined
› destination`0x${string}`undefined
› extraData?`0x${string}`DEFAULT_EXTRA_DATA
› minOutputPerSharebigintundefined
› options?ContractWriteOptionsundefined
› withdrawalSharesInbigintundefined

Returns

Promise<{ asBase: boolean ; baseProceeds: bigint ; sharesProceeds: bigint ; withdrawalSharesRedeemed: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewRedeemWithdrawalShares

Defined in

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


previewRemoveLiquidity

previewRemoveLiquidity(«destructured»): Promise<{ proceeds: bigint ; withdrawalShares: bigint }>

Predicts the amount of base asset and withdrawlshares a user will receive when removing liquidity.

Parameters

NameTypeDefault value
«destructured»Objectundefined
› asBasebooleanundefined
› destination`0x${string}`undefined
› extraData?`0x${string}`DEFAULT_EXTRA_DATA
› lpSharesInbigintundefined
› minOutputPerSharebigintundefined
› options?ContractWriteOptionsundefined

Returns

Promise<{ proceeds: bigint ; withdrawalShares: bigint }>

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).previewRemoveLiquidity

Defined in

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


redeemWithdrawalShares

redeemWithdrawalShares(«destructured»): Promise<`0x${string}`>

Redeems withdrawal shares.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; destination: `0x${string}` ; extraData?: `0x${string}` ; minOutputPerShare: bigint ; withdrawalSharesIn: bigint }>

Returns

Promise<`0x${string}`>

baseProceeds The amount of base the LP received.

sharesRedeemed The amount of withdrawal shares that were redeemed.

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).redeemWithdrawalShares

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:407


removeLiquidity

removeLiquidity(«destructured»): Promise<`0x${string}`>

Removes liquidity from the pool.

Parameters

NameType
«destructured»ReadWriteParams<{ asBase?: boolean ; destination: `0x${string}` ; extraData?: `0x${string}` ; lpSharesIn: bigint ; minOutputPerShare: bigint }>

Returns

Promise<`0x${string}`>

baseProceeds - The base the LP removing liquidity receives. The LP receives a proportional amount of the pool's idle capital

withdrawShares - The base that the LP receives buys out some of their LP shares, but it may not be sufficient to fully buy the LP out. In this case, the LP receives withdrawal shares equal in value to the present value they are owed. As idle capital becomes available, the pool will buy back these shares.

Inherited from

readErc4626HyperdriveMixin( ReadWriteHyperdrive, ).removeLiquidity

Defined in

packages/hyperdrive-js-core/src/hyperdrive/ReadWriteHyperdrive.ts:367