Skip to main content

Class: ReadWriteHyperdrive

A base class for read-only models.

Hierarchy

Constructors

constructor

new ReadWriteHyperdrive(options): ReadWriteHyperdrive

Parameters

NameType
optionsReadWriteHyperdriveOptions

Returns

ReadWriteHyperdrive

Overrides

ReadHyperdrive.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" }]>

Overrides

ReadHyperdrive.contract

Defined in

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


contractFactory

contractFactory: ReadWriteContractFactory

Overrides

ReadHyperdrive.contractFactory

Defined in

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


name

name: string

Inherited from

ReadHyperdrive.name

Defined in

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


network

network: Network

Inherited from

ReadHyperdrive.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

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

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.

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

Defined in

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


getBaseToken

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

Returns the base token of the pool.

Parameters

NameType
options?ContractReadOptions

Returns

Promise<ReadWriteErc20 | ReadWriteEth>

Overrides

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.getClosedShorts

Defined in

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


getDecimals

getDecimals(): Promise<number>

Returns

Promise<number>

Inherited from

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.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

ReadHyperdrive.getOpenLpPosition

Defined i