import JSBI from 'jsbi'; export { default as JSBI } from 'jsbi'; import { Hex, PublicClient } from 'viem'; import { ChainId, Percent, TokenAmount, Token, TradeType, Price, CurrencyAmount } from '@traderjoe-xyz/sdk-core'; var LBPair$1 = [ { inputs: [ { internalType: "contract ILBFactory", name: "_factory", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "uint256", name: "bp", type: "uint256" } ], name: "BinHelper__BinStepOverflows", type: "error" }, { inputs: [ ], name: "BinHelper__IdOverflows", type: "error" }, { inputs: [ ], name: "LBPair__AddressZero", type: "error" }, { inputs: [ ], name: "LBPair__AddressZeroOrThis", type: "error" }, { inputs: [ ], name: "LBPair__AlreadyInitialized", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBPair__CompositionFactorFlawed", type: "error" }, { inputs: [ ], name: "LBPair__DistributionsOverflow", type: "error" }, { inputs: [ ], name: "LBPair__FlashLoanCallbackFailed", type: "error" }, { inputs: [ ], name: "LBPair__FlashLoanTokenNotSupported", type: "error" }, { inputs: [ ], name: "LBPair__FlashLoanWrongFee", type: "error" }, { inputs: [ ], name: "LBPair__InsufficientAmounts", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBPair__InsufficientLiquidityBurned", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBPair__InsufficientLiquidityMinted", type: "error" }, { inputs: [ { internalType: "uint256", name: "newSize", type: "uint256" }, { internalType: "uint256", name: "oracleSize", type: "uint256" } ], name: "LBPair__NewSizeTooSmall", type: "error" }, { inputs: [ ], name: "LBPair__OnlyFactory", type: "error" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" }, { internalType: "address", name: "sender", type: "address" } ], name: "LBPair__OnlyFeeRecipient", type: "error" }, { inputs: [ ], name: "LBPair__OnlyStrictlyIncreasingId", type: "error" }, { inputs: [ ], name: "LBPair__WrongLengths", type: "error" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "uint256", name: "id", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBToken__BurnExceedsBalance", type: "error" }, { inputs: [ ], name: "LBToken__BurnFromAddress0", type: "error" }, { inputs: [ { internalType: "uint256", name: "accountsLength", type: "uint256" }, { internalType: "uint256", name: "idsLength", type: "uint256" } ], name: "LBToken__LengthMismatch", type: "error" }, { inputs: [ ], name: "LBToken__MintToAddress0", type: "error" }, { inputs: [ ], name: "LBToken__NotSupported", type: "error" }, { inputs: [ { internalType: "address", name: "owner", type: "address" } ], name: "LBToken__SelfApproval", type: "error" }, { inputs: [ { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "spender", type: "address" } ], name: "LBToken__SpenderNotApproved", type: "error" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "uint256", name: "id", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBToken__TransferExceedsBalance", type: "error" }, { inputs: [ ], name: "LBToken__TransferFromOrToAddress0", type: "error" }, { inputs: [ ], name: "LBToken__TransferToSelf", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Math128x128__PowerUnderflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "denominator", type: "uint256" } ], name: "Math512Bits__MulDivOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__OffsetOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "_minTimestamp", type: "uint256" }, { internalType: "uint256", name: "_lookUpTimestamp", type: "uint256" } ], name: "Oracle__LookUpTimestampTooOld", type: "error" }, { inputs: [ ], name: "Oracle__NotInitialized", type: "error" }, { inputs: [ ], name: "ReentrancyGuardUpgradeable__AlreadyInitialized", type: "error" }, { inputs: [ ], name: "ReentrancyGuardUpgradeable__ReentrantCall", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds112Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds40Bits", type: "error" }, { inputs: [ ], name: "TokenHelper__CallFailed", type: "error" }, { inputs: [ ], name: "TokenHelper__NonContract", type: "error" }, { inputs: [ ], name: "TokenHelper__TransferFailed", type: "error" }, { inputs: [ ], name: "TreeMath__ErrorDepthSearch", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "bool", name: "approved", type: "bool" } ], name: "ApprovalForAll", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "Burn", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "id", type: "uint256" }, { indexed: false, internalType: "uint256", name: "feesX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "feesY", type: "uint256" } ], name: "CompositionFee", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "id", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "DepositedToBin", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "FeesCollected", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "contract ILBFlashLoanCallback", name: "receiver", type: "address" }, { indexed: false, internalType: "contract IERC20", name: "token", type: "address" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" }, { indexed: false, internalType: "uint256", name: "fee", type: "uint256" } ], name: "FlashLoan", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "previousSize", type: "uint256" }, { indexed: false, internalType: "uint256", name: "newSize", type: "uint256" } ], name: "OracleSizeIncreased", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "ProtocolFeesCollected", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "id", type: "uint256" }, { indexed: false, internalType: "bool", name: "swapForY", type: "bool" }, { indexed: false, internalType: "uint256", name: "amountIn", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountOut", type: "uint256" }, { indexed: false, internalType: "uint256", name: "volatilityAccumulated", type: "uint256" }, { indexed: false, internalType: "uint256", name: "fees", type: "uint256" } ], name: "Swap", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "from", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256[]", name: "ids", type: "uint256[]" }, { indexed: false, internalType: "uint256[]", name: "amounts", type: "uint256[]" } ], name: "TransferBatch", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", 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: "amount", type: "uint256" } ], name: "TransferSingle", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "id", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "WithdrawnFromBin", type: "event" }, { inputs: [ { internalType: "address", name: "_account", type: "address" }, { internalType: "uint256", name: "_id", type: "uint256" } ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "_accounts", type: "address[]" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" } ], name: "balanceOfBatch", outputs: [ { internalType: "uint256[]", name: "batchBalances", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_amounts", type: "uint256[]" }, { internalType: "address", name: "_to", type: "address" } ], name: "burn", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_account", type: "address" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" } ], name: "collectFees", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "collectProtocolFees", outputs: [ { internalType: "uint128", name: "amountX", type: "uint128" }, { internalType: "uint128", name: "amountY", type: "uint128" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "factory", outputs: [ { internalType: "contract ILBFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "feeParameters", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulated", type: "uint24" }, { internalType: "uint24", name: "volatilityAccumulated", type: "uint24" }, { internalType: "uint24", name: "volatilityReference", type: "uint24" }, { internalType: "uint24", name: "indexRef", type: "uint24" }, { internalType: "uint40", name: "time", type: "uint40" } ], internalType: "struct FeeHelper.FeeParameters", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint24", name: "_id", type: "uint24" }, { internalType: "bool", name: "_swapForY", type: "bool" } ], name: "findFirstNonEmptyBinId", outputs: [ { internalType: "uint24", name: "", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBFlashLoanCallback", name: "_receiver", type: "address" }, { internalType: "contract IERC20", name: "_token", type: "address" }, { internalType: "uint256", name: "_amount", type: "uint256" }, { internalType: "bytes", name: "_data", type: "bytes" } ], name: "flashLoan", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "forceDecay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint24", name: "_id", type: "uint24" } ], name: "getBin", outputs: [ { internalType: "uint256", name: "reserveX", type: "uint256" }, { internalType: "uint256", name: "reserveY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getGlobalFees", outputs: [ { internalType: "uint128", name: "feesXTotal", type: "uint128" }, { internalType: "uint128", name: "feesYTotal", type: "uint128" }, { internalType: "uint128", name: "feesXProtocol", type: "uint128" }, { internalType: "uint128", name: "feesYProtocol", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getOracleParameters", outputs: [ { internalType: "uint256", name: "oracleSampleLifetime", type: "uint256" }, { internalType: "uint256", name: "oracleSize", type: "uint256" }, { internalType: "uint256", name: "oracleActiveSize", type: "uint256" }, { internalType: "uint256", name: "oracleLastTimestamp", type: "uint256" }, { internalType: "uint256", name: "oracleId", type: "uint256" }, { internalType: "uint256", name: "min", type: "uint256" }, { internalType: "uint256", name: "max", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "_timeDelta", type: "uint256" } ], name: "getOracleSampleFrom", outputs: [ { internalType: "uint256", name: "cumulativeId", type: "uint256" }, { internalType: "uint256", name: "cumulativeVolatilityAccumulated", type: "uint256" }, { internalType: "uint256", name: "cumulativeBinCrossed", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getReservesAndId", outputs: [ { internalType: "uint256", name: "reserveX", type: "uint256" }, { internalType: "uint256", name: "reserveY", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "_newSize", type: "uint16" } ], name: "increaseOracleLength", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint24", name: "_activeId", type: "uint24" }, { internalType: "uint16", name: "_sampleLifetime", type: "uint16" }, { internalType: "bytes32", name: "_packedFeeParameters", type: "bytes32" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_owner", type: "address" }, { internalType: "address", name: "_spender", type: "address" } ], name: "isApprovedForAll", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "_distributionY", type: "uint256[]" }, { internalType: "address", name: "_to", type: "address" } ], name: "mint", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "name", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "address", name: "_account", type: "address" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" } ], name: "pendingFees", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "_from", type: "address" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_amounts", type: "uint256[]" } ], name: "safeBatchTransferFrom", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_from", type: "address" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_id", type: "uint256" }, { internalType: "uint256", name: "_amount", type: "uint256" } ], name: "safeTransferFrom", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_spender", type: "address" }, { internalType: "bool", name: "_approved", type: "bool" } ], name: "setApprovalForAll", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "_packedFeeParameters", type: "bytes32" } ], name: "setFeesParameters", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes4", name: "_interfaceId", type: "bytes4" } ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bool", name: "_swapForY", type: "bool" }, { internalType: "address", name: "_to", type: "address" } ], name: "swap", outputs: [ { internalType: "uint256", name: "amountXOut", type: "uint256" }, { internalType: "uint256", name: "amountYOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "symbol", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "tokenX", outputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "tokenY", outputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "_id", type: "uint256" } ], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" } ]; var LBFactory = [ { inputs: [ { internalType: "address", name: "_feeRecipient", type: "address" }, { internalType: "uint256", name: "_flashLoanFee", type: "uint256" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "uint256", name: "bp", type: "uint256" } ], name: "BinHelper__BinStepOverflows", type: "error" }, { inputs: [ ], name: "BinHelper__IdOverflows", type: "error" }, { inputs: [ ], name: "LBFactory__AddressZero", type: "error" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__BinStepHasNoPreset", type: "error" }, { inputs: [ { internalType: "uint256", name: "lowerBound", type: "uint256" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint256", name: "higherBound", type: "uint256" } ], name: "LBFactory__BinStepRequirementsBreached", type: "error" }, { inputs: [ { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" } ], name: "LBFactory__DecreasingPeriods", type: "error" }, { inputs: [ ], name: "LBFactory__FactoryLockIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "uint256", name: "fees", type: "uint256" }, { internalType: "uint256", name: "maxFees", type: "uint256" } ], name: "LBFactory__FeesAboveMax", type: "error" }, { inputs: [ { internalType: "uint256", name: "fees", type: "uint256" }, { internalType: "uint256", name: "maxFees", type: "uint256" } ], name: "LBFactory__FlashLoanFeeAboveMax", type: "error" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "LBFactory__FunctionIsLockedForUsers", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" } ], name: "LBFactory__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "LBFactory__ImplementationNotSet", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "_binStep", type: "uint256" } ], name: "LBFactory__LBPairAlreadyExists", type: "error" }, { inputs: [ ], name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__LBPairNotCreated", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__LBPairSafetyCheckFailed", type: "error" }, { inputs: [ { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint256", name: "max", type: "uint256" } ], name: "LBFactory__ProtocolShareOverflows", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetAlreadyWhitelisted", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetNotWhitelisted", type: "error" }, { inputs: [ { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint256", name: "max", type: "uint256" } ], name: "LBFactory__ReductionFactorOverflows", type: "error" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "LBFactory__SameFeeRecipient", type: "error" }, { inputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], name: "LBFactory__SameFlashLoanFee", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__SameImplementation", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Math128x128__PowerUnderflow", type: "error" }, { inputs: [ ], name: "PendingOwnable__AddressZero", type: "error" }, { inputs: [ ], name: "PendingOwnable__NoPendingOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__NotOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__NotPendingOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__PendingOwnerAlreadySet", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds16Bits", type: "error" }, { anonymous: false, inputs: [ { indexed: false, internalType: "bool", name: "unlocked", type: "bool" } ], name: "FactoryLockedStatusUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "uint256", name: "baseFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "filterPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "decayPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "reductionFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { indexed: false, internalType: "uint256", name: "protocolShare", type: "uint256" }, { indexed: false, internalType: "uint256", name: "maxVolatilityAccumulated", type: "uint256" } ], name: "FeeParametersSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldRecipient", type: "address" }, { indexed: false, internalType: "address", name: "newRecipient", type: "address" } ], name: "FeeRecipientSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldFlashLoanFee", type: "uint256" }, { indexed: false, internalType: "uint256", name: "newFlashLoanFee", type: "uint256" } ], name: "FlashLoanFeeSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "tokenX", type: "address" }, { indexed: true, internalType: "contract IERC20", name: "tokenY", type: "address" }, { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "uint256", name: "pid", type: "uint256" } ], name: "LBPairCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "bool", name: "ignored", type: "bool" } ], name: "LBPairIgnoredStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldLBPairImplementation", type: "address" }, { indexed: false, internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBPairImplementationSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "pendingOwner", type: "address" } ], name: "PendingOwnerSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" } ], name: "PresetRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "uint256", name: "baseFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "filterPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "decayPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "reductionFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { indexed: false, internalType: "uint256", name: "protocolShare", type: "uint256" }, { indexed: false, internalType: "uint256", name: "maxVolatilityAccumulated", type: "uint256" }, { indexed: false, internalType: "uint256", name: "sampleLifetime", type: "uint256" } ], name: "PresetSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetRemoved", type: "event" }, { inputs: [ ], name: "LBPairImplementation", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "MAX_BIN_STEP", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "MAX_FEE", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "MAX_PROTOCOL_SHARE", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "MIN_BIN_STEP", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_quoteAsset", type: "address" } ], name: "addQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "", type: "uint256" } ], name: "allLBPairs", outputs: [ { internalType: "contract ILBPair", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "becomeOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint24", name: "_activeId", type: "uint24" }, { internalType: "uint16", name: "_binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "creationUnlocked", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "feeRecipient", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "flashLoanFee", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" } ], name: "forceDecay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getAllBinSteps", outputs: [ { internalType: "uint256[]", name: "presetsBinStep", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" } ], name: "getAllLBPairs", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation[]", name: "LBPairsAvailable", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenA", type: "address" }, { internalType: "contract IERC20", name: "_tokenB", type: "address" }, { internalType: "uint256", name: "_binStep", type: "uint256" } ], name: "getLBPairInformation", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getNumberOfLBPairs", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getNumberOfQuoteAssets", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "_binStep", type: "uint16" } ], name: "getPreset", outputs: [ { internalType: "uint256", name: "baseFactor", type: "uint256" }, { internalType: "uint256", name: "filterPeriod", type: "uint256" }, { internalType: "uint256", name: "decayPeriod", type: "uint256" }, { internalType: "uint256", name: "reductionFactor", type: "uint256" }, { internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { internalType: "uint256", name: "protocolShare", type: "uint256" }, { internalType: "uint256", name: "maxVolatilityAccumulated", type: "uint256" }, { internalType: "uint256", name: "sampleLifetime", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "_index", type: "uint256" } ], name: "getQuoteAsset", outputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_token", type: "address" } ], name: "isQuoteAsset", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "_binStep", type: "uint16" } ], name: "removePreset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_quoteAsset", type: "address" } ], name: "removeQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "revokePendingOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bool", name: "_locked", type: "bool" } ], name: "setFactoryLockedState", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_feeRecipient", type: "address" } ], name: "setFeeRecipient", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint16", name: "_binStep", type: "uint16" }, { internalType: "uint16", name: "_baseFactor", type: "uint16" }, { internalType: "uint16", name: "_filterPeriod", type: "uint16" }, { internalType: "uint16", name: "_decayPeriod", type: "uint16" }, { internalType: "uint16", name: "_reductionFactor", type: "uint16" }, { internalType: "uint24", name: "_variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "_protocolShare", type: "uint16" }, { internalType: "uint24", name: "_maxVolatilityAccumulated", type: "uint24" } ], name: "setFeesParametersOnPair", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_flashLoanFee", type: "uint256" } ], name: "setFlashLoanFee", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint256", name: "_binStep", type: "uint256" }, { internalType: "bool", name: "_ignored", type: "bool" } ], name: "setLBPairIgnored", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "_LBPairImplementation", type: "address" } ], name: "setLBPairImplementation", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "pendingOwner_", type: "address" } ], name: "setPendingOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "_binStep", type: "uint16" }, { internalType: "uint16", name: "_baseFactor", type: "uint16" }, { internalType: "uint16", name: "_filterPeriod", type: "uint16" }, { internalType: "uint16", name: "_decayPeriod", type: "uint16" }, { internalType: "uint16", name: "_reductionFactor", type: "uint16" }, { internalType: "uint24", name: "_variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "_protocolShare", type: "uint16" }, { internalType: "uint24", name: "_maxVolatilityAccumulated", type: "uint24" }, { internalType: "uint16", name: "_sampleLifetime", type: "uint16" } ], name: "setPreset", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var LBRouter = [ { inputs: [ { internalType: "contract ILBFactory", name: "_factory", type: "address" }, { internalType: "contract IJoeFactory", name: "_oldFactory", type: "address" }, { internalType: "contract IWAVAX", name: "_wavax", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "uint256", name: "bp", type: "uint256" } ], name: "BinHelper__BinStepOverflows", type: "error" }, { inputs: [ { internalType: "int256", name: "id", type: "int256" } ], name: "BinHelper__IdOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "BinHelper__IntOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "LBRouter__AmountSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__BinReserveOverflows", type: "error" }, { inputs: [ ], name: "LBRouter__BrokenSwapSafetyCheck", type: "error" }, { inputs: [ { internalType: "uint256", name: "deadline", type: "uint256" }, { internalType: "uint256", name: "currentTimestamp", type: "uint256" } ], name: "LBRouter__DeadlineExceeded", type: "error" }, { inputs: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBRouter__FailedToSendAVAX", type: "error" }, { inputs: [ { internalType: "uint256", name: "idDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" } ], name: "LBRouter__IdDesiredOverflows", type: "error" }, { inputs: [ { internalType: "int256", name: "id", type: "int256" } ], name: "LBRouter__IdOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], name: "LBRouter__IdSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "uint256", name: "amountOut", type: "uint256" } ], name: "LBRouter__InsufficientAmountOut", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "wrongToken", type: "address" } ], name: "LBRouter__InvalidTokenPath", type: "error" }, { inputs: [ ], name: "LBRouter__LengthsMismatch", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountInMax", type: "uint256" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "LBRouter__MaxAmountInExceeded", type: "error" }, { inputs: [ ], name: "LBRouter__NotFactoryOwner", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBRouter__PairNotCreated", type: "error" }, { inputs: [ ], name: "LBRouter__SenderIsNotWAVAX", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__SwapOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "excess", type: "uint256" } ], name: "LBRouter__TooMuchTokensIn", type: "error" }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "uint256", name: "reserve", type: "uint256" } ], name: "LBRouter__WrongAmounts", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "msgValue", type: "uint256" } ], name: "LBRouter__WrongAvaxLiquidityParameters", type: "error" }, { inputs: [ ], name: "LBRouter__WrongTokenOrder", type: "error" }, { inputs: [ ], name: "Math128x128__LogUnderflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Math128x128__PowerUnderflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "denominator", type: "uint256" } ], name: "Math512Bits__MulDivOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__OffsetOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" } ], name: "SafeCast__Exceeds40Bits", type: "error" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "_liquidityParameters", type: "tuple" } ], name: "addLiquidity", outputs: [ { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "_liquidityParameters", type: "tuple" } ], name: "addLiquidityAVAX", outputs: [ { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint24", name: "_activeId", type: "uint24" }, { internalType: "uint16", name: "_binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "factory", outputs: [ { internalType: "contract ILBFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" }, { internalType: "uint256", name: "_price", type: "uint256" } ], name: "getIdFromPrice", outputs: [ { internalType: "uint24", name: "", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" }, { internalType: "uint24", name: "_id", type: "uint24" } ], name: "getPriceFromId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" }, { internalType: "uint256", name: "_amountOut", type: "uint256" }, { internalType: "bool", name: "_swapForY", type: "bool" } ], name: "getSwapIn", outputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "feesIn", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "_LBPair", type: "address" }, { internalType: "uint256", name: "_amountIn", type: "uint256" }, { internalType: "bool", name: "_swapForY", type: "bool" } ], name: "getSwapOut", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { internalType: "uint256", name: "feesIn", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "oldFactory", outputs: [ { internalType: "contract IJoeFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_tokenX", type: "address" }, { internalType: "contract IERC20", name: "_tokenY", type: "address" }, { internalType: "uint16", name: "_binStep", type: "uint16" }, { internalType: "uint256", name: "_amountXMin", type: "uint256" }, { internalType: "uint256", name: "_amountYMin", type: "uint256" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_amounts", type: "uint256[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "removeLiquidity", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_token", type: "address" }, { internalType: "uint16", name: "_binStep", type: "uint16" }, { internalType: "uint256", name: "_amountTokenMin", type: "uint256" }, { internalType: "uint256", name: "_amountAVAXMin", type: "uint256" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_amounts", type: "uint256[]" }, { internalType: "address payable", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "removeLiquidityAVAX", outputs: [ { internalType: "uint256", name: "amountToken", type: "uint256" }, { internalType: "uint256", name: "amountAVAX", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountOut", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapAVAXForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountOutMin", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactAVAXForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountOutMin", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactAVAXForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountIn", type: "uint256" }, { internalType: "uint256", name: "_amountOutMinAVAX", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address payable", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactTokensForAVAX", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountIn", type: "uint256" }, { internalType: "uint256", name: "_amountOutMinAVAX", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address payable", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactTokensForAVAXSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountIn", type: "uint256" }, { internalType: "uint256", name: "_amountOutMin", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactTokensForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountIn", type: "uint256" }, { internalType: "uint256", name: "_amountOutMin", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountAVAXOut", type: "uint256" }, { internalType: "uint256", name: "_amountInMax", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address payable", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapTokensForExactAVAX", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "_amountOut", type: "uint256" }, { internalType: "uint256", name: "_amountInMax", type: "uint256" }, { internalType: "uint256[]", name: "_pairBinSteps", type: "uint256[]" }, { internalType: "contract IERC20[]", name: "_tokenPath", type: "address[]" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_deadline", type: "uint256" } ], name: "swapTokensForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "_token", type: "address" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256", name: "_amount", type: "uint256" } ], name: "sweep", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBToken", name: "_lbToken", type: "address" }, { internalType: "address", name: "_to", type: "address" }, { internalType: "uint256[]", name: "_ids", type: "uint256[]" }, { internalType: "uint256[]", name: "_amounts", type: "uint256[]" } ], name: "sweepLBToken", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "wavax", outputs: [ { internalType: "contract IWAVAX", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var LBRouterV21 = [ { inputs: [ { internalType: "contract ILBFactory", name: "factory", type: "address" }, { internalType: "contract IJoeFactory", name: "factoryV1", type: "address" }, { internalType: "contract ILBLegacyFactory", name: "legacyFactory", type: "address" }, { internalType: "contract ILBLegacyRouter", name: "legacyRouter", type: "address" }, { internalType: "contract IWNATIVE", name: "wnative", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "AddressHelper__CallFailed", type: "error" }, { inputs: [ ], name: "AddressHelper__NonContract", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientAmount", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientLiquidity", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountSlippage", type: "uint256" } ], name: "LBRouter__AmountSlippageBPTooBig", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "LBRouter__AmountSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__BinReserveOverflows", type: "error" }, { inputs: [ ], name: "LBRouter__BrokenSwapSafetyCheck", type: "error" }, { inputs: [ { internalType: "uint256", name: "deadline", type: "uint256" }, { internalType: "uint256", name: "currentTimestamp", type: "uint256" } ], name: "LBRouter__DeadlineExceeded", type: "error" }, { inputs: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBRouter__FailedToSendNATIVE", type: "error" }, { inputs: [ { internalType: "uint256", name: "idDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" } ], name: "LBRouter__IdDesiredOverflows", type: "error" }, { inputs: [ { internalType: "int256", name: "id", type: "int256" } ], name: "LBRouter__IdOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], name: "LBRouter__IdSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "uint256", name: "amountOut", type: "uint256" } ], name: "LBRouter__InsufficientAmountOut", type: "error" }, { inputs: [ { internalType: "address", name: "wrongToken", type: "address" } ], name: "LBRouter__InvalidTokenPath", type: "error" }, { inputs: [ { internalType: "uint256", name: "version", type: "uint256" } ], name: "LBRouter__InvalidVersion", type: "error" }, { inputs: [ ], name: "LBRouter__LengthsMismatch", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountInMax", type: "uint256" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "LBRouter__MaxAmountInExceeded", type: "error" }, { inputs: [ ], name: "LBRouter__NotFactoryOwner", type: "error" }, { inputs: [ { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBRouter__PairNotCreated", type: "error" }, { inputs: [ ], name: "LBRouter__SenderIsNotWNATIVE", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__SwapOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "excess", type: "uint256" } ], name: "LBRouter__TooMuchTokensIn", type: "error" }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "uint256", name: "reserve", type: "uint256" } ], name: "LBRouter__WrongAmounts", type: "error" }, { inputs: [ { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "msgValue", type: "uint256" } ], name: "LBRouter__WrongNativeLiquidityParameters", type: "error" }, { inputs: [ ], name: "LBRouter__WrongTokenOrder", type: "error" }, { inputs: [ ], name: "TokenHelper__TransferFailed", type: "error" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "address", name: "refundTo", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "liquidityParameters", type: "tuple" } ], name: "addLiquidity", outputs: [ { internalType: "uint256", name: "amountXAdded", type: "uint256" }, { internalType: "uint256", name: "amountYAdded", type: "uint256" }, { internalType: "uint256", name: "amountXLeft", type: "uint256" }, { internalType: "uint256", name: "amountYLeft", type: "uint256" }, { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "address", name: "refundTo", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "liquidityParameters", type: "tuple" } ], name: "addLiquidityNATIVE", outputs: [ { internalType: "uint256", name: "amountXAdded", type: "uint256" }, { internalType: "uint256", name: "amountYAdded", type: "uint256" }, { internalType: "uint256", name: "amountXLeft", type: "uint256" }, { internalType: "uint256", name: "amountYLeft", type: "uint256" }, { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint24", name: "activeId", type: "uint24" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getFactory", outputs: [ { internalType: "contract ILBFactory", name: "lbFactory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint256", name: "price", type: "uint256" } ], name: "getIdFromPrice", outputs: [ { internalType: "uint24", name: "", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyFactory", outputs: [ { internalType: "contract ILBLegacyFactory", name: "legacyLBfactory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyRouter", outputs: [ { internalType: "contract ILBLegacyRouter", name: "legacyRouter", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint24", name: "id", type: "uint24" } ], name: "getPriceFromId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapIn", outputs: [ { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "uint128", name: "amountOutLeft", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapOut", outputs: [ { internalType: "uint128", name: "amountInLeft", type: "uint128" }, { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getV1Factory", outputs: [ { internalType: "contract IJoeFactory", name: "factoryV1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getWNATIVE", outputs: [ { internalType: "contract IWNATIVE", name: "wnative", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "removeLiquidity", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint256", name: "amountTokenMin", type: "uint256" }, { internalType: "uint256", name: "amountNATIVEMin", type: "uint256" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "removeLiquidityNATIVE", outputs: [ { internalType: "uint256", name: "amountToken", type: "uint256" }, { internalType: "uint256", name: "amountNATIVE", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactNATIVEForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactNATIVEForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMinNATIVE", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForNATIVE", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMinNATIVE", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForNATIVESupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapNATIVEForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountNATIVEOut", type: "uint256" }, { internalType: "uint256", name: "amountInMax", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapTokensForExactNATIVE", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { internalType: "uint256", name: "amountInMax", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapTokensForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "sweep", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBToken", name: "lbToken", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" } ], name: "sweepLBToken", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var LBRouterV22 = [ { inputs: [ { internalType: "contract ILBFactory", name: "factory2_2", type: "address" }, { internalType: "contract IJoeFactory", name: "factoryV1", type: "address" }, { internalType: "contract ILBLegacyFactory", name: "legacyFactory", type: "address" }, { internalType: "contract ILBLegacyRouter", name: "legacyRouter", type: "address" }, { internalType: "contract ILBFactory", name: "factory2_1", type: "address" }, { internalType: "contract IWNATIVE", name: "wnative", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "JoeLibrary__InsufficientAmount", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientLiquidity", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountSlippage", type: "uint256" } ], name: "LBRouter__AmountSlippageBPTooBig", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "LBRouter__AmountSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__BinReserveOverflows", type: "error" }, { inputs: [ ], name: "LBRouter__BrokenSwapSafetyCheck", type: "error" }, { inputs: [ { internalType: "uint256", name: "deadline", type: "uint256" }, { internalType: "uint256", name: "currentTimestamp", type: "uint256" } ], name: "LBRouter__DeadlineExceeded", type: "error" }, { inputs: [ { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBRouter__FailedToSendNATIVE", type: "error" }, { inputs: [ { internalType: "uint256", name: "idDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" } ], name: "LBRouter__IdDesiredOverflows", type: "error" }, { inputs: [ { internalType: "int256", name: "id", type: "int256" } ], name: "LBRouter__IdOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], name: "LBRouter__IdSlippageCaught", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { internalType: "uint256", name: "amountOut", type: "uint256" } ], name: "LBRouter__InsufficientAmountOut", type: "error" }, { inputs: [ { internalType: "address", name: "wrongToken", type: "address" } ], name: "LBRouter__InvalidTokenPath", type: "error" }, { inputs: [ { internalType: "uint256", name: "version", type: "uint256" } ], name: "LBRouter__InvalidVersion", type: "error" }, { inputs: [ ], name: "LBRouter__LengthsMismatch", type: "error" }, { inputs: [ { internalType: "uint256", name: "amountInMax", type: "uint256" }, { internalType: "uint256", name: "amountIn", type: "uint256" } ], name: "LBRouter__MaxAmountInExceeded", type: "error" }, { inputs: [ ], name: "LBRouter__NotFactoryOwner", type: "error" }, { inputs: [ { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBRouter__PairNotCreated", type: "error" }, { inputs: [ ], name: "LBRouter__SenderIsNotWNATIVE", type: "error" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "LBRouter__SwapOverflows", type: "error" }, { inputs: [ { internalType: "uint256", name: "excess", type: "uint256" } ], name: "LBRouter__TooMuchTokensIn", type: "error" }, { inputs: [ { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "uint256", name: "reserve", type: "uint256" } ], name: "LBRouter__WrongAmounts", type: "error" }, { inputs: [ { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "msgValue", type: "uint256" } ], name: "LBRouter__WrongNativeLiquidityParameters", type: "error" }, { inputs: [ ], name: "LBRouter__WrongTokenOrder", type: "error" }, { inputs: [ ], name: "PackedUint128Math__SubUnderflow", type: "error" }, { inputs: [ ], name: "TokenHelper__TransferFailed", type: "error" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "address", name: "refundTo", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "liquidityParameters", type: "tuple" } ], name: "addLiquidity", outputs: [ { internalType: "uint256", name: "amountXAdded", type: "uint256" }, { internalType: "uint256", name: "amountYAdded", type: "uint256" }, { internalType: "uint256", name: "amountXLeft", type: "uint256" }, { internalType: "uint256", name: "amountYLeft", type: "uint256" }, { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" }, { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256", name: "activeIdDesired", type: "uint256" }, { internalType: "uint256", name: "idSlippage", type: "uint256" }, { internalType: "int256[]", name: "deltaIds", type: "int256[]" }, { internalType: "uint256[]", name: "distributionX", type: "uint256[]" }, { internalType: "uint256[]", name: "distributionY", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "address", name: "refundTo", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], internalType: "struct ILBRouter.LiquidityParameters", name: "liquidityParameters", type: "tuple" } ], name: "addLiquidityNATIVE", outputs: [ { internalType: "uint256", name: "amountXAdded", type: "uint256" }, { internalType: "uint256", name: "amountYAdded", type: "uint256" }, { internalType: "uint256", name: "amountXLeft", type: "uint256" }, { internalType: "uint256", name: "amountYLeft", type: "uint256" }, { internalType: "uint256[]", name: "depositIds", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint24", name: "activeId", type: "uint24" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getFactory", outputs: [ { internalType: "contract ILBFactory", name: "lbFactory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV2_1", outputs: [ { internalType: "contract ILBFactory", name: "lbFactory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint256", name: "price", type: "uint256" } ], name: "getIdFromPrice", outputs: [ { internalType: "uint24", name: "", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyFactory", outputs: [ { internalType: "contract ILBLegacyFactory", name: "legacyLBfactory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyRouter", outputs: [ { internalType: "contract ILBLegacyRouter", name: "legacyRouter", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint24", name: "id", type: "uint24" } ], name: "getPriceFromId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapIn", outputs: [ { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "uint128", name: "amountOutLeft", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapOut", outputs: [ { internalType: "uint128", name: "amountInLeft", type: "uint128" }, { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getV1Factory", outputs: [ { internalType: "contract IJoeFactory", name: "factoryV1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getWNATIVE", outputs: [ { internalType: "contract IWNATIVE", name: "wnative", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint256", name: "amountXMin", type: "uint256" }, { internalType: "uint256", name: "amountYMin", type: "uint256" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "removeLiquidity", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint256", name: "amountTokenMin", type: "uint256" }, { internalType: "uint256", name: "amountNATIVEMin", type: "uint256" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "removeLiquidityNATIVE", outputs: [ { internalType: "uint256", name: "amountToken", type: "uint256" }, { internalType: "uint256", name: "amountNATIVE", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactNATIVEForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactNATIVEForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMinNATIVE", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForNATIVE", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMinNATIVE", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForNATIVESupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountIn", type: "uint256" }, { internalType: "uint256", name: "amountOutMin", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapExactTokensForTokensSupportingFeeOnTransferTokens", outputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapNATIVEForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountNATIVEOut", type: "uint256" }, { internalType: "uint256", name: "amountInMax", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address payable", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapTokensForExactNATIVE", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountOut", type: "uint256" }, { internalType: "uint256", name: "amountInMax", type: "uint256" }, { components: [ { internalType: "uint256[]", name: "pairBinSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "contract IERC20[]", name: "tokenPath", type: "address[]" } ], internalType: "struct ILBRouter.Path", name: "path", type: "tuple" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "deadline", type: "uint256" } ], name: "swapTokensForExactTokens", outputs: [ { internalType: "uint256[]", name: "amountsIn", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "sweep", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBToken", name: "lbToken", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" } ], name: "sweepLBToken", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var DexLens = [ { inputs: [ { internalType: "contract ILBFactory", name: "lbFactory", type: "address" }, { internalType: "contract ILBLegacyFactory", name: "lbLegacyFactory", type: "address" }, { internalType: "contract IJoeFactory", name: "joeFactory", type: "address" }, { internalType: "address", name: "wnative", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "JoeDexLens__AlreadyInitialized", type: "error" }, { inputs: [ { internalType: "address", name: "pair", type: "address" }, { internalType: "address", name: "collateral", type: "address" } ], name: "JoeDexLens__CollateralNotInPair", type: "error" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "dataFeed", type: "address" } ], name: "JoeDexLens__DataFeedAlreadyAdded", type: "error" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "dataFeed", type: "address" } ], name: "JoeDexLens__DataFeedNotInSet", type: "error" }, { inputs: [ ], name: "JoeDexLens__InvalidChainLinkPrice", type: "error" }, { inputs: [ ], name: "JoeDexLens__InvalidDataFeed", type: "error" }, { inputs: [ ], name: "JoeDexLens__LengthsMismatch", type: "error" }, { inputs: [ ], name: "JoeDexLens__NativeToken", type: "error" }, { inputs: [ ], name: "JoeDexLens__NullWeight", type: "error" }, { inputs: [ ], name: "JoeDexLens__SameDataFeed", type: "error" }, { inputs: [ ], name: "JoeDexLens__SameTokens", type: "error" }, { inputs: [ { internalType: "address", name: "pair", type: "address" }, { internalType: "address", name: "token", type: "address" } ], name: "JoeDexLens__TokenNotInPair", type: "error" }, { inputs: [ ], name: "JoeDexLens__UnknownDataFeedType", type: "error" }, { inputs: [ ], name: "JoeDexLens__V1ContractNotSet", type: "error" }, { inputs: [ ], name: "JoeDexLens__V2ContractNotSet", type: "error" }, { inputs: [ ], name: "JoeDexLens__V2_1ContractNotSet", type: "error" }, { inputs: [ ], name: "JoeDexLens__ZeroAddress", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControlEnumerable__AccountAlreadyHasRole", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControlEnumerable__AccountDoesNotHaveRole", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControlEnumerable__OnlyOwnerOrRole", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControlEnumerable__OnlyRole", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControlEnumerable__RoleAlreadyGranted", type: "error" }, { inputs: [ ], name: "SafeOwnable__OnlyOwner", type: "error" }, { inputs: [ ], name: "SafeOwnable__OnlyPendingOwner", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulShiftOverflow", type: "error" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token", type: "address" }, { components: [ { internalType: "address", name: "collateralAddress", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" }, { internalType: "uint88", name: "dfWeight", type: "uint88" }, { internalType: "enum IJoeDexLens.DataFeedType", name: "dfType", type: "uint8" } ], indexed: false, internalType: "struct IJoeDexLens.DataFeed", name: "dataFeed", type: "tuple" } ], name: "DataFeedAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "address", name: "dfAddress", type: "address" } ], name: "DataFeedRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "address", name: "dfAddress", type: "address" }, { indexed: false, internalType: "uint256", name: "weight", type: "uint256" } ], name: "DataFeedsWeightSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "dfAddress", type: "address" } ], name: "NativeDataFeedSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "owner", type: "address" }, { indexed: true, internalType: "address", name: "pendingOwner", type: "address" } ], name: "PendingOwnerSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "bytes32", name: "adminRole", type: "bytes32" } ], name: "RoleAdminSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" } ], name: "RoleGranted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" } ], name: "RoleRevoked", type: "event" }, { inputs: [ ], name: "DATA_FEED_MANAGER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { components: [ { internalType: "address", name: "collateralAddress", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" }, { internalType: "uint88", name: "dfWeight", type: "uint88" }, { internalType: "enum IJoeDexLens.DataFeedType", name: "dfType", type: "uint8" } ], internalType: "struct IJoeDexLens.DataFeed", name: "dataFeed", type: "tuple" } ], name: "addDataFeed", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address[]", name: "tokens", type: "address[]" }, { components: [ { internalType: "address", name: "collateralAddress", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" }, { internalType: "uint88", name: "dfWeight", type: "uint88" }, { internalType: "enum IJoeDexLens.DataFeedType", name: "dfType", type: "uint8" } ], internalType: "struct IJoeDexLens.DataFeed[]", name: "dataFeeds", type: "tuple[]" } ], name: "addDataFeeds", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "becomeOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" } ], name: "getDataFeeds", outputs: [ { components: [ { internalType: "address", name: "collateralAddress", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" }, { internalType: "uint88", name: "dfWeight", type: "uint88" }, { internalType: "enum IJoeDexLens.DataFeedType", name: "dfType", type: "uint8" } ], internalType: "struct IJoeDexLens.DataFeed[]", name: "dataFeeds", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV1", outputs: [ { internalType: "contract IJoeFactory", name: "factoryV1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV2_1", outputs: [ { internalType: "contract ILBFactory", name: "factoryV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyFactoryV2", outputs: [ { internalType: "contract ILBLegacyFactory", name: "legacyFactoryV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "uint256", name: "index", type: "uint256" } ], name: "getRoleMemberAt", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "getRoleMemberCount", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" } ], name: "getTokenPriceNative", outputs: [ { internalType: "uint256", name: "price", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" } ], name: "getTokenPriceUSD", outputs: [ { internalType: "uint256", name: "price", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "tokens", type: "address[]" } ], name: "getTokensPricesNative", outputs: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "tokens", type: "address[]" } ], name: "getTokensPricesUSD", outputs: [ { internalType: "uint256[]", name: "prices", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getWNative", outputs: [ { internalType: "address", name: "wNative", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "grantRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "aggregator", type: "address" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" } ], name: "removeDataFeed", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address[]", name: "tokens", type: "address[]" }, { internalType: "address[]", name: "dfAddresses", type: "address[]" } ], name: "removeDataFeeds", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "renounceRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "revokeRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "token", type: "address" }, { internalType: "address", name: "dfAddress", type: "address" }, { internalType: "uint88", name: "newWeight", type: "uint88" } ], name: "setDataFeedWeight", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address[]", name: "tokens", type: "address[]" }, { internalType: "address[]", name: "dfAddresses", type: "address[]" }, { internalType: "uint88[]", name: "newWeights", type: "uint88[]" } ], name: "setDataFeedsWeights", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "aggregator", type: "address" } ], name: "setNativeDataFeed", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "setPendingOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var LBQuoter = [ { inputs: [ { internalType: "address", name: "_routerV2", type: "address" }, { internalType: "address", name: "_factoryV1", type: "address" }, { internalType: "address", name: "_factoryV2", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "uint256", name: "bp", type: "uint256" } ], name: "BinHelper__BinStepOverflows", type: "error" }, { inputs: [ ], name: "BinHelper__IdOverflows", type: "error" }, { inputs: [ ], name: "JoeLibrary__AddressZero", type: "error" }, { inputs: [ ], name: "JoeLibrary__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientAmount", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientLiquidity", type: "error" }, { inputs: [ ], name: "LBQuoter_InvalidLength", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Math128x128__PowerUnderflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "denominator", type: "uint256" } ], name: "Math512Bits__MulDivOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "prod1", type: "uint256" }, { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "offset", type: "uint256" } ], name: "Math512Bits__OffsetOverflows", type: "error" }, { inputs: [ ], name: "factoryV1", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "factoryV2", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "_route", type: "address[]" }, { internalType: "uint256", name: "_amountIn", type: "uint256" } ], name: "findBestPathFromAmountIn", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "uint256[]", name: "virtualAmountsWithoutSlippage", type: "uint256[]" }, { internalType: "uint256[]", name: "fees", type: "uint256[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "_route", type: "address[]" }, { internalType: "uint256", name: "_amountOut", type: "uint256" } ], name: "findBestPathFromAmountOut", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" }, { internalType: "uint256[]", name: "virtualAmountsWithoutSlippage", type: "uint256[]" }, { internalType: "uint256[]", name: "fees", type: "uint256[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "routerV2", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" } ]; var LBQuoterV21 = [ { inputs: [ { internalType: "address", name: "factoryV1", type: "address" }, { internalType: "address", name: "legacyFactoryV2", type: "address" }, { internalType: "address", name: "factoryV2", type: "address" }, { internalType: "address", name: "legacyRouterV2", type: "address" }, { internalType: "address", name: "routerV2", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "JoeLibrary__AddressZero", type: "error" }, { inputs: [ ], name: "JoeLibrary__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientAmount", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientLiquidity", type: "error" }, { inputs: [ ], name: "LBQuoter_InvalidLength", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "uint128", name: "amountIn", type: "uint128" } ], name: "findBestPathFromAmountIn", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "uint128[]", name: "amounts", type: "uint128[]" }, { internalType: "uint128[]", name: "virtualAmountsWithoutSlippage", type: "uint128[]" }, { internalType: "uint128[]", name: "fees", type: "uint128[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "uint128", name: "amountOut", type: "uint128" } ], name: "findBestPathFromAmountOut", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "uint128[]", name: "amounts", type: "uint128[]" }, { internalType: "uint128[]", name: "virtualAmountsWithoutSlippage", type: "uint128[]" }, { internalType: "uint128[]", name: "fees", type: "uint128[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV1", outputs: [ { internalType: "address", name: "factoryV1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV2", outputs: [ { internalType: "address", name: "factoryV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyFactoryV2", outputs: [ { internalType: "address", name: "legacyFactoryV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyRouterV2", outputs: [ { internalType: "address", name: "legacyRouterV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getRouterV2", outputs: [ { internalType: "address", name: "routerV2", type: "address" } ], stateMutability: "view", type: "function" } ]; var LBQuoterV22 = [ { inputs: [ { internalType: "address", name: "factoryV1", type: "address" }, { internalType: "address", name: "legacyFactoryV2", type: "address" }, { internalType: "address", name: "factoryV2_1", type: "address" }, { internalType: "address", name: "factoryV2_2", type: "address" }, { internalType: "address", name: "legacyRouterV2", type: "address" }, { internalType: "address", name: "routerV2_1", type: "address" }, { internalType: "address", name: "routerV2_2", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "JoeLibrary__AddressZero", type: "error" }, { inputs: [ ], name: "JoeLibrary__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientAmount", type: "error" }, { inputs: [ ], name: "JoeLibrary__InsufficientLiquidity", type: "error" }, { inputs: [ ], name: "LBQuoter_InvalidLength", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "uint128", name: "amountIn", type: "uint128" } ], name: "findBestPathFromAmountIn", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "uint128[]", name: "amounts", type: "uint128[]" }, { internalType: "uint128[]", name: "virtualAmountsWithoutSlippage", type: "uint128[]" }, { internalType: "uint128[]", name: "fees", type: "uint128[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "uint128", name: "amountOut", type: "uint128" } ], name: "findBestPathFromAmountOut", outputs: [ { components: [ { internalType: "address[]", name: "route", type: "address[]" }, { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "uint256[]", name: "binSteps", type: "uint256[]" }, { internalType: "enum ILBRouter.Version[]", name: "versions", type: "uint8[]" }, { internalType: "uint128[]", name: "amounts", type: "uint128[]" }, { internalType: "uint128[]", name: "virtualAmountsWithoutSlippage", type: "uint128[]" }, { internalType: "uint128[]", name: "fees", type: "uint128[]" } ], internalType: "struct LBQuoter.Quote", name: "quote", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV1", outputs: [ { internalType: "address", name: "factoryV1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV2_1", outputs: [ { internalType: "address", name: "factoryV2_1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactoryV2_2", outputs: [ { internalType: "address", name: "factoryV2_2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyFactoryV2", outputs: [ { internalType: "address", name: "legacyFactoryV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLegacyRouterV2", outputs: [ { internalType: "address", name: "legacyRouterV2", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getRouterV2_1", outputs: [ { internalType: "address", name: "routerV2_1", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getRouterV2_2", outputs: [ { internalType: "address", name: "routerV2_2", type: "address" } ], stateMutability: "view", type: "function" } ]; var LBRewarder = [ { inputs: [ ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "contract IERC20Upgradeable", name: "token", type: "address" } ], name: "Rewarder__AlreadySetForEpoch", type: "error" }, { inputs: [ ], name: "Rewarder__ClawbackDelayNotPassed", type: "error" }, { inputs: [ ], name: "Rewarder__ClawbackDelayTooLow", type: "error" }, { inputs: [ ], name: "Rewarder__EmptyMerkleEntries", type: "error" }, { inputs: [ ], name: "Rewarder__EpochCanceled", type: "error" }, { inputs: [ ], name: "Rewarder__EpochDoesNotExist", type: "error" }, { inputs: [ { internalType: "contract IERC20Upgradeable", name: "token", type: "address" } ], name: "Rewarder__InsufficientBalance", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidAmount", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidEpoch", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidLength", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidProof", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidRoot", type: "error" }, { inputs: [ ], name: "Rewarder__InvalidStart", type: "error" }, { inputs: [ ], name: "Rewarder__MarketAlreadyWhitelisted", type: "error" }, { inputs: [ ], name: "Rewarder__MarketNotWhitelisted", type: "error" }, { inputs: [ ], name: "Rewarder__NativeTransferFailed", type: "error" }, { inputs: [ ], name: "Rewarder__OnlyClaimForSelf", type: "error" }, { inputs: [ ], name: "Rewarder__OnlyValidLatestEpoch", type: "error" }, { inputs: [ ], name: "Rewarder__OverlappingEpoch", type: "error" }, { inputs: [ ], name: "Rewarder__ZeroAddress", type: "error" }, { inputs: [ ], name: "SafeAccessControl__DefaultAdminRoleBoundToOwner", type: "error" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "SafeAccessControl__OnlyOwnerOrRole", type: "error" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint96", name: "newClawbackDelay", type: "uint96" } ], name: "ClawbackDelayUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "newClawbackRecipient", type: "address" } ], name: "ClawbackRecipientUpdated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "market", type: "address" }, { indexed: false, internalType: "uint256", name: "epoch", type: "uint256" }, { indexed: false, internalType: "uint128", name: "start", type: "uint128" }, { indexed: false, internalType: "uint128", name: "duration", type: "uint128" }, { indexed: false, internalType: "bytes32", name: "root", type: "bytes32" } ], name: "EpochAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "market", type: "address" }, { indexed: false, internalType: "uint256", name: "epoch", type: "uint256" } ], name: "EpochCanceled", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8" } ], name: "Initialized", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "market", type: "address" } ], name: "MarketAddedToWhitelist", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "market", type: "address" } ], name: "MarketRemovedFromWhitelist", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address" } ], name: "Paused", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "address", name: "market", type: "address" }, { indexed: true, internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { indexed: false, internalType: "uint256", name: "epoch", type: "uint256" }, { indexed: false, internalType: "uint256", name: "released", type: "uint256" }, { indexed: false, internalType: "uint256", name: "unreleased", type: "uint256" } ], name: "RewardClaimed", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "address", name: "market", type: "address" }, { indexed: true, internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { indexed: false, internalType: "uint256", name: "epoch", type: "uint256" }, { indexed: false, internalType: "uint256", name: "clawbackAmount", type: "uint256" }, { indexed: false, internalType: "address", name: "recipient", type: "address" }, { indexed: false, internalType: "address", name: "sender", type: "address" } ], name: "RewardClawedBack", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32" }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32" } ], name: "RoleAdminChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" } ], name: "RoleGranted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" } ], name: "RoleRevoked", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "account", type: "address" } ], name: "Unpaused", type: "event" }, { inputs: [ ], name: "CLAWBACK_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "PAUSER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "UNPAUSER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "acceptOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" } ], name: "addMarketToWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], internalType: "struct IRewarder.MerkleEntry[]", name: "merkleEntries", type: "tuple[]" } ], name: "batchClaim", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], internalType: "struct IRewarder.MerkleEntry[]", name: "merkleEntries", type: "tuple[]" } ], name: "batchClawback", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" } ], name: "cancelEpoch", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], name: "claim", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], name: "clawback", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], internalType: "struct IRewarder.MerkleEntry[]", name: "merkleEntries", type: "tuple[]" } ], name: "getBatchReleasableAmounts", outputs: [ { internalType: "uint256[]", name: "releasableAmounts", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getClawbackParameters", outputs: [ { internalType: "address", name: "clawbackRecipient", type: "address" }, { internalType: "uint96", name: "clawbackDelay", type: "uint96" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" } ], name: "getEpochParameters", outputs: [ { components: [ { internalType: "bytes32", name: "root", type: "bytes32" }, { internalType: "uint128", name: "start", type: "uint128" }, { internalType: "uint128", name: "duration", type: "uint128" } ], internalType: "struct IRewarder.EpochParameters", name: "params", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" } ], name: "getNumberOfEpochs", outputs: [ { internalType: "uint256", name: "epochs", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getNumberOfWhitelistedMarkets", outputs: [ { internalType: "uint256", name: "count", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], name: "getReleasableAmount", outputs: [ { internalType: "uint256", name: "releasable", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" } ], name: "getReleased", outputs: [ { internalType: "uint256", name: "released", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "getWhitelistedMarket", outputs: [ { internalType: "address", name: "market", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "grantRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint96", name: "clawbackDelay", type: "uint96" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" } ], name: "isMarketWhitelisted", outputs: [ { internalType: "bool", name: "isWhitelisted", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pause", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "paused", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" } ], name: "removeMarketFromWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "renounceRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "revokeRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint96", name: "newClawbackDelay", type: "uint96" } ], name: "setClawbackDelay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newRecipient", type: "address" } ], name: "setClawbackRecipient", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "uint128", name: "start", type: "uint128" }, { internalType: "uint128", name: "duration", type: "uint128" }, { internalType: "contract IERC20Upgradeable[]", name: "tokens", type: "address[]" }, { internalType: "uint256[]", name: "totalAmountToRelease", type: "uint256[]" }, { internalType: "bytes32", name: "root", type: "bytes32" } ], name: "setNewEpoch", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4" } ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "transferOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "unpause", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "market", type: "address" }, { internalType: "uint256", name: "epoch", type: "uint256" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "bytes32[]", name: "merkleProof", type: "bytes32[]" } ], name: "verify", outputs: [ { internalType: "bool", name: "isValid", type: "bool" } ], stateMutability: "view", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var Vault = [ { inputs: [ { internalType: "contract IVaultFactory", name: "factory", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "BaseVault__AlreadyWhitelisted", type: "error" }, { inputs: [ ], name: "BaseVault__BurnMinShares", type: "error" }, { inputs: [ ], name: "BaseVault__DepositsPaused", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidNativeAmount", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidRecipient", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidRound", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidShares", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidStrategy", type: "error" }, { inputs: [ ], name: "BaseVault__InvalidToken", type: "error" }, { inputs: [ ], name: "BaseVault__MaxSharesExceeded", type: "error" }, { inputs: [ ], name: "BaseVault__NativeTransferFailed", type: "error" }, { inputs: [ ], name: "BaseVault__NoNativeToken", type: "error" }, { inputs: [ ], name: "BaseVault__NoQueuedWithdrawal", type: "error" }, { inputs: [ ], name: "BaseVault__NotInEmergencyMode", type: "error" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "BaseVault__NotWhitelisted", type: "error" }, { inputs: [ ], name: "BaseVault__OnlyFactory", type: "error" }, { inputs: [ ], name: "BaseVault__OnlyStrategy", type: "error" }, { inputs: [ ], name: "BaseVault__OnlyWNative", type: "error" }, { inputs: [ ], name: "BaseVault__SameStrategy", type: "error" }, { inputs: [ ], name: "BaseVault__SameWhitelistState", type: "error" }, { inputs: [ ], name: "BaseVault__Unauthorized", type: "error" }, { inputs: [ ], name: "BaseVault__ZeroAmount", type: "error" }, { inputs: [ ], name: "BaseVault__ZeroShares", type: "error" }, { inputs: [ ], name: "SimpleVault__AmountsOverflow", type: "error" }, { inputs: [ ], name: "SimpleVault__ZeroCross", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { anonymous: false, inputs: [ { 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: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256" } ], name: "Deposited", type: "event" }, { anonymous: false, inputs: [ ], name: "DepositsPaused", type: "event" }, { anonymous: false, inputs: [ ], name: "DepositsResumed", type: "event" }, { anonymous: false, inputs: [ ], name: "EmergencyMode", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "EmergencyWithdrawal", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8" } ], name: "Initialized", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "token", type: "address" }, { indexed: false, internalType: "address", name: "recipient", type: "address" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" } ], name: "Recovered", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "contract IStrategy", name: "strategy", type: "address" } ], name: "StrategySet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "from", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256", name: "value", type: "uint256" } ], name: "Transfer", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address[]", name: "addresses", type: "address[]" } ], name: "WhitelistAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address[]", name: "addresses", type: "address[]" } ], name: "WhitelistRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "bool", name: "state", type: "bool" } ], name: "WhitelistStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "round", type: "uint256" }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256" } ], name: "WithdrawalCancelled", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "round", type: "uint256" }, { indexed: false, internalType: "uint256", name: "totalQueuedQhares", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "WithdrawalExecuted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "uint256", name: "round", type: "uint256" }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256" } ], name: "WithdrawalQueued", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "recipient", type: "address" }, { indexed: true, internalType: "uint256", name: "round", type: "uint256" }, { indexed: false, internalType: "uint256", name: "shares", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "WithdrawalRedeemed", type: "event" }, { stateMutability: "payable", type: "fallback" }, { inputs: [ { internalType: "address[]", name: "addresses", type: "address[]" } ], name: "addToWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "spender", type: "address" } ], name: "allowance", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "approve", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "account", type: "address" } ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "shares", type: "uint256" } ], name: "cancelQueuedWithdrawal", outputs: [ { internalType: "uint256", name: "round", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "decimals", outputs: [ { internalType: "uint8", name: "", type: "uint8" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "subtractedValue", type: "uint256" } ], name: "decreaseAllowance", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "deposit", outputs: [ { internalType: "uint256", name: "shares", type: "uint256" }, { internalType: "uint256", name: "effectiveX", type: "uint256" }, { internalType: "uint256", name: "effectiveY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "depositNative", outputs: [ { internalType: "uint256", name: "shares", type: "uint256" }, { internalType: "uint256", name: "effectiveX", type: "uint256" }, { internalType: "uint256", name: "effectiveY", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ ], name: "emergencyWithdraw", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "executeQueuedWithdrawals", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getAumAnnualFee", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getBalances", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getCurrentRound", outputs: [ { internalType: "uint256", name: "round", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getCurrentTotalQueuedWithdrawal", outputs: [ { internalType: "uint256", name: "totalQueuedShares", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactory", outputs: [ { internalType: "contract IVaultFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getOperators", outputs: [ { internalType: "address", name: "defaultOperator", type: "address" }, { internalType: "address", name: "operator", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getPair", outputs: [ { internalType: "contract ILBPair", name: "", type: "address" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "uint256", name: "round", type: "uint256" }, { internalType: "address", name: "user", type: "address" } ], name: "getQueuedWithdrawal", outputs: [ { internalType: "uint256", name: "shares", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getRange", outputs: [ { internalType: "uint24", name: "low", type: "uint24" }, { internalType: "uint24", name: "upper", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "round", type: "uint256" }, { internalType: "address", name: "user", type: "address" } ], name: "getRedeemableAmounts", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getStrategy", outputs: [ { internalType: "contract IStrategy", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getTokenX", outputs: [ { internalType: "contract IERC20Upgradeable", name: "", type: "address" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getTokenY", outputs: [ { internalType: "contract IERC20Upgradeable", name: "", type: "address" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "uint256", name: "round", type: "uint256" } ], name: "getTotalQueuedWithdrawal", outputs: [ { internalType: "uint256", name: "totalQueuedShares", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "spender", type: "address" }, { internalType: "uint256", name: "addedValue", type: "uint256" } ], name: "increaseAllowance", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "string", name: "name", type: "string" }, { internalType: "string", name: "symbol", type: "string" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "isDepositsPaused", outputs: [ { internalType: "bool", name: "paused", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "isWhitelisted", outputs: [ { internalType: "bool", name: "whitelisted", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "isWhitelistedOnly", outputs: [ { internalType: "bool", name: "whitelist", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "name", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pauseDeposits", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "shares", type: "uint256" } ], name: "previewAmounts", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], name: "previewShares", outputs: [ { internalType: "uint256", name: "shares", type: "uint256" }, { internalType: "uint256", name: "effectiveX", type: "uint256" }, { internalType: "uint256", name: "effectiveY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "shares", type: "uint256" }, { internalType: "address", name: "recipient", type: "address" } ], name: "queueWithdrawal", outputs: [ { internalType: "uint256", name: "round", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "recoverERC20", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "round", type: "uint256" }, { internalType: "address", name: "recipient", type: "address" } ], name: "redeemQueuedWithdrawal", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "round", type: "uint256" }, { internalType: "address", name: "recipient", type: "address" } ], name: "redeemQueuedWithdrawalNative", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address[]", name: "addresses", type: "address[]" } ], name: "removeFromWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "resumeDeposits", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "setEmergencyMode", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IStrategy", name: "newStrategy", type: "address" } ], name: "setStrategy", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bool", name: "state", type: "bool" } ], name: "setWhitelistState", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "symbol", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "transfer", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "transferFrom", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "nonpayable", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var VaultFactory = [ { inputs: [ { internalType: "address", name: "wnative", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "VaultFactory__InvalidDecimals", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidFeeRecipient", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidLength", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidOraclePrice", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidOwner", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidStrategy", type: "error" }, { inputs: [ ], name: "VaultFactory__InvalidType", type: "error" }, { inputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" } ], name: "VaultFactory__StrategyImplementationNotSet", type: "error" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" } ], name: "VaultFactory__VaultImplementationNotSet", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "defaultOperator", type: "address" } ], name: "DefaultOperatorSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "feeRecipient", type: "address" } ], name: "FeeRecipientSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint8", name: "version", type: "uint8" } ], name: "Initialized", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" }, { indexed: true, internalType: "address", name: "strategy", type: "address" }, { indexed: true, internalType: "address", name: "vault", type: "address" }, { indexed: false, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: false, internalType: "uint256", name: "strategyIndex", type: "uint256" } ], name: "StrategyCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" }, { indexed: true, internalType: "address", name: "strategyImplementation", type: "address" } ], name: "StrategyImplementationSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" }, { indexed: true, internalType: "address", name: "vault", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: false, internalType: "uint256", name: "vaultIndex", type: "uint256" }, { indexed: false, internalType: "address", name: "tokenX", type: "address" }, { indexed: false, internalType: "address", name: "tokenY", type: "address" } ], name: "VaultCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" }, { indexed: true, internalType: "address", name: "vaultImplementation", type: "address" } ], name: "VaultImplementationSet", type: "event" }, { inputs: [ ], name: "acceptOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "address[]", name: "addresses", type: "address[]" } ], name: "addToWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address[]", name: "vaults", type: "address[]" }, { internalType: "uint256[]", name: "rounds", type: "uint256[]" }, { internalType: "bool[]", name: "withdrawNative", type: "bool[]" } ], name: "batchRedeemQueuedWithdrawals", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" } ], name: "createDefaultStrategy", outputs: [ { internalType: "address", name: "strategy", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "contract IAggregatorV3", name: "dataFeedX", type: "address" }, { internalType: "contract IAggregatorV3", name: "dataFeedY", type: "address" } ], name: "createOracleVault", outputs: [ { internalType: "address", name: "vault", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "contract IAggregatorV3", name: "dataFeedX", type: "address" }, { internalType: "contract IAggregatorV3", name: "dataFeedY", type: "address" } ], name: "createOracleVaultAndDefaultStrategy", outputs: [ { internalType: "address", name: "vault", type: "address" }, { internalType: "address", name: "strategy", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" } ], name: "createSimpleVault", outputs: [ { internalType: "address", name: "vault", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" } ], name: "createSimpleVaultAndDefaultStrategy", outputs: [ { internalType: "address", name: "vault", type: "address" }, { internalType: "address", name: "strategy", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getDefaultOperator", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFeeRecipient", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" } ], name: "getNumberOfStrategies", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" } ], name: "getNumberOfVaults", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" }, { internalType: "uint256", name: "index", type: "uint256" } ], name: "getStrategyAt", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" } ], name: "getStrategyImplementation", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "strategy", type: "address" } ], name: "getStrategyType", outputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "", type: "uint8" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" }, { internalType: "uint256", name: "index", type: "uint256" } ], name: "getVaultAt", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" } ], name: "getVaultImplementation", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "vault", type: "address" } ], name: "getVaultType", outputs: [ { internalType: "enum IVaultFactory.VaultType", name: "", type: "uint8" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getWNative", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "owner", type: "address" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "address", name: "strategy", type: "address" } ], name: "linkVaultToStrategy", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" } ], name: "pauseDeposits", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "contract IERC20Upgradeable", name: "token", type: "address" }, { internalType: "address", name: "recipient", type: "address" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "recoverERC20", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "address[]", name: "addresses", type: "address[]" } ], name: "removeFromWhitelist", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" } ], name: "resetPendingAumAnnualFee", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" } ], name: "resumeDeposits", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "defaultOperator", type: "address" } ], name: "setDefaultOperator", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" } ], name: "setEmergencyMode", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "setFeeRecipient", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "address", name: "operator", type: "address" } ], name: "setOperator", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "uint16", name: "pendingAumAnnualFee", type: "uint16" } ], name: "setPendingAumAnnualFee", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.StrategyType", name: "sType", type: "uint8" }, { internalType: "address", name: "strategyImplementation", type: "address" } ], name: "setStrategyImplementation", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vType", type: "uint8" }, { internalType: "address", name: "vaultImplementation", type: "address" } ], name: "setVaultImplementation", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "bool", name: "isWhitelisted", type: "bool" } ], name: "setWhitelistState", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "transferOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var LBFactoryV21 = [ { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" }, { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "LBFactory__AddressZero", type: "error" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__BinStepHasNoPreset", type: "error" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__BinStepTooLow", type: "error" }, { inputs: [ { internalType: "uint256", name: "fees", type: "uint256" }, { internalType: "uint256", name: "maxFees", type: "uint256" } ], name: "LBFactory__FlashLoanFeeAboveMax", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" } ], name: "LBFactory__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "LBFactory__ImplementationNotSet", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "_binStep", type: "uint256" } ], name: "LBFactory__LBPairAlreadyExists", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__LBPairDoesNotExist", type: "error" }, { inputs: [ ], name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__LBPairNotCreated", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__LBPairSafetyCheckFailed", type: "error" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__PresetIsLockedForUsers", type: "error" }, { inputs: [ ], name: "LBFactory__PresetOpenStateIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetAlreadyWhitelisted", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetNotWhitelisted", type: "error" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "LBFactory__SameFeeRecipient", type: "error" }, { inputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], name: "LBFactory__SameFlashLoanFee", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__SameImplementation", type: "error" }, { inputs: [ ], name: "PairParametersHelper__InvalidParameter", type: "error" }, { inputs: [ ], name: "PendingOwnable__AddressZero", type: "error" }, { inputs: [ ], name: "PendingOwnable__NoPendingOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__NotOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__NotPendingOwner", type: "error" }, { inputs: [ ], name: "PendingOwnable__PendingOwnerAlreadySet", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds16Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldRecipient", type: "address" }, { indexed: false, internalType: "address", name: "newRecipient", type: "address" } ], name: "FeeRecipientSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldFlashLoanFee", type: "uint256" }, { indexed: false, internalType: "uint256", name: "newFlashLoanFee", type: "uint256" } ], name: "FlashLoanFeeSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "tokenX", type: "address" }, { indexed: true, internalType: "contract IERC20", name: "tokenY", type: "address" }, { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "uint256", name: "pid", type: "uint256" } ], name: "LBPairCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "bool", name: "ignored", type: "bool" } ], name: "LBPairIgnoredStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldLBPairImplementation", type: "address" }, { indexed: false, internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBPairImplementationSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "pendingOwner", type: "address" } ], name: "PendingOwnerSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: true, internalType: "bool", name: "isOpen", type: "bool" } ], name: "PresetOpenStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" } ], name: "PresetRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "uint256", name: "baseFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "filterPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "decayPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "reductionFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { indexed: false, internalType: "uint256", name: "protocolShare", type: "uint256" }, { indexed: false, internalType: "uint256", name: "maxVolatilityAccumulator", type: "uint256" } ], name: "PresetSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetRemoved", type: "event" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "addQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "becomeOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint24", name: "activeId", type: "uint24" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], name: "forceDecay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getAllBinSteps", outputs: [ { internalType: "uint256[]", name: "binStepWithPreset", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" } ], name: "getAllLBPairs", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation[]", name: "lbPairsAvailable", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFeeRecipient", outputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFlashLoanFee", outputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "getLBPairAtIndex", outputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLBPairImplementation", outputs: [ { internalType: "address", name: "lbPairImplementation", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenA", type: "address" }, { internalType: "contract IERC20", name: "tokenB", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "getLBPairInformation", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation", name: "lbPairInformation", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getMaxFlashLoanFee", outputs: [ { internalType: "uint256", name: "maxFee", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getMinBinStep", outputs: [ { internalType: "uint256", name: "minBinStep", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getNumberOfLBPairs", outputs: [ { internalType: "uint256", name: "lbPairNumber", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getNumberOfQuoteAssets", outputs: [ { internalType: "uint256", name: "numberOfQuoteAssets", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getOpenBinSteps", outputs: [ { internalType: "uint256[]", name: "openBinStep", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "getPreset", outputs: [ { internalType: "uint256", name: "baseFactor", type: "uint256" }, { internalType: "uint256", name: "filterPeriod", type: "uint256" }, { internalType: "uint256", name: "decayPeriod", type: "uint256" }, { internalType: "uint256", name: "reductionFactor", type: "uint256" }, { internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { internalType: "uint256", name: "protocolShare", type: "uint256" }, { internalType: "uint256", name: "maxVolatilityAccumulator", type: "uint256" }, { internalType: "bool", name: "isOpen", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "getQuoteAssetAtIndex", outputs: [ { internalType: "contract IERC20", name: "asset", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" } ], name: "isQuoteAsset", outputs: [ { internalType: "bool", name: "isQuote", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "removePreset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "removeQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "revokePendingOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "setFeeRecipient", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" } ], name: "setFeesParametersOnPair", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], name: "setFlashLoanFee", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "bool", name: "ignored", type: "bool" } ], name: "setLBPairIgnored", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newLBPairImplementation", type: "address" } ], name: "setLBPairImplementation", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "pendingOwner_", type: "address" } ], name: "setPendingOwner", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" }, { internalType: "bool", name: "isOpen", type: "bool" } ], name: "setPreset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "bool", name: "isOpen", type: "bool" } ], name: "setPresetOpenState", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var LBFactoryV22 = [ { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" }, { internalType: "address", name: "initialOwner", type: "address" }, { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "AccessControlBadConfirmation", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "bytes32", name: "neededRole", type: "bytes32" } ], name: "AccessControlUnauthorizedAccount", type: "error" }, { inputs: [ { internalType: "bytes32", name: "key", type: "bytes32" } ], name: "EnumerableMapNonexistentKey", type: "error" }, { inputs: [ ], name: "LBFactory__AddressZero", type: "error" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__BinStepHasNoPreset", type: "error" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__BinStepTooLow", type: "error" }, { inputs: [ ], name: "LBFactory__CannotGrantDefaultAdminRole", type: "error" }, { inputs: [ { internalType: "uint256", name: "fees", type: "uint256" }, { internalType: "uint256", name: "maxFees", type: "uint256" } ], name: "LBFactory__FlashLoanFeeAboveMax", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" } ], name: "LBFactory__IdenticalAddresses", type: "error" }, { inputs: [ ], name: "LBFactory__ImplementationNotSet", type: "error" }, { inputs: [ ], name: "LBFactory__InvalidHooksParameters", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "_binStep", type: "uint256" } ], name: "LBFactory__LBPairAlreadyExists", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__LBPairDoesNotExist", type: "error" }, { inputs: [ ], name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__LBPairNotCreated", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__LBPairSafetyCheckFailed", type: "error" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "LBFactory__PresetIsLockedForUsers", type: "error" }, { inputs: [ ], name: "LBFactory__PresetOpenStateIsAlreadyInTheSameState", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetAlreadyWhitelisted", type: "error" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "LBFactory__QuoteAssetNotWhitelisted", type: "error" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "LBFactory__SameFeeRecipient", type: "error" }, { inputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], name: "LBFactory__SameFlashLoanFee", type: "error" }, { inputs: [ { internalType: "address", name: "hooksImplementation", type: "address" } ], name: "LBFactory__SameHooksImplementation", type: "error" }, { inputs: [ { internalType: "bytes32", name: "hooksParameters", type: "bytes32" } ], name: "LBFactory__SameHooksParameters", type: "error" }, { inputs: [ { internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBFactory__SameImplementation", type: "error" }, { inputs: [ { internalType: "address", name: "owner", type: "address" } ], name: "OwnableInvalidOwner", type: "error" }, { inputs: [ { internalType: "address", name: "account", type: "address" } ], name: "OwnableUnauthorizedAccount", type: "error" }, { inputs: [ ], name: "PairParametersHelper__InvalidParameter", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds16Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldRecipient", type: "address" }, { indexed: false, internalType: "address", name: "newRecipient", type: "address" } ], name: "FeeRecipientSet", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "oldFlashLoanFee", type: "uint256" }, { indexed: false, internalType: "uint256", name: "newFlashLoanFee", type: "uint256" } ], name: "FlashLoanFeeSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "tokenX", type: "address" }, { indexed: true, internalType: "contract IERC20", name: "tokenY", type: "address" }, { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "uint256", name: "pid", type: "uint256" } ], name: "LBPairCreated", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract ILBPair", name: "LBPair", type: "address" }, { indexed: false, internalType: "bool", name: "ignored", type: "bool" } ], name: "LBPairIgnoredStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "oldLBPairImplementation", type: "address" }, { indexed: false, internalType: "address", name: "LBPairImplementation", type: "address" } ], name: "LBPairImplementationSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: true, internalType: "bool", name: "isOpen", type: "bool" } ], name: "PresetOpenStateChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" } ], name: "PresetRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "binStep", type: "uint256" }, { indexed: false, internalType: "uint256", name: "baseFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "filterPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "decayPeriod", type: "uint256" }, { indexed: false, internalType: "uint256", name: "reductionFactor", type: "uint256" }, { indexed: false, internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { indexed: false, internalType: "uint256", name: "protocolShare", type: "uint256" }, { indexed: false, internalType: "uint256", name: "maxVolatilityAccumulator", type: "uint256" } ], name: "PresetSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetAdded", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "QuoteAssetRemoved", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "bytes32", name: "previousAdminRole", type: "bytes32" }, { indexed: true, internalType: "bytes32", name: "newAdminRole", type: "bytes32" } ], name: "RoleAdminChanged", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" } ], name: "RoleGranted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "bytes32", name: "role", type: "bytes32" }, { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" } ], name: "RoleRevoked", type: "event" }, { inputs: [ ], name: "DEFAULT_ADMIN_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "LB_HOOKS_MANAGER_ROLE", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "acceptOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "addQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint24", name: "activeId", type: "uint24" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "createLBPair", outputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" } ], name: "forceDecay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getAllBinSteps", outputs: [ { internalType: "uint256[]", name: "binStepWithPreset", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" } ], name: "getAllLBPairs", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation[]", name: "lbPairsAvailable", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFeeRecipient", outputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFlashLoanFee", outputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "getLBPairAtIndex", outputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getLBPairImplementation", outputs: [ { internalType: "address", name: "lbPairImplementation", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenA", type: "address" }, { internalType: "contract IERC20", name: "tokenB", type: "address" }, { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "getLBPairInformation", outputs: [ { components: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "contract ILBPair", name: "LBPair", type: "address" }, { internalType: "bool", name: "createdByOwner", type: "bool" }, { internalType: "bool", name: "ignoredForRouting", type: "bool" } ], internalType: "struct ILBFactory.LBPairInformation", name: "lbPairInformation", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getMaxFlashLoanFee", outputs: [ { internalType: "uint256", name: "maxFee", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getMinBinStep", outputs: [ { internalType: "uint256", name: "minBinStep", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getNumberOfLBPairs", outputs: [ { internalType: "uint256", name: "lbPairNumber", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getNumberOfQuoteAssets", outputs: [ { internalType: "uint256", name: "numberOfQuoteAssets", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getOpenBinSteps", outputs: [ { internalType: "uint256[]", name: "openBinStep", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "binStep", type: "uint256" } ], name: "getPreset", outputs: [ { internalType: "uint256", name: "baseFactor", type: "uint256" }, { internalType: "uint256", name: "filterPeriod", type: "uint256" }, { internalType: "uint256", name: "decayPeriod", type: "uint256" }, { internalType: "uint256", name: "reductionFactor", type: "uint256" }, { internalType: "uint256", name: "variableFeeControl", type: "uint256" }, { internalType: "uint256", name: "protocolShare", type: "uint256" }, { internalType: "uint256", name: "maxVolatilityAccumulator", type: "uint256" }, { internalType: "bool", name: "isOpen", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "getQuoteAssetAtIndex", outputs: [ { internalType: "contract IERC20", name: "asset", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" } ], name: "getRoleAdmin", outputs: [ { internalType: "bytes32", name: "", type: "bytes32" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "grantRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "hasRole", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" } ], name: "isQuoteAsset", outputs: [ { internalType: "bool", name: "isQuote", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "removeLBHooksOnPair", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "removePreset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "quoteAsset", type: "address" } ], name: "removeQuoteAsset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "callerConfirmation", type: "address" } ], name: "renounceRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes32", name: "role", type: "bytes32" }, { internalType: "address", name: "account", type: "address" } ], name: "revokeRole", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "feeRecipient", type: "address" } ], name: "setFeeRecipient", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" } ], name: "setFeesParametersOnPair", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "flashLoanFee", type: "uint256" } ], name: "setFlashLoanFee", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "bytes32", name: "hooksParameters", type: "bytes32" }, { internalType: "bytes", name: "onHooksSetData", type: "bytes" } ], name: "setLBHooksParametersOnPair", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "bool", name: "ignored", type: "bool" } ], name: "setLBPairIgnored", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newLBPairImplementation", type: "address" } ], name: "setLBPairImplementation", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" }, { internalType: "bool", name: "isOpen", type: "bool" } ], name: "setPreset", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "bool", name: "isOpen", type: "bool" } ], name: "setPresetOpenState", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4" } ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "transferOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var LBPairV21 = [ { inputs: [ { internalType: "contract ILBFactory", name: "factory_", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "AddressHelper__CallFailed", type: "error" }, { inputs: [ ], name: "AddressHelper__NonContract", type: "error" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "BinHelper__CompositionFactorFlawed", type: "error" }, { inputs: [ ], name: "BinHelper__LiquidityOverflow", type: "error" }, { inputs: [ ], name: "FeeHelper__FeeOverflow", type: "error" }, { inputs: [ ], name: "LBPair__AddressZero", type: "error" }, { inputs: [ ], name: "LBPair__AlreadyInitialized", type: "error" }, { inputs: [ ], name: "LBPair__EmptyMarketConfigs", type: "error" }, { inputs: [ ], name: "LBPair__FlashLoanCallbackFailed", type: "error" }, { inputs: [ ], name: "LBPair__FlashLoanInsufficientAmount", type: "error" }, { inputs: [ ], name: "LBPair__InsufficientAmountIn", type: "error" }, { inputs: [ ], name: "LBPair__InsufficientAmountOut", type: "error" }, { inputs: [ ], name: "LBPair__InvalidInput", type: "error" }, { inputs: [ ], name: "LBPair__InvalidStaticFeeParameters", type: "error" }, { inputs: [ ], name: "LBPair__MaxTotalFeeExceeded", type: "error" }, { inputs: [ ], name: "LBPair__OnlyFactory", type: "error" }, { inputs: [ ], name: "LBPair__OnlyProtocolFeeRecipient", type: "error" }, { inputs: [ ], name: "LBPair__OutOfLiquidity", type: "error" }, { inputs: [ ], name: "LBPair__TokenNotSupported", type: "error" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "LBPair__ZeroAmount", type: "error" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "LBPair__ZeroAmountsOut", type: "error" }, { inputs: [ ], name: "LBPair__ZeroBorrowAmount", type: "error" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "LBPair__ZeroShares", type: "error" }, { inputs: [ ], name: "LBToken__AddressThisOrZero", type: "error" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "uint256", name: "id", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBToken__BurnExceedsBalance", type: "error" }, { inputs: [ ], name: "LBToken__InvalidLength", type: "error" }, { inputs: [ { internalType: "address", name: "owner", type: "address" } ], name: "LBToken__SelfApproval", type: "error" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "spender", type: "address" } ], name: "LBToken__SpenderNotApproved", type: "error" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "uint256", name: "id", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "LBToken__TransferExceedsBalance", type: "error" }, { inputs: [ ], name: "LiquidityConfigurations__InvalidConfig", type: "error" }, { inputs: [ ], name: "OracleHelper__InvalidOracleId", type: "error" }, { inputs: [ ], name: "OracleHelper__LookUpTimestampTooOld", type: "error" }, { inputs: [ ], name: "OracleHelper__NewLengthTooSmall", type: "error" }, { inputs: [ ], name: "PackedUint128Math__AddOverflow", type: "error" }, { inputs: [ ], name: "PackedUint128Math__MultiplierTooLarge", type: "error" }, { inputs: [ ], name: "PackedUint128Math__SubUnderflow", type: "error" }, { inputs: [ ], name: "PairParametersHelper__InvalidParameter", type: "error" }, { inputs: [ ], name: "ReentrancyGuard__ReentrantCall", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds40Bits", type: "error" }, { inputs: [ ], name: "TokenHelper__TransferFailed", type: "error" }, { inputs: [ ], name: "Uint128x128Math__LogUnderflow", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulShiftOverflow", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "account", type: "address" }, { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "bool", name: "approved", type: "bool" } ], name: "ApprovalForAll", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "feeRecipient", type: "address" }, { indexed: false, internalType: "bytes32", name: "protocolFees", type: "bytes32" } ], name: "CollectedProtocolFees", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "uint24", name: "id", type: "uint24" }, { indexed: false, internalType: "bytes32", name: "totalFees", type: "bytes32" }, { indexed: false, internalType: "bytes32", name: "protocolFees", type: "bytes32" } ], name: "CompositionFees", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256[]", name: "ids", type: "uint256[]" }, { indexed: false, internalType: "bytes32[]", name: "amounts", type: "bytes32[]" } ], name: "DepositedToBins", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "contract ILBFlashLoanCallback", name: "receiver", type: "address" }, { indexed: false, internalType: "uint24", name: "activeId", type: "uint24" }, { indexed: false, internalType: "bytes32", name: "amounts", type: "bytes32" }, { indexed: false, internalType: "bytes32", name: "totalFees", type: "bytes32" }, { indexed: false, internalType: "bytes32", name: "protocolFees", type: "bytes32" } ], name: "FlashLoan", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "uint24", name: "idReference", type: "uint24" }, { indexed: false, internalType: "uint24", name: "volatilityReference", type: "uint24" } ], name: "ForcedDecay", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "uint16", name: "oracleLength", type: "uint16" } ], name: "OracleLengthIncreased", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: false, internalType: "uint16", name: "baseFactor", type: "uint16" }, { indexed: false, internalType: "uint16", name: "filterPeriod", type: "uint16" }, { indexed: false, internalType: "uint16", name: "decayPeriod", type: "uint16" }, { indexed: false, internalType: "uint16", name: "reductionFactor", type: "uint16" }, { indexed: false, internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { indexed: false, internalType: "uint16", name: "protocolShare", type: "uint16" }, { indexed: false, internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" } ], name: "StaticFeeParametersSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint24", name: "id", type: "uint24" }, { indexed: false, internalType: "bytes32", name: "amountsIn", type: "bytes32" }, { indexed: false, internalType: "bytes32", name: "amountsOut", type: "bytes32" }, { indexed: false, internalType: "uint24", name: "volatilityAccumulator", type: "uint24" }, { indexed: false, internalType: "bytes32", name: "totalFees", type: "bytes32" }, { indexed: false, internalType: "bytes32", name: "protocolFees", type: "bytes32" } ], name: "Swap", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "from", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256[]", name: "ids", type: "uint256[]" }, { indexed: false, internalType: "uint256[]", name: "amounts", type: "uint256[]" } ], name: "TransferBatch", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256[]", name: "ids", type: "uint256[]" }, { indexed: false, internalType: "bytes32[]", name: "amounts", type: "bytes32[]" } ], name: "WithdrawnFromBins", type: "event" }, { inputs: [ { internalType: "address", name: "spender", type: "address" }, { internalType: "bool", name: "approved", type: "bool" } ], name: "approveForAll", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "account", type: "address" }, { internalType: "uint256", name: "id", type: "uint256" } ], name: "balanceOf", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "accounts", type: "address[]" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "balanceOfBatch", outputs: [ { internalType: "uint256[]", name: "batchBalances", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amounts", type: "uint256[]" } ], name: "batchTransferFrom", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "from", type: "address" }, { internalType: "address", name: "to", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsToBurn", type: "uint256[]" } ], name: "burn", outputs: [ { internalType: "bytes32[]", name: "amounts", type: "bytes32[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "collectProtocolFees", outputs: [ { internalType: "bytes32", name: "collectedProtocolFees", type: "bytes32" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract ILBFlashLoanCallback", name: "receiver", type: "address" }, { internalType: "bytes32", name: "amounts", type: "bytes32" }, { internalType: "bytes", name: "data", type: "bytes" } ], name: "flashLoan", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "forceDecay", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "getActiveId", outputs: [ { internalType: "uint24", name: "activeId", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "getBin", outputs: [ { internalType: "uint128", name: "binReserveX", type: "uint128" }, { internalType: "uint128", name: "binReserveY", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getBinStep", outputs: [ { internalType: "uint16", name: "", type: "uint16" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getFactory", outputs: [ { internalType: "contract ILBFactory", name: "factory", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "price", type: "uint256" } ], name: "getIdFromPrice", outputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "bool", name: "swapForY", type: "bool" }, { internalType: "uint24", name: "id", type: "uint24" } ], name: "getNextNonEmptyBin", outputs: [ { internalType: "uint24", name: "nextId", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getOracleParameters", outputs: [ { internalType: "uint8", name: "sampleLifetime", type: "uint8" }, { internalType: "uint16", name: "size", type: "uint16" }, { internalType: "uint16", name: "activeSize", type: "uint16" }, { internalType: "uint40", name: "lastUpdated", type: "uint40" }, { internalType: "uint40", name: "firstTimestamp", type: "uint40" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint40", name: "lookupTimestamp", type: "uint40" } ], name: "getOracleSampleAt", outputs: [ { internalType: "uint64", name: "cumulativeId", type: "uint64" }, { internalType: "uint64", name: "cumulativeVolatility", type: "uint64" }, { internalType: "uint64", name: "cumulativeBinCrossed", type: "uint64" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint24", name: "id", type: "uint24" } ], name: "getPriceFromId", outputs: [ { internalType: "uint256", name: "price", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getProtocolFees", outputs: [ { internalType: "uint128", name: "protocolFeeX", type: "uint128" }, { internalType: "uint128", name: "protocolFeeY", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getReserves", outputs: [ { internalType: "uint128", name: "reserveX", type: "uint128" }, { internalType: "uint128", name: "reserveY", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getStaticFeeParameters", outputs: [ { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapIn", outputs: [ { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "uint128", name: "amountOutLeft", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint128", name: "amountIn", type: "uint128" }, { internalType: "bool", name: "swapForY", type: "bool" } ], name: "getSwapOut", outputs: [ { internalType: "uint128", name: "amountInLeft", type: "uint128" }, { internalType: "uint128", name: "amountOut", type: "uint128" }, { internalType: "uint128", name: "fee", type: "uint128" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getTokenX", outputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getTokenY", outputs: [ { internalType: "contract IERC20", name: "tokenY", type: "address" } ], stateMutability: "pure", type: "function" }, { inputs: [ ], name: "getVariableFeeParameters", outputs: [ { internalType: "uint24", name: "volatilityAccumulator", type: "uint24" }, { internalType: "uint24", name: "volatilityReference", type: "uint24" }, { internalType: "uint24", name: "idReference", type: "uint24" }, { internalType: "uint40", name: "timeOfLastUpdate", type: "uint40" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "newLength", type: "uint16" } ], name: "increaseOracleLength", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" }, { internalType: "uint24", name: "activeId", type: "uint24" } ], name: "initialize", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "owner", type: "address" }, { internalType: "address", name: "spender", type: "address" } ], name: "isApprovedForAll", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "to", type: "address" }, { internalType: "bytes32[]", name: "liquidityConfigs", type: "bytes32[]" }, { internalType: "address", name: "refundTo", type: "address" } ], name: "mint", outputs: [ { internalType: "bytes32", name: "amountsReceived", type: "bytes32" }, { internalType: "bytes32", name: "amountsLeft", type: "bytes32" }, { internalType: "uint256[]", name: "liquidityMinted", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "name", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint16", name: "baseFactor", type: "uint16" }, { internalType: "uint16", name: "filterPeriod", type: "uint16" }, { internalType: "uint16", name: "decayPeriod", type: "uint16" }, { internalType: "uint16", name: "reductionFactor", type: "uint16" }, { internalType: "uint24", name: "variableFeeControl", type: "uint24" }, { internalType: "uint16", name: "protocolShare", type: "uint16" }, { internalType: "uint24", name: "maxVolatilityAccumulator", type: "uint24" } ], name: "setStaticFeeParameters", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "bool", name: "swapForY", type: "bool" }, { internalType: "address", name: "to", type: "address" } ], name: "swap", outputs: [ { internalType: "bytes32", name: "amountsOut", type: "bytes32" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ ], name: "symbol", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "id", type: "uint256" } ], name: "totalSupply", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" } ]; var LiquidityAmountsHelper = [ { inputs: [ ], name: "LiquidityAmounts__LengthMismatch", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulShiftOverflow", type: "error" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "address", name: "LBPair", type: "address" } ], name: "getAmountsAndLiquiditiesOf", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256[]", name: "liquidities", type: "uint256[]" }, { internalType: "uint256[]", name: "totalSupplies", type: "uint256[]" }, { internalType: "uint112[]", name: "binReservesX", type: "uint112[]" }, { internalType: "uint112[]", name: "binReservesY", type: "uint112[]" } ], name: "getAmountsForLiquidities", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "address", name: "LBPair", type: "address" } ], name: "getAmountsOf", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "address", name: "LBPair", type: "address" } ], name: "getBalanceOf", outputs: [ { internalType: "uint256[]", name: "balances", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "uint112", name: "amountX", type: "uint112" }, { internalType: "uint112", name: "amountY", type: "uint112" } ], name: "getLiquiditiesForAmounts", outputs: [ { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "address", name: "LBPair", type: "address" } ], name: "getTotalAmountsOf", outputs: [ { internalType: "uint256", name: "totalAmountX", type: "uint256" }, { internalType: "uint256", name: "totalAmountY", type: "uint256" } ], stateMutability: "view", type: "function" } ]; var LiquidityHelperV2 = [ { inputs: [ ], name: "BinHelper__LiquidityOverflow", type: "error" }, { inputs: [ ], name: "FeesAmounts__LengthMismatch", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds24Bits", type: "error" }, { inputs: [ { internalType: "uint256", name: "x", type: "uint256" }, { internalType: "int256", name: "y", type: "int256" } ], name: "Uint128x128Math__PowUnderflow", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "previousX", type: "uint256[]" }, { internalType: "uint256[]", name: "previousY", type: "uint256[]" } ], name: "getAmountsAndFeesEarnedOf", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" }, { internalType: "uint256[]", name: "feesX", type: "uint256[]" }, { internalType: "uint256[]", name: "feesY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], name: "getAmountsForLiquidities", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "shares", type: "uint256[]" } ], name: "getAmountsForShares", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getAmountsOf", outputs: [ { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint24", name: "id", type: "uint24" }, { internalType: "uint24", name: "lengthLeft", type: "uint24" }, { internalType: "uint24", name: "lengthRight", type: "uint24" } ], name: "getBinsReserveOf", outputs: [ { internalType: "uint24", name: "", type: "uint24" }, { components: [ { internalType: "uint24", name: "id", type: "uint24" }, { internalType: "uint128", name: "reserveX", type: "uint128" }, { internalType: "uint128", name: "reserveY", type: "uint128" }, { internalType: "uint256", name: "shares", type: "uint256" }, { internalType: "uint256", name: "totalShares", type: "uint256" } ], internalType: "struct NonEmptyBinHelper.PopulatedBinUser[]", name: "", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "previousLiquidities", type: "uint256[]" } ], name: "getFeeSharesAndFeesEarnedOf", outputs: [ { internalType: "uint256[]", name: "feeShares", type: "uint256[]" }, { internalType: "uint256[]", name: "feesX", type: "uint256[]" }, { internalType: "uint256[]", name: "feesY", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], name: "getLiquiditiesForAmounts", outputs: [ { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "shares", type: "uint256[]" } ], name: "getLiquiditiesForShares", outputs: [ { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getLiquiditiesOf", outputs: [ { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint24", name: "start", type: "uint24" }, { internalType: "uint24", name: "end", type: "uint24" }, { internalType: "uint24", name: "length", type: "uint24" } ], name: "getPopulatedBinsId", outputs: [ { internalType: "bytes", name: "", type: "bytes" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "pair", type: "address" }, { internalType: "uint24", name: "start", type: "uint24" }, { internalType: "uint24", name: "end", type: "uint24" }, { internalType: "uint24", name: "length", type: "uint24" } ], name: "getPopulatedBinsReserves", outputs: [ { components: [ { internalType: "uint24", name: "id", type: "uint24" }, { internalType: "uint128", name: "reserveX", type: "uint128" }, { internalType: "uint128", name: "reserveY", type: "uint128" } ], internalType: "struct NonEmptyBinHelper.PopulatedBin[]", name: "", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsX", type: "uint256[]" }, { internalType: "uint256[]", name: "amountsY", type: "uint256[]" } ], name: "getSharesForAmounts", outputs: [ { internalType: "uint256[]", name: "shares", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" }, { internalType: "uint256[]", name: "liquidities", type: "uint256[]" } ], name: "getSharesForLiquidities", outputs: [ { internalType: "uint256[]", name: "shares", type: "uint256[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract ILBPair", name: "lbPair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getSharesOf", outputs: [ { internalType: "uint256[]", name: "balances", type: "uint256[]" } ], stateMutability: "view", type: "function" } ]; var LimitOrderManager = [ { inputs: [ { internalType: "contract ILBFactory", name: "factory", type: "address" }, { internalType: "contract IWNATIVE", name: "wNative", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "LimitOrderManager__InsufficientWithdrawalAmounts", type: "error" }, { inputs: [ ], name: "LimitOrderManager__InvalidBatchLength", type: "error" }, { inputs: [ ], name: "LimitOrderManager__InvalidExecutorFeeShare", type: "error" }, { inputs: [ ], name: "LimitOrderManager__InvalidNativeAmount", type: "error" }, { inputs: [ ], name: "LimitOrderManager__InvalidPair", type: "error" }, { inputs: [ ], name: "LimitOrderManager__InvalidTokenOrder", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OnlyFactoryOwner", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OnlyWNative", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OrderAlreadyExecuted", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OrderNotClaimable", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OrderNotExecutable", type: "error" }, { inputs: [ ], name: "LimitOrderManager__OrderNotPlaced", type: "error" }, { inputs: [ ], name: "LimitOrderManager__TransferFailed", type: "error" }, { inputs: [ ], name: "LimitOrderManager__ZeroAddress", type: "error" }, { inputs: [ ], name: "LimitOrderManager__ZeroAmount", type: "error" }, { inputs: [ ], name: "PackedUint128Math__SubUnderflow", type: "error" }, { inputs: [ ], name: "SafeCast__Exceeds128Bits", type: "error" }, { inputs: [ ], name: "Uint256x256Math__MulDivOverflow", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "executor", type: "address" }, { indexed: false, internalType: "contract IERC20", name: "tokenX", type: "address" }, { indexed: false, internalType: "contract IERC20", name: "tokenY", type: "address" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "ExecutionFeePaid", type: "event" }, { anonymous: false, inputs: [ { indexed: false, internalType: "uint256", name: "executorFeeShare", type: "uint256" } ], name: "ExecutorFeeShareSet", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: true, internalType: "uint24", name: "binId", type: "uint24" }, { indexed: false, internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { indexed: false, internalType: "uint256", name: "positionId", type: "uint256" }, { indexed: false, internalType: "uint256", name: "liquidity", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "OrderCancelled", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: true, internalType: "uint24", name: "binId", type: "uint24" }, { indexed: false, internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { indexed: false, internalType: "uint256", name: "positionId", type: "uint256" }, { indexed: false, internalType: "uint256", name: "liquidity", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "OrderClaimed", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "sender", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: true, internalType: "uint24", name: "binId", type: "uint24" }, { indexed: false, internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { indexed: false, internalType: "uint256", name: "positionId", type: "uint256" }, { indexed: false, internalType: "uint256", name: "liquidity", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "OrderExecuted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "contract ILBPair", name: "lbPair", type: "address" }, { indexed: true, internalType: "uint24", name: "binId", type: "uint24" }, { indexed: false, internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { indexed: false, internalType: "uint256", name: "positionId", type: "uint256" }, { indexed: false, internalType: "uint256", name: "liquidity", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountX", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amountY", type: "uint256" } ], name: "OrderPlaced", type: "event" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "minAmountX", type: "uint256" }, { internalType: "uint256", name: "minAmountY", type: "uint256" } ], internalType: "struct ILimitOrderManager.CancelOrderParams[]", name: "orders", type: "tuple[]" } ], name: "batchCancelOrders", outputs: [ { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { components: [ { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "minAmountX", type: "uint256" }, { internalType: "uint256", name: "minAmountY", type: "uint256" } ], internalType: "struct ILimitOrderManager.CancelOrderParamsSamePair[]", name: "orders", type: "tuple[]" } ], name: "batchCancelOrdersSamePair", outputs: [ { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], internalType: "struct ILimitOrderManager.OrderParams[]", name: "orders", type: "tuple[]" } ], name: "batchClaimOrders", outputs: [ { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { components: [ { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], internalType: "struct ILimitOrderManager.OrderParamsSamePair[]", name: "orders", type: "tuple[]" } ], name: "batchClaimOrdersSamePair", outputs: [ { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], internalType: "struct ILimitOrderManager.OrderParams[]", name: "orders", type: "tuple[]" } ], name: "batchExecuteOrders", outputs: [ { internalType: "bool[]", name: "orderExecuted", type: "bool[]" }, { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { components: [ { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], internalType: "struct ILimitOrderManager.OrderParamsSamePair[]", name: "orders", type: "tuple[]" } ], name: "batchExecuteOrdersSamePair", outputs: [ { internalType: "bool[]", name: "orderExecuted", type: "bool[]" }, { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { components: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "amount", type: "uint256" } ], internalType: "struct ILimitOrderManager.PlaceOrderParams[]", name: "orders", type: "tuple[]" } ], name: "batchPlaceOrders", outputs: [ { internalType: "bool[]", name: "orderPlaced", type: "bool[]" }, { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { components: [ { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "amount", type: "uint256" } ], internalType: "struct ILimitOrderManager.PlaceOrderParamsSamePair[]", name: "orders", type: "tuple[]" } ], name: "batchPlaceOrdersSamePair", outputs: [ { internalType: "bool[]", name: "orderPlaced", type: "bool[]" }, { internalType: "uint256[]", name: "orderPositionIds", type: "uint256[]" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "minAmountX", type: "uint256" }, { internalType: "uint256", name: "minAmountY", type: "uint256" } ], name: "cancelOrder", outputs: [ { internalType: "uint256", name: "orderPositionId", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], name: "claimOrder", outputs: [ { internalType: "uint256", name: "orderPositionId", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], name: "executeOrders", outputs: [ { internalType: "bool", name: "executed", type: "bool" }, { internalType: "uint256", name: "positionId", type: "uint256" } ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "address", name: "user", type: "address" } ], name: "getCurrentAmounts", outputs: [ { internalType: "uint256", name: "amountX", type: "uint256" }, { internalType: "uint256", name: "amountY", type: "uint256" }, { internalType: "uint256", name: "executionFeeX", type: "uint256" }, { internalType: "uint256", name: "executionFeeY", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" } ], name: "getExecutionFee", outputs: [ { internalType: "uint256", name: "fee", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getExecutorFeeShare", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getFactory", outputs: [ { internalType: "contract ILBFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], name: "getLastPositionId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "address", name: "user", type: "address" } ], name: "getOrder", outputs: [ { components: [ { internalType: "uint256", name: "positionId", type: "uint256" }, { internalType: "uint256", name: "liquidity", type: "uint256" } ], internalType: "struct ILimitOrderManager.Order", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "positionId", type: "uint256" } ], name: "getPosition", outputs: [ { components: [ { internalType: "uint256", name: "liquidity", type: "uint256" }, { internalType: "uint128", name: "amount", type: "uint128" }, { internalType: "bool", name: "withdrawn", type: "bool" } ], internalType: "struct ILimitOrderManager.Position", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getWNative", outputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" } ], name: "isOrderExecutable", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "name", outputs: [ { internalType: "string", name: "", type: "string" } ], stateMutability: "pure", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "tokenX", type: "address" }, { internalType: "contract IERC20", name: "tokenY", type: "address" }, { internalType: "uint16", name: "binStep", type: "uint16" }, { internalType: "enum ILimitOrderManager.OrderType", name: "orderType", type: "uint8" }, { internalType: "uint24", name: "binId", type: "uint24" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "placeOrder", outputs: [ { internalType: "bool", name: "orderPlaced", type: "bool" }, { internalType: "uint256", name: "orderPositionId", type: "uint256" } ], stateMutability: "payable", type: "function" }, { inputs: [ { internalType: "uint256", name: "executorFeeShare", type: "uint256" } ], name: "setExecutorFeeShare", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { stateMutability: "payable", type: "receive" } ]; var APTFarm = [ { inputs: [ { internalType: "contract IERC20", name: "_joe", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "APTFarm__EmptyArray", type: "error" }, { inputs: [ { internalType: "uint256", name: "deposit", type: "uint256" }, { internalType: "uint256", name: "amountWithdrawn", type: "uint256" } ], name: "APTFarm__InsufficientDeposit", type: "error" }, { inputs: [ ], name: "APTFarm__InvalidAPToken", type: "error" }, { inputs: [ ], name: "APTFarm__InvalidFarmIndex", type: "error" }, { inputs: [ ], name: "APTFarm__InvalidJoePerSec", type: "error" }, { inputs: [ { internalType: "address", name: "apToken", type: "address" } ], name: "APTFarm__TokenAlreadyHasFarm", type: "error" }, { inputs: [ ], name: "APTFarm__ZeroAddress", type: "error" }, { inputs: [ ], name: "APTFarm__ZeroAmount", type: "error" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "allocPoint", type: "uint256" }, { indexed: true, internalType: "contract IERC20", name: "apToken", type: "address" }, { indexed: true, internalType: "contract IRewarder", name: "rewarder", type: "address" } ], name: "Add", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: false, internalType: "uint256[]", name: "pids", type: "uint256[]" } ], name: "BatchHarvest", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" } ], name: "Deposit", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" } ], name: "EmergencyWithdraw", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" }, { indexed: false, internalType: "uint256", name: "unpaidAmount", type: "uint256" } ], name: "Harvest", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferStarted", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "previousOwner", type: "address" }, { indexed: true, internalType: "address", name: "newOwner", type: "address" } ], name: "OwnershipTransferred", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "allocPoint", type: "uint256" }, { indexed: true, internalType: "contract IRewarder", name: "rewarder", type: "address" }, { indexed: false, internalType: "bool", name: "overwrite", type: "bool" } ], name: "Set", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "token", type: "address" }, { indexed: true, internalType: "address", name: "to", type: "address" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" } ], name: "Skim", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "lastRewardTimestamp", type: "uint256" }, { indexed: false, internalType: "uint256", name: "lpSupply", type: "uint256" }, { indexed: false, internalType: "uint256", name: "accJoePerShare", type: "uint256" } ], name: "UpdateFarm", type: "event" }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "user", type: "address" }, { indexed: true, internalType: "uint256", name: "pid", type: "uint256" }, { indexed: false, internalType: "uint256", name: "amount", type: "uint256" } ], name: "Withdraw", type: "event" }, { inputs: [ ], name: "acceptOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IERC20", name: "apToken", type: "address" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" } ], name: "add", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], name: "apTokenBalances", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "deposit", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" } ], name: "emergencyWithdraw", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" } ], name: "farmInfo", outputs: [ { components: [ { internalType: "contract IERC20", name: "apToken", type: "address" }, { internalType: "uint256", name: "accJoePerShare", type: "uint256" }, { internalType: "uint256", name: "lastRewardTimestamp", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" } ], internalType: "struct IAPTFarm.FarmInfo", name: "farm", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "farmLength", outputs: [ { internalType: "uint256", name: "farms", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256[]", name: "pids", type: "uint256[]" } ], name: "harvestRewards", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "apToken", type: "address" } ], name: "hasFarm", outputs: [ { internalType: "bool", name: "", type: "bool" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "joe", outputs: [ { internalType: "contract IERC20", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "owner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "pendingOwner", outputs: [ { internalType: "address", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "address", name: "user", type: "address" } ], name: "pendingTokens", outputs: [ { internalType: "uint256", name: "pendingJoe", type: "uint256" }, { internalType: "address", name: "bonusTokenAddress", type: "address" }, { internalType: "string", name: "bonusTokenSymbol", type: "string" }, { internalType: "uint256", name: "pendingBonusToken", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "renounceOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "bool", name: "overwrite", type: "bool" } ], name: "set", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "contract IERC20", name: "token", type: "address" }, { internalType: "address", name: "to", type: "address" } ], name: "skim", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "address", name: "newOwner", type: "address" } ], name: "transferOwnership", outputs: [ ], stateMutability: "nonpayable", type: "function" }, { inputs: [ { internalType: "uint256", name: "index", type: "uint256" }, { internalType: "address", name: "user", type: "address" } ], name: "userInfo", outputs: [ { components: [ { internalType: "uint256", name: "amount", type: "uint256" }, { internalType: "uint256", name: "rewardDebt", type: "uint256" }, { internalType: "uint256", name: "unpaidRewards", type: "uint256" } ], internalType: "struct IAPTFarm.UserInfo", name: "info", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "apToken", type: "address" } ], name: "vaultFarmId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "amount", type: "uint256" } ], name: "withdraw", outputs: [ ], stateMutability: "nonpayable", type: "function" } ]; var APTFarmLens = [ { inputs: [ { internalType: "contract IVaultFactory", name: "_vaultFactory", type: "address" }, { internalType: "contract IAPTFarm", name: "_aptFarm", type: "address" }, { internalType: "contract IJoeDexLens", name: "_dexLens", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ ], name: "aptFarm", outputs: [ { internalType: "contract IAPTFarm", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "dexLens", outputs: [ { internalType: "contract IJoeDexLens", name: "", type: "address" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getAllVaults", outputs: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData[]", name: "vaultsData", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "getAllVaultsIncludingUserInfo", outputs: [ { components: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData", name: "vaultData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { components: [ { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { internalType: "uint256", name: "pendingJoe", type: "uint256" }, { internalType: "uint256", name: "pendingBonusToken", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmDataWithUserInfo", name: "farmDataWithUserInfo", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]", name: "vaultsDataWithUserInfo", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "getAllVaultsWithFarms", outputs: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData[]", name: "farmsData", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" } ], name: "getAllVaultsWithFarmsIncludingUserInfo", outputs: [ { components: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData", name: "vaultData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { components: [ { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { internalType: "uint256", name: "pendingJoe", type: "uint256" }, { internalType: "uint256", name: "pendingBonusToken", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmDataWithUserInfo", name: "farmDataWithUserInfo", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]", name: "farmsDataWithUserInfo", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "uint256", name: "startId", type: "uint256" }, { internalType: "uint256", name: "pageSize", type: "uint256" } ], name: "getPaginatedVaultsFromType", outputs: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData[]", name: "vaultsData", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "uint256", name: "startId", type: "uint256" }, { internalType: "uint256", name: "pageSize", type: "uint256" } ], name: "getPaginatedVaultsIncludingUserInfo", outputs: [ { components: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData", name: "vaultData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { components: [ { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { internalType: "uint256", name: "pendingJoe", type: "uint256" }, { internalType: "uint256", name: "pendingBonusToken", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmDataWithUserInfo", name: "farmDataWithUserInfo", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]", name: "vaultsDataWithUserInfo", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "startId", type: "uint256" }, { internalType: "uint256", name: "pageSize", type: "uint256" } ], name: "getPaginatedVaultsWithFarms", outputs: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData[]", name: "farmsData", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "user", type: "address" }, { internalType: "uint256", name: "startId", type: "uint256" }, { internalType: "uint256", name: "pageSize", type: "uint256" } ], name: "getPaginatedVaultsWithFarmsIncludingUserInfo", outputs: [ { components: [ { components: [ { internalType: "contract IBaseVault", name: "vault", type: "address" }, { internalType: "enum IVaultFactory.VaultType", name: "vaultType", type: "uint8" }, { internalType: "contract IStrategy", name: "strategy", type: "address" }, { internalType: "enum IVaultFactory.StrategyType", name: "strategyType", type: "uint8" }, { internalType: "bool", name: "isDepositsPaused", type: "bool" }, { internalType: "bool", name: "isInEmergencyMode", type: "bool" }, { internalType: "address", name: "lbPair", type: "address" }, { internalType: "uint256", name: "lbPairBinStep", type: "uint256" }, { internalType: "address", name: "tokenX", type: "address" }, { internalType: "address", name: "tokenY", type: "address" }, { internalType: "uint256", name: "tokenXBalance", type: "uint256" }, { internalType: "uint256", name: "tokenYBalance", type: "uint256" }, { internalType: "uint256", name: "totalSupply", type: "uint256" }, { internalType: "uint256", name: "vaultBalanceUSD", type: "uint256" }, { internalType: "bool", name: "hasFarm", type: "bool" }, { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultData", name: "vaultData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { components: [ { components: [ { internalType: "uint256", name: "farmId", type: "uint256" }, { internalType: "uint256", name: "joePerSec", type: "uint256" }, { internalType: "contract IRewarder", name: "rewarder", type: "address" }, { internalType: "uint256", name: "aptBalance", type: "uint256" }, { internalType: "uint256", name: "aptBalanceUSD", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmData", name: "farmData", type: "tuple" }, { internalType: "uint256", name: "userBalance", type: "uint256" }, { internalType: "uint256", name: "userBalanceUSD", type: "uint256" }, { internalType: "uint256", name: "pendingJoe", type: "uint256" }, { internalType: "uint256", name: "pendingBonusToken", type: "uint256" } ], internalType: "struct IAPTFarmLens.FarmDataWithUserInfo", name: "farmDataWithUserInfo", type: "tuple" } ], internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]", name: "farmsDataWithUserInfo", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ ], name: "vaultFactory", outputs: [ { internalType: "contract IVaultFactory", name: "", type: "address" } ], stateMutability: "view", type: "function" } ]; var LBHooksLens = [ { inputs: [ { internalType: "address", name: "lbHooksManager", type: "address" }, { internalType: "address", name: "masterChef", type: "address" } ], stateMutability: "nonpayable", type: "constructor" }, { inputs: [ { internalType: "address", name: "pair", type: "address" } ], name: "getActiveId", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address[]", name: "pairs", type: "address[]" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[][]", name: "ids", type: "uint256[][]" } ], name: "getBatchHooksData", outputs: [ { components: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "hooksParameters", type: "tuple" }, { components: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "hooksType", type: "uint8" }, { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" }, { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "moePerSecond", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" }, { internalType: "uint256", name: "rangeStart", type: "uint256" }, { internalType: "uint256", name: "rangeEnd", type: "uint256" }, { internalType: "uint256", name: "pendingRewards", type: "uint256" }, { internalType: "uint256", name: "rewardPerSecond", type: "uint256" }, { internalType: "uint256", name: "lastUpdateTimestamp", type: "uint256" }, { internalType: "uint256", name: "endTimestamp", type: "uint256" }, { internalType: "uint256", name: "remainingRewards", type: "uint256" }, { internalType: "bool", name: "isStarted", type: "bool" }, { internalType: "bool", name: "isEnded", type: "bool" } ], internalType: "struct LBHooksLens.Parameters", name: "parameters", type: "tuple" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], internalType: "struct LBHooksLens.HooksRewarderData[]", name: "rewarderData", type: "tuple[]" }, { components: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "hooksParameters", type: "tuple" }, { components: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "hooksType", type: "uint8" }, { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" }, { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "moePerSecond", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" }, { internalType: "uint256", name: "rangeStart", type: "uint256" }, { internalType: "uint256", name: "rangeEnd", type: "uint256" }, { internalType: "uint256", name: "pendingRewards", type: "uint256" }, { internalType: "uint256", name: "rewardPerSecond", type: "uint256" }, { internalType: "uint256", name: "lastUpdateTimestamp", type: "uint256" }, { internalType: "uint256", name: "endTimestamp", type: "uint256" }, { internalType: "uint256", name: "remainingRewards", type: "uint256" }, { internalType: "bool", name: "isStarted", type: "bool" }, { internalType: "bool", name: "isEnded", type: "bool" } ], internalType: "struct LBHooksLens.Parameters", name: "parameters", type: "tuple" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], internalType: "struct LBHooksLens.HooksRewarderData[]", name: "extraRewarderData", type: "tuple[]" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" } ], name: "getExtraHooks", outputs: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "pair", type: "address" } ], name: "getHooks", outputs: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "pair", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getHooksData", outputs: [ { components: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "hooksParameters", type: "tuple" }, { components: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "hooksType", type: "uint8" }, { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" }, { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "moePerSecond", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" }, { internalType: "uint256", name: "rangeStart", type: "uint256" }, { internalType: "uint256", name: "rangeEnd", type: "uint256" }, { internalType: "uint256", name: "pendingRewards", type: "uint256" }, { internalType: "uint256", name: "rewardPerSecond", type: "uint256" }, { internalType: "uint256", name: "lastUpdateTimestamp", type: "uint256" }, { internalType: "uint256", name: "endTimestamp", type: "uint256" }, { internalType: "uint256", name: "remainingRewards", type: "uint256" }, { internalType: "bool", name: "isStarted", type: "bool" }, { internalType: "bool", name: "isEnded", type: "bool" } ], internalType: "struct LBHooksLens.Parameters", name: "parameters", type: "tuple" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], internalType: "struct LBHooksLens.HooksRewarderData", name: "rewarderData", type: "tuple" }, { components: [ { components: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "bool", name: "beforeSwap", type: "bool" }, { internalType: "bool", name: "afterSwap", type: "bool" }, { internalType: "bool", name: "beforeFlashLoan", type: "bool" }, { internalType: "bool", name: "afterFlashLoan", type: "bool" }, { internalType: "bool", name: "beforeMint", type: "bool" }, { internalType: "bool", name: "afterMint", type: "bool" }, { internalType: "bool", name: "beforeBurn", type: "bool" }, { internalType: "bool", name: "afterBurn", type: "bool" }, { internalType: "bool", name: "beforeBatchTransferFrom", type: "bool" }, { internalType: "bool", name: "afterBatchTransferFrom", type: "bool" } ], internalType: "struct Hooks.Parameters", name: "hooksParameters", type: "tuple" }, { components: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "hooksType", type: "uint8" }, { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" }, { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "moePerSecond", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" }, { internalType: "uint256", name: "rangeStart", type: "uint256" }, { internalType: "uint256", name: "rangeEnd", type: "uint256" }, { internalType: "uint256", name: "pendingRewards", type: "uint256" }, { internalType: "uint256", name: "rewardPerSecond", type: "uint256" }, { internalType: "uint256", name: "lastUpdateTimestamp", type: "uint256" }, { internalType: "uint256", name: "endTimestamp", type: "uint256" }, { internalType: "uint256", name: "remainingRewards", type: "uint256" }, { internalType: "bool", name: "isStarted", type: "bool" }, { internalType: "bool", name: "isEnded", type: "bool" } ], internalType: "struct LBHooksLens.Parameters", name: "parameters", type: "tuple" }, { internalType: "uint256", name: "activeId", type: "uint256" } ], internalType: "struct LBHooksLens.HooksRewarderData", name: "extraRewarderData", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" } ], name: "getLBHooksType", outputs: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "", type: "uint8" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "uint256", name: "pid", type: "uint256" } ], name: "getMoePerSecond", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "hooks", type: "address" }, { internalType: "address", name: "user", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getParametersOf", outputs: [ { components: [ { internalType: "enum ILBHooksManager.LBHooksType", name: "hooksType", type: "uint8" }, { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" }, { internalType: "uint256", name: "pid", type: "uint256" }, { internalType: "uint256", name: "moePerSecond", type: "uint256" }, { internalType: "uint256", name: "activeId", type: "uint256" }, { internalType: "uint256", name: "rangeStart", type: "uint256" }, { internalType: "uint256", name: "rangeEnd", type: "uint256" }, { internalType: "uint256", name: "pendingRewards", type: "uint256" }, { internalType: "uint256", name: "rewardPerSecond", type: "uint256" }, { internalType: "uint256", name: "lastUpdateTimestamp", type: "uint256" }, { internalType: "uint256", name: "endTimestamp", type: "uint256" }, { internalType: "uint256", name: "remainingRewards", type: "uint256" }, { internalType: "bool", name: "isStarted", type: "bool" }, { internalType: "bool", name: "isEnded", type: "bool" } ], internalType: "struct LBHooksLens.Parameters", name: "parameters", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" }, { internalType: "address", name: "account", type: "address" }, { internalType: "uint256[]", name: "ids", type: "uint256[]" } ], name: "getPendingRewards", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" } ], name: "getPid", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "extraRewarder", type: "address" } ], name: "getRemainingRewards", outputs: [ { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" } ], name: "getRewardToken", outputs: [ { components: [ { internalType: "address", name: "token", type: "address" }, { internalType: "uint256", name: "decimals", type: "uint256" }, { internalType: "string", name: "symbol", type: "string" } ], internalType: "struct LBHooksLens.Token", name: "rewardToken", type: "tuple" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "rewarder", type: "address" } ], name: "getRewardedRange", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" }, { inputs: [ { internalType: "address", name: "extraRewarder", type: "address" } ], name: "getRewarderParameter", outputs: [ { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" }, { internalType: "uint256", name: "", type: "uint256" } ], stateMutability: "view", type: "function" } ]; declare namespace index { export { APTFarm as APTFarmABI, APTFarmLens as APTFarmLensABI, DexLens as DexLensABI, LBFactory as LBFactoryABI, LBFactoryV21 as LBFactoryV21ABI, LBFactoryV22 as LBFactoryV22ABI, LBHooksLens as LBHooksLensABI, LBPair$1 as LBPairABI, LBPairV21 as LBPairV21ABI, LBQuoter as LBQuoterABI, LBQuoterV21 as LBQuoterV21ABI, LBQuoterV22 as LBQuoterV22ABI, LBRewarder as LBRewarderABI, LBRouter as LBRouterABI, LBRouterV21 as LBRouterV21ABI, LBRouterV22 as LBRouterV22ABI, LimitOrderManager as LimitOrderManagerABI, LiquidityAmountsHelper as LiquidityAmountsHelperABI, LiquidityHelperV2 as LiquidityHelperV2ABI, Vault as VaultABI, VaultFactory as VaultFactoryABI, }; } declare const LB_QUOTER_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_QUOTER_V21_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_QUOTER_V22_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_ROUTER_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_ROUTER_V21_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_ROUTER_V22_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_FACTORY_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_FACTORY_V21_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_FACTORY_V22_ADDRESS: { [chainId in ChainId]: Hex; }; declare const DEXLENS_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LB_REWARDER_ADDRESS: { [chainId in ChainId]: Hex; }; declare const VAULT_FACTORY_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LIQUIDITY_AMOUNTS_HELPER_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LIQUIDITY_HELPER_V2_ADDRESS: { [chainId in ChainId]: Hex; }; declare const LIMIT_ORDER_MANAGER_ADDRESS: { [chainId in ChainId]: Hex; }; declare const APT_FARM_LENS: { [chainId in ChainId]: Hex; }; declare const LB_HOOKS_LENS_ADDRESS: { [chainId in ChainId]: Hex; }; declare const DEX_V2_SUBGRAPH: { [chainId in ChainId]: string; }; declare const DEXCANDLES_SUBGRAPH_V2: { [chainId in ChainId]: string; }; declare const DexLensABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "lbFactory"; readonly type: "address"; }, { readonly internalType: "contract ILBLegacyFactory"; readonly name: "lbLegacyFactory"; readonly type: "address"; }, { readonly internalType: "contract IJoeFactory"; readonly name: "joeFactory"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "collateral"; readonly type: "address"; }]; readonly name: "JoeDexLens__CollateralNotInPair"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dataFeed"; readonly type: "address"; }]; readonly name: "JoeDexLens__DataFeedAlreadyAdded"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dataFeed"; readonly type: "address"; }]; readonly name: "JoeDexLens__DataFeedNotInSet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__InvalidChainLinkPrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__InvalidDataFeed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__LengthsMismatch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__NativeToken"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__NullWeight"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__SameDataFeed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__SameTokens"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "JoeDexLens__TokenNotInPair"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__UnknownDataFeedType"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__V1ContractNotSet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__V2ContractNotSet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__V2_1ContractNotSet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeDexLens__ZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControlEnumerable__AccountAlreadyHasRole"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControlEnumerable__AccountDoesNotHaveRole"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControlEnumerable__OnlyOwnerOrRole"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControlEnumerable__OnlyRole"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControlEnumerable__RoleAlreadyGranted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeOwnable__OnlyOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeOwnable__OnlyPendingOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulShiftOverflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "collateralAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly internalType: "uint88"; readonly name: "dfWeight"; readonly type: "uint88"; }, { readonly internalType: "enum IJoeDexLens.DataFeedType"; readonly name: "dfType"; readonly type: "uint8"; }]; readonly indexed: false; readonly internalType: "struct IJoeDexLens.DataFeed"; readonly name: "dataFeed"; readonly type: "tuple"; }]; readonly name: "DataFeedAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }]; readonly name: "DataFeedRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "weight"; readonly type: "uint256"; }]; readonly name: "DataFeedsWeightSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }]; readonly name: "NativeDataFeedSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "pendingOwner"; readonly type: "address"; }]; readonly name: "PendingOwnerSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "adminRole"; readonly type: "bytes32"; }]; readonly name: "RoleAdminSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "RoleGranted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "RoleRevoked"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "DATA_FEED_MANAGER_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "DEFAULT_ADMIN_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "collateralAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly internalType: "uint88"; readonly name: "dfWeight"; readonly type: "uint88"; }, { readonly internalType: "enum IJoeDexLens.DataFeedType"; readonly name: "dfType"; readonly type: "uint8"; }]; readonly internalType: "struct IJoeDexLens.DataFeed"; readonly name: "dataFeed"; readonly type: "tuple"; }]; readonly name: "addDataFeed"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "tokens"; readonly type: "address[]"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "collateralAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly internalType: "uint88"; readonly name: "dfWeight"; readonly type: "uint88"; }, { readonly internalType: "enum IJoeDexLens.DataFeedType"; readonly name: "dfType"; readonly type: "uint8"; }]; readonly internalType: "struct IJoeDexLens.DataFeed[]"; readonly name: "dataFeeds"; readonly type: "tuple[]"; }]; readonly name: "addDataFeeds"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "becomeOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "getDataFeeds"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "collateralAddress"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly internalType: "uint88"; readonly name: "dfWeight"; readonly type: "uint88"; }, { readonly internalType: "enum IJoeDexLens.DataFeedType"; readonly name: "dfType"; readonly type: "uint8"; }]; readonly internalType: "struct IJoeDexLens.DataFeed[]"; readonly name: "dataFeeds"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV1"; readonly outputs: readonly [{ readonly internalType: "contract IJoeFactory"; readonly name: "factoryV1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV2_1"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factoryV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyFactoryV2"; readonly outputs: readonly [{ readonly internalType: "contract ILBLegacyFactory"; readonly name: "legacyFactoryV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "getRoleAdmin"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getRoleMemberAt"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "getRoleMemberCount"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "getTokenPriceNative"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }]; readonly name: "getTokenPriceUSD"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "tokens"; readonly type: "address[]"; }]; readonly name: "getTokensPricesNative"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "prices"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "tokens"; readonly type: "address[]"; }]; readonly name: "getTokensPricesUSD"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "prices"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getWNative"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "wNative"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "grantRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "hasRole"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "aggregator"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }]; readonly name: "removeDataFeed"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "tokens"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "dfAddresses"; readonly type: "address[]"; }]; readonly name: "removeDataFeeds"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "renounceRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "revokeRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "dfAddress"; readonly type: "address"; }, { readonly internalType: "uint88"; readonly name: "newWeight"; readonly type: "uint88"; }]; readonly name: "setDataFeedWeight"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "tokens"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "dfAddresses"; readonly type: "address[]"; }, { readonly internalType: "uint88[]"; readonly name: "newWeights"; readonly type: "uint88[]"; }]; readonly name: "setDataFeedsWeights"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "aggregator"; readonly type: "address"; }]; readonly name: "setNativeDataFeed"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "setPendingOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const LBFactoryABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_feeRecipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_flashLoanFee"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "bp"; readonly type: "uint256"; }]; readonly name: "BinHelper__BinStepOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BinHelper__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepHasNoPreset"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "lowerBound"; readonly type: "uint256"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "higherBound"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepRequirementsBreached"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }]; readonly name: "LBFactory__DecreasingPeriods"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__FactoryLockIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "fees"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxFees"; readonly type: "uint256"; }]; readonly name: "LBFactory__FeesAboveMax"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "fees"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxFees"; readonly type: "uint256"; }]; readonly name: "LBFactory__FlashLoanFeeAboveMax"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "LBFactory__FunctionIsLockedForUsers"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }]; readonly name: "LBFactory__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__ImplementationNotSet"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairAlreadyExists"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__LBPairSafetyCheckFailed"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "max"; readonly type: "uint256"; }]; readonly name: "LBFactory__ProtocolShareOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetAlreadyWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetNotWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "max"; readonly type: "uint256"; }]; readonly name: "LBFactory__ReductionFactorOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "LBFactory__SameFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly name: "LBFactory__SameFlashLoanFee"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__SameImplementation"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Math128x128__PowerUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NoPendingOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NotOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NotPendingOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__PendingOwnerAlreadySet"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds16Bits"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "unlocked"; readonly type: "bool"; }]; readonly name: "FactoryLockedStatusUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulated"; readonly type: "uint256"; }]; readonly name: "FeeParametersSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldRecipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newRecipient"; readonly type: "address"; }]; readonly name: "FeeRecipientSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldFlashLoanFee"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newFlashLoanFee"; readonly type: "uint256"; }]; readonly name: "FlashLoanFeeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "LBPairCreated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "ignored"; readonly type: "bool"; }]; readonly name: "LBPairIgnoredStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldLBPairImplementation"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBPairImplementationSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "pendingOwner"; readonly type: "address"; }]; readonly name: "PendingOwnerSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "PresetRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "sampleLifetime"; readonly type: "uint256"; }]; readonly name: "PresetSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetRemoved"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "LBPairImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_BIN_STEP"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_FEE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MAX_PROTOCOL_SHARE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "MIN_BIN_STEP"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_quoteAsset"; readonly type: "address"; }]; readonly name: "addQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly name: "allLBPairs"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "becomeOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "_activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "creationUnlocked"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "feeRecipient"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "flashLoanFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }]; readonly name: "forceDecay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllBinSteps"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "presetsBinStep"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }]; readonly name: "getAllLBPairs"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation[]"; readonly name: "LBPairsAvailable"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenA"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenB"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_binStep"; readonly type: "uint256"; }]; readonly name: "getLBPairInformation"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfLBPairs"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfQuoteAssets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }]; readonly name: "getPreset"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulated"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "sampleLifetime"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_index"; readonly type: "uint256"; }]; readonly name: "getQuoteAsset"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_token"; readonly type: "address"; }]; readonly name: "isQuoteAsset"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }]; readonly name: "removePreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_quoteAsset"; readonly type: "address"; }]; readonly name: "removeQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "revokePendingOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "_locked"; readonly type: "bool"; }]; readonly name: "setFactoryLockedState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_feeRecipient"; readonly type: "address"; }]; readonly name: "setFeeRecipient"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "_variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "_maxVolatilityAccumulated"; readonly type: "uint24"; }]; readonly name: "setFeesParametersOnPair"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_flashLoanFee"; readonly type: "uint256"; }]; readonly name: "setFlashLoanFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_binStep"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "_ignored"; readonly type: "bool"; }]; readonly name: "setLBPairIgnored"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_LBPairImplementation"; readonly type: "address"; }]; readonly name: "setLBPairImplementation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pendingOwner_"; readonly type: "address"; }]; readonly name: "setPendingOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "_reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "_variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "_maxVolatilityAccumulated"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_sampleLifetime"; readonly type: "uint16"; }]; readonly name: "setPreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const LBPairABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "_factory"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "bp"; readonly type: "uint256"; }]; readonly name: "BinHelper__BinStepOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BinHelper__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__AddressZeroOrThis"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBPair__CompositionFactorFlawed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__DistributionsOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__FlashLoanCallbackFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__FlashLoanTokenNotSupported"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__FlashLoanWrongFee"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__InsufficientAmounts"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBPair__InsufficientLiquidityBurned"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBPair__InsufficientLiquidityMinted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "newSize"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "oracleSize"; readonly type: "uint256"; }]; readonly name: "LBPair__NewSizeTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__OnlyFactory"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "LBPair__OnlyFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__OnlyStrictlyIncreasingId"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__WrongLengths"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBToken__BurnExceedsBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__BurnFromAddress0"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "accountsLength"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idsLength"; readonly type: "uint256"; }]; readonly name: "LBToken__LengthMismatch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__MintToAddress0"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__NotSupported"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly name: "LBToken__SelfApproval"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly name: "LBToken__SpenderNotApproved"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBToken__TransferExceedsBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__TransferFromOrToAddress0"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__TransferToSelf"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Math128x128__PowerUnderflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "denominator"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__OffsetOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_minTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_lookUpTimestamp"; readonly type: "uint256"; }]; readonly name: "Oracle__LookUpTimestampTooOld"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Oracle__NotInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ReentrancyGuardUpgradeable__AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ReentrancyGuardUpgradeable__ReentrantCall"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds112Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds40Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__CallFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__NonContract"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__TransferFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TreeMath__ErrorDepthSearch"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "approved"; readonly type: "bool"; }]; readonly name: "ApprovalForAll"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "Burn"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "feesX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "feesY"; readonly type: "uint256"; }]; readonly name: "CompositionFee"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "DepositedToBin"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "FeesCollected"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBFlashLoanCallback"; readonly name: "receiver"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "previousSize"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newSize"; readonly type: "uint256"; }]; readonly name: "OracleSizeIncreased"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "ProtocolFeesCollected"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "volatilityAccumulated"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "fees"; readonly type: "uint256"; }]; readonly name: "Swap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "TransferBatch"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "TransferSingle"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "WithdrawnFromBin"; readonly type: "event"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_account"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_id"; readonly type: "uint256"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "_accounts"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }]; readonly name: "balanceOfBatch"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "batchBalances"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "burn"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_account"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }]; readonly name: "collectFees"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "collectProtocolFees"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountY"; readonly type: "uint128"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "factory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "feeParameters"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulated"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "volatilityAccumulated"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "volatilityReference"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "indexRef"; readonly type: "uint24"; }, { readonly internalType: "uint40"; readonly name: "time"; readonly type: "uint40"; }]; readonly internalType: "struct FeeHelper.FeeParameters"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "_id"; readonly type: "uint24"; }, { readonly internalType: "bool"; readonly name: "_swapForY"; readonly type: "bool"; }]; readonly name: "findFirstNonEmptyBinId"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: ""; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBFlashLoanCallback"; readonly name: "_receiver"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_amount"; readonly type: "uint256"; }, { readonly internalType: "bytes"; readonly name: "_data"; readonly type: "bytes"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "forceDecay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "_id"; readonly type: "uint24"; }]; readonly name: "getBin"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "reserveX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getGlobalFees"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "feesXTotal"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "feesYTotal"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "feesXProtocol"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "feesYProtocol"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getOracleParameters"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "oracleSampleLifetime"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "oracleSize"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "oracleActiveSize"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "oracleLastTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "oracleId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "min"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "max"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_timeDelta"; readonly type: "uint256"; }]; readonly name: "getOracleSampleFrom"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "cumulativeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "cumulativeVolatilityAccumulated"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "cumulativeBinCrossed"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReservesAndId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "reserveX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserveY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "_newSize"; readonly type: "uint16"; }]; readonly name: "increaseOracleLength"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "_activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_sampleLifetime"; readonly type: "uint16"; }, { readonly internalType: "bytes32"; readonly name: "_packedFeeParameters"; readonly type: "bytes32"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_spender"; readonly type: "address"; }]; readonly name: "isApprovedForAll"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_account"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }]; readonly name: "pendingFees"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_amounts"; readonly type: "uint256[]"; }]; readonly name: "safeBatchTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_id"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amount"; readonly type: "uint256"; }]; readonly name: "safeTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_spender"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "_approved"; readonly type: "bool"; }]; readonly name: "setApprovalForAll"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "_packedFeeParameters"; readonly type: "bytes32"; }]; readonly name: "setFeesParameters"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes4"; readonly name: "_interfaceId"; readonly type: "bytes4"; }]; readonly name: "supportsInterface"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "_swapForY"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }]; readonly name: "swap"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "tokenX"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "tokenY"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_id"; readonly type: "uint256"; }]; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LBQuoterABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "_routerV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_factoryV1"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_factoryV2"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "bp"; readonly type: "uint256"; }]; readonly name: "BinHelper__BinStepOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BinHelper__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientLiquidity"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBQuoter_InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Math128x128__PowerUnderflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "denominator"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__OffsetOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "factoryV1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "factoryV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "_route"; readonly type: "address[]"; }, { readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }]; readonly name: "findBestPathFromAmountIn"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "fees"; readonly type: "uint256[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "_route"; readonly type: "address[]"; }, { readonly internalType: "uint256"; readonly name: "_amountOut"; readonly type: "uint256"; }]; readonly name: "findBestPathFromAmountOut"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "fees"; readonly type: "uint256[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "routerV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LBQuoterV21ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV1"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "legacyFactoryV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "factoryV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "legacyRouterV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "routerV2"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientLiquidity"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBQuoter_InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }]; readonly name: "findBestPathFromAmountIn"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "uint128[]"; readonly name: "amounts"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "fees"; readonly type: "uint128[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }]; readonly name: "findBestPathFromAmountOut"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "uint128[]"; readonly name: "amounts"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "fees"; readonly type: "uint128[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyFactoryV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "legacyFactoryV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyRouterV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "legacyRouterV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getRouterV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "routerV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LBQuoterV22ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV1"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "legacyFactoryV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "factoryV2_1"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "factoryV2_2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "legacyRouterV2"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "routerV2_1"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "routerV2_2"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientLiquidity"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBQuoter_InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }]; readonly name: "findBestPathFromAmountIn"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "uint128[]"; readonly name: "amounts"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "fees"; readonly type: "uint128[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }]; readonly name: "findBestPathFromAmountOut"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address[]"; readonly name: "route"; readonly type: "address[]"; }, { readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "binSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "uint128[]"; readonly name: "amounts"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "virtualAmountsWithoutSlippage"; readonly type: "uint128[]"; }, { readonly internalType: "uint128[]"; readonly name: "fees"; readonly type: "uint128[]"; }]; readonly internalType: "struct LBQuoter.Quote"; readonly name: "quote"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV2_1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV2_1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV2_2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "factoryV2_2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyFactoryV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "legacyFactoryV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyRouterV2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "legacyRouterV2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getRouterV2_1"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "routerV2_1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getRouterV2_2"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "routerV2_2"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LBRouterABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "_factory"; readonly type: "address"; }, { readonly internalType: "contract IJoeFactory"; readonly name: "_oldFactory"; readonly type: "address"; }, { readonly internalType: "contract IWAVAX"; readonly name: "_wavax"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "bp"; readonly type: "uint256"; }]; readonly name: "BinHelper__BinStepOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "id"; readonly type: "int256"; }]; readonly name: "BinHelper__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "BinHelper__IntOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "LBRouter__AmountSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__BinReserveOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__BrokenSwapSafetyCheck"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentTimestamp"; readonly type: "uint256"; }]; readonly name: "LBRouter__DeadlineExceeded"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBRouter__FailedToSendAVAX"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "idDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdDesiredOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "id"; readonly type: "int256"; }]; readonly name: "LBRouter__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly name: "LBRouter__InsufficientAmountOut"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "wrongToken"; readonly type: "address"; }]; readonly name: "LBRouter__InvalidTokenPath"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__LengthsMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }]; readonly name: "LBRouter__MaxAmountInExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__NotFactoryOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBRouter__PairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__SenderIsNotWAVAX"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__SwapOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "excess"; readonly type: "uint256"; }]; readonly name: "LBRouter__TooMuchTokensIn"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserve"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongAmounts"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "msgValue"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongAvaxLiquidityParameters"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__WrongTokenOrder"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Math128x128__LogUnderflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Math128x128__PowerUnderflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "denominator"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "prod1"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "offset"; readonly type: "uint256"; }]; readonly name: "Math512Bits__OffsetOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }]; readonly name: "SafeCast__Exceeds40Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "_liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "_liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidityAVAX"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "_activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "factory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_price"; readonly type: "uint256"; }]; readonly name: "getIdFromPrice"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: ""; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "_id"; readonly type: "uint24"; }]; readonly name: "getPriceFromId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_amountOut"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "_swapForY"; readonly type: "bool"; }]; readonly name: "getSwapIn"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "feesIn"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "_LBPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "_swapForY"; readonly type: "bool"; }]; readonly name: "getSwapOut"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "feesIn"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "oldFactory"; readonly outputs: readonly [{ readonly internalType: "contract IJoeFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "_tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "_amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_token"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "_binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "_amountTokenMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountAVAXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address payable"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidityAVAX"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountAVAX"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountOut"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapAVAXForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactAVAXForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactAVAXForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountOutMinAVAX"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address payable"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForAVAX"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountOutMinAVAX"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address payable"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForAVAXSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountAVAXOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountInMax"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address payable"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactAVAX"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "_amountOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "_amountInMax"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "_pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "_tokenPath"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_amount"; readonly type: "uint256"; }]; readonly name: "sweep"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBToken"; readonly name: "_lbToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "_to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "_ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "_amounts"; readonly type: "uint256[]"; }]; readonly name: "sweepLBToken"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "wavax"; readonly outputs: readonly [{ readonly internalType: "contract IWAVAX"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const LBRouterV21ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factory"; readonly type: "address"; }, { readonly internalType: "contract IJoeFactory"; readonly name: "factoryV1"; readonly type: "address"; }, { readonly internalType: "contract ILBLegacyFactory"; readonly name: "legacyFactory"; readonly type: "address"; }, { readonly internalType: "contract ILBLegacyRouter"; readonly name: "legacyRouter"; readonly type: "address"; }, { readonly internalType: "contract IWNATIVE"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "AddressHelper__CallFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AddressHelper__NonContract"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientLiquidity"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountSlippage"; readonly type: "uint256"; }]; readonly name: "LBRouter__AmountSlippageBPTooBig"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "LBRouter__AmountSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__BinReserveOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__BrokenSwapSafetyCheck"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentTimestamp"; readonly type: "uint256"; }]; readonly name: "LBRouter__DeadlineExceeded"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBRouter__FailedToSendNATIVE"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "idDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdDesiredOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "id"; readonly type: "int256"; }]; readonly name: "LBRouter__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly name: "LBRouter__InsufficientAmountOut"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "wrongToken"; readonly type: "address"; }]; readonly name: "LBRouter__InvalidTokenPath"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "version"; readonly type: "uint256"; }]; readonly name: "LBRouter__InvalidVersion"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__LengthsMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }]; readonly name: "LBRouter__MaxAmountInExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__NotFactoryOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBRouter__PairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__SenderIsNotWNATIVE"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__SwapOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "excess"; readonly type: "uint256"; }]; readonly name: "LBRouter__TooMuchTokensIn"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserve"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongAmounts"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "msgValue"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongNativeLiquidityParameters"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__WrongTokenOrder"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__TransferFailed"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "refundTo"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "refundTo"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidityNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "lbFactory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly name: "getIdFromPrice"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: ""; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBLegacyFactory"; readonly name: "legacyLBfactory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyRouter"; readonly outputs: readonly [{ readonly internalType: "contract ILBLegacyRouter"; readonly name: "legacyRouter"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "getPriceFromId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapIn"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOutLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapOut"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountInLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getV1Factory"; readonly outputs: readonly [{ readonly internalType: "contract IJoeFactory"; readonly name: "factoryV1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getWNATIVE"; readonly outputs: readonly [{ readonly internalType: "contract IWNATIVE"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "amountTokenMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountNATIVEMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidityNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountNATIVE"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactNATIVEForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactNATIVEForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMinNATIVE"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMinNATIVE"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForNATIVESupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapNATIVEForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountNATIVEOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "sweep"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBToken"; readonly name: "lbToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "sweepLBToken"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const LBRouterV22ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factory2_2"; readonly type: "address"; }, { readonly internalType: "contract IJoeFactory"; readonly name: "factoryV1"; readonly type: "address"; }, { readonly internalType: "contract ILBLegacyFactory"; readonly name: "legacyFactory"; readonly type: "address"; }, { readonly internalType: "contract ILBLegacyRouter"; readonly name: "legacyRouter"; readonly type: "address"; }, { readonly internalType: "contract ILBFactory"; readonly name: "factory2_1"; readonly type: "address"; }, { readonly internalType: "contract IWNATIVE"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "JoeLibrary__InsufficientLiquidity"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountSlippage"; readonly type: "uint256"; }]; readonly name: "LBRouter__AmountSlippageBPTooBig"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "LBRouter__AmountSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__BinReserveOverflows"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__BrokenSwapSafetyCheck"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "currentTimestamp"; readonly type: "uint256"; }]; readonly name: "LBRouter__DeadlineExceeded"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBRouter__FailedToSendNATIVE"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "idDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdDesiredOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "int256"; readonly name: "id"; readonly type: "int256"; }]; readonly name: "LBRouter__IdOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly name: "LBRouter__IdSlippageCaught"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly name: "LBRouter__InsufficientAmountOut"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "wrongToken"; readonly type: "address"; }]; readonly name: "LBRouter__InvalidTokenPath"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "version"; readonly type: "uint256"; }]; readonly name: "LBRouter__InvalidVersion"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__LengthsMismatch"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }]; readonly name: "LBRouter__MaxAmountInExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__NotFactoryOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBRouter__PairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__SenderIsNotWNATIVE"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "LBRouter__SwapOverflows"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "excess"; readonly type: "uint256"; }]; readonly name: "LBRouter__TooMuchTokensIn"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reserve"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongAmounts"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "msgValue"; readonly type: "uint256"; }]; readonly name: "LBRouter__WrongNativeLiquidityParameters"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBRouter__WrongTokenOrder"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PackedUint128Math__SubUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__TransferFailed"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "refundTo"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeIdDesired"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "idSlippage"; readonly type: "uint256"; }, { readonly internalType: "int256[]"; readonly name: "deltaIds"; readonly type: "int256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "distributionY"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "refundTo"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly internalType: "struct ILBRouter.LiquidityParameters"; readonly name: "liquidityParameters"; readonly type: "tuple"; }]; readonly name: "addLiquidityNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountXAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYAdded"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountXLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYLeft"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "depositIds"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "lbFactory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactoryV2_1"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "lbFactory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly name: "getIdFromPrice"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: ""; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBLegacyFactory"; readonly name: "legacyLBfactory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLegacyRouter"; readonly outputs: readonly [{ readonly internalType: "contract ILBLegacyRouter"; readonly name: "legacyRouter"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "getPriceFromId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapIn"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOutLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapOut"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountInLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getV1Factory"; readonly outputs: readonly [{ readonly internalType: "contract IJoeFactory"; readonly name: "factoryV1"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getWNATIVE"; readonly outputs: readonly [{ readonly internalType: "contract IWNATIVE"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "amountXMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountYMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidity"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint256"; readonly name: "amountTokenMin"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountNATIVEMin"; readonly type: "uint256"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "removeLiquidityNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountToken"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountNATIVE"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactNATIVEForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactNATIVEForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMinNATIVE"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMinNATIVE"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForNATIVESupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountIn"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountOutMin"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapExactTokensForTokensSupportingFeeOnTransferTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapNATIVEForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountNATIVEOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address payable"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactNATIVE"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountOut"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountInMax"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly internalType: "uint256[]"; readonly name: "pairBinSteps"; readonly type: "uint256[]"; }, { readonly internalType: "enum ILBRouter.Version[]"; readonly name: "versions"; readonly type: "uint8[]"; }, { readonly internalType: "contract IERC20[]"; readonly name: "tokenPath"; readonly type: "address[]"; }]; readonly internalType: "struct ILBRouter.Path"; readonly name: "path"; readonly type: "tuple"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "deadline"; readonly type: "uint256"; }]; readonly name: "swapTokensForExactTokens"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsIn"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "sweep"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBToken"; readonly name: "lbToken"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "sweepLBToken"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const LBRewarderABI: readonly [{ readonly inputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }]; readonly name: "Rewarder__AlreadySetForEpoch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__ClawbackDelayNotPassed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__ClawbackDelayTooLow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__EmptyMerkleEntries"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__EpochCanceled"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__EpochDoesNotExist"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }]; readonly name: "Rewarder__InsufficientBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidEpoch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidProof"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidRoot"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__InvalidStart"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__MarketAlreadyWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__MarketNotWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__NativeTransferFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__OnlyClaimForSelf"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__OnlyValidLatestEpoch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__OverlappingEpoch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Rewarder__ZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeAccessControl__DefaultAdminRoleBoundToOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "SafeAccessControl__OnlyOwnerOrRole"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint96"; readonly name: "newClawbackDelay"; readonly type: "uint96"; }]; readonly name: "ClawbackDelayUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "newClawbackRecipient"; readonly type: "address"; }]; readonly name: "ClawbackRecipientUpdated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint128"; readonly name: "start"; readonly type: "uint128"; }, { readonly indexed: false; readonly internalType: "uint128"; readonly name: "duration"; readonly type: "uint128"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "root"; readonly type: "bytes32"; }]; readonly name: "EpochAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }]; readonly name: "EpochCanceled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint8"; readonly name: "version"; readonly type: "uint8"; }]; readonly name: "Initialized"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "MarketAddedToWhitelist"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "MarketRemovedFromWhitelist"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferStarted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "Paused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "released"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "unreleased"; readonly type: "uint256"; }]; readonly name: "RewardClaimed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "clawbackAmount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "RewardClawedBack"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "previousAdminRole"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "newAdminRole"; readonly type: "bytes32"; }]; readonly name: "RoleAdminChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "RoleGranted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "RoleRevoked"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "Unpaused"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "CLAWBACK_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "DEFAULT_ADMIN_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "PAUSER_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "UNPAUSER_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "acceptOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "addMarketToWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly internalType: "struct IRewarder.MerkleEntry[]"; readonly name: "merkleEntries"; readonly type: "tuple[]"; }]; readonly name: "batchClaim"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly internalType: "struct IRewarder.MerkleEntry[]"; readonly name: "merkleEntries"; readonly type: "tuple[]"; }]; readonly name: "batchClawback"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }]; readonly name: "cancelEpoch"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly name: "claim"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly name: "clawback"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly internalType: "struct IRewarder.MerkleEntry[]"; readonly name: "merkleEntries"; readonly type: "tuple[]"; }]; readonly name: "getBatchReleasableAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "releasableAmounts"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getClawbackParameters"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "clawbackRecipient"; readonly type: "address"; }, { readonly internalType: "uint96"; readonly name: "clawbackDelay"; readonly type: "uint96"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }]; readonly name: "getEpochParameters"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "bytes32"; readonly name: "root"; readonly type: "bytes32"; }, { readonly internalType: "uint128"; readonly name: "start"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "duration"; readonly type: "uint128"; }]; readonly internalType: "struct IRewarder.EpochParameters"; readonly name: "params"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "getNumberOfEpochs"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "epochs"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfWhitelistedMarkets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "count"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly name: "getReleasableAmount"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "releasable"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getReleased"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "released"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "getRoleAdmin"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getWhitelistedMarket"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "grantRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "hasRole"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint96"; readonly name: "clawbackDelay"; readonly type: "uint96"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "isMarketWhitelisted"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isWhitelisted"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "paused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }]; readonly name: "removeMarketFromWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "renounceRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "revokeRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint96"; readonly name: "newClawbackDelay"; readonly type: "uint96"; }]; readonly name: "setClawbackDelay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newRecipient"; readonly type: "address"; }]; readonly name: "setClawbackRecipient"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "uint128"; readonly name: "start"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "duration"; readonly type: "uint128"; }, { readonly internalType: "contract IERC20Upgradeable[]"; readonly name: "tokens"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "totalAmountToRelease"; readonly type: "uint256[]"; }, { readonly internalType: "bytes32"; readonly name: "root"; readonly type: "bytes32"; }]; readonly name: "setNewEpoch"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes4"; readonly name: "interfaceId"; readonly type: "bytes4"; }]; readonly name: "supportsInterface"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "unpause"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "market"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "epoch"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "bytes32[]"; readonly name: "merkleProof"; readonly type: "bytes32[]"; }]; readonly name: "verify"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isValid"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const VaultABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IVaultFactory"; readonly name: "factory"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "BaseVault__AlreadyWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__BurnMinShares"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__DepositsPaused"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidNativeAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidRecipient"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidRound"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidShares"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidStrategy"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__InvalidToken"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__MaxSharesExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__NativeTransferFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__NoNativeToken"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__NoQueuedWithdrawal"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__NotInEmergencyMode"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "BaseVault__NotWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__OnlyFactory"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__OnlyStrategy"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__OnlyWNative"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__SameStrategy"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__SameWhitelistState"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__Unauthorized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__ZeroAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BaseVault__ZeroShares"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SimpleVault__AmountsOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SimpleVault__ZeroCross"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "Approval"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly name: "Deposited"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "DepositsPaused"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "DepositsResumed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly []; readonly name: "EmergencyMode"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "EmergencyWithdrawal"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint8"; readonly name: "version"; readonly type: "uint8"; }]; readonly name: "Initialized"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Recovered"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }]; readonly name: "StrategySet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "value"; readonly type: "uint256"; }]; readonly name: "Transfer"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "WhitelistAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "WhitelistRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "WhitelistStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly name: "WithdrawalCancelled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "totalQueuedQhares"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "WithdrawalExecuted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly name: "WithdrawalQueued"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "WithdrawalRedeemed"; readonly type: "event"; }, { readonly stateMutability: "payable"; readonly type: "fallback"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "addToWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly name: "allowance"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "approve"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly name: "cancelQueuedWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "decimals"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "subtractedValue"; readonly type: "uint256"; }]; readonly name: "decreaseAllowance"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "deposit"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "depositNative"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveY"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "emergencyWithdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "executeQueuedWithdrawals"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAumAnnualFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBalances"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getCurrentRound"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getCurrentTotalQueuedWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalQueuedShares"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactory"; readonly outputs: readonly [{ readonly internalType: "contract IVaultFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getOperators"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "defaultOperator"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "operator"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getQueuedWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getRange"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: "low"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "upper"; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getRedeemableAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getStrategy"; readonly outputs: readonly [{ readonly internalType: "contract IStrategy"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getTokenX"; readonly outputs: readonly [{ readonly internalType: "contract IERC20Upgradeable"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getTokenY"; readonly outputs: readonly [{ readonly internalType: "contract IERC20Upgradeable"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }]; readonly name: "getTotalQueuedWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalQueuedShares"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "addedValue"; readonly type: "uint256"; }]; readonly name: "increaseAllowance"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "string"; readonly name: "name"; readonly type: "string"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isDepositsPaused"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "paused"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "isWhitelisted"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "whitelisted"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "isWhitelistedOnly"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "whitelist"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pauseDeposits"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }]; readonly name: "previewAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "previewShares"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "effectiveY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "queueWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "recoverERC20"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "redeemQueuedWithdrawal"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "round"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }]; readonly name: "redeemQueuedWithdrawalNative"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "removeFromWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "resumeDeposits"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "setEmergencyMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IStrategy"; readonly name: "newStrategy"; readonly type: "address"; }]; readonly name: "setStrategy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "state"; readonly type: "bool"; }]; readonly name: "setWhitelistState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transfer"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "transferFrom"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const VaultFactoryABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "wnative"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidDecimals"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidOraclePrice"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidStrategy"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "VaultFactory__InvalidType"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }]; readonly name: "VaultFactory__StrategyImplementationNotSet"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }]; readonly name: "VaultFactory__VaultImplementationNotSet"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "defaultOperator"; readonly type: "address"; }]; readonly name: "DefaultOperatorSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "FeeRecipientSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint8"; readonly name: "version"; readonly type: "uint8"; }]; readonly name: "Initialized"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferStarted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "strategyIndex"; readonly type: "uint256"; }]; readonly name: "StrategyCreated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "strategyImplementation"; readonly type: "address"; }]; readonly name: "StrategyImplementationSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "vaultIndex"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }]; readonly name: "VaultCreated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "vaultImplementation"; readonly type: "address"; }]; readonly name: "VaultImplementationSet"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "acceptOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "addToWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "vaults"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "rounds"; readonly type: "uint256[]"; }, { readonly internalType: "bool[]"; readonly name: "withdrawNative"; readonly type: "bool[]"; }]; readonly name: "batchRedeemQueuedWithdrawals"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "createDefaultStrategy"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "contract IAggregatorV3"; readonly name: "dataFeedX"; readonly type: "address"; }, { readonly internalType: "contract IAggregatorV3"; readonly name: "dataFeedY"; readonly type: "address"; }]; readonly name: "createOracleVault"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "contract IAggregatorV3"; readonly name: "dataFeedX"; readonly type: "address"; }, { readonly internalType: "contract IAggregatorV3"; readonly name: "dataFeedY"; readonly type: "address"; }]; readonly name: "createOracleVaultAndDefaultStrategy"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }]; readonly name: "createSimpleVault"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }]; readonly name: "createSimpleVaultAndDefaultStrategy"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getDefaultOperator"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFeeRecipient"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }]; readonly name: "getNumberOfStrategies"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }]; readonly name: "getNumberOfVaults"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getStrategyAt"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }]; readonly name: "getStrategyImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }]; readonly name: "getStrategyType"; readonly outputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }, { readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getVaultAt"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }]; readonly name: "getVaultImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "getVaultType"; readonly outputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getWNative"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "strategy"; readonly type: "address"; }]; readonly name: "linkVaultToStrategy"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "pauseDeposits"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "contract IERC20Upgradeable"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "recipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "recoverERC20"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "address[]"; readonly name: "addresses"; readonly type: "address[]"; }]; readonly name: "removeFromWhitelist"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "resetPendingAumAnnualFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "resumeDeposits"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "defaultOperator"; readonly type: "address"; }]; readonly name: "setDefaultOperator"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }]; readonly name: "setEmergencyMode"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "setFeeRecipient"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "operator"; readonly type: "address"; }]; readonly name: "setOperator"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "pendingAumAnnualFee"; readonly type: "uint16"; }]; readonly name: "setPendingAumAnnualFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "sType"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "strategyImplementation"; readonly type: "address"; }]; readonly name: "setStrategyImplementation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vType"; readonly type: "uint8"; }, { readonly internalType: "address"; readonly name: "vaultImplementation"; readonly type: "address"; }]; readonly name: "setVaultImplementation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "isWhitelisted"; readonly type: "bool"; }]; readonly name: "setWhitelistState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const LBFactoryV21ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "LBFactory__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepHasNoPreset"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepTooLow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "fees"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxFees"; readonly type: "uint256"; }]; readonly name: "LBFactory__FlashLoanFeeAboveMax"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }]; readonly name: "LBFactory__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__ImplementationNotSet"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairAlreadyExists"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairDoesNotExist"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__LBPairSafetyCheckFailed"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__PresetIsLockedForUsers"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__PresetOpenStateIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetAlreadyWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetNotWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "LBFactory__SameFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly name: "LBFactory__SameFlashLoanFee"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__SameImplementation"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PairParametersHelper__InvalidParameter"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NoPendingOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NotOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__NotPendingOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PendingOwnable__PendingOwnerAlreadySet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds16Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldRecipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newRecipient"; readonly type: "address"; }]; readonly name: "FeeRecipientSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldFlashLoanFee"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newFlashLoanFee"; readonly type: "uint256"; }]; readonly name: "FlashLoanFeeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "LBPairCreated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "ignored"; readonly type: "bool"; }]; readonly name: "LBPairIgnoredStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldLBPairImplementation"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBPairImplementationSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "pendingOwner"; readonly type: "address"; }]; readonly name: "PendingOwnerSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "PresetOpenStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "PresetRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint256"; }]; readonly name: "PresetSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetRemoved"; readonly type: "event"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "addQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "becomeOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly name: "forceDecay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllBinSteps"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "binStepWithPreset"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }]; readonly name: "getAllLBPairs"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation[]"; readonly name: "lbPairsAvailable"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFeeRecipient"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFlashLoanFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getLBPairAtIndex"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLBPairImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "lbPairImplementation"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenA"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenB"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "getLBPairInformation"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation"; readonly name: "lbPairInformation"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMaxFlashLoanFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "maxFee"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMinBinStep"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "minBinStep"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfLBPairs"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "lbPairNumber"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfQuoteAssets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "numberOfQuoteAssets"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getOpenBinSteps"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "openBinStep"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "getPreset"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getQuoteAssetAtIndex"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "asset"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }]; readonly name: "isQuoteAsset"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isQuote"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "removePreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "removeQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "revokePendingOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "setFeeRecipient"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }]; readonly name: "setFeesParametersOnPair"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly name: "setFlashLoanFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "bool"; readonly name: "ignored"; readonly type: "bool"; }]; readonly name: "setLBPairIgnored"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newLBPairImplementation"; readonly type: "address"; }]; readonly name: "setLBPairImplementation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pendingOwner_"; readonly type: "address"; }]; readonly name: "setPendingOwner"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "setPreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "setPresetOpenState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const LBFactoryV22ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "initialOwner"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "AccessControlBadConfirmation"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "neededRole"; readonly type: "bytes32"; }]; readonly name: "AccessControlUnauthorizedAccount"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "key"; readonly type: "bytes32"; }]; readonly name: "EnumerableMapNonexistentKey"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepHasNoPreset"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__BinStepTooLow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__CannotGrantDefaultAdminRole"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "fees"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxFees"; readonly type: "uint256"; }]; readonly name: "LBFactory__FlashLoanFeeAboveMax"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }]; readonly name: "LBFactory__IdenticalAddresses"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__ImplementationNotSet"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__InvalidHooksParameters"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "_binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairAlreadyExists"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairDoesNotExist"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__LBPairIgnoredIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__LBPairNotCreated"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__LBPairSafetyCheckFailed"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "LBFactory__PresetIsLockedForUsers"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBFactory__PresetOpenStateIsAlreadyInTheSameState"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetAlreadyWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "LBFactory__QuoteAssetNotWhitelisted"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "LBFactory__SameFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly name: "LBFactory__SameFlashLoanFee"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "hooksImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__SameHooksImplementation"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "hooksParameters"; readonly type: "bytes32"; }]; readonly name: "LBFactory__SameHooksParameters"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBFactory__SameImplementation"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly name: "OwnableInvalidOwner"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "OwnableUnauthorizedAccount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PairParametersHelper__InvalidParameter"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds16Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldRecipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "newRecipient"; readonly type: "address"; }]; readonly name: "FeeRecipientSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "oldFlashLoanFee"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "newFlashLoanFee"; readonly type: "uint256"; }]; readonly name: "FlashLoanFeeSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "LBPairCreated"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "ignored"; readonly type: "bool"; }]; readonly name: "LBPairIgnoredStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "address"; readonly name: "oldLBPairImplementation"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "address"; readonly name: "LBPairImplementation"; readonly type: "address"; }]; readonly name: "LBPairImplementationSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferStarted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "PresetOpenStateChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "PresetRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint256"; }]; readonly name: "PresetSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetAdded"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "QuoteAssetRemoved"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "previousAdminRole"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "bytes32"; readonly name: "newAdminRole"; readonly type: "bytes32"; }]; readonly name: "RoleAdminChanged"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "RoleGranted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }]; readonly name: "RoleRevoked"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "DEFAULT_ADMIN_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "LB_HOOKS_MANAGER_ROLE"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "acceptOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "addQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "createLBPair"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }]; readonly name: "forceDecay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllBinSteps"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "binStepWithPreset"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }]; readonly name: "getAllLBPairs"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation[]"; readonly name: "lbPairsAvailable"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFeeRecipient"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFlashLoanFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getLBPairAtIndex"; readonly outputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getLBPairImplementation"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: "lbPairImplementation"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenA"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenB"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "getLBPairInformation"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "contract ILBPair"; readonly name: "LBPair"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "createdByOwner"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "ignoredForRouting"; readonly type: "bool"; }]; readonly internalType: "struct ILBFactory.LBPairInformation"; readonly name: "lbPairInformation"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMaxFlashLoanFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "maxFee"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getMinBinStep"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "minBinStep"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfLBPairs"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "lbPairNumber"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getNumberOfQuoteAssets"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "numberOfQuoteAssets"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getOpenBinSteps"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "openBinStep"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "binStep"; readonly type: "uint256"; }]; readonly name: "getPreset"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "baseFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "filterPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "decayPeriod"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "reductionFactor"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "variableFeeControl"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "protocolShare"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "getQuoteAssetAtIndex"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "asset"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }]; readonly name: "getRoleAdmin"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: ""; readonly type: "bytes32"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "grantRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "hasRole"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }]; readonly name: "isQuoteAsset"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "isQuote"; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "removeLBHooksOnPair"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "removePreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "quoteAsset"; readonly type: "address"; }]; readonly name: "removeQuoteAsset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "callerConfirmation"; readonly type: "address"; }]; readonly name: "renounceRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes32"; readonly name: "role"; readonly type: "bytes32"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }]; readonly name: "revokeRole"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }]; readonly name: "setFeeRecipient"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }]; readonly name: "setFeesParametersOnPair"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "flashLoanFee"; readonly type: "uint256"; }]; readonly name: "setFlashLoanFee"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "bytes32"; readonly name: "hooksParameters"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "onHooksSetData"; readonly type: "bytes"; }]; readonly name: "setLBHooksParametersOnPair"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "bool"; readonly name: "ignored"; readonly type: "bool"; }]; readonly name: "setLBPairIgnored"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newLBPairImplementation"; readonly type: "address"; }]; readonly name: "setLBPairImplementation"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "setPreset"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "bool"; readonly name: "isOpen"; readonly type: "bool"; }]; readonly name: "setPresetOpenState"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bytes4"; readonly name: "interfaceId"; readonly type: "bytes4"; }]; readonly name: "supportsInterface"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const LBPairV21ABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factory_"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "AddressHelper__CallFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "AddressHelper__NonContract"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "BinHelper__CompositionFactorFlawed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "BinHelper__LiquidityOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "FeeHelper__FeeOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__AddressZero"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__AlreadyInitialized"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__EmptyMarketConfigs"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__FlashLoanCallbackFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__FlashLoanInsufficientAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__InsufficientAmountIn"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__InsufficientAmountOut"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__InvalidInput"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__InvalidStaticFeeParameters"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__MaxTotalFeeExceeded"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__OnlyFactory"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__OnlyProtocolFeeRecipient"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__OutOfLiquidity"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__TokenNotSupported"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "LBPair__ZeroAmount"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "LBPair__ZeroAmountsOut"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBPair__ZeroBorrowAmount"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "LBPair__ZeroShares"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__AddressThisOrZero"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBToken__BurnExceedsBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LBToken__InvalidLength"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }]; readonly name: "LBToken__SelfApproval"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly name: "LBToken__SpenderNotApproved"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "LBToken__TransferExceedsBalance"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LiquidityConfigurations__InvalidConfig"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "OracleHelper__InvalidOracleId"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "OracleHelper__LookUpTimestampTooOld"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "OracleHelper__NewLengthTooSmall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PackedUint128Math__AddOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PackedUint128Math__MultiplierTooLarge"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PackedUint128Math__SubUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PairParametersHelper__InvalidParameter"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "ReentrancyGuard__ReentrantCall"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds40Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "TokenHelper__TransferFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint128x128Math__LogUnderflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulShiftOverflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "approved"; readonly type: "bool"; }]; readonly name: "ApprovalForAll"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "feeRecipient"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "protocolFees"; readonly type: "bytes32"; }]; readonly name: "CollectedProtocolFees"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "totalFees"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "protocolFees"; readonly type: "bytes32"; }]; readonly name: "CompositionFees"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly indexed: false; readonly internalType: "bytes32[]"; readonly name: "amounts"; readonly type: "bytes32[]"; }]; readonly name: "DepositedToBins"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBFlashLoanCallback"; readonly name: "receiver"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "amounts"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "totalFees"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "protocolFees"; readonly type: "bytes32"; }]; readonly name: "FlashLoan"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "idReference"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "volatilityReference"; readonly type: "uint24"; }]; readonly name: "ForcedDecay"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "oracleLength"; readonly type: "uint16"; }]; readonly name: "OracleLengthIncreased"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }]; readonly name: "StaticFeeParametersSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "amountsIn"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "amountsOut"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "uint24"; readonly name: "volatilityAccumulator"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "totalFees"; readonly type: "bytes32"; }, { readonly indexed: false; readonly internalType: "bytes32"; readonly name: "protocolFees"; readonly type: "bytes32"; }]; readonly name: "Swap"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "TransferBatch"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly indexed: false; readonly internalType: "bytes32[]"; readonly name: "amounts"; readonly type: "bytes32[]"; }]; readonly name: "WithdrawnFromBins"; readonly type: "event"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "approved"; readonly type: "bool"; }]; readonly name: "approveForAll"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "balanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "accounts"; readonly type: "address[]"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "balanceOfBatch"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "batchBalances"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amounts"; readonly type: "uint256[]"; }]; readonly name: "batchTransferFrom"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "from"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsToBurn"; readonly type: "uint256[]"; }]; readonly name: "burn"; readonly outputs: readonly [{ readonly internalType: "bytes32[]"; readonly name: "amounts"; readonly type: "bytes32[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "collectProtocolFees"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: "collectedProtocolFees"; readonly type: "bytes32"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBFlashLoanCallback"; readonly name: "receiver"; readonly type: "address"; }, { readonly internalType: "bytes32"; readonly name: "amounts"; readonly type: "bytes32"; }, { readonly internalType: "bytes"; readonly name: "data"; readonly type: "bytes"; }]; readonly name: "flashLoan"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "forceDecay"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getActiveId"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "getBin"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "binReserveX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "binReserveY"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getBinStep"; readonly outputs: readonly [{ readonly internalType: "uint16"; readonly name: ""; readonly type: "uint16"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factory"; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly name: "getIdFromPrice"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }, { readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "getNextNonEmptyBin"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: "nextId"; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getOracleParameters"; readonly outputs: readonly [{ readonly internalType: "uint8"; readonly name: "sampleLifetime"; readonly type: "uint8"; }, { readonly internalType: "uint16"; readonly name: "size"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "activeSize"; readonly type: "uint16"; }, { readonly internalType: "uint40"; readonly name: "lastUpdated"; readonly type: "uint40"; }, { readonly internalType: "uint40"; readonly name: "firstTimestamp"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint40"; readonly name: "lookupTimestamp"; readonly type: "uint40"; }]; readonly name: "getOracleSampleAt"; readonly outputs: readonly [{ readonly internalType: "uint64"; readonly name: "cumulativeId"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "cumulativeVolatility"; readonly type: "uint64"; }, { readonly internalType: "uint64"; readonly name: "cumulativeBinCrossed"; readonly type: "uint64"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }]; readonly name: "getPriceFromId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "price"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getProtocolFees"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "protocolFeeX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "protocolFeeY"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getReserves"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "reserveX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "reserveY"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getStaticFeeParameters"; readonly outputs: readonly [{ readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapIn"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOutLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountIn"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }]; readonly name: "getSwapOut"; readonly outputs: readonly [{ readonly internalType: "uint128"; readonly name: "amountInLeft"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "amountOut"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "fee"; readonly type: "uint128"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getTokenX"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getTokenY"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getVariableFeeParameters"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: "volatilityAccumulator"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "volatilityReference"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "idReference"; readonly type: "uint24"; }, { readonly internalType: "uint40"; readonly name: "timeOfLastUpdate"; readonly type: "uint40"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "newLength"; readonly type: "uint16"; }]; readonly name: "increaseOracleLength"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "activeId"; readonly type: "uint24"; }]; readonly name: "initialize"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "owner"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "spender"; readonly type: "address"; }]; readonly name: "isApprovedForAll"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly internalType: "bytes32[]"; readonly name: "liquidityConfigs"; readonly type: "bytes32[]"; }, { readonly internalType: "address"; readonly name: "refundTo"; readonly type: "address"; }]; readonly name: "mint"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: "amountsReceived"; readonly type: "bytes32"; }, { readonly internalType: "bytes32"; readonly name: "amountsLeft"; readonly type: "bytes32"; }, { readonly internalType: "uint256[]"; readonly name: "liquidityMinted"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint16"; readonly name: "baseFactor"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "filterPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "decayPeriod"; readonly type: "uint16"; }, { readonly internalType: "uint16"; readonly name: "reductionFactor"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "variableFeeControl"; readonly type: "uint24"; }, { readonly internalType: "uint16"; readonly name: "protocolShare"; readonly type: "uint16"; }, { readonly internalType: "uint24"; readonly name: "maxVolatilityAccumulator"; readonly type: "uint24"; }]; readonly name: "setStaticFeeParameters"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "bool"; readonly name: "swapForY"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "swap"; readonly outputs: readonly [{ readonly internalType: "bytes32"; readonly name: "amountsOut"; readonly type: "bytes32"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "symbol"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "id"; readonly type: "uint256"; }]; readonly name: "totalSupply"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LiquidityAmountsHelperABI: readonly [{ readonly inputs: readonly []; readonly name: "LiquidityAmounts__LengthMismatch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulShiftOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "LBPair"; readonly type: "address"; }]; readonly name: "getAmountsAndLiquiditiesOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "totalSupplies"; readonly type: "uint256[]"; }, { readonly internalType: "uint112[]"; readonly name: "binReservesX"; readonly type: "uint112[]"; }, { readonly internalType: "uint112[]"; readonly name: "binReservesY"; readonly type: "uint112[]"; }]; readonly name: "getAmountsForLiquidities"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "LBPair"; readonly type: "address"; }]; readonly name: "getAmountsOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "LBPair"; readonly type: "address"; }]; readonly name: "getBalanceOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "balances"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "uint112"; readonly name: "amountX"; readonly type: "uint112"; }, { readonly internalType: "uint112"; readonly name: "amountY"; readonly type: "uint112"; }]; readonly name: "getLiquiditiesForAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "address"; readonly name: "LBPair"; readonly type: "address"; }]; readonly name: "getTotalAmountsOf"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "totalAmountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalAmountY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LiquidityHelperV2ABI: readonly [{ readonly inputs: readonly []; readonly name: "BinHelper__LiquidityOverflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "FeesAmounts__LengthMismatch"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds24Bits"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "x"; readonly type: "uint256"; }, { readonly internalType: "int256"; readonly name: "y"; readonly type: "int256"; }]; readonly name: "Uint128x128Math__PowUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "previousX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "previousY"; readonly type: "uint256[]"; }]; readonly name: "getAmountsAndFeesEarnedOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "feesX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "feesY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly name: "getAmountsForLiquidities"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "shares"; readonly type: "uint256[]"; }]; readonly name: "getAmountsForShares"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getAmountsOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "lengthLeft"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "lengthRight"; readonly type: "uint24"; }]; readonly name: "getBinsReserveOf"; readonly outputs: readonly [{ readonly internalType: "uint24"; readonly name: ""; readonly type: "uint24"; }, { readonly components: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }, { readonly internalType: "uint128"; readonly name: "reserveX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "reserveY"; readonly type: "uint128"; }, { readonly internalType: "uint256"; readonly name: "shares"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalShares"; readonly type: "uint256"; }]; readonly internalType: "struct NonEmptyBinHelper.PopulatedBinUser[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "previousLiquidities"; readonly type: "uint256[]"; }]; readonly name: "getFeeSharesAndFeesEarnedOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "feeShares"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "feesX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "feesY"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly name: "getLiquiditiesForAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "shares"; readonly type: "uint256[]"; }]; readonly name: "getLiquiditiesForShares"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getLiquiditiesOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "start"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "end"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "length"; readonly type: "uint24"; }]; readonly name: "getPopulatedBinsId"; readonly outputs: readonly [{ readonly internalType: "bytes"; readonly name: ""; readonly type: "bytes"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "uint24"; readonly name: "start"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "end"; readonly type: "uint24"; }, { readonly internalType: "uint24"; readonly name: "length"; readonly type: "uint24"; }]; readonly name: "getPopulatedBinsReserves"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint24"; readonly name: "id"; readonly type: "uint24"; }, { readonly internalType: "uint128"; readonly name: "reserveX"; readonly type: "uint128"; }, { readonly internalType: "uint128"; readonly name: "reserveY"; readonly type: "uint128"; }]; readonly internalType: "struct NonEmptyBinHelper.PopulatedBin[]"; readonly name: ""; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsX"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "amountsY"; readonly type: "uint256[]"; }]; readonly name: "getSharesForAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "shares"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }, { readonly internalType: "uint256[]"; readonly name: "liquidities"; readonly type: "uint256[]"; }]; readonly name: "getSharesForLiquidities"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "shares"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getSharesOf"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "balances"; readonly type: "uint256[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LimitOrderManagerABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: "factory"; readonly type: "address"; }, { readonly internalType: "contract IWNATIVE"; readonly name: "wNative"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InsufficientWithdrawalAmounts"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InvalidBatchLength"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InvalidExecutorFeeShare"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InvalidNativeAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InvalidPair"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__InvalidTokenOrder"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OnlyFactoryOwner"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OnlyWNative"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OrderAlreadyExecuted"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OrderNotClaimable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OrderNotExecutable"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__OrderNotPlaced"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__TransferFailed"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__ZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "LimitOrderManager__ZeroAmount"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "PackedUint128Math__SubUnderflow"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "SafeCast__Exceeds128Bits"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "Uint256x256Math__MulDivOverflow"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "executor"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "ExecutionFeePaid"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: false; readonly internalType: "uint256"; readonly name: "executorFeeShare"; readonly type: "uint256"; }]; readonly name: "ExecutorFeeShareSet"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "OrderCancelled"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "OrderClaimed"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "sender"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "OrderExecuted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract ILBPair"; readonly name: "lbPair"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly indexed: false; readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }]; readonly name: "OrderPlaced"; readonly type: "event"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "minAmountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minAmountY"; readonly type: "uint256"; }]; readonly internalType: "struct ILimitOrderManager.CancelOrderParams[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchCancelOrders"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly components: readonly [{ readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "minAmountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minAmountY"; readonly type: "uint256"; }]; readonly internalType: "struct ILimitOrderManager.CancelOrderParamsSamePair[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchCancelOrdersSamePair"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly internalType: "struct ILimitOrderManager.OrderParams[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchClaimOrders"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly components: readonly [{ readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly internalType: "struct ILimitOrderManager.OrderParamsSamePair[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchClaimOrdersSamePair"; readonly outputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly internalType: "struct ILimitOrderManager.OrderParams[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchExecuteOrders"; readonly outputs: readonly [{ readonly internalType: "bool[]"; readonly name: "orderExecuted"; readonly type: "bool[]"; }, { readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly components: readonly [{ readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly internalType: "struct ILimitOrderManager.OrderParamsSamePair[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchExecuteOrdersSamePair"; readonly outputs: readonly [{ readonly internalType: "bool[]"; readonly name: "orderExecuted"; readonly type: "bool[]"; }, { readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ILimitOrderManager.PlaceOrderParams[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchPlaceOrders"; readonly outputs: readonly [{ readonly internalType: "bool[]"; readonly name: "orderPlaced"; readonly type: "bool[]"; }, { readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly components: readonly [{ readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly internalType: "struct ILimitOrderManager.PlaceOrderParamsSamePair[]"; readonly name: "orders"; readonly type: "tuple[]"; }]; readonly name: "batchPlaceOrdersSamePair"; readonly outputs: readonly [{ readonly internalType: "bool[]"; readonly name: "orderPlaced"; readonly type: "bool[]"; }, { readonly internalType: "uint256[]"; readonly name: "orderPositionIds"; readonly type: "uint256[]"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "minAmountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "minAmountY"; readonly type: "uint256"; }]; readonly name: "cancelOrder"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "orderPositionId"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly name: "claimOrder"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "orderPositionId"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly name: "executeOrders"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "executed"; readonly type: "bool"; }, { readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }]; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getCurrentAmounts"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "amountX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountY"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "executionFeeX"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "executionFeeY"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }]; readonly name: "getExecutionFee"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "fee"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getExecutorFeeShare"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getFactory"; readonly outputs: readonly [{ readonly internalType: "contract ILBFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly name: "getLastPositionId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getOrder"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }]; readonly internalType: "struct ILimitOrderManager.Order"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "positionId"; readonly type: "uint256"; }]; readonly name: "getPosition"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "liquidity"; readonly type: "uint256"; }, { readonly internalType: "uint128"; readonly name: "amount"; readonly type: "uint128"; }, { readonly internalType: "bool"; readonly name: "withdrawn"; readonly type: "bool"; }]; readonly internalType: "struct ILimitOrderManager.Position"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getWNative"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }]; readonly name: "isOrderExecutable"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "name"; readonly outputs: readonly [{ readonly internalType: "string"; readonly name: ""; readonly type: "string"; }]; readonly stateMutability: "pure"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "contract IERC20"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint16"; readonly name: "binStep"; readonly type: "uint16"; }, { readonly internalType: "enum ILimitOrderManager.OrderType"; readonly name: "orderType"; readonly type: "uint8"; }, { readonly internalType: "uint24"; readonly name: "binId"; readonly type: "uint24"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "placeOrder"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: "orderPlaced"; readonly type: "bool"; }, { readonly internalType: "uint256"; readonly name: "orderPositionId"; readonly type: "uint256"; }]; readonly stateMutability: "payable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "executorFeeShare"; readonly type: "uint256"; }]; readonly name: "setExecutorFeeShare"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly stateMutability: "payable"; readonly type: "receive"; }]; declare const APTFarmABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "_joe"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "APTFarm__EmptyArray"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "deposit"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amountWithdrawn"; readonly type: "uint256"; }]; readonly name: "APTFarm__InsufficientDeposit"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "APTFarm__InvalidAPToken"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "APTFarm__InvalidFarmIndex"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "APTFarm__InvalidJoePerSec"; readonly type: "error"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "apToken"; readonly type: "address"; }]; readonly name: "APTFarm__TokenAlreadyHasFarm"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "APTFarm__ZeroAddress"; readonly type: "error"; }, { readonly inputs: readonly []; readonly name: "APTFarm__ZeroAmount"; readonly type: "error"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "allocPoint"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "contract IERC20"; readonly name: "apToken"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "Add"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256[]"; readonly name: "pids"; readonly type: "uint256[]"; }]; readonly name: "BatchHarvest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Deposit"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "EmergencyWithdraw"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "unpaidAmount"; readonly type: "uint256"; }]; readonly name: "Harvest"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferStarted"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "previousOwner"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "OwnershipTransferred"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "allocPoint"; readonly type: "uint256"; }, { readonly indexed: true; readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "bool"; readonly name: "overwrite"; readonly type: "bool"; }]; readonly name: "Set"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Skim"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "lastRewardTimestamp"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "lpSupply"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "accJoePerShare"; readonly type: "uint256"; }]; readonly name: "UpdateFarm"; readonly type: "event"; }, { readonly anonymous: false; readonly inputs: readonly [{ readonly indexed: true; readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly indexed: true; readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly indexed: false; readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "Withdraw"; readonly type: "event"; }, { readonly inputs: readonly []; readonly name: "acceptOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IERC20"; readonly name: "apToken"; readonly type: "address"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "add"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly name: "apTokenBalances"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "deposit"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "emergencyWithdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }]; readonly name: "farmInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IERC20"; readonly name: "apToken"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "accJoePerShare"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastRewardTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }]; readonly internalType: "struct IAPTFarm.FarmInfo"; readonly name: "farm"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "farmLength"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "farms"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256[]"; readonly name: "pids"; readonly type: "uint256[]"; }]; readonly name: "harvestRewards"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "apToken"; readonly type: "address"; }]; readonly name: "hasFarm"; readonly outputs: readonly [{ readonly internalType: "bool"; readonly name: ""; readonly type: "bool"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "joe"; readonly outputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "owner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "pendingOwner"; readonly outputs: readonly [{ readonly internalType: "address"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "pendingTokens"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: "pendingJoe"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "bonusTokenAddress"; readonly type: "address"; }, { readonly internalType: "string"; readonly name: "bonusTokenSymbol"; readonly type: "string"; }, { readonly internalType: "uint256"; readonly name: "pendingBonusToken"; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "renounceOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "overwrite"; readonly type: "bool"; }]; readonly name: "set"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "contract IERC20"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "to"; readonly type: "address"; }]; readonly name: "skim"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "newOwner"; readonly type: "address"; }]; readonly name: "transferOwnership"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "index"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "userInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardDebt"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "unpaidRewards"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarm.UserInfo"; readonly name: "info"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "apToken"; readonly type: "address"; }]; readonly name: "vaultFarmId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "amount"; readonly type: "uint256"; }]; readonly name: "withdraw"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; declare const APTFarmLensABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "contract IVaultFactory"; readonly name: "_vaultFactory"; readonly type: "address"; }, { readonly internalType: "contract IAPTFarm"; readonly name: "_aptFarm"; readonly type: "address"; }, { readonly internalType: "contract IJoeDexLens"; readonly name: "_dexLens"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly []; readonly name: "aptFarm"; readonly outputs: readonly [{ readonly internalType: "contract IAPTFarm"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "dexLens"; readonly outputs: readonly [{ readonly internalType: "contract IJoeDexLens"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllVaults"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData[]"; readonly name: "vaultsData"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getAllVaultsIncludingUserInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData"; readonly name: "vaultData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingJoe"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingBonusToken"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmDataWithUserInfo"; readonly name: "farmDataWithUserInfo"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]"; readonly name: "vaultsDataWithUserInfo"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "getAllVaultsWithFarms"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData[]"; readonly name: "farmsData"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }]; readonly name: "getAllVaultsWithFarmsIncludingUserInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData"; readonly name: "vaultData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingJoe"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingBonusToken"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmDataWithUserInfo"; readonly name: "farmDataWithUserInfo"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]"; readonly name: "farmsDataWithUserInfo"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "uint256"; readonly name: "startId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pageSize"; readonly type: "uint256"; }]; readonly name: "getPaginatedVaultsFromType"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData[]"; readonly name: "vaultsData"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "uint256"; readonly name: "startId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pageSize"; readonly type: "uint256"; }]; readonly name: "getPaginatedVaultsIncludingUserInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData"; readonly name: "vaultData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingJoe"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingBonusToken"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmDataWithUserInfo"; readonly name: "farmDataWithUserInfo"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]"; readonly name: "vaultsDataWithUserInfo"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "startId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pageSize"; readonly type: "uint256"; }]; readonly name: "getPaginatedVaultsWithFarms"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData[]"; readonly name: "farmsData"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "startId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pageSize"; readonly type: "uint256"; }]; readonly name: "getPaginatedVaultsWithFarmsIncludingUserInfo"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "contract IBaseVault"; readonly name: "vault"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.VaultType"; readonly name: "vaultType"; readonly type: "uint8"; }, { readonly internalType: "contract IStrategy"; readonly name: "strategy"; readonly type: "address"; }, { readonly internalType: "enum IVaultFactory.StrategyType"; readonly name: "strategyType"; readonly type: "uint8"; }, { readonly internalType: "bool"; readonly name: "isDepositsPaused"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isInEmergencyMode"; readonly type: "bool"; }, { readonly internalType: "address"; readonly name: "lbPair"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "lbPairBinStep"; readonly type: "uint256"; }, { readonly internalType: "address"; readonly name: "tokenX"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "tokenY"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "tokenXBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "tokenYBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "totalSupply"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "vaultBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "hasFarm"; readonly type: "bool"; }, { readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultData"; readonly name: "vaultData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "uint256"; readonly name: "farmId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "joePerSec"; readonly type: "uint256"; }, { readonly internalType: "contract IRewarder"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "aptBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "aptBalanceUSD"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmData"; readonly name: "farmData"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "userBalance"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "userBalanceUSD"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingJoe"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingBonusToken"; readonly type: "uint256"; }]; readonly internalType: "struct IAPTFarmLens.FarmDataWithUserInfo"; readonly name: "farmDataWithUserInfo"; readonly type: "tuple"; }]; readonly internalType: "struct IAPTFarmLens.VaultDataWithUserInfo[]"; readonly name: "farmsDataWithUserInfo"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly []; readonly name: "vaultFactory"; readonly outputs: readonly [{ readonly internalType: "contract IVaultFactory"; readonly name: ""; readonly type: "address"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; declare const LBHooksLensABI: readonly [{ readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "lbHooksManager"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "masterChef"; readonly type: "address"; }]; readonly stateMutability: "nonpayable"; readonly type: "constructor"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pair"; readonly type: "address"; }]; readonly name: "getActiveId"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address[]"; readonly name: "pairs"; readonly type: "address[]"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[][]"; readonly name: "ids"; readonly type: "uint256[][]"; }]; readonly name: "getBatchHooksData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: "hooksParameters"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: "hooksType"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "moePerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeStart"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeEnd"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingRewards"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastUpdateTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "remainingRewards"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isStarted"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isEnded"; readonly type: "bool"; }]; readonly internalType: "struct LBHooksLens.Parameters"; readonly name: "parameters"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly internalType: "struct LBHooksLens.HooksRewarderData[]"; readonly name: "rewarderData"; readonly type: "tuple[]"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: "hooksParameters"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: "hooksType"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "moePerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeStart"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeEnd"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingRewards"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastUpdateTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "remainingRewards"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isStarted"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isEnded"; readonly type: "bool"; }]; readonly internalType: "struct LBHooksLens.Parameters"; readonly name: "parameters"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly internalType: "struct LBHooksLens.HooksRewarderData[]"; readonly name: "extraRewarderData"; readonly type: "tuple[]"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "getExtraHooks"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pair"; readonly type: "address"; }]; readonly name: "getHooks"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: ""; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "pair"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getHooksData"; readonly outputs: readonly [{ readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: "hooksParameters"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: "hooksType"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "moePerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeStart"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeEnd"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingRewards"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastUpdateTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "remainingRewards"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isStarted"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isEnded"; readonly type: "bool"; }]; readonly internalType: "struct LBHooksLens.Parameters"; readonly name: "parameters"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly internalType: "struct LBHooksLens.HooksRewarderData"; readonly name: "rewarderData"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "bool"; readonly name: "beforeSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterSwap"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterFlashLoan"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterMint"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBurn"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "beforeBatchTransferFrom"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "afterBatchTransferFrom"; readonly type: "bool"; }]; readonly internalType: "struct Hooks.Parameters"; readonly name: "hooksParameters"; readonly type: "tuple"; }, { readonly components: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: "hooksType"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "moePerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeStart"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeEnd"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingRewards"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastUpdateTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "remainingRewards"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isStarted"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isEnded"; readonly type: "bool"; }]; readonly internalType: "struct LBHooksLens.Parameters"; readonly name: "parameters"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }]; readonly internalType: "struct LBHooksLens.HooksRewarderData"; readonly name: "extraRewarderData"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "getLBHooksType"; readonly outputs: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: ""; readonly type: "uint8"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }]; readonly name: "getMoePerSecond"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "hooks"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "user"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getParametersOf"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "enum ILBHooksManager.LBHooksType"; readonly name: "hooksType"; readonly type: "uint8"; }, { readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }, { readonly internalType: "uint256"; readonly name: "pid"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "moePerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "activeId"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeStart"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rangeEnd"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "pendingRewards"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "rewardPerSecond"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "lastUpdateTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "endTimestamp"; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: "remainingRewards"; readonly type: "uint256"; }, { readonly internalType: "bool"; readonly name: "isStarted"; readonly type: "bool"; }, { readonly internalType: "bool"; readonly name: "isEnded"; readonly type: "bool"; }]; readonly internalType: "struct LBHooksLens.Parameters"; readonly name: "parameters"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }, { readonly internalType: "address"; readonly name: "account"; readonly type: "address"; }, { readonly internalType: "uint256[]"; readonly name: "ids"; readonly type: "uint256[]"; }]; readonly name: "getPendingRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "getPid"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "extraRewarder"; readonly type: "address"; }]; readonly name: "getRemainingRewards"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "getRewardToken"; readonly outputs: readonly [{ readonly components: readonly [{ readonly internalType: "address"; readonly name: "token"; readonly type: "address"; }, { readonly internalType: "uint256"; readonly name: "decimals"; readonly type: "uint256"; }, { readonly internalType: "string"; readonly name: "symbol"; readonly type: "string"; }]; readonly internalType: "struct LBHooksLens.Token"; readonly name: "rewardToken"; readonly type: "tuple"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "rewarder"; readonly type: "address"; }]; readonly name: "getRewardedRange"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }, { readonly inputs: readonly [{ readonly internalType: "address"; readonly name: "extraRewarder"; readonly type: "address"; }]; readonly name: "getRewarderParameter"; readonly outputs: readonly [{ readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }, { readonly internalType: "uint256"; readonly name: ""; readonly type: "uint256"; }]; readonly stateMutability: "view"; readonly type: "function"; }]; /** Class with helper functions related to bin id and price */ declare class Bin { /** * @static * Returns the price of bin given its id and the bin step * * @param {number} id - The bin id * @param {number} binStep * @returns {number} */ static getPriceFromId(id: number, binStep: number): number; /** * @static * Returns the bin id given its price and the bin step * * @param {number} price - The price of the bin * @param {number} binStep * @returns {number} */ static getIdFromPrice(price: number, binStep: number): number; /** * @static * Returns idSlippage given slippage tolerance and the bin step * * @param {number} priceSlippage * @param {number} binStep * @returns {number} */ static getIdSlippageFromPriceSlippage(priceSlippage: number, binStep: number): number; } declare enum PoolVersion { V1 = 0, V2 = 1, V2_1 = 2, V2_2 = 3 } /** Interface representing a quote */ interface Quote { route: readonly Hex[]; pairs: readonly Hex[]; binSteps: readonly bigint[]; versions: readonly PoolVersion[]; amounts: readonly bigint[]; virtualAmountsWithoutSlippage: readonly bigint[]; fees: readonly bigint[]; } /** Options for producing the arguments to send call to the router. */ interface TradeOptions { allowedSlippage: Percent; ttl: number; recipient: string; feeOnTransfer?: boolean; } interface TradeOptionsDeadline extends Omit { deadline: number; } interface RouterPathParameters { pairBinSteps: string[]; versions: readonly number[]; tokenPath: readonly string[]; } /** The parameters to use in the call to the DEX V2 Router to execute a trade. */ interface SwapParameters { methodName: string; args: (string | string[] | RouterPathParameters)[]; value: string; } interface TradeFee { totalFeePct: Percent; feeAmountIn: TokenAmount; } interface LBPair { binStep: number; LBPair: Hex; createdByOwner: boolean; ignoredForRouting: boolean; } interface LBPairReservesAndId { reserveX: bigint; reserveY: bigint; activeId: number; } interface LBPairFeeParameters { binStep: number; baseFactor: number; filterPeriod: number; decayPeriod: number; reductionFactor: number; variableFeeControl: number; protocolShare: number; maxVolatilityAccumulated: number; volatilityAccumulated: number; volatilityReference: number; indexRef: number; time: number; } interface LBPairFeePercent { baseFeePct: Percent; variableFeePct: Percent; } interface LiquidityParametersStruct { tokenX: string; tokenY: string; binStep: bigint; amountX: bigint; amountY: bigint; amountXMin: bigint; amountYMin: bigint; activeIdDesired: bigint; idSlippage: bigint; deltaIds: bigint[]; distributionX: bigint[]; distributionY: bigint[]; to: string; deadline: bigint; } interface BinReserves { reserveX: bigint; reserveY: bigint; } declare enum LiquidityDistribution { SPOT = 0, CURVE = 1, BID_ASK = 2 } interface LiquidityDistributionParams { deltaIds: number[]; distributionX: bigint[]; distributionY: bigint[]; } /** Class representing a pair of tokens. */ declare class PairV2 { readonly token0: Token; readonly token1: Token; constructor(tokenA: Token, tokenB: Token); /** * Returns all available LBPairs for this pair * * @param {'v2' | 'v21' | 'v22'} version * @param {PublicClient} publicClient * @param {ChainId} chainId * @returns {Promise} */ fetchAvailableLBPairs(version: 'v2' | 'v21' | 'v22', publicClient: PublicClient, chainId: ChainId): Promise; /** * Fetches LBPair for token0, token1, and given binStep * * @param {number} binStep * @param {'v2' | 'v21' | 'v22'} version * @param {PublicClient} publicClient * @param {ChainId} chainId * @returns {Promise} */ fetchLBPair(binStep: number, version: 'v2' | 'v21' | 'v22', publicClient: PublicClient, chainId: ChainId): Promise; /** * Checks whether this pair equals to that provided in the param * * @param {PairV2} pair * @returns {boolean} true if equal, otherwise false */ equals(pair: PairV2): boolean; /** * @static * Returns all possible combination of token pairs * * @param {Token} inputToken * @param {Token} outputToken * @param {Token[]} bases * @returns {[Token, Token][]} */ static createAllTokenPairs(inputToken: Token, outputToken: Token, bases: Token[]): [Token, Token][]; /** * @static * Returns the initialized pairs given a list of token pairs * * @param {[Token, Token][]} tokenPairs * @returns {PairV2[]} */ static initPairs(tokenPairs: [Token, Token][]): PairV2[]; /** * Fetches the reserves active bin id for the LBPair * * @param {Hex} LBPairAddr * @param {'v2' | 'v21' | 'v22'} version * @param {PublicClient} publicClient * @returns {Promise} */ static getLBPairReservesAndId(LBPairAddr: Hex, version: 'v2' | 'v21' | 'v22', publicClient: PublicClient): Promise; /** * Fetches the fee parameters for the LBPair * * @param {Hex} LBPairAddr * @param {PublicClient} publicClient * @returns {Promise} */ static getFeeParameters(LBPairAddr: Hex, publicClient: PublicClient): Promise; /** * Calculate amountX and amountY * * @param {number[]} binIds * @param {number[]} activeBin * @param {BinReserves[]} bins * @param {bigint[]} totalSupplies * @param {string[]} liquidity * @returns */ static calculateAmounts(binIds: number[], activeBin: number, bins: BinReserves[], totalSupplies: bigint[], liquidity: string[]): { amountX: JSBI; amountY: JSBI; }; /** * Returns the amount and distribution args for on-chain addLiquidity() method * * @param binStep * @param token0Amount * @param token1Amount * @param amountSlippage * @param priceSlippage * @param liquidityDistribution * @returns */ addLiquidityParameters(binStep: number, token0Amount: TokenAmount, token1Amount: TokenAmount, amountSlippage: Percent, priceSlippage: Percent, liquidityDistribution: LiquidityDistribution): { tokenX: Token; tokenY: Token; amountX: string; amountY: string; amountXMin: string; amountYMin: string; idSlippage: number; deltaIds: number[]; distributionX: bigint[]; distributionY: bigint[]; }; /** * Calculates amountX, amountY, amountXMin, and amountYMin needed for on-chain removeLiquidity() method * * @param {number[]} userPositionIds - List of binIds that user has position * @param {number} activeBin - The active bin id for the LBPair * @param {Bin[]} bins - List of bins whose indices match those of userPositionIds * @param {BigNumber[]} totalSupplies - List of bin's total supplies whose indices match those of userPositionIds * @param {string[]} amountsToRemove - List of amounts specified by the user to remove in each of their position * @param {Percent} amountSlippage - The amounts slippage used to calculate amountXMin and amountYMin * @returns */ calculateAmountsToRemove(userPositionIds: number[], activeBin: number, bins: BinReserves[], totalSupplies: bigint[], amountsToRemove: string[], amountSlippage: Percent): { amountX: JSBI; amountY: JSBI; amountXMin: JSBI; amountYMin: JSBI; }; } /** Class representing a trade route. */ declare class RouteV2 { readonly pairs: PairV2[]; readonly path: Token[]; readonly input: Token; readonly output: Token; constructor(pairs: PairV2[], input: Token, output?: Token); /** * Returns the list of token addresses for this route * * @returns {Hex[]} */ pathToStrArr(): Hex[]; /** * @static * Returns all possible trade routes * * @param {PairV2[]} pairs - The pairs to consider * @param {Token} inputToken - The input token * @param {Token} outputToken - The output token * @param {number} maxHops - maximum # of hops to allow in the trade route * @param {PairV2[]} currentPairs - The current list of pairs forming a route (used in recursion) * @param {Token} originalInputToken - The original value of the inputToken param (used in recursion) * @param {RouteV2[]} outcome - The current list of routes (used in recursion) * @returns {RouteV2[]} An array of constructured routes */ static createAllRoutes(pairs: PairV2[], inputToken: Token, outputToken: Token, maxHops?: number, currentPairs?: PairV2[], originalInputToken?: Token, outcome?: RouteV2[]): RouteV2[]; } /** Class representing a trade */ declare class TradeV2 { readonly quote: Quote; readonly route: RouteV2; readonly tradeType: TradeType; readonly inputAmount: TokenAmount; readonly outputAmount: TokenAmount; readonly executionPrice: Price; readonly exactQuote: TokenAmount; readonly priceImpact: Percent; readonly isNativeIn: boolean; readonly isNativeOut: boolean; constructor(route: RouteV2, tokenIn: Token, tokenOut: Token, quote: Quote, isExactIn: boolean, isNativeIn: boolean, isNativeOut: boolean); /** * Get the minimum amount that must be received from this trade for the given slippage tolerance * * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade * @returns {CurrencyAmount} */ minimumAmountOut(slippageTolerance: Percent): CurrencyAmount; /** * Get the maximum amount in that can be spent via this trade for the given slippage tolerance * * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade * @returns {CurrencyAmount} */ maximumAmountIn(slippageTolerance: Percent): CurrencyAmount; /** * Returns the on-chain method name and args for this trade * * @param {TradeOptions | TradeOptionsDeadline} options * @returns {SwapParameters} */ swapCallParameters(options: TradeOptions | TradeOptionsDeadline): SwapParameters; /** * Calculates trade fee in terms of inputToken * * @returns {TradeFee} */ getTradeFee(): Promise; /** * Returns an estimate of the gas cost for the trade * * @param {PublicClient} publicClient - The public client * @param {ChainId} chainId - The network chain id * @param {Percent} slippageTolerance - The slippage tolerance * @returns {Promise} */ estimateGas(publicClient: PublicClient, account: Hex, chainId: ChainId, slippageTolerance: Percent): Promise; /** * @static * Returns the list of trades, given a list of routes and a fixed amount of the input token * * @param {RouteV2[]} routes * @param {TokenAmount} tokenAmountIn * @param {Token} tokenOut * @param {boolean} isNativeIn * @param {boolean} isNativeOut * @param {PublicClient} publicClient * @param {ChainId} chainId * @returns {TradeV2[]} */ static getTradesExactIn(routes: RouteV2[], tokenAmountIn: TokenAmount, tokenOut: Token, isNativeIn: boolean, isNativeOut: boolean, publicClient: PublicClient, chainId: ChainId): Promise>; /** * @static * Returns the list of trades, given a list of routes and a fixed amount of the output token * * @param {RouteV2[]} routes * @param {TokenAmount} tokenAmountOut * @param {Token} tokenIn * @param {boolean} isNativeIn * @param {boolean} isNativeOut * @param {PublicClient} publicClient * @param {ChainId} chainId * @returns {TradeV2[]} */ static getTradesExactOut(routes: RouteV2[], tokenAmountOut: TokenAmount, tokenIn: Token, isNativeIn: boolean, isNativeOut: boolean, publicClient: PublicClient, chainId: ChainId): Promise>; /** * @static * Returns the best trade * * @param {TradeV2[]} trades * @param {boolean} isExactIn * @returns {TradeV2} */ static chooseBestTrade(trades: TradeV2[], isExactIn: boolean): TradeV2 | undefined; /** * Selects the best trade given trades and gas * * @param {TradeV2[]} trades * @param {bigint[]} estimatedGas * @returns {bestTrade: TradeV2, estimatedGas: bigint} */ static chooseBestTradeWithGas(trades: TradeV2[], estimatedGas: bigint[]): { bestTrade: TradeV2; estimatedGas: bigint; }; /** * Returns an object representing this trade for a readable cosole.log * * @returns {Object} */ toLog(): { route: { path: string; }; tradeType: string; inputAmount: string; outputAmount: string; executionPrice: string; exactQuote: string; priceImpact: string; quote: { route: string; pairs: string; binSteps: string; versions: string; amounts: string; fees: string; virtualAmountsWithoutSlippage: string; }; }; } declare function validateAndParseAddress(address: string): string; /** * Converts currency amount into hex encoding * * @param {CurrencyAmount} currencyAmount * @returns {string} */ declare function toHex(currencyAmount: CurrencyAmount): string; /** * Returns true if the string value is zero in hex * * @param {string} hexNumberString * @returns {boolean} */ declare function isZero(hexNumberString: string): boolean; /** * Returns distribution params for on-chain addLiquidity() call * * @param {LiquidityDistribution} distribution * @returns {LiquidityDistributionParams} } */ declare const getLiquidityConfig: (distribution: LiquidityDistribution) => LiquidityDistributionParams; /** * Returns distribution params for on-chain addLiquidity() call when liquidity is focused at a target bin * @param {number} activeId * @param {number} targetBin * @returns {LiquidityDistributionParams} */ declare const getDistributionFromTargetBin: (activeId: number, targetBin: number) => LiquidityDistributionParams; /** * Returns normalized array, e.g. normalize so array sums to 1e18 within 1e5 precision * @param dist * @param sumTo * @param precision * @returns */ declare const normalizeDist: (dist: bigint[], sumTo: bigint, precision: bigint) => bigint[]; /** * Returns distribution params for on-chain addLiquidity() call when liquidity is focused at a custom range of bins * * @param {number} activeId * @param {number[]} binRange * @returns */ declare const getUniformDistributionFromBinRange: (activeId: number, binRange: number[]) => LiquidityDistributionParams; /** * Returns Bid-Ask distribution params for custom bin range * * @param {number} activeId * @param {number[]} binRange * @param {CurrencyAmount[]} parsedAmounts * @returns */ declare const getBidAskDistributionFromBinRange: (activeId: number, binRange: number[], parsedAmounts: CurrencyAmount[]) => LiquidityDistributionParams; /** * Returns Curve distribution params for custom bin range * * @param {number} activeId * @param {number[]} binRange * @param {CurrencyAmount[]} parsedAmounts * @param {number} alpha * @returns */ declare const getCurveDistributionFromBinRange: (activeId: number, binRange: number[], parsedAmounts: CurrencyAmount[], alpha?: number) => LiquidityDistributionParams; export { APTFarmABI, APTFarmLensABI, APT_FARM_LENS, Bin, BinReserves, DEXCANDLES_SUBGRAPH_V2, DEXLENS_ADDRESS, DEX_V2_SUBGRAPH, DexLensABI, LBFactoryABI, LBFactoryV21ABI, LBFactoryV22ABI, LBHooksLensABI, LBPair, LBPairABI, LBPairFeeParameters, LBPairFeePercent, LBPairReservesAndId, LBPairV21ABI, LBQuoterABI, LBQuoterV21ABI, LBQuoterV22ABI, LBRewarderABI, LBRouterABI, LBRouterV21ABI, LBRouterV22ABI, LB_FACTORY_ADDRESS, LB_FACTORY_V21_ADDRESS, LB_FACTORY_V22_ADDRESS, LB_HOOKS_LENS_ADDRESS, LB_QUOTER_ADDRESS, LB_QUOTER_V21_ADDRESS, LB_QUOTER_V22_ADDRESS, LB_REWARDER_ADDRESS, LB_ROUTER_ADDRESS, LB_ROUTER_V21_ADDRESS, LB_ROUTER_V22_ADDRESS, LIMIT_ORDER_MANAGER_ADDRESS, LIQUIDITY_AMOUNTS_HELPER_ADDRESS, LIQUIDITY_HELPER_V2_ADDRESS, LimitOrderManagerABI, LiquidityAmountsHelperABI, LiquidityDistribution, LiquidityDistributionParams, LiquidityHelperV2ABI, LiquidityParametersStruct, PairV2, PoolVersion, Quote, RouteV2, RouterPathParameters, SwapParameters, TradeFee, TradeOptions, TradeOptionsDeadline, TradeV2, VAULT_FACTORY_ADDRESS, VaultABI, VaultFactoryABI, getBidAskDistributionFromBinRange, getCurveDistributionFromBinRange, getDistributionFromTargetBin, getLiquidityConfig, getUniformDistributionFromBinRange, isZero, index as jsonAbis, normalizeDist, toHex, validateAndParseAddress };