hermes-v2-sdk
Version:
⚒️ An SDK for building applications on top of Hermes V2
3 lines • 179 kB
JavaScript
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,n,a=require("maia-core-sdk"),i=e(require("jsbi")),r=require("@ethersproject/abi"),u=e(require("tiny-invariant")),o=require("@ethersproject/bignumber"),s=require("bignumber.js"),p=require("@ethersproject/constants"),d=require("@ethersproject/address"),l=e(require("lodash.clonedeep")),c=e(require("@uniswap/v3-periphery/artifacts/contracts/interfaces/IMulticall.sol/IMulticall.json")),y=e(require("@uniswap/v3-periphery/artifacts/contracts/NonfungiblePositionManager.sol/NonfungiblePositionManager.json")),m=e(require("@uniswap/v3-periphery/artifacts/contracts/interfaces/IPeripheryPaymentsWithFee.sol/IPeripheryPaymentsWithFee.json")),f=require("@ethersproject/solidity"),h=e(require("@uniswap/v3-periphery/artifacts/contracts/interfaces/ISelfPermit.sol/ISelfPermit.json")),T=e(require("@uniswap/swap-router-contracts/artifacts/contracts/lens/QuoterV2.sol/QuoterV2.json")),v=e(require("@uniswap/v3-periphery/artifacts/contracts/lens/Quoter.sol/Quoter.json")),g=e(require("@uniswap/v3-staker/artifacts/contracts/UniswapV3Staker.sol/UniswapV3Staker.json")),w=e(require("@uniswap/v3-periphery/artifacts/contracts/SwapRouter.sol/SwapRouter.json")),b="0x1F98431c8aD98523631AE4a59f267346ea31F984",x=a.ZERO_ADDRESS,k=Math.pow(2,256),I="0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54";(n=exports.FeeAmount||(exports.FeeAmount={}))[n.LOWEST=100]="LOWEST",n[n.LOW=500]="LOW",n[n.MEDIUM=3e3]="MEDIUM",n[n.HIGH=1e4]="HIGH";var A,E,O=((t={})[exports.FeeAmount.LOWEST]=1,t[exports.FeeAmount.LOW]=10,t[exports.FeeAmount.MEDIUM]=60,t[exports.FeeAmount.HIGH]=200,t);(A=exports.TradeType||(exports.TradeType={}))[A.EXACT_INPUT=0]="EXACT_INPUT",A[A.EXACT_OUTPUT=1]="EXACT_OUTPUT",(E=exports.Rounding||(exports.Rounding={}))[E.ROUND_DOWN=0]="ROUND_DOWN",E[E.ROUND_HALF_UP=1]="ROUND_HALF_UP",E[E.ROUND_UP=2]="ROUND_UP";var R=i.exponentiate(i.BigInt(2),i.BigInt(96)),M=i.exponentiate(R,i.BigInt(2)),F=i.BigInt(1e3),B=[{type:"constructor",inputs:[{name:"_hermes",type:"address",internalType:"contract ERC20"},{name:"_owner",type:"address",internalType:"address"},{name:"_flywheelBooster",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"asset",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ERC20"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"claimBoost",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimGovernance",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimMultiple",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimMultipleAmounts",inputs:[{name:"weight",type:"uint256",internalType:"uint256"},{name:"boost",type:"uint256",internalType:"uint256"},{name:"_governance",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimOutstanding",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"claimWeight",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"convertToAssets",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"convertToShares",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"shares",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"forfeitBoost",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"forfeitGovernance",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"forfeitMultiple",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"forfeitMultipleAmounts",inputs:[{name:"weight",type:"uint256",internalType:"uint256"},{name:"boost",type:"uint256",internalType:"uint256"},{name:"_governance",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"forfeitOutstanding",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"forfeitWeight",inputs:[{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"gaugeBoost",inputs:[],outputs:[{name:"",type:"address",internalType:"contract bHermesBoost"}],stateMutability:"view"},{type:"function",name:"gaugeWeight",inputs:[],outputs:[{name:"",type:"address",internalType:"contract bHermesGauges"}],stateMutability:"view"},{type:"function",name:"governance",inputs:[],outputs:[{name:"",type:"address",internalType:"contract bHermesVotes"}],stateMutability:"view"},{type:"function",name:"maxDeposit",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxMint",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxRedeem",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"maxWithdraw",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"},{name:"receiver",type:"address",internalType:"address"}],outputs:[{name:"assets",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"previewDeposit",inputs:[{name:"assets",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewMint",inputs:[{name:"shares",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"previewRedeem",inputs:[{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"previewWithdraw",inputs:[{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"redeem",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalAssets",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"userClaimedBoost",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"claimedBoost",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"userClaimedGovernance",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"claimedGovernance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"userClaimedWeight",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"claimedWeight",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"withdraw",inputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ClaimBoost",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ClaimGovernance",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ClaimWeight",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Deposit",inputs:[{name:"caller",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!0,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ForfeitBoost",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ForfeitGovernance",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ForfeitWeight",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Withdraw",inputs:[{name:"caller",type:"address",indexed:!0,internalType:"address"},{name:"receiver",type:"address",indexed:!0,internalType:"address"},{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"assets",type:"uint256",indexed:!1,internalType:"uint256"},{name:"shares",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"DepositOnly",inputs:[]},{type:"error",name:"InsufficientShares",inputs:[]},{type:"error",name:"InsufficientUnderlying",inputs:[]}],q=function(){function e(){}return e.encodeBurnCalldata=function(t){var n=t.amount,r=t.receiver;return i.BigInt(n)>=a.ZERO||u(!1),r||u(!1),r===a.ZERO_ADDRESS&&u(!1),e.INTERFACE.encodeFunctionData("deposit",[n.toString(),r])},e.encodeClaimOutstandingCalldata=function(){return e.INTERFACE.encodeFunctionData("claimOutstanding")},e.encodeForfeitOutstandingCalldata=function(){return e.INTERFACE.encodeFunctionData("forfeitOutstanding")},e.encodeForfeitMultipleCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("forfeitMultiple",[n.toString()])},e.encodeForfeitMultipleAmoutnsCalldata=function(t){var n=t.weight,r=t.boost,o=t.governance;return i.BigInt(n)>=a.ZERO||u(!1),i.BigInt(r)>=a.ZERO||u(!1),i.BigInt(o)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("forfeitMultipleAmounts",[n.toString(),r.toString(),o.toString()])},e.encodeForfeitWeightCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("forfeitWeight",[n.toString()])},e.encodeForfeitBoostCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("forfeitBoost",[n.toString()])},e.encodeForfeitGovernanceCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("forfeitGovernance",[n.toString()])},e.encodeClaimMultipleCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimMultiple",[n.toString()])},e.encodeClaimMultipleAmountsCalldata=function(t){var n=t.weight,r=t.boost,o=t.governance;return i.BigInt(n)>=a.ZERO||u(!1),i.BigInt(r)>=a.ZERO||u(!1),i.BigInt(o)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimMultipleAmounts",[n.toString(),r.toString(),o.toString()])},e.encodeClaimWeightCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimWeight",[n.toString()])},e.encodeClaimBoostCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimBoost",[n.toString()])},e.encodeClaimGovernanceCalldata=function(t){var n=t.amount;return i.BigInt(n)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimGovernance",[n.toString()])},e}();q.INTERFACE=new r.Interface(B);var P=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"addGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"allowance",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"attach",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"bHermes",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"decrementAllGaugesAllBoost",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"decrementAllGaugesBoost",inputs:[{name:"boost",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"decrementGaugeAllBoost",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"decrementGaugeBoost",inputs:[{name:"gauge",type:"address",internalType:"address"},{name:"boost",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"decrementGaugesBoostIndexed",inputs:[{name:"boost",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"num",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deprecatedGauges",inputs:[],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"detach",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"freeGaugeBoost",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"gauges",inputs:[{name:"offset",type:"uint256",internalType:"uint256"},{name:"num",type:"uint256",internalType:"uint256"}],outputs:[{name:"values",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"gauges",inputs:[],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"getUserBoost",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"boost",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getUserGaugeBoost",inputs:[{name:"user",type:"address",internalType:"address"},{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"userGaugeBoost",type:"uint128",internalType:"uint128"},{name:"totalGaugeBoost",type:"uint128",internalType:"uint128"}],stateMutability:"view"},{type:"function",name:"isGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isUserGauge",inputs:[{name:"user",type:"address",internalType:"address"},{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numDeprecatedGauges",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numGauges",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numUserGauges",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"replaceGauge",inputs:[{name:"oldGauge",type:"address",internalType:"address"},{name:"newGauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"updateUserBoost",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"userGauges",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"userGauges",inputs:[{name:"user",type:"address",internalType:"address"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"num",type:"uint256",internalType:"uint256"}],outputs:[{name:"values",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"event",name:"AddGauge",inputs:[{name:"gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Attach",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"gauge",type:"address",indexed:!0,internalType:"address"},{name:"boost",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DecrementUserGaugeBoost",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"gauge",type:"address",indexed:!0,internalType:"address"},{name:"UpdatedBoost",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Detach",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RemoveGauge",inputs:[{name:"gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UpdateUserBoost",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"updatedBoost",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"AttachedBoost",inputs:[]},{type:"error",name:"GaugeAlreadyAttached",inputs:[]},{type:"error",name:"InvalidGauge",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NotbHermes",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}],S=function(){function e(){}return e.encodeDecrementGaugeBoostCalldata=function(t){var n=t.gauge,r=t.boost;return n||u(!1),n===x&&u(!1),i.BigInt(r)>a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("decrementGaugeBoost",[n,r])},e.encodeDecrementGaugeAllBoostCalldata=function(t){var n=t.gauge;return n||u(!1),n===x&&u(!1),e.INTERFACE.encodeFunctionData("decrementGaugeAllBoost",[n])},e.encodeDecrementAllGaugesBoostCalldata=function(t){var n=t.boost;return i.BigInt(n)>a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("decrementAllGaugesBoost",[n])},e.encodeDecrementGaugesBoostIndexedCalldata=function(t){var n=t.boost,r=t.offset,o=t.num;return i.BigInt(n)>a.ZERO||u(!1),r>=0||u(!1),o>0||u(!1),e.INTERFACE.encodeFunctionData("decrementGaugesBoostIndexed",[n,r,o])},e.encodeDecrementAllGaugesAllBoostCalldata=function(){return e.INTERFACE.encodeFunctionData("decrementAllGaugesAllBoost",[])},e}();S.INTERFACE=new r.Interface(P);var C=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_flywheelBooster",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DELEGATION_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"addGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint112",internalType:"uint112"}],stateMutability:"nonpayable"},{type:"function",name:"allowance",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"bHermes",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"calculateGaugeAllocation",inputs:[{name:"gauge",type:"address",internalType:"address"},{name:"quantity",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"canContractExceedMaxDelegates",inputs:[{name:"contractAddress",type:"address",internalType:"address"}],outputs:[{name:"canExceedMaxGauges",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"canContractExceedMaxGauges",inputs:[{name:"contractAddress",type:"address",internalType:"address"}],outputs:[{name:"canExceedMaxGauges",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"checkpoints",inputs:[{name:"account",type:"address",internalType:"address"},{name:"pos",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"tuple",internalType:"struct IERC20MultiVotes.Checkpoint",components:[{name:"fromBlock",type:"uint32",internalType:"uint32"},{name:"votes",type:"uint224",internalType:"uint224"}]}],stateMutability:"view"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"decrementGauge",inputs:[{name:"gauge",type:"address",internalType:"address"},{name:"weight",type:"uint112",internalType:"uint112"}],outputs:[{name:"newUserWeight",type:"uint112",internalType:"uint112"}],stateMutability:"nonpayable"},{type:"function",name:"decrementGauges",inputs:[{name:"gaugeList",type:"address[]",internalType:"address[]"},{name:"weights",type:"uint112[]",internalType:"uint112[]"}],outputs:[{name:"newUserWeight",type:"uint112",internalType:"uint112"}],stateMutability:"nonpayable"},{type:"function",name:"delegate",inputs:[{name:"newDelegatee",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegateBySig",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"expiry",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegateCount",inputs:[{name:"delegator",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"delegates",inputs:[{name:"delegator",type:"address",internalType:"address"}],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"delegatesVotesCount",inputs:[{name:"delegator",type:"address",internalType:"address"},{name:"delegatee",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deprecatedGauges",inputs:[],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"flywheelBooster",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFlywheelBooster"}],stateMutability:"view"},{type:"function",name:"freeVotes",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"gauges",inputs:[{name:"offset",type:"uint256",internalType:"uint256"},{name:"num",type:"uint256",internalType:"uint256"}],outputs:[{name:"values",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"gauges",inputs:[],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"getGaugeCycleEnd",inputs:[],outputs:[{name:"",type:"uint32",internalType:"uint32"}],stateMutability:"view"},{type:"function",name:"getGaugeWeight",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"getPriorVotes",inputs:[{name:"account",type:"address",internalType:"address"},{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getStoredGaugeWeight",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"getUserGaugeWeight",inputs:[{name:"user",type:"address",internalType:"address"},{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"weight",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"getUserWeight",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"weight",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"getVotes",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"incrementDelegation",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"incrementGauge",inputs:[{name:"gauge",type:"address",internalType:"address"},{name:"weight",type:"uint112",internalType:"uint112"}],outputs:[{name:"newUserWeight",type:"uint112",internalType:"uint112"}],stateMutability:"nonpayable"},{type:"function",name:"incrementGauges",inputs:[{name:"gaugeList",type:"address[]",internalType:"address[]"},{name:"weights",type:"uint112[]",internalType:"uint112[]"}],outputs:[{name:"newUserWeight",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"isGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isUserGauge",inputs:[{name:"user",type:"address",internalType:"address"},{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"maxDelegates",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"maxGauges",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numCheckpoints",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint32",internalType:"uint32"}],stateMutability:"view"},{type:"function",name:"numDeprecatedGauges",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numGauges",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numUserGauges",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeGauge",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"replaceGauge",inputs:[{name:"oldGauge",type:"address",internalType:"address"},{name:"newGauge",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setContractExceedMaxDelegates",inputs:[{name:"account",type:"address",internalType:"address"},{name:"canExceedMax",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setContractExceedMaxGauges",inputs:[{name:"account",type:"address",internalType:"address"},{name:"canExceedMax",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFlywheelBooster",inputs:[{name:"newFlywheelBooster",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMaxDelegates",inputs:[{name:"newMax",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMaxGauges",inputs:[{name:"newMax",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"storedTotalWeight",inputs:[],outputs:[{name:"",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"totalWeight",inputs:[],outputs:[{name:"",type:"uint112",internalType:"uint112"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"undelegate",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"userDelegatedVotes",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"votes",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"userGauges",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"userGauges",inputs:[{name:"user",type:"address",internalType:"address"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"num",type:"uint256",internalType:"uint256"}],outputs:[{name:"values",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"userUnusedVotes",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"AddGauge",inputs:[{name:"gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"CanContractExceedMaxDelegatesUpdate",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"canContractExceedMaxDelegates",type:"bool",indexed:!0,internalType:"bool"}],anonymous:!1},{type:"event",name:"CanContractExceedMaxGaugesUpdate",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"canContractExceedMaxGauges",type:"bool",indexed:!0,internalType:"bool"}],anonymous:!1},{type:"event",name:"DecrementGaugeWeight",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"gauge",type:"address",indexed:!0,internalType:"address"},{name:"weight",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"DelegateChanged",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"fromDelegate",type:"address",indexed:!0,internalType:"address"},{name:"toDelegate",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DelegateVotesChanged",inputs:[{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"previousBalance",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newBalance",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Delegation",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"IncrementGaugeWeight",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"gauge",type:"address",indexed:!0,internalType:"address"},{name:"weight",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"MaxDelegatesUpdate",inputs:[{name:"oldMaxDelegates",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newMaxDelegates",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"MaxGaugesUpdate",inputs:[{name:"oldMaxGauges",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newMaxGauges",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RemoveGauge",inputs:[{name:"gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SetFlywheelBooster",inputs:[{name:"newFlywheelBooster",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Undelegation",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"BlockError",inputs:[]},{type:"error",name:"DelegationError",inputs:[]},{type:"error",name:"IncrementFreezeError",inputs:[]},{type:"error",name:"InvalidBooster",inputs:[]},{type:"error",name:"InvalidGaugeError",inputs:[]},{type:"error",name:"MaxGaugeError",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NonContractError",inputs:[]},{type:"error",name:"NotbHermes",inputs:[]},{type:"error",name:"OverWeightError",inputs:[]},{type:"error",name:"SizeMismatchError",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UndelegationVoteError",inputs:[]}],N=function(){function e(){}return e.encodeIncrementGaugeCalldata=function(t){var n=t.pool,r=t.weight;return n||u(!1),n===a.ZERO_ADDRESS&&u(!1),i.BigInt(r)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("incrementGauge",[n,r])},e.encodeIncrementGaugesCalldata=function(t){var n=t.pools,r=t.weights;return n||u(!1),n.every((function(e){return e!==a.ZERO_ADDRESS}))||u(!1),r||u(!1),r.every((function(e){return i.BigInt(e)>a.ZERO}))||u(!1),e.INTERFACE.encodeFunctionData("incrementGauges",[n,r])},e.encodeDecrementGaugeCalldata=function(t){var n=t.pool,r=t.weight;return n||u(!1),n===a.ZERO_ADDRESS&&u(!1),i.BigInt(r)>=a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("decrementGauge",[n,r])},e.encodeDecrementGaugesCalldata=function(t){var n=t.pools,r=t.weights;return n||u(!1),n.every((function(e){return e!==a.ZERO_ADDRESS}))||u(!1),r||u(!1),r.every((function(e){return i.BigInt(e)>a.ZERO}))||u(!1),e.INTERFACE.encodeFunctionData("decrementGauges",[n,r])},e.encodeDelegateCalldata=function(t){var n=t.newDelegatee;return n||u(!1),n===a.ZERO_ADDRESS&&u(!1),e.INTERFACE.encodeFunctionData("delegate",[n])},e.encodeUndelegateCalldata=function(t){var n=t.delegatee,i=t.weight;return n||u(!1),n===a.ZERO_ADDRESS&&u(!1),e.INTERFACE.encodeFunctionData("undelegate",[n,i])},e}();N.INTERFACE=new r.Interface(C);var D=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DELEGATION_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"DOMAIN_SEPARATOR",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"bHermes",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"balanceOf",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"burn",inputs:[{name:"from",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"canContractExceedMaxDelegates",inputs:[{name:"contractAddress",type:"address",internalType:"address"}],outputs:[{name:"canExceedMaxGauges",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"checkpoints",inputs:[{name:"account",type:"address",internalType:"address"},{name:"pos",type:"uint32",internalType:"uint32"}],outputs:[{name:"",type:"tuple",internalType:"struct IERC20MultiVotes.Checkpoint",components:[{name:"fromBlock",type:"uint32",internalType:"uint32"},{name:"votes",type:"uint224",internalType:"uint224"}]}],stateMutability:"view"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8",internalType:"uint8"}],stateMutability:"view"},{type:"function",name:"delegate",inputs:[{name:"newDelegatee",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegateBySig",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"expiry",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegateCount",inputs:[{name:"delegator",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"delegates",inputs:[{name:"delegator",type:"address",internalType:"address"}],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"delegatesVotesCount",inputs:[{name:"delegator",type:"address",internalType:"address"},{name:"delegatee",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"freeVotes",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPriorVotes",inputs:[{name:"account",type:"address",internalType:"address"},{name:"blockNumber",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getVotes",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"incrementDelegation",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"maxDelegates",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"mint",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"nonces",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"numCheckpoints",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint32",internalType:"uint32"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"permit",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"deadline",type:"uint256",internalType:"uint256"},{name:"v",type:"uint8",internalType:"uint8"},{name:"r",type:"bytes32",internalType:"bytes32"},{name:"s",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"setContractExceedMaxDelegates",inputs:[{name:"account",type:"address",internalType:"address"},{name:"canExceedMax",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setMaxDelegates",inputs:[{name:"newMax",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"undelegate",inputs:[{name:"delegatee",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"userDelegatedVotes",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"votes",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"userUnusedVotes",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"CanContractExceedMaxDelegatesUpdate",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"canContractExceedMaxDelegates",type:"bool",indexed:!0,internalType:"bool"}],anonymous:!1},{type:"event",name:"DelegateChanged",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"fromDelegate",type:"address",indexed:!0,internalType:"address"},{name:"toDelegate",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DelegateVotesChanged",inputs:[{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"previousBalance",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newBalance",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Delegation",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"MaxDelegatesUpdate",inputs:[{name:"oldMaxDelegates",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newMaxDelegates",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Undelegation",inputs:[{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"BlockError",inputs:[]},{type:"error",name:"DelegationError",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"NonContractError",inputs:[]},{type:"error",name:"NotbHermes",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]},{type:"error",name:"UndelegationVoteError",inputs:[]}],_=function(){function e(){}return e.encodeDelegateCalldata=function(t){var n=t.newDelegatee;return n||u(!1),n===x&&u(!1),e.INTERFACE.encodeFunctionData("delegate",[n])},e.encodeUndelegateCalldata=function(t){var n=t.delegatee,r=t.amount;return n||u(!1),n===x&&u(!1),i.BigInt(r)>a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("undelegate",[n,r])},e}();function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function G(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function L(e,t,n,a,i,r,u){try{var o=e[r](u),s=o.value}catch(e){return void n(e)}o.done?t(s):Promise.resolve(s).then(a,i)}function H(e){return function(){var t=this,n=arguments;return new Promise((function(a,i){var r=e.apply(t,n);function u(e){L(r,a,i,u,o,"next",e)}function o(e){L(r,a,i,u,o,"throw",e)}u(void 0)}))}}function W(e,t,n){if(Q())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,t);var i=new(e.bind.apply(e,a));return n&&$(i,n.prototype),i}function X(e,t){for(var n=0;n<t.length;n++){var a=t[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,J(a.key),a)}}function Z(e,t,n){return t&&X(e.prototype,t),n&&X(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function V(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return U(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?U(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var a=0;return function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function j(){return(j=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e}).apply(null,arguments)}function K(e){return(K=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function z(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,$(e,t)}function Q(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(e){}return(Q=function(){return!!e})()}function Y(){Y=function(){return t};var e,t={},n=Object.prototype,a=n.hasOwnProperty,i=Object.defineProperty||function(e,t,n){e[t]=n.value},r="function"==typeof Symbol?Symbol:{},u=r.iterator||"@@iterator",o=r.asyncIterator||"@@asyncIterator",s=r.toStringTag||"@@toStringTag";function p(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{p({},"")}catch(e){p=function(e,t,n){return e[t]=n}}function d(e,t,n,a){var r=Object.create((t&&t.prototype instanceof h?t:h).prototype),u=new M(a||[]);return i(r,"_invoke",{value:A(e,n,u)}),r}function l(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}t.wrap=d;var c="suspendedStart",y="executing",m="completed",f={};function h(){}function T(){}function v(){}var g={};p(g,u,(function(){return this}));var w=Object.getPrototypeOf,b=w&&w(w(F([])));b&&b!==n&&a.call(b,u)&&(g=b);var x=v.prototype=h.prototype=Object.create(g);function k(e){["next","throw","return"].forEach((function(t){p(e,t,(function(e){return this._invoke(t,e)}))}))}function I(e,t){function n(i,r,u,o){var s=l(e[i],e,r);if("throw"!==s.type){var p=s.arg,d=p.value;return d&&"object"==typeof d&&a.call(d,"__await")?t.resolve(d.__await).then((function(e){n("next",e,u,o)}),(function(e){n("throw",e,u,o)})):t.resolve(d).then((function(e){p.value=e,u(p)}),(function(e){return n("throw",e,u,o)}))}o(s.arg)}var r;i(this,"_invoke",{value:function(e,a){function i(){return new t((function(t,i){n(e,a,t,i)}))}return r=r?r.then(i,i):i()}})}function A(t,n,a){var i=c;return function(r,u){if(i===y)throw Error("Generator is already running");if(i===m){if("throw"===r)throw u;return{value:e,done:!0}}for(a.method=r,a.arg=u;;){var o=a.delegate;if(o){var s=E(o,a);if(s){if(s===f)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(i===c)throw i=m,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);i=y;var p=l(t,n,a);if("normal"===p.type){if(i=a.done?m:"suspendedYield",p.arg===f)continue;return{value:p.arg,done:a.done}}"throw"===p.type&&(i=m,a.method="throw",a.arg=p.arg)}}}function E(t,n){var a=n.method,i=t.iterator[a];if(i===e)return n.delegate=null,"throw"===a&&t.iterator.return&&(n.method="return",n.arg=e,E(t,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),f;var r=l(i,t.iterator,n.arg);if("throw"===r.type)return n.method="throw",n.arg=r.arg,n.delegate=null,f;var u=r.arg;return u?u.done?(n[t.resultName]=u.value,n.next=t.nextLoc,"return"!==n.method&&(n.method="next",n.arg=e),n.delegate=null,f):u:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,f)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function R(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function M(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function F(t){if(t||""===t){var n=t[u];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,r=function n(){for(;++i<t.length;)if(a.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return r.next=r}}throw new TypeError(typeof t+" is not iterable")}return T.prototype=v,i(x,"constructor",{value:v,configurable:!0}),i(v,"constructor",{value:T,configurable:!0}),T.displayName=p(v,s,"GeneratorFunction"),t.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===T||"GeneratorFunction"===(t.displayName||t.name))},t.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,v):(e.__proto__=v,p(e,s,"GeneratorFunction")),e.prototype=Object.create(x),e},t.awrap=function(e){return{__await:e}},k(I.prototype),p(I.prototype,o,(function(){return this})),t.AsyncIterator=I,t.async=function(e,n,a,i,r){void 0===r&&(r=Promise);var u=new I(d(e,n,a,i),r);return t.isGeneratorFunction(n)?u:u.next().then((function(e){return e.done?e.value:u.next()}))},k(x),p(x,s,"Generator"),p(x,u,(function(){return this})),p(x,"toString",(function(){return"[object Generator]"})),t.keys=function(e){var t=Object(e),n=[];for(var a in t)n.push(a);return n.reverse(),function e(){for(;n.length;){var a=n.pop();if(a in t)return e.value=a,e.done=!1,e}return e.done=!0,e}},t.values=F,M.prototype={constructor:M,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method="next",this.arg=e,this.tryEntries.forEach(R),!t)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(a,i){return o.type="throw",o.arg=t,n.next=a,i&&(n.method="next",n.arg=e),!!i}for(var r=this.tryEntries.length-1;r>=0;--r){var u=this.tryEntries[r],o=u.completion;if("root"===u.tryLoc)return i("end");if(u.tryLoc<=this.prev){var s=a.call(u,"catchLoc"),p=a.call(u,"finallyLoc");if(s&&p){if(this.prev<u.catchLoc)return i(u.catchLoc,!0);if(this.prev<u.finallyLoc)return i(u.finallyLoc)}else if(s){if(this.prev<u.catchLoc)return i(u.catchLoc,!0)}else{if(!p)throw Error("try statement without catch or finally");if(this.prev<u.finallyLoc)return i(u.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&a.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var r=i;break}}r&&("break"===e||"continue"===e)&&r.tryLoc<=t&&t<=r.finallyLoc&&(r=null);var u=r?r.completion:{};return u.type=e,u.arg=t,r?(this.method="next",this.next=r.finallyLoc,f):this.complete(u)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),f},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),R(n),f}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var a=n.completion;if("throw"===a.type){var i=a.arg;R(n)}return i}}throw Error("illegal catch attempt")},delegateYield:function(t,n,a){return this.delegate={iterator:F(t),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=e),f}},t}function $(e,t){return($=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e})(e,t)}function J(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,"string");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function ee(e){var t="function"==typeof Map?new Map:void 0;return(ee=function(e){if(null===e||!function(e){try{return-1!==Function.toString.call(e).indexOf("[native code]")}catch(t){return"function"==typeof e}}(e))return e;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return W(e,arguments,K(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),$(n,e)})(e)}_.INTERFACE=new r.Interface(D);var te=function(){function e(e,t,n,a){var i=e.sortsBefore(t)?[e,t]:[t,e];if(this.token0=i[0],this.token1=i[1],this._pool=n,this.wrapper=a,this.wrapper)if(this.wrapper.vault().equals(this.token0))this.wrappedTokenIndex=0;else{if(!this.wrapper.vault().equals(this.token1))throw Error("WRONG TOKENS");this.wrappedTokenIndex=1}else this.wrappedTokenIndex=-1}var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.getTokenPrice=function(e,t){if(-1===this.wrappedTokenIndex)return this.pool.priceOf(e,t);this.wrapper||u(!1);var n=0===this.wrappedTokenIndex?this.token1:this.token0,i=this.wrapper.underlying();if(n.equals(i))return this.wrapper.priceOf(e);var r=n.equals(e),o=this.pool.priceOf(r?e:i,r?i:t),s=this.wrapper.priceOf(r?t:e),p=o.quote(a.CurrencyAmount.fromRawAmount(r?e:i,"1")).multiply(s);return new a.Price(e,t,p.denominator,p.numerator)},t.priceOf=function(e){return this.involvesToken(e)||u(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=H(Y().mark((function t(n){var a,i,r,o,s,p,d,l,c,y,m,f,h;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.involvesToken(n.currency)||u(!1),a=n.currency.equals(this.token0),-1!==this.wrappedTokenIndex){t.next=9;break}return t.next=5,this.pool.getOutputAmount(n,a?this.token1:this.token0);case 5:return t.abrupt("return",[(i=t.sent)[0],new e(this.token0,this.token1,i[1])]);case 9:if(this.wrapper||u(!1),r=0===this.wrappedTokenIndex?this.token1:this.token0,o=this.wrapper.underlying(),!r.equals(o)){t.next=19;break}return t.next=15,this.wrapper.getOutputAmount(n);case 15:return t.abrupt("return",[(s=t.sent)[0],new e(this.token0,this.token1,this.pool,s[1])]);case 19:if(!r.equals(n.currency)){t.next=31;break}return t.next=22,this.wrapper.getOutputAmount(n);case 22:return d=(p=t.sent)[0],l=p[1],t.next=27,this.pool.getOutputAmount(d,a?this.token1:this.token0);case 27:return t.abrupt("return",[(c=t.sent)[0],new e(this.token0,this.token1,c[1],l)]);case 31:return t.next=33,this.pool.getOutputAmount(n,a?this.token1:this.token0);case 33:return m=(y=t.sent)[0],f=y[1],t.next=38,this.wrapper.getInputAmount(m);case 38:return t.abrupt("return",[(h=t.sent)[0],new e(this.token0,this.token1,f,h[1])]);case 42:case"end":return t.stop()}}),t,this)})));return function(e){return t.apply(this,arguments)}}(),t.getInputAmount=function(){var e=H(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:throw Error("INVALID EXACT TOKEN OUT");case 1:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),Z(e,[{key:"pool",get:function(){return this._pool},set:function(e){this._pool=e}},{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=this.getTokenPrice(this.token0,this.token1)}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=this.getTokenPrice(this.token1,this.token0)}},{key:"chainId",get:function(){return this.token0.chainId}}]),e}();s.BigNumber.config({EXPONENTIAL_AT:[-100,100],ROUNDING_MODE:1,DECIMAL_PLACES:18});var ne=ie(0),ae=ie(1);function ie(e){return new s.BigNumber(e.toString())}var re=BigInt(0),ue=BigInt(1),oe=BigInt("1000000000000000000"),se=function(e,t){if(!e)throw new Error(t)};function pe(e){var t=BigInt(18)-e;return oe*Math.pow(BigInt(10),t)}var de=function(){function e(){}return e.add=function(e,t){var n=e+t;return se(t>=0&&n>=e||t<0&&n<e,"Errors.ADD_OVERFLOW"),n},e.sub=function(e,t){return se(t<=e,"Errors.SUB_OVERFLOW"),e-t},e.max=function(e,t){return e>=t?e:t},e.min=function(e,t){return e<t?e:t},e.mul=function(e,t){var n=e*t;return se(e==re||n/e==t,"Errors.MUL_OVERFLOW"),n},e.div=function(e,t,n){return n?this.divUp(e,t):this.divDown(e,t)},e.divDown=function(e,t){return se(t!=re,"Errors.ZERO_DIVISION"),e/t},e.divUp=function(e,t){return se(t!=re,"Errors.ZERO_DIVISION"),e==re?re:ue+(e-ue)/t},e.mulUpFixed=function(e,t){var n=e*t;return se(e==re||n/e==t,"Errors.MUL_OVERFLOW"),n==re?re:(n-ue)/this.ONE+ue},e.divDownFixed=function(e,t){return se(t!=re,"Errors.ZERO_DIVISION"),e==re?re:e*this.ONE/t},e.divUpFixed=function(e,t){if(se(t!=re,"Errors.ZERO_DIVISION"),e==re)return re;var n=e*this.ONE;return se(n/e==this.ONE,"Errors.DIV_INTERNAL"),(n-ue)/t+ue},e.complementFixed=function(e){return e<this.ONE?this.ONE-e:re},e.mulDownFixed=function(e,t){var n=e*t;return se(e==re||n/e==t,"Errors.MUL_OVERFLOW"),n/this.ONE},e}();de.ONE=BigInt("1000000000000000000"),de.MAX_POW_RELATIVE_ERROR=BigInt(1e4);var le,ce,ye,me=function(e,t){return d.getAddress(e)===d.getAddress(t)},fe=function(e){var t;return o.parseFixed(e.balance,18).mul(o.parseFixed(null!=(t=e.priceRate)?t:"1",18)).div(p.WeiPerEther).toBigInt()};(le=exports.SwapTypes||(exports.SwapTypes={}))[le.SwapExactIn=0]="SwapExactIn",le[le.SwapExactOut=1]="SwapExactOut",(ce=exports.PoolTypes||(exports.PoolTypes={}))[ce.Weighted=0]="Weighted",ce[ce.Stable=1]="Stable",ce[ce.Element=2]="Element",ce[ce.MetaStable=3]="MetaStable",ce[ce.Linear=4]="Linear",ce[ce.Gyro2=5]="Gyro2",ce[ce.Gyro3=6]="Gyro3",ce[ce.GyroE=7]="GyroE",ce[ce.Fx=8]="Fx",(ye=exports.PoolFilter||(exports.PoolFilter={})).All="All",ye.Weighted="Weighted",ye.Stable="Stable",ye.MetaStable="MetaStable",ye.LiquidityBootstrapping="LiquidityBootstrapping",ye.Investment="Investment",ye.Element="Element",ye.StablePhantom="StablePhantom",ye.ComposableStable="ComposableStable",ye.Gyro2="Gyro2",ye.Gyro3="Gyro3",ye.GyroE="GyroE",ye.AaveLinear="AaveLinear",ye.Linear="Linear",ye.EulerLinear="EulerLinear",ye.ERC4626Linear="ERC4626Linear",ye.BeefyLinear="BeefyLinear",ye.GearboxLinear="GearboxLinear",ye.MidasLinear="MidasLinear",ye.ReaperLinear="ReaperLinear",ye.SiloLinear="SiloLinear",ye.TetuLinear="TetuLinear",ye.YearnLinear="YearnLinear",ye.FX="FX";var he=BigInt(1e3);function Te(e,t){for(var n=re,a=t.length,i=0;i<a;i++)n+=t[i];if(n==re)return re;for(var r=re,u=n,o=e*BigInt(a),s=0;s<255;s++){for(var p=u,d=0;d<a;d++)p=de.divDown(de.mul(p,u),de.mul(t[d],BigInt(a)));if(r=u,(u=de.divDown(de.mul(de.divDown(de.mul(o,n),he)+de.mul(p,BigInt(a)),u),de.divDown(de.mul(o-he,u),he)+de.mul(BigInt(a+1),p)))>r){if(u-r<=1)return u}else if(r-u<=1)return u}throw new Error("Errors.STABLE_INVARIANT_DIDNT_CONVERGE")}function ve(e,t,n,a,i,r){i=function(e,t){return e-de.mulUpFixed(e,t)}(i,r);var u=Te(e,t);t[n]=t[n]+i;var o=Ie(e,t,u,a);return t[a]-o-BigInt(1)}function ge(e,t,n,a,i,r){var u=Te(e,t);t[a]=de.sub(t[a],i);var o=Ie(e,t,u,n);return function(e,t){return de.divUpFixed(e,de.complementFixed(t))}(de.add(de.sub(o,t[n]),BigInt(1)),r)}function we(e,t,n,a,i){for(var r=BigInt(0),u=0;u<t.length;u++)r+=t[u];for(var o=new Array(n.length),s=BigInt(0),p=0;p<t.length;p++){var d=de.divDownFixed(t[p],r);o[p]=de.divDownFixed(t[p]+n[p],t[p]),s+=de.mulDownFixed(o[p],d)}for(var l=new Array(t.length),c=0;c<t.length;c++){var y=void 0;if(o[c]>s){var m=de.mulDownFixed(t[c],s-de.ONE);y=m+de.mulDownFixed(n[c]-m,de.ONE-i)}else y=n[c];l[c]=t[c]+y}var f=Te(e,t),h=Te(e,l),T=de.divDownFixed(h,f);return T>de.ONE?de.mulDownFixed(a,T-de.ONE):BigInt(0)}function be(e,t,n,a,i,r){for(var u=Te(e,t),o=Ie(e,t,de.mulUpFixed(de.divUpFixed(de.add(i,a),i),u),n),s=de.sub(o,t[n]),p=BigInt(0),d=0;d<t.length;d++)p=de.add(p,t[d]);var l=de.divDownFixed(t[n],p),c=de.complementFixed(l),y=de.mulUpFixed(s,c),m=de.sub(s,y);return de.add(m,de.divUpFixed(y,de.sub(de.ONE,r)))}function xe(e,t,n,a,i){for(var r=BigInt(0),u=0;u<t.length;u++)r+=t[u];for(var o=new Array(n.length),s=BigInt(0),p=0;p<t.length;p++){var d=de.divUpFixed(t[p],r);o[p]=de.divUpFixed(t[p]-n[p],t[p]),s+=de.mulUpFixed(o[p],d)}for(var l=new Array(t.length),c=0;c<t.length;c++){var y=void 0;if(s>o[c]){var m=de.mulDownFixed(t[c],de.complementFixed(s));y=m+de.divUpFixed(n[c]-m,de.ONE-i)}else y=n[c];l[c]=t[c]-y}var f=Te(e,t),h=Te(e,l),T=de.divDownFixed(h,f);return de.mulUpFixed(a,de.complementFixed(T))}function ke(e,t,n,a,i,r){for(var u=Te(e,t),o=Ie(e,t,de.mulUpFixed(de.divUpFixed(i-a,i),u),n),s=t[n]-o,p=BigInt(0),d=0;d<t.length;d++)p+=t[d];var l=de.divDownFixed(t[n],p),c=de.complementFixed(l),y=de.mulUpFixed(s,c);return s-y+de.mulDownFixed(y,de.ONE-r)}function Ie(e,t,n,a){for(var i=e*BigInt(t.length),r=t[0],u=t[0]*BigInt(t.length),o=1;o<t.length;o++)u=de.divDown(de.mul(de.mul(u,t[o]),BigInt(t.length)),n),r+=t[o];r-=t[a];for(var s=de.mul(n,n),p=de.mul(de.mul(de.divUp(s,de.mul(i,u)),he),t[a]),d=r+de.mul(de.divDown(n,i),he),l=re,c=de.divUp(s+p,n+d),y=0;y<255;y++)if(l=c,(c=de.divUp(de.mul(c,c)+p,de.mul(c,BigInt(2))+d-n))>l){if(c-l<=1)return c}else if(l-c<=1)return c;throw new Error("Errors.STABLE_GET_BALANCE_DIDNT_CONVERGE")}var Ae,Ee=ie(1e3);function Oe(e,t){for(var n=ne,a=t.length,i=0;i<a;i++)n=n.plus(t[i]);if(n.isZero())return ne;for(var r=ne,u=n,s=ie(o.formatFixed(e,3)).times(Math.pow(a,a)),p=0;p<255;p++){for(var d=ie(a).times(t[0]),l=1;l<a;l++)d=d.times(t[l]).times(a).div(u);if(r=u,(u=ie(a).times(u).times(u).plus(s.times(n).times(d)).div(ie(a+1).times(u).plus(s.minus(1).times(d)))).gt(r)){if(u.minus(r).lt(ie(Math.pow(10,-18))))break}else if(r.minus(u).lt(ie(Math.pow(10,-18))))break}return u}function Re(e,t){if(e.isZero())return e;var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),o=u.length,s=n.div(Math.pow(o,o-1)),d=e;d=d.times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString());for(var l=Oe(s,u),c=l,y=ne,m=ie(u.length),f=ae,h=ne,T=0;T<u.length;T++){if(f=f.times(m),T==a)h=u[T].plus(d);else{if(T==i)continue;h=u[T]}y=y.plus(h),c=c.times(l).div(h)}var v=Pe(y,l,s,f,c);return u[i].minus(v)}function Me(e,t){if(e.isZero())return e;for(var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),o=u.length,s=n.div(Math.pow(o,o-1)),d=e,l=Oe(s,u),c=l,y=ne,m=ie(u.length),f=ae,h=ne,T=0;T<u.length;T++){if(f=f.times(m),T==i)h=u[T].minus(d);else{if(T==a)continue;h=u[T]}y=y.plus(h),c=c.times(l).div(h)}return Pe(y,l,s,f,c).minus(u[a]).multipliedBy(p.WeiPerEther.toString()).div(p.WeiPerEther.sub(r).toString())}function Fe(e,t){if(e.isZero())return e;for(var n=t.amp,a=t.virtualBptSupply,i=t.decimalsOut,r=t.tokenIndexIn,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=e,c=Oe(d,s),y=ie(o.formatFixed(a,i)),m=y.plus(l).div(y).times(c),f=ie(0),h=0;h<s.length;h++)f=f.plus(s[h]);var T=qe(d,s,m,r).minus(s[r]),v=s[r].div(f),g=ie(1).minus(v),w=ie(o.formatFixed(u,18));return T.div(ie(1).minus(g.times(w)))}function Be(e,t){if(e.isZero())return e;for(var n=t.amp,a=t.virtualBptSupply,i=t.decimalsIn,r=t.tokenIndexOut,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=e,c=Oe(d,s),y=ie(0),m=0;m<s.length;m++)y=y.plus(s[m]);var f=s[r].div(y),h=s[r].minus(l).div(s[r]),T=ie(1).minus(ie(1).minus(h).times(f)).minus(h).div(ie(1).minus(h)),v=ie(o.formatFixed(u,18)),g=l.div(ie(1).minus(v.times(T)));s[r]=s[r].minus(g);var w=Oe(d,s);return ie(o.formatFixed(a,i)).times(ie(1).minus(w.div(c)))}function qe(e,t,n,a){for(var i=n,r=ne,u=t.length,o=ae,s=ne,p=0;p<u;p++)o=o.times(u),p!=a&&(r=r.plus(s=t[p]),i=i.times(n).div(s));return Pe(r,n,e,o,i)}function Pe(e,t,n,a,i){var r=ie(o.formatFixed(n,3));i=i.times(t).div(r.times(a).times(a));var u=e.plus(t.div(r.times(a)));return(t.gte(u)?t.minus(u).plus(t.minus(u).times(t.minus(u)).plus(i.times(4)).sqrt()):u.minus(t).times(u.minus(t)).plus(i.times(4)).sqrt().minus(u.minus(t))).div(2)}function Se(e,t){if(e.isZero())return e;for(var n=t.amp,a=t.virtualBptSupply,i=t.tokenIndexIn,r=t.swapFee,u=t.decimalsOut,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=e,c=Oe(d,s),y=ie(0),m=0;m<s.length;m++)y=y.plus(s[m]);var f=s[i].div(y),h=s[i].plus(l).div(s[i]),T=ie(1).plus(h.minus(ie(1)).times(f)),v=h.minus(T).div(h.minus(ie(1))),g=ie(o.formatFixed(r,18)),w=l.times(ie(1).minus(g.times(v)));s[i]=s[i].plus(w);var b=Oe(d,s);return ie(o.formatFixed(a,u)).times(b.div(c).minus(ie(1)))}function Ce(e,t){if(e.isZero())return e;for(var n=t.amp,a=t.tokenIndexOut,i=t.swapFee,r=[].concat(t.allBalances),u=r.length,s=n.div(Math.pow(u,u-1)),d=e,l=Oe(s,r),c=ie(o.formatFixed(t.virtualBptSupply,18)),y=c.minus(d).div(c).times(l),m=ie(0),f=0;f<r.length;f++)m=m.plus(r[f]);var h=qe(s,r,y,a),T=r[a].minus(h),v=r[a].div(m),g=ie(1).minus(v);return T.times(ae.minus(g.times(i.toString()).div(p.WeiPerEther.toString())))}function Ne(e,t,n,a,i,r){for(var u=t.length,s=Oe(e,t),p=ne,d=0;d<u;d++)d!=n&&d!=a&&(p=p.plus(t[d]));var l,c=t[n],y=t[a],m=ie(o.formatFixed(e,3)).times(Math.pow(u,u)),f=p.minus(s).times(m).plus(s),h=ie(2).times(m).times(c).times(y),T=h.plus(m.times(y).times(y)).plus(f.times(y)),v=h.plus(m.times(c).times(c)).plus(f.times(c));if(i)l=T.div(v);else{var g=ie(2).times(m).times(y),w=ie(2).times(m).times(c),b=g.plus(w).plus(f),x=ie(2).times(T).times(v).times(b).minus(g.times(v.pow(2))).minus(w.times(T.pow(2))),k=T.pow(2).times(v);l=x.div(k),r&&(l=l.times(v).div(T))}return l}function De(e,t,n,a,i,r,u){for(var o=t.length,s=Oe(e,t),p=ne,d=s.div(o),l=0;l<o;l++)l!=a&&(p=p.plus(t[l]),d=d.times(s).div(t[l].times(o)));var c,y=t[a],m=ie(e.toString()).times(Math.pow(o,o)),f=m.times(p),h=Ee.minus(m),T=ie(2).times(m).times(y).plus(f).plus(h.times(s)),v=d.times(o+1).times(Ee).minus(h.times(y)),g=ne.minus(v);if(i)c=T.div(v).times(n).div(s);else{var w=ie(2).times(m),b=h,x=ne.minus(d.times(o*(o+1)).div(s));if(r){var k=w.times(g).div(T.pow(2)),I=ie(2).times(b).div(T),A=x.div(g);if(c=k.minus(I).plus(A).times(s).div(n),u){var E=ne.minus(T.div(g));c=c.div(E).times(s).div(n)}}else c=ie(2).times(b).div(g).minus(x.times(T).div(g.pow(2))).minus(w.div(T)),u&&(c=c.times(T).div(v).times(n).div(s))}return c}function _e(e,t){var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),o=u.length,s=n.div(Math.pow(o,o-1));u[a]=u[a].plus(e.times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString())),u[i]=u[i].minus(Re(e,t));var d=Ne(s,u,a,i,!0,!1);return ae.div(d.times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString()))}function Ue(e,t,n){for(var a=ne,i=0;i<e.length;i++)a=a.plus(e[i]);var r=e[t].div(a),u=ae.minus(r);return ae.minus(u.times(n.toString()).div(p.WeiPerEther.toString()))}function Ge(e,t){var n=t.amp,a=t.virtualBptSupply,i=t.decimalsOut,r=t.tokenIndexIn,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Ue(s,r,u),c=ie(o.formatFixed(a,i));s[r]=s[r].plus(e.times(l));var y=De(d,s,c=c.plus(Se(e,t)),r,!0,!0,!1);return ie(1).div(y.times(l))}function Le(e,t){var n=t.amp,a=t.virtualBptSupply,i=t.tokenIndexOut,r=t.swapFee,u=t.decimalsIn,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Ce(e,t),c=Ue(s,i,r),y=ie(o.formatFixed(a,u));return s[i]=s[i].minus(l.div(c)),De(d,s,y=y.minus(e),i,!0,!1,!1).div(c)}!function(e){e[e.BptToToken=0]="BptToToken",e[e.TokenToBpt=1]="TokenToBpt",e[e.TokenToToken=2]="TokenToToken"}(Ae||(Ae={}));var He=function(){function e(e,t,n,a,i,r,u){this.poolType=exports.PoolTypes.MetaStable,this.ALMOST_ONE=o.parseFixed("0.99",18),this.id=e,this.address=t,this.amp=o.BigNumber.from(n),this.swapFee=o.BigNumber.from(a),this.totalShares=o.BigNumber.from(i),this.tokens=r,this.tokensList=u}e.fromPool=function(t){if(!t.amp)throw new Error("PhantomStablePool missing amp factor");return new e(t.id,t.address,t.amp,t.swapFee,t.totalShares,t.tokens,t.tokensList)},e.removeBPT=function(e){var t=l(e),n=e.bptIndex;return-1!=n&&(t.allBalances.splice(n,1),t.allBalancesScaled.splice(n,1),n<e.tokenIndexIn&&(t.tokenIndexIn-=1),n<e.tokenIndexOut&&(t.tokenIndexOut-=1)),t};var t=e.prototype;return t.parsePoolPairData=function(t,n){var a=this.tokens.findIndex((function(e){return d.getAddress(e.address)===d.getAddress(t)}));if(a<0)throw"Pool does not contain tokenIn";var i=this.tokens[a],r=ie(i.balance).times(ie(i.priceRate)).dp(i.decimals).toString(),u=i.decimals,s=o.parseFixed(i.priceRate,18),l=this.tokens.findIndex((function(e){return d.getAddress(e.address)===d.getAddress(n)}));if(l<0)throw"Pool does not contain tokenOut";var c,y=this.tokens[l],m=ie(y.balance).times(ie(y.priceRate)).dp(y.decimals).toString(),f=y.decimals,h=o.parseFixed(y.priceRate,18),T=this.tokens.map((function(e){var t=e.priceRate;return ie(e.balance).times(ie(t))})),v=this.tokens.map((function(e){var t=e.priceRate;return o.parseFixed(e.balance,18).mul(o.parseFixed(t,18)).div(p.WeiPerEther)}));c=me(t,this.address)?Ae.BptToToken:me(n,this.address)?Ae.TokenToBpt:Ae.TokenToToken;var g=this.tokensList.indexOf(this.address),w=this.totalShares,b={id:this.id,address:this.address,poolType:this.poolType,pairType:c,bptIndex:g,tokenIn:t,tokenOut:n,balanceIn:o.parseFixed(r,u),balanceOut:o.parseFixed(m,f),swapFee:this.swapFee,allBalances:T,allBalancesScaled:v,amp:this.amp,tokenIndexIn:a,tokenIndexOut:l,decimalsIn:Number(u),decimalsOut:Number(f),tokenInPriceRate:s,tokenOutPriceRate:h,virtualBptSupply:w};return e.removeBPT(b)},t.getNormalizedLiquidity=function(e){return t=this._derivativeSpotPriceAfterSwapExactTokenInForTokenOut(e,ne),(n=ie(1).div(t)).isNaN()||n.lt(ne)||!n.isFinite()?ne:n;var t,n},t.getLimitAmountSwap=function(e,t){return exports,ie(o.formatFixed(e.balanceOut.mul(this.ALMOST_ONE).div(e.tokenOutPriceRate),e.decimalsOut))},t.updateTokenBalanceForPool=function(e,t){var n=this.tokens.find((function(t){return me(t.address,e)}));if(!n)throw Error("Pool does not contain this token");if(me(this.address,e)){var a=o.parseFixed(n.balance,n.decimals).sub(t),i=this.totalShares.add(a);this.updateTotalShares(i)}n.balance=o.formatFixed(t,n.decimals)},t.updateTotalShares=function(e){this.totalShares=e},t._exactTokenInForTokenOut=function(e,t){try{if(t.isZero())return ne;var n,a=this.subtractSwapFeeAmount(o.parseFixed(t.dp(18).toString(),18),e.swapFee).mul(e.tokenInPriceRate).div(p.WeiPerEther);if(e.pairType===Ae.TokenToBpt){var i=Array(e.allBalancesScaled.length).fill(BigInt(0));i[e.tokenIndexIn]=a.toBigInt(),n=we(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),i,e.virtualBptSupply.toBigInt(),BigInt(0))}else n=e.pairType===Ae.BptToToken?ke(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexOut,a.toBigInt(),e.virtualBptSupply.toBigInt(),BigInt(0)):ve(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,e.tokenIndexOut,a.toBigInt(),BigInt(0));var r=o.BigNumber.from(n).mul(p.WeiPerEther).div(e.tokenOutPriceRate);return ie(o.formatFixed(r,18))}catch(e){return ne}},t._tokenInForExactTokenOut=function(e,t){try{if(t.isZero())return ne;var n,a=o.parseFixed(t.dp(18).toString(),18).mul(e.tokenOutPriceRate).div(p.WeiPerEther);if(e.pairType===Ae.TokenToBpt)n=be(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,a.toBigInt(),e.virtualBptSupply.toBigInt(),BigInt(0));else if(e.pairType===Ae.BptToToken){var i=Array(e.allBalancesScaled.length).fill(BigInt(0));i[e.tokenIndexOut]=a.toBigInt(),n=xe(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),i,e.virtualBptSupply.toBigInt(),BigInt(0))}else n=ge(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,e.tokenIndexOut,a.toBigInt(),BigInt(0));var r=o.BigNumber.from(n).mul(p.WeiPerEther).div(e.tokenInPriceRate),u=this.addSwapFeeAmount(r,e.swapFee);return ie(o.formatFixed(u,18))}catch(e){return ne}},t._calcTokensOutGivenExactBptIn=function(e){throw new Error("PhantomPool does not have exit pool (_calcTokensOutGivenExactBptIn).")},t._calcBptOutGivenExactTokensIn=function(e){throw new Error("PhantomPool does not have join pool (_calcBptOutGivenExactTokensIn).")},t._spotPriceAfterSwapExactTokenInForTokenOut=function(e,t){var n=ie(o.formatFixed(e.tokenInPriceRate,18)),a=ie(o.formatFixed(e.tokenOutPriceRate,18)),i=t.times(ie(o.formatFixed(e.tokenInPriceRate,18)));return(e.pairType===Ae.TokenToBpt?Ge(i,e):e.pairType===Ae.BptToToken?Le(i,e):_e(i,e)).div(n).times(a)},t._spotPriceExactTokenInForTokenOut=function(e){var t=ie(o.formatFixed(e.tokenInPriceRate,18)),n=ie(o.formatFixed(e.tokenOutPriceRate,18));return(e.pairType===Ae.TokenToBpt?Ge(ne,e):e.pairType===Ae.BptToToken?Le(ne,e):_e(ne,e)).div(t).times(n)},t._spotPriceAfterSwapTokenInForExactTokenOut=function(e,t){var n=ie(o.formatFixed(e.tokenInPriceRate,18)),a=ie(o.formatFixed(e.tokenOutPriceRate,18)),i=t.times(o.formatFixed(e.tokenOutPriceRate,18));return(e.pairType===Ae.TokenToBpt?function(e,t){var n=t.amp,a=t.virtualBptSupply,i=t.tokenIndexIn,r=t.decimalsOut,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Fe(e,t),c=Ue(s,i,u);s[i]=s[i].plus(l.times(c));var y=ie(o.formatFixed(a,r)),m=De(d,s,y=y.plus(e),i,!0,!0,!0);return ae.div(m.times(c))}(i,e):e.pairType===Ae.BptToToken?function(e,t){var n=t.amp,a=t.virtualBptSupply,i=t.decimalsIn,r=t.tokenIndexOut,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Ue(s,r,u);s[r]=s[r].minus(e.div(l));var c=ie(o.formatFixed(a,i));return De(d,s,c=c.minus(Be(e,t)),r,!0,!1,!0).div(l)}(i,e):function(e,t){var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),o=u.length,s=n.div(Math.pow(o,o-1)),d=Me(e,t).times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString());u[a]=u[a].plus(d),u[i]=u[i].minus(e);var l=Ne(s,u,a,i,!0,!0);return ae.div(l.times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString()))}(i,e)).div(n).times(a)},t._derivativeSpotPriceAfterSwapExactTokenInForTokenOut=function(e,t){var n=ie(o.formatFixed(e.tokenOutPriceRate,18)),a=t.times(o.formatFixed(e.tokenInPriceRate,18));return(e.pairType===Ae.TokenToBpt?function(e,t){var n=t.amp,a=t.balanceOut,i=t.decimalsOut,r=t.tokenIndexIn,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Ue(s,r,u);s[r]=s[r].plus(e.times(l));var c=ie(o.formatFixed(a,i));return De(d,s,c=c.plus(Se(e,t)),r,!1,!0,!1)}(a,e):e.pairType===Ae.BptToToken?function(e,t){var n=t.amp,a=t.balanceIn,i=t.decimalsIn,r=t.tokenIndexOut,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Ce(e,t),c=Ue(s,r,u);s[r]=s[r].minus(l.div(c));var y=ie(o.formatFixed(a,i));return De(d,s,y=y.minus(e),r,!1,!1,!1).div(c)}(a,e):function(e,t){var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),o=u.length,s=n.div(Math.pow(o,o-1));return u[a]=u[a].plus(e.times(p.WeiPerEther.sub(r).toString()).div(p.WeiPerEther.toString())),u[i]=u[i].minus(Re(e,t)),Ne(s,u,a,i,!1,!1)}(a,e)).times(n)},t._derivativeSpotPriceAfterSwapTokenInForExactTokenOut=function(e,t){var n=ie(o.formatFixed(e.tokenInPriceRate,18)),a=ie(o.formatFixed(e.tokenOutPriceRate,18)),i=t.times(o.formatFixed(e.tokenOutPriceRate,18));return(e.pairType===Ae.TokenToBpt?function(e,t){var n=t.amp,a=t.balanceOut,i=t.decimalsOut,r=t.tokenIndexIn,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Fe(e,t),c=Ue(s,r,u);s[r]=s[r].plus(l.times(c));var y=ie(o.formatFixed(a,i));return De(d,s,y=y.plus(e),r,!1,!0,!0).div(c)}(i,e):e.pairType===Ae.BptToToken?function(e,t){var n=t.amp,a=t.balanceIn,i=t.decimalsIn,r=t.tokenIndexOut,u=t.swapFee,s=[].concat(t.allBalances),p=s.length,d=n.div(Math.pow(p,p-1)),l=Be(e,t),c=Ue(s,r,u);s[r]=s[r].minus(e.div(c));var y=ie(o.formatFixed(a,i));return De(d,s,y=y.minus(l),r,!1,!1,!0).div(c.pow(2))}(i,e):function(e,t){var n=t.amp,a=t.tokenIndexIn,i=t.tokenIndexOut,r=t.swapFee,u=[].concat(t.allBalances),s=u.length,p=n.div(Math.pow(s,s-1)),d=ie(o.formatFixed(r,18)),l=Me(e,t).times(ie(1).minus(d));u[a]=u[a].plus(l),u[i]=u[i].minus(e);var c=ie(1).minus(d);return Ne(p,u,a,i,!1,!0).div(c)}(i,e)).div(n).times(a).times(a)},t.subtractSwapFeeAmount=function(e,t){var n=e.mul(t).add(p.WeiPerEther.sub(1)).div(p.WeiPerEther);return e.sub(n)},t.addSwapFeeAmount=function(e,t){var n=p.WeiPerEther.sub(t);return e.mul(p.WeiPerEther).add(n.sub(1)).div(n)},e}();He.AMP_DECIMALS=3;var We,Xe=function(e){function t(t,n,a,i,r,u,o){return e.call(this,t,n,a,i,r,u,o)||this}z(t,e);var n=t.prototype;return n.involvesToken=function(e){return this.tokens.some((function(t){return t.address===e.address}))},n.priceOf=function(e,t){this.involvesToken(e)||u(!1),this.involvesToken(t)||u(!1),e.equals(t)&&u(!1);var n=this.parsePoolPairData(t.address,e.address),i=this._spotPriceExactTokenInForTokenOut(n).shiftedBy(n.decimalsIn-n.decimalsOut).toFraction(),r=i[0];return new a.Price(e,t,i[1].toString(),r.toString())},n.getOutputAmount=function(){var e=H(Y().mark((function e(t,n){var i,r,u,o,p,d,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this._checkInput(t.currency,n),i=this.parsePoolPairData(t.currency.address,n.address),r=i.balanceIn,u=i.balanceOut,o=i.tokenIn,p=i.tokenOut,d=new s.BigNumber(t.toExact()),l=this._exactTokenInForTokenOut(i,d),c=this.updateNewPool(o,r,d,i,p,u,l),e.abrupt("return",[a.CurrencyAmount.fromRawAmount(n,l.toString()),c]);case 7:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.getInputAmount=function(){var e=H(Y().mark((function e(t,n){var i,r,u,o,p,d,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this._checkInput(t.currency,n),i=this.parsePoolPairData(n.address,t.currency.address),r=i.balanceIn,u=i.balanceOut,o=i.tokenIn,p=i.tokenOut,d=new s.BigNumber(t.toExact()),l=this._tokenInForExactTokenOut(i,d),c=this.updateNewPool(o,r,l,i,p,u,d),e.abrupt("return",[a.CurrencyAmount.fromRawAmount(n,l.toString()),c]);case 7:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),t.clonePool=function(e){var n=e.swapFee,a=e.totalShares,i=e.tokens,r=e.tokensList;return new t(e.id,e.address,e.amp.toString(),n.toString(),a.toString(),i,r)},n.clonePool=function(){return t.clonePool(this)},n._checkInput=function(e,t){return this.involvesToken(e)||u(!1),t?this.involvesToken(t)||u(!1):t=new a.NativeToken(a.ROOT_CHAIN_ID,this.address,18),e.equals(t)&&u(!1),t},n.updateNewPool=function(e,t,n,a,i,r,u){var s=this.clonePool();return s.updateTokenBalanceForPool(e,t.add(o.parseFixed(n.dp(a.decimalsIn).toString(),a.decimalsIn))),s.updateTokenBalanceForPool(i,r.sub(o.parseFixed(u.dp(a.decimalsOut).toString(),a.decimalsOut))),s},Z(t,[{key:"chainId",get:function(){return a.ROOT_CHAIN_ID}}]),t}(function(e){function t(t,n,a,i,r,u,o){return e.call(this,t,n,a,i,r,u,o)||this}z(t,e),t.fromPool=function(e){if(!e.amp)throw new Error("ComposableStablePool missing amp factor");return new t(e.id,e.address,e.amp,e.swapFee,e.totalShares,e.tokens,e.tokensList)};var n=t.prototype;return n._exactTokenInForTokenOut=function(e,t){try{if(t.isZero())return ne;var n,a=o.parseFixed(t.dp(18).toString(),18).mul(e.tokenInPriceRate).div(p.WeiPerEther);if(e.pairType===Ae.TokenToBpt){var i=Array(e.allBalancesScaled.length).fill(BigInt(0));i[e.tokenIndexIn]=a.toBigInt(),n=we(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),i,e.virtualBptSupply.toBigInt(),e.swapFee.toBigInt())}else n=e.pairType===Ae.BptToToken?ke(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexOut,a.toBigInt(),e.virtualBptSupply.toBigInt(),e.swapFee.toBigInt()):ve(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,e.tokenIndexOut,a.toBigInt(),e.swapFee.toBigInt());var r=o.BigNumber.from(n).mul(p.WeiPerEther).div(e.tokenOutPriceRate);return ie(o.formatFixed(r,18)).dp(e.decimalsOut)}catch(e){return ne}},n._tokenInForExactTokenOut=function(e,t){try{if(t.isZero())return ne;var n,a=o.parseFixed(t.dp(18).toString(),18).mul(e.tokenOutPriceRate).div(p.WeiPerEther);if(e.pairType===Ae.TokenToBpt)n=be(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,a.toBigInt(),e.virtualBptSupply.toBigInt(),e.swapFee.toBigInt());else if(e.pairType===Ae.BptToToken){var i=Array(e.allBalancesScaled.length).fill(BigInt(0));i[e.tokenIndexOut]=a.toBigInt(),n=xe(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),i,e.virtualBptSupply.toBigInt(),e.swapFee.toBigInt())}else n=ge(this.amp.toBigInt(),e.allBalancesScaled.map((function(e){return e.toBigInt()})),e.tokenIndexIn,e.tokenIndexOut,a.toBigInt(),e.swapFee.toBigInt());var r=o.BigNumber.from(n).mul(p.WeiPerEther).div(e.tokenInPriceRate);return ie(o.formatFixed(r,18)).dp(e.decimalsOut)}catch(e){return ne}},n._calcTokensOutGivenExactBptIn=function(e){var t=this,n=this.tokens.filter((function(e){return!me(e.address,t.address)})),a=n.map((function(e){return fe(e)}));try{return function(e,t,n){for(var a=de.divDownFixed(t,n),i=new Array(e.length),r=0;r<e.length;r++)i[r]=de.mulDownFixed(e[r],a);return i}(a,e.toBigInt(),this.totalShares.toBigInt()).map((function(e,t){return a=n[t],function(e,t){return de.divDownFixed(e,t)}(e*oe/BigInt(o.parseFixed(null!=(i=a.priceRate)?i:"1",18).toString()),pe(BigInt(a.decimals)));var a,i})).map((function(e){return o.BigNumber.from(e)}))}catch(e){return new Array(a.length).fill(ne)}},n._calcBptOutGivenExactTokensIn=function(e){var t=this;try{var n=new Array(e.length).fill(BigInt(0)),a=new Array(e.length).fill(BigInt(0));this.tokens.filter((function(e){return!me(e.address,t.address)})).forEach((function(t,i){n[i]=function(e,t){var n,a=pe(BigInt(t.decimals));return o.BigNumber.from(function(e,t){return de.mulDownFixed(e,t)}(e,a).toString()).mul(o.parseFixed(null!=(n=t.priceRate)?n:"1",18)).div(p.WeiPerEther).toBigInt()}(BigInt(e[i].toString()),t),a[i]=fe(t)}));var i=we(this.amp.toBigInt(),a,n,this.totalShares.toBigInt(),this.swapFee.toBigInt());return o.BigNumber.from(i.toString())}catch(e){return console.error(e),p.Zero}},t}(He)),Ze=((We={})[1]=new a.NativeToken(1,"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",18,"WETH","Wrapped Ether"),We[3]=new a.NativeToken(3,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),We[4]=new a.NativeToken(4,"0xc778417E063141139Fce010982780140Aa0cD5Ab",18,"WETH","Wrapped Ether"),We[5]=new a.NativeToken(5,"0xB4FBF271143F4FBf7B91A5ded31805e42b2208d6",18,"WETH","Wrapped Ether"),We[42]=new a.NativeToken(42,"0xd0A1E359811322d97991E03f863a0C30C2cF029C",18,"WETH","Wrapped Ether"),We[10]=new a.NativeToken(10,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),We[69]=new a.NativeToken(69,"0x4200000000000000000000000000000000000006",18,"WETH","Wrapped Ether"),We[42161]=new a.NativeToken(42161,"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",18,"WETH","Wrapped Ether"),We[421611]=new a.NativeToken(421611,"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681",18,"WETH","Wrapped Ether"),We),Ve=function(e){function t(t){return e.call(this,t,18,"ETH","Ether")||this}return z(t,e),t.onChain=function(e){var n;return null!=(n=this._etherCache[e])?n:this._etherCache[e]=new t(e)},t.prototype.equals=function(e){return e.isNative&&e.chainId===this.chainId},Z(t,[{key:"wrapped",get:function(){var e=Ze[this.chainId];return e||u(!1),e}}]),t}(a.NativeCurrency);Ve._etherCache={};var je=[{type:"function",name:"accrue",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"accrue",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"},{name:"user",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"accrue",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"},{name:"user",type:"address",internalType:"address"},{name:"secondUser",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"addStrategyForRewards",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"allStrategies",inputs:[{name:"",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"contract ERC20"}],stateMutability:"view"},{type:"function",name:"cancelOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"claimRewards",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"completeOwnershipHandover",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"flywheelBooster",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IFlywheelBooster"}],stateMutability:"view"},{type:"function",name:"flywheelRewards",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getAllStrategies",inputs:[],outputs:[{name:"",type:"address[]",internalType:"contract ERC20[]"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"result",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownershipHandoverExpiresAt",inputs:[{name:"pendingOwner",type:"address",internalType:"address"}],outputs:[{name:"result",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"requestOwnershipHandover",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"rewardToken",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"rewardsAccrued",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"userRewards",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"setBooster",inputs:[{name:"newBooster",type:"address",internalType:"contract IFlywheelBooster"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setFlywheelRewards",inputs:[{name:"newFlywheelRewards",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"strategyIds",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"}],outputs:[{name:"strategyIds",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"strategyIndex",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"}],outputs:[{name:"index",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"userIndex",inputs:[{name:"strategy",type:"address",internalType:"contract ERC20"},{name:"user",type:"address",internalType:"address"}],outputs:[{name:"index",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"AccrueRewards",inputs:[{name:"strategy",type:"address",indexed:!0,internalType:"contract ERC20"},{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"rewardsDelta",type:"uint256",indexed:!0,internalType:"uint256"},{name:"rewardsIndex",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"AddStrategy",inputs:[{name:"newStrategy",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ClaimRewards",inputs:[{name:"user",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"FlywheelBoosterUpdate",inputs:[{name:"newBooster",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"FlywheelRewardsUpdate",inputs:[{name:"newFlywheelRewards",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverCanceled",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipHandoverRequested",inputs:[{name:"pendingOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"oldOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyInitialized",inputs:[]},{type:"error",name:"NewOwnerIsZeroAddress",inputs:[]},{type:"error",name:"NoHandoverRequest",inputs:[]},{type:"error",name:"Unauthorized",inputs:[]}],Ke=function(){function e(){}return e.encodeAccrueCalldata=function(t,n){return t||u(!1),t===a.ZERO_ADDRESS&&u(!1),n||u(!1),n===a.ZERO_ADDRESS&&u(!1),e.INTERFACE.encodeFunctionData("accrue",[t,n])},e.encodeClaimRewardsCalldata=function(t){return t||u(!1),t===a.ZERO_ADDRESS&&u(!1),e.INTERFACE.encodeFunctionData("claimRewards",[t])},e}();Ke.INTERFACE=new r.Interface(je);var ze=function(){function e(){}return e.encodeMulticall=function(t){return Array.isArray(t)||(t=[t]),1===t.length?t[0]:e.INTERFACE.encodeFunctionData("multicall",[t])},e}();function Qe(e){try{return d.getAddress(e)}catch(t){throw new Error(e+" is not a valid address.")}}ze.INTERFACE=new r.Interface(c.abi);var Ye=/^0x[0-9a-fA-F]{40}$/,$e=function(){function e(){}return e.encodeFeeBips=function(e){return a.toHex(e.multiply(1e4).quotient)},e.encodeUnwrapWETH9=function(t,n,i){if(n=Qe(n),i){var r=this.encodeFeeBips(i.fee),u=Qe(i.recipient);return e.INTERFACE.encodeFunctionData("unwrapWETH9WithFee",[a.toHex(t),n,r,u])}return e.INTERFACE.encodeFunctionData("unwrapWETH9",[a.toHex(t),n])},e.encodeSweepToken=function(t,n,i,r){if(i=Qe(i),r){var u=this.encodeFeeBips(r.fee),o=Qe(r.recipient);return e.INTERFACE.encodeFunctionData("sweepTokenWithFee",[t.address,a.toHex(n),i,u,o])}return e.INTERFACE.encodeFunctionData("sweepToken",[t.address,a.toHex(n),i])},e.encodeRefundETH=function(){return e.INTERFACE.encodeFunctionData("refundETH")},e}();function Je(e){var t=e.factoryAddress,n=e.tokenA,a=e.tokenB,i=e.fee,u=e.initCodeHashManualOverride,o=n.sortsBefore(a)?[n,a]:[a,n];return d.getCreate2Address(t,f.keccak256(["bytes"],[r.defaultAbiCoder.encode(["address","address","uint24"],[o[0].address,o[1].address,i])]),null!=u?u:I)}$e.INTERFACE=new r.Interface(m.abi);var et=function(){function e(){}return e.addDelta=function(e,t){return i.lessThan(t,a.ZERO)?i.subtract(e,i.multiply(t,a.NEGATIVE_ONE)):i.add(e,t)},e}(),tt=function(e,t){if(!e)throw new Error(t)},nt=function(){function e(){}return e.mulDivRoundingUp=function(e,t,n){var r=i.multiply(e,t),u=i.divide(r,n);return i.notEqual(i.remainder(r,n),a.ZERO)&&(u=i.add(u,a.ONE)),u},e.mulDownFixed=function(e,t){var n=i.multiply(e,t);return tt(i.equal(e,a.ZERO)||i.equal(i.divide(n,e),t),"Errors.MUL_OVERFLOW"),i.divide(n,a.ONE_18)},e.mulUpFixed=function(e,t){var n=i.multiply(e,t);return tt(i.equal(e,a.ZERO)||i.equal(i.divide(n,e),t),"Errors.MUL_OVERFLOW"),i.equal(n,a.ZERO)?a.ZERO:i.add(i.divide(i.subtract(n,a.ONE),a.ONE_18),a.ONE)},e.divDownFixed=function(e,t){if(tt(t!=a.ZERO,"Errors.ZERO_DIVISION"),i.equal(e,a.ZERO))return a.ZERO;var n=i.multiply(e,a.ONE_18);return i.divide(n,t)},e.divUpFixed=function(e,t){if(tt(t!=a.ZERO,"Errors.ZERO_DIVISION"),i.equal(e,a.ZERO))return a.ZERO;var n=i.multiply(e,a.ONE_18);return tt(i.equal(i.divide(n,e),a.ONE_18),"Errors.DIV_INTERNAL"),i.add(i.divide(i.subtract(n,a.ONE),t),a.ONE)},e}(),at=i.subtract(i.exponentiate(i.BigInt(2),i.BigInt(160)),a.ONE);function it(e,t){var n=i.multiply(e,t);return i.bitwiseAnd(n,a.MaxUint256)}var rt=function(){function e(){}return e.getAmount0Delta=function(e,t,n,r){if(i.greaterThan(e,t)){var u=[t,e];e=u[0],t=u[1]}var o=i.leftShift(n,i.BigInt(96)),s=i.subtract(t,e);return r?nt.mulDivRoundingUp(nt.mulDivRoundingUp(o,s,t),a.ONE,e):i.divide(i.divide(i.multiply(o,s),t),e)},e.getAmount1Delta=function(e,t,n,a){if(i.greaterThan(e,t)){var r=[t,e];e=r[0],t=r[1]}return a?nt.mulDivRoundingUp(n,i.subtract(t,e),R):i.divide(i.multiply(n,i.subtract(t,e)),R)},e.getNextSqrtPriceFromInput=function(e,t,n,r){return i.greaterThan(e,a.ZERO)||u(!1),i.greaterThan(t,a.ZERO)||u(!1),r?this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!0):this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!0)},e.getNextSqrtPriceFromOutput=function(e,t,n,r){return i.greaterThan(e,a.ZERO)||u(!1),i.greaterThan(t,a.ZERO)||u(!1),r?this.getNextSqrtPriceFromAmount1RoundingDown(e,t,n,!1):this.getNextSqrtPriceFromAmount0RoundingUp(e,t,n,!1)},e.getNextSqrtPriceFromAmount0RoundingUp=function(e,t,n,r){if(i.equal(n,a.ZERO))return e;var o=i.leftShift(t,i.BigInt(96));if(r){var s=it(n,e);if(i.equal(i.divide(s,n),e)){var p=(l=i.add(o,s),i.bitwiseAnd(l,a.MaxUint256));if(i.greaterThanOrEqual(p,o))return nt.mulDivRoundingUp(o,e,p)}return nt.mulDivRoundingUp(o,a.ONE,i.add(i.divide(o,e),n))}var d=it(n,e);i.equal(i.divide(d,n),e)||u(!1),i.greaterThan(o,d)||u(!1);var l,c=i.subtract(o,d);return nt.mulDivRoundingUp(o,e,c)},e.getNextSqrtPriceFromAmount1RoundingDown=function(e,t,n,a){if(a){var r=i.lessThanOrEqual(n,at)?i.divide(i.leftShift(n,i.BigInt(96)),t):i.divide(i.multiply(n,R),t);return i.add(e,r)}var o=nt.mulDivRoundingUp(n,R,t);return i.greaterThan(e,o)||u(!1),i.subtract(e,o)},e}(),ut=i.exponentiate(i.BigInt(10),i.BigInt(6)),ot=function(){function e(){}return e.computeSwapStep=function(e,t,n,r,u){var o={},s=i.greaterThanOrEqual(e,t),p=i.greaterThanOrEqual(r,a.ZERO);if(p){var d=i.divide(i.multiply(r,i.subtract(ut,i.BigInt(u))),ut);o.amountIn=s?rt.getAmount0Delta(t,e,n,!0):rt.getAmount1Delta(e,t,n,!0),o.sqrtRatioNextX96=i.greaterThanOrEqual(d,o.amountIn)?t:rt.getNextSqrtPriceFromInput(e,n,d,s)}else o.amountOut=s?rt.getAmount1Delta(t,e,n,!1):rt.getAmount0Delta(e,t,n,!1),o.sqrtRatioNextX96=i.greaterThanOrEqual(i.multiply(r,a.NEGATIVE_ONE),o.amountOut)?t:rt.getNextSqrtPriceFromOutput(e,n,i.multiply(r,a.NEGATIVE_ONE),s);var l=i.equal(t,o.sqrtRatioNextX96);return s?(o.amountIn=l&&p?o.amountIn:rt.getAmount0Delta(o.sqrtRatioNextX96,e,n,!0),o.amountOut=l&&!p?o.amountOut:rt.getAmount1Delta(o.sqrtRatioNextX96,e,n,!1)):(o.amountIn=l&&p?o.amountIn:rt.getAmount1Delta(e,o.sqrtRatioNextX96,n,!0),o.amountOut=l&&!p?o.amountOut:rt.getAmount0Delta(e,o.sqrtRatioNextX96,n,!1)),!p&&i.greaterThan(o.amountOut,i.multiply(r,a.NEGATIVE_ONE))&&(o.amountOut=i.multiply(r,a.NEGATIVE_ONE)),o.feeAmount=p&&i.notEqual(o.sqrtRatioNextX96,t)?i.subtract(r,o.amountIn):nt.mulDivRoundingUp(o.amountIn,i.BigInt(u),i.subtract(ut,i.BigInt(u))),[o.sqrtRatioNextX96,o.amountIn,o.amountOut,o.feeAmount]},e}(),st=i.BigInt(2),pt=[128,64,32,16,8,4,2,1].map((function(e){return[e,i.exponentiate(st,i.BigInt(e))]}));function dt(e){i.greaterThan(e,a.ZERO)||u(!1),i.lessThanOrEqual(e,a.MaxUint256)||u(!1);for(var t,n=0,r=V(pt);!(t=r()).done;){var o=t.value,s=o[0];i.greaterThanOrEqual(e,o[1])&&(e=i.signedRightShift(e,i.BigInt(s)),n+=s)}return n}function lt(e,t){return i.signedRightShift(i.multiply(e,i.BigInt(t)),i.BigInt(128))}var ct=i.exponentiate(i.BigInt(2),i.BigInt(32)),yt=function(){function e(){}return e.getSqrtRatioAtTick=function(t){t>=e.MIN_TICK&&t<=e.MAX_TICK&&Number.isInteger(t)||u(!1);var n=t<0?-1*t:t,r=i.BigInt(0!=(1&n)?"0xfffcb933bd6fad37aa2d162d1a594001":"0x100000000000000000000000000000000");return 0!=(2&n)&&(r=lt(r,"0xfff97272373d413259a46990580e213a")),0!=(4&n)&&(r=lt(r,"0xfff2e50f5f656932ef12357cf3c7fdcc")),0!=(8&n)&&(r=lt(r,"0xffe5caca7e10e4e61c3624eaa0941cd0")),0!=(16&n)&&(r=lt(r,"0xffcb9843d60f6159c9db58835c926644")),0!=(32&n)&&(r=lt(r,"0xff973b41fa98c081472e6896dfb254c0")),0!=(64&n)&&(r=lt(r,"0xff2ea16466c96a3843ec78b326b52861")),0!=(128&n)&&(r=lt(r,"0xfe5dee046a99a2a811c461f1969c3053")),0!=(256&n)&&(r=lt(r,"0xfcbe86c7900a88aedcffc83b479aa3a4")),0!=(512&n)&&(r=lt(r,"0xf987a7253ac413176f2b074cf7815e54")),0!=(1024&n)&&(r=lt(r,"0xf3392b0822b70005940c7a398e4b70f3")),0!=(2048&n)&&(r=lt(r,"0xe7159475a2c29b7443b29c7fa6e889d9")),0!=(4096&n)&&(r=lt(r,"0xd097f3bdfd2022b8845ad8f792aa5825")),0!=(8192&n)&&(r=lt(r,"0xa9f746462d870fdf8a65dc1f90e061e5")),0!=(16384&n)&&(r=lt(r,"0x70d869a156d2a1b890bb3df62baf32f7")),0!=(32768&n)&&(r=lt(r,"0x31be135f97d08fd981231505542fcfa6")),0!=(65536&n)&&(r=lt(r,"0x9aa508b5b7a84e1c677de54f3e99bc9")),0!=(131072&n)&&(r=lt(r,"0x5d6af8dedb81196699c329225ee604")),0!=(262144&n)&&(r=lt(r,"0x2216e584f5fa1ea926041bedfe98")),0!=(524288&n)&&(r=lt(r,"0x48a170391f7dc42444e8fa2")),t>0&&(r=i.divide(a.MaxUint256,r)),i.greaterThan(i.remainder(r,ct),a.ZERO)?i.add(i.divide(r,ct),a.ONE):i.divide(r,ct)},e.getTickAtSqrtRatio=function(t){i.greaterThanOrEqual(t,e.MIN_SQRT_RATIO)&&i.lessThan(t,e.MAX_SQRT_RATIO)||u(!1);var n,a=i.leftShift(t,i.BigInt(32)),r=dt(a);n=i.greaterThanOrEqual(i.BigInt(r),i.BigInt(128))?i.signedRightShift(a,i.BigInt(r-127)):i.leftShift(a,i.BigInt(127-r));for(var o=i.leftShift(i.subtract(i.BigInt(r),i.BigInt(128)),i.BigInt(64)),s=0;s<14;s++){n=i.signedRightShift(i.multiply(n,n),i.BigInt(127));var p=i.signedRightShift(n,i.BigInt(128));o=i.bitwiseOr(o,i.leftShift(p,i.BigInt(63-s))),n=i.signedRightShift(n,p)}var d=i.multiply(o,i.BigInt("255738958999603826347141")),l=i.toNumber(i.signedRightShift(i.subtract(d,i.BigInt("3402992956809132418596140100660247210")),i.BigInt(128))),c=i.toNumber(i.signedRightShift(i.add(d,i.BigInt("291339464771989622907027621153398088495")),i.BigInt(128)));return l===c?l:i.lessThanOrEqual(e.getSqrtRatioAtTick(c),t)?c:l},e}();yt.MIN_TICK=-887272,yt.MAX_TICK=-yt.MIN_TICK,yt.MIN_SQRT_RATIO=i.BigInt("4295128739"),yt.MAX_SQRT_RATIO=i.BigInt("1461446703485210103287273052203988822378723970342");var mt=function(){function e(){}var t=e.prototype;return t.getTick=function(){var t=H(Y().mark((function t(n){return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var t=H(Y().mark((function t(n,a,i){return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error(e.ERROR_MESSAGE);case 1:case"end":return t.stop()}}),t)})));return function(e,n,a){return t.apply(this,arguments)}}(),e}();function ft(e,t){for(var n=0;n<e.length-1;n++)if(t(e[n],e[n+1])>0)return!1;return!0}function ht(e,t){return e.index-t.index}mt.ERROR_MESSAGE="No tick data provider was given";var Tt=function(){function e(){}return e.validateList=function(e,t){t>0||u(!1),e.every((function(e){return e.index%t==0}))||u(!1),i.equal(e.reduce((function(e,t){return i.add(e,t.liquidityNet)}),a.ZERO),a.ZERO)||u(!1),ft(e,ht)||u(!1)},e.isBelowSmallest=function(e,t){return e.length>0||u(!1),t<e[0].index},e.isAtOrAboveLargest=function(e,t){return e.length>0||u(!1),t>=e[e.length-1].index},e.getTick=function(e,t){var n=e[this.binarySearch(e,t)];return n.index!==t&&u(!1),n},e.binarySearch=function(e,t){this.isBelowSmallest(e,t)&&u(!1);for(var n,a=0,i=e.length-1;;){if(e[n=Math.floor((a+i)/2)].index<=t&&(n===e.length-1||e[n+1].index>t))return n;e[n].index<t?a=n+1:i=n-1}},e.nextInitializedTick=function(t,n,a){return a?(e.isBelowSmallest(t,n)&&u(!1),e.isAtOrAboveLargest(t,n)?t[t.length-1]:t[this.binarySearch(t,n)]):(this.isAtOrAboveLargest(t,n)&&u(!1),this.isBelowSmallest(t,n)?t[0]:t[this.binarySearch(t,n)+1])},e.nextInitializedTickWithinOneWord=function(t,n,a,i){var r=Math.floor(n/i);if(a){var u=(r>>8<<8)*i;if(e.isBelowSmallest(t,n))return[u,!1];var o=e.nextInitializedTick(t,n,a).index,s=Math.max(u,o);return[s,s===o]}var p=((1+(r+1>>8)<<8)-1)*i;if(this.isAtOrAboveLargest(t,n))return[p,!1];var d=this.nextInitializedTick(t,n,a).index,l=Math.min(p,d);return[l,l===d]},e}(),vt=function(e){var t=e.index,n=e.liquidityGross,a=e.liquidityNet;t>=yt.MIN_TICK&&t<=yt.MAX_TICK||u(!1),this.index=t,this.liquidityGross=i.BigInt(n),this.liquidityNet=i.BigInt(a)},gt=function(){function e(e,t){var n=e.map((function(e){return e instanceof vt?e:new vt(e)}));Tt.validateList(n,t),this.ticks=n}var t=e.prototype;return t.getTick=function(){var e=H(Y().mark((function e(t){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Tt.getTick(this.ticks,t));case 1:case"end":return e.stop()}}),e,this)})));return function(t){return e.apply(this,arguments)}}(),t.nextInitializedTickWithinOneWord=function(){var e=H(Y().mark((function e(t,n,a){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",Tt.nextInitializedTickWithinOneWord(this.ticks,t,n,a));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n,a){return e.apply(this,arguments)}}(),e}(),wt=new mt,bt=function(){function e(e,t,n,a,r,o,s){void 0===s&&(s=wt),Number.isInteger(n)&&n<1e6||u(!1);var p=yt.getSqrtRatioAtTick(o),d=yt.getSqrtRatioAtTick(o+1);i.greaterThanOrEqual(i.BigInt(a),p)&&i.lessThanOrEqual(i.BigInt(a),d)||u(!1);var l=e.sortsBefore(t)?[e,t]:[t,e];this.token0=l[0],this.token1=l[1],this.fee=n,this.sqrtRatioX96=i.BigInt(a),this.liquidity=i.BigInt(r),this.tickCurrent=o,this.tickDataProvider=Array.isArray(s)?new gt(s,O[n]):s}e.getAddress=function(e,t,n,a,i){return Je({factoryAddress:null!=i?i:b,fee:n,tokenA:e,tokenB:t,initCodeHashManualOverride:a})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||u(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.getOutputAmount=function(){var t=H(Y().mark((function t(n,r){var o,s,p,d,l;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return this.involvesToken(n.currency)||u(!1),o=n.currency.equals(this.token0),t.next=4,this.swap(o,n.quotient,r);case 4:return p=(s=t.sent).sqrtRatioX96,d=s.liquidity,l=s.tickCurrent,t.abrupt("return",[a.CurrencyAmount.fromRawAmount(o?this.token1:this.token0,i.multiply(s.amountCalculated,a.NEGATIVE_ONE)),new e(this.token0,this.token1,this.fee,p,d,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.getInputAmount=function(){var t=H(Y().mark((function t(n,r){var o,s,p,d,l;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return n.currency.isToken&&this.involvesToken(n.currency)||u(!1),o=n.currency.equals(this.token1),t.next=4,this.swap(o,i.multiply(n.quotient,a.NEGATIVE_ONE),r);case 4:return p=(s=t.sent).sqrtRatioX96,d=s.liquidity,l=s.tickCurrent,t.abrupt("return",[a.CurrencyAmount.fromRawAmount(o?this.token0:this.token1,s.amountCalculated),new e(this.token0,this.token1,this.fee,p,d,l,this.tickDataProvider)]);case 11:case"end":return t.stop()}}),t,this)})));return function(e,n){return t.apply(this,arguments)}}(),t.swap=function(){var e=H(Y().mark((function e(t,n,r){var o,s,p,d,l,c;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:r||(r=t?i.add(yt.MIN_SQRT_RATIO,a.ONE):i.subtract(yt.MAX_SQRT_RATIO,a.ONE)),t?(i.greaterThan(r,yt.MIN_SQRT_RATIO)||u(!1),i.lessThan(r,this.sqrtRatioX96)||u(!1)):(i.lessThan(r,yt.MAX_SQRT_RATIO)||u(!1),i.greaterThan(r,this.sqrtRatioX96)||u(!1)),o=i.greaterThanOrEqual(n,a.ZERO),s={amountSpecifiedRemaining:n,amountCalculated:a.ZERO,sqrtPriceX96:this.sqrtRatioX96,tick:this.tickCurrent,liquidity:this.liquidity};case 4:if(!i.notEqual(s.amountSpecifiedRemaining,a.ZERO)||s.sqrtPriceX96==r){e.next=35;break}return(p={}).sqrtPriceStartX96=s.sqrtPriceX96,e.next=9,this.tickDataProvider.nextInitializedTickWithinOneWord(s.tick,t,this.tickSpacing);case 9:if(p.tickNext=(d=e.sent)[0],p.initialized=d[1],p.tickNext<yt.MIN_TICK?p.tickNext=yt.MIN_TICK:p.tickNext>yt.MAX_TICK&&(p.tickNext=yt.MAX_TICK),p.sqrtPriceNextX96=yt.getSqrtRatioAtTick(p.tickNext),l=ot.computeSwapStep(s.sqrtPriceX96,(t?i.lessThan(p.sqrtPriceNextX96,r):i.greaterThan(p.sqrtPriceNextX96,r))?r:p.sqrtPriceNextX96,s.liquidity,s.amountSpecifiedRemaining,this.fee),s.sqrtPriceX96=l[0],p.amountIn=l[1],p.amountOut=l[2],p.feeAmount=l[3],o?(s.amountSpecifiedRemaining=i.subtract(s.amountSpecifiedRemaining,i.add(p.amountIn,p.feeAmount)),s.amountCalculated=i.subtract(s.amountCalculated,p.amountOut)):(s.amountSpecifiedRemaining=i.add(s.amountSpecifiedRemaining,p.amountOut),s.amountCalculated=i.add(s.amountCalculated,i.add(p.amountIn,p.feeAmount))),!i.equal(s.sqrtPriceX96,p.sqrtPriceNextX96)){e.next=32;break}if(!p.initialized){e.next=29;break}return e.t0=i,e.next=25,this.tickDataProvider.getTick(p.tickNext);case 25:e.t1=e.sent.liquidityNet,c=e.t0.BigInt.call(e.t0,e.t1),t&&(c=i.multiply(c,a.NEGATIVE_ONE)),s.liquidity=et.addDelta(s.liquidity,c);case 29:s.tick=t?p.tickNext-1:p.tickNext,e.next=33;break;case 32:i.notEqual(s.sqrtPriceX96,p.sqrtPriceStartX96)&&(s.tick=yt.getTickAtSqrtRatio(s.sqrtPriceX96));case 33:e.next=4;break;case 35:return e.abrupt("return",{amountCalculated:s.amountCalculated,sqrtRatioX96:s.sqrtPriceX96,liquidity:s.liquidity,tickCurrent:s.tick});case 36:case"end":return e.stop()}}),e,this)})));return function(t,n,a){return e.apply(this,arguments)}}(),Z(e,[{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=new a.Price(this.token0,this.token1,M,i.multiply(this.sqrtRatioX96,this.sqrtRatioX96))}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=new a.Price(this.token1,this.token0,i.multiply(this.sqrtRatioX96,this.sqrtRatioX96),M)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"tickSpacing",get:function(){return O[this.fee]}}]),e}(),xt=i.BigInt(Number.MAX_SAFE_INTEGER),kt=i.BigInt(0),It=i.BigInt(1),At=i.BigInt(2);function Et(e){if(i.greaterThanOrEqual(e,kt)||u(!1),i.lessThan(e,xt))return i.BigInt(Math.floor(Math.sqrt(i.toNumber(e))));var t,n;for(t=e,n=i.add(i.divide(e,At),It);i.lessThan(n,t);)t=n,n=i.divide(i.add(i.divide(e,n),n),At);return t}function Ot(e,t){var n=i.leftShift(i.BigInt(e),i.BigInt(192)),a=i.BigInt(t);return Et(i.divide(n,a))}function Rt(e,t,n){if(i.greaterThan(e,t)){var a=[t,e];e=a[0],t=a[1]}var r=i.divide(i.multiply(e,t),R);return i.divide(i.multiply(i.BigInt(n),r),i.subtract(t,e))}function Mt(e,t,n){if(i.greaterThan(e,t)){var a=[t,e];e=a[0],t=a[1]}var r=i.multiply(i.multiply(i.BigInt(n),e),t),u=i.multiply(R,i.subtract(t,e));return i.divide(r,u)}function Ft(e,t,n){if(i.greaterThan(e,t)){var a=[t,e];e=a[0],t=a[1]}return i.divide(i.multiply(i.BigInt(n),R),i.subtract(t,e))}function Bt(e,t,n,a,r,u){if(i.greaterThan(t,n)){var o=[n,t];t=o[0],n=o[1]}var s=u?Mt:Rt;if(i.lessThanOrEqual(e,t))return s(t,n,a);if(i.lessThan(e,n)){var p=s(e,n,a),d=Ft(t,e,r);return i.lessThan(p,d)?p:d}return Ft(t,n,r)}function qt(e,t,n){var r=yt.getSqrtRatioAtTick(n),u=i.multiply(r,r);return e.sortsBefore(t)?new a.Price(e,t,M,u):new a.Price(e,t,u,M)}var Pt=function(){function e(e){var t=e.pool,n=e.liquidity,a=e.tickLower,r=e.tickUpper;this._token0Amount=null,this._token1Amount=null,this._mintAmounts=null,a<r||u(!1),a>=yt.MIN_TICK&&a%t.tickSpacing==0||u(!1),r<=yt.MAX_TICK&&r%t.tickSpacing==0||u(!1),this.pool=t,this.tickLower=a,this.tickUpper=r,this.liquidity=i.BigInt(n),this.staked=!1}var t=e.prototype;return t.ratiosAfterSlippage=function(e){if(this.pool instanceof bt){var t=this.pool.token0Price.asFraction.multiply(new a.Percent(1).subtract(e)),n=this.pool.token0Price.asFraction.multiply(e.add(1)),r=Ot(t.numerator,t.denominator);i.lessThanOrEqual(r,yt.MIN_SQRT_RATIO)&&(r=i.add(yt.MIN_SQRT_RATIO,i.BigInt(1)));var u=Ot(n.numerator,n.denominator);return i.greaterThanOrEqual(u,yt.MAX_SQRT_RATIO)&&(u=i.subtract(yt.MAX_SQRT_RATIO,i.BigInt(1))),{sqrtRatioX96Lower:r,sqrtRatioX96Upper:u}}},t.mintAmountsWithSlippage=function(t){if(this.pool instanceof bt){var n=this.ratiosAfterSlippage(t),a=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,r=new bt(this.pool.token0,this.pool.token1,this.pool.fee,i,0,yt.getTickAtSqrtRatio(i)),u=new bt(this.pool.token0,this.pool.token1,this.pool.fee,a,0,yt.getTickAtSqrtRatio(a)),o=e.fromAmounts(j({pool:this.pool,tickLower:this.tickLower,tickUpper:this.tickUpper},this.mintAmounts,{useFullPrecision:!1}));return{amount0:new e({pool:u,liquidity:o.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount0,amount1:new e({pool:r,liquidity:o.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).mintAmounts.amount1}}return{amount0:void 0,amount1:void 0}},t.burnAmountsWithSlippage=function(t){if(this.pool instanceof bt){var n=this.ratiosAfterSlippage(t),a=n.sqrtRatioX96Upper,i=n.sqrtRatioX96Lower,r=new bt(this.pool.token0,this.pool.token1,this.pool.fee,i,0,yt.getTickAtSqrtRatio(i)),u=new e({pool:new bt(this.pool.token0,this.pool.token1,this.pool.fee,a,0,yt.getTickAtSqrtRatio(a)),liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount0,o=new e({pool:r,liquidity:this.liquidity,tickLower:this.tickLower,tickUpper:this.tickUpper}).amount1;return{amount0:null==u?void 0:u.quotient,amount1:null==o?void 0:o.quotient}}},e.fromAmounts=function(t){var n=t.pool,a=t.tickLower,i=t.tickUpper,r=t.amount0,u=t.amount1,o=t.useFullPrecision,s=yt.getSqrtRatioAtTick(a),p=yt.getSqrtRatioAtTick(i);return new e({pool:n,tickLower:a,tickUpper:i,liquidity:Bt(n.sqrtRatioX96,s,p,r,u,o)})},e.fromAmount0=function(t){return e.fromAmounts({pool:t.pool,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0:t.amount0,amount1:a.MaxUint256,useFullPrecision:t.useFullPrecision})},e.fromAmount1=function(t){return e.fromAmounts({pool:t.pool,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0:a.MaxUint256,amount1:t.amount1,useFullPrecision:!0})},Z(e,[{key:"token0PriceLower",get:function(){return this.pool instanceof bt?qt(this.pool.token0,this.pool.token1,this.tickLower):void 0}},{key:"token0PriceUpper",get:function(){return this.pool instanceof bt?qt(this.pool.token0,this.pool.token1,this.tickUpper):void 0}},{key:"amount0",get:function(){return this.pool instanceof bt?(null===this._token0Amount&&(this._token0Amount=a.CurrencyAmount.fromRawAmount(this.pool.token0,this.pool.tickCurrent<this.tickLower?rt.getAmount0Delta(yt.getSqrtRatioAtTick(this.tickLower),yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1):this.pool.tickCurrent<this.tickUpper?rt.getAmount0Delta(this.pool.sqrtRatioX96,yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1):a.ZERO)),this._token0Amount):void 0}},{key:"amount1",get:function(){return this.pool instanceof bt?(null===this._token1Amount&&(this._token1Amount=a.CurrencyAmount.fromRawAmount(this.pool.token1,this.pool.tickCurrent<this.tickLower?a.ZERO:rt.getAmount1Delta(yt.getSqrtRatioAtTick(this.tickLower),this.pool.tickCurrent<this.tickUpper?this.pool.sqrtRatioX96:yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!1))),this._token1Amount):void 0}},{key:"mintAmounts",get:function(){return this.pool instanceof bt?null===this._mintAmounts?this.pool.tickCurrent<this.tickLower?{amount0:rt.getAmount0Delta(yt.getSqrtRatioAtTick(this.tickLower),yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:a.ZERO}:this.pool.tickCurrent<this.tickUpper?{amount0:rt.getAmount0Delta(this.pool.sqrtRatioX96,yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0),amount1:rt.getAmount1Delta(yt.getSqrtRatioAtTick(this.tickLower),this.pool.sqrtRatioX96,this.liquidity,!0)}:{amount0:a.ZERO,amount1:rt.getAmount1Delta(yt.getSqrtRatioAtTick(this.tickLower),yt.getSqrtRatioAtTick(this.tickUpper),this.liquidity,!0)}:this._mintAmounts:void 0}}]),e}(),St=function(){function e(){}return e.encodePermit=function(t,n){return"nonce"in n?e.INTERFACE.encodeFunctionData("selfPermitAllowed",[t.address,a.toHex(n.nonce),a.toHex(n.expiry),n.v,n.r,n.s]):e.INTERFACE.encodeFunctionData("selfPermit",[t.address,a.toHex(n.amount),a.toHex(n.deadline),n.v,n.r,n.s])},e}();St.INTERFACE=new r.Interface(h.abi);var Ct=["expectedCurrencyOwed0","expectedCurrencyOwed1"],Nt=a.toHex(i.subtract(i.exponentiate(i.BigInt(2),i.BigInt(128)),i.BigInt(1)));function Dt(e){return Object.keys(e).some((function(e){return"recipient"===e}))}var _t=function(){function e(){}return e.encodeCreate=function(t){return e.INTERFACE.encodeFunctionData("createAndInitializePoolIfNecessary",[t.token0.address,t.token1.address,t.fee,a.toHex(t.sqrtRatioX96)])},e.createCallParameters=function(e){return{calldata:this.encodeCreate(e),value:a.toHex(0)}},e.addCallParameters=function(t,n){if(t.pool instanceof bt){i.greaterThan(t.liquidity,a.ZERO)||u(!1);var r=[],o=t.mintAmounts,s=o.amount0,p=o.amount1,d=t.mintAmountsWithSlippage(n.slippageTolerance),l=a.toHex(d.amount0),c=a.toHex(d.amount1),y=a.toHex(n.deadline);if(Dt(n)&&n.createPool&&r.push(this.encodeCreate(t.pool)),n.token0Permit&&r.push(St.encodePermit(t.pool.token0,n.token0Permit)),n.token1Permit&&r.push(St.encodePermit(t.pool.token1,n.token1Permit)),Dt(n)){var m=Qe(n.recipient);r.push(e.INTERFACE.encodeFunctionData("mint",[{token0:t.pool.token0.address,token1:t.pool.token1.address,fee:t.pool.fee,tickLower:t.tickLower,tickUpper:t.tickUpper,amount0Desired:a.toHex(s),amount1Desired:a.toHex(p),amount0Min:l,amount1Min:c,recipient:m,deadline:y}]))}else r.push(e.INTERFACE.encodeFunctionData("increaseLiquidity",[{tokenId:a.toHex(n.tokenId),amount0Desired:a.toHex(s),amount1Desired:a.toHex(p),amount0Min:l,amount1Min:c,deadline:y}]));var f,h=a.toHex(0);if(n.useNative){var T=n.useNative.wrapped;t.pool.token0.equals(T)||t.pool.token1.equals(T)||u(!1);var v=t.pool.token0.equals(T)?s:p;i.greaterThan(v,a.ZERO)&&r.push($e.encodeRefundETH()),h=a.toHex(v)}return!Dt(n)&&n.afterActionTransfer&&r.push(e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[n.afterActionTransfer.owner,null!=(f=n.afterActionTransfer.recipient)?f:n.afterActionTransfer.owner,a.toHex(n.tokenId)])),{calldata:ze.encodeMulticall(r),value:h}}return{calldata:"",value:""}},e.encodeCollect=function(t){var n,i=[],r=a.toHex(t.tokenId),u=t.expectedCurrencyOwed0.currency.isNative||t.expectedCurrencyOwed1.currency.isNative,o=Qe(t.recipient);if(t.permit&&i.push(e.INTERFACE.encodeFunctionData("permit",[Qe(t.permit.spender),r,a.toHex(t.permit.deadline),t.permit.v,t.permit.r,t.permit.s])),i.push(e.INTERFACE.encodeFunctionData("collect",[{tokenId:r,recipient:u?x:o,amount0Max:Nt,amount1Max:Nt}])),u){var s=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.currency:t.expectedCurrencyOwed0.currency,p=t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed1.quotient:t.expectedCurrencyOwed0.quotient;i.push($e.encodeUnwrapWETH9(t.expectedCurrencyOwed0.currency.isNative?t.expectedCurrencyOwed0.quotient:t.expectedCurrencyOwed1.quotient,o)),i.push($e.encodeSweepToken(s,p,o))}return t.afterActionTransfer&&i.push(e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[t.afterActionTransfer.owner,null!=(n=t.afterActionTransfer.recipient)?n:t.afterActionTransfer.owner,a.toHex(t.tokenId)])),i},e.collectCallParameters=function(t){var n=e.encodeCollect(t);return{calldata:ze.encodeMulticall(n),value:a.toHex(0)}},e.removeCallParameters=function(t,n){var r=[],o=a.toHex(n.deadline),s=a.toHex(n.tokenId),p=new Pt({pool:t.pool,liquidity:n.liquidityPercentage.multiply(t.liquidity).quotient,tickLower:t.tickLower,tickUpper:t.tickUpper});i.greaterThan(p.liquidity,a.ZERO)||u(!1);var d=p.burnAmountsWithSlippage(n.slippageTolerance),l=d.amount0,c=d.amount1;n.permit&&r.push(e.INTERFACE.encodeFunctionData("permit",[Qe(n.permit.spender),s,a.toHex(n.permit.deadline),n.permit.v,n.permit.r,n.permit.s])),r.push(e.INTERFACE.encodeFunctionData("decreaseLiquidity",[{tokenId:s,liquidity:a.toHex(p.liquidity),amount0Min:a.toHex(l),amount1Min:a.toHex(c),deadline:o}]));var y,m=n.collectOptions,f=m.expectedCurrencyOwed0,h=m.expectedCurrencyOwed1,T=function(e,t){if(null==e)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==t.indexOf(a))continue;n[a]=e[a]}return n}(m,Ct);return r.push.apply(r,e.encodeCollect(j({tokenId:a.toHex(n.tokenId),expectedCurrencyOwed0:f.add(a.CurrencyAmount.fromRawAmount(f.currency,l)),expectedCurrencyOwed1:h.add(a.CurrencyAmount.fromRawAmount(h.currency,c))},T))),n.liquidityPercentage.equalTo(a.ONE)?n.burnToken&&r.push(e.INTERFACE.encodeFunctionData("burn",[s])):(!0===n.burnToken&&u(!1),n.afterActionTransfer&&r.push(e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[n.afterActionTransfer.owner,null!=(y=n.afterActionTransfer.recipient)?y:n.afterActionTransfer.owner,a.toHex(n.tokenId)]))),{calldata:ze.encodeMulticall(r),value:a.toHex(0)}},e.encodeSafeTransferFrom=function(t){var n,i=Qe(t.recipient),r=Qe(t.sender);return t.permit&&(n=e.INTERFACE.encodeFunctionData("permit",[Qe(t.permit.spender),t.tokenId,a.toHex(t.permit.deadline),t.permit.v,t.permit.r,t.permit.s])),{permitCalldata:n,calldata:t.data?e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256,bytes)",[r,i,a.toHex(t.tokenId),t.data]):e.INTERFACE.encodeFunctionData("safeTransferFrom(address,address,uint256)",[r,i,a.toHex(t.tokenId)])}},e.safeTransferFromParameters=function(t){var n=e.encodeSafeTransferFrom(t),i=n.permitCalldata,r=n.calldata;return{calldata:t.permit&&i?ze.encodeMulticall([i,r]):r,value:a.toHex(0)}},e.safeTransferFromMultipleParameters=function(t){if(t.length>0||u(!1),1===t.length)return e.safeTransferFromParameters(t[0]);for(var n,i=[],r=V(t);!(n=r()).done;){var o=n.value,s=e.encodeSafeTransferFrom(o),p=s.permitCalldata,d=s.calldata;o.permit&&p&&i.push(p),i.push(d)}return{calldata:ze.encodeMulticall(i),value:a.toHex(0)}},e}();_t.INTERFACE=new r.Interface(y.abi);var Ut="setPrototypeOf"in Object,Gt=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientReservesError=!0,n.name=n.constructor.name,Ut&&Object.setPrototypeOf(G(n),(this instanceof t?this.constructor:void 0).prototype),n}return z(t,e),t}(ee(Error)),Lt=function(e){function t(){var n;return(n=e.call(this)||this).isInsufficientInputAmountError=!0,n.name=n.constructor.name,Ut&&Object.setPrototypeOf(G(n),(this instanceof t?this.constructor:void 0).prototype),n}return z(t,e),t}(ee(Error)),Ht=function(e){var t=e.factoryAddress,n=e.tokenA,a=e.tokenB,i=n.sortsBefore(a)?[n,a]:[a,n];return d.getCreate2Address(t,f.keccak256(["bytes"],[f.pack(["address","address"],[i[0].address,i[1].address])]),I)},Wt=function(){function e(t,n){var i=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];this.liquidityToken=new a.NativeToken(i[0].currency.chainId,e.getAddress(i[0].currency,i[1].currency),18,"UNI-V2","Uniswap V2"),this.tokenAmounts=i}e.getAddress=function(e,t){return Ht({factoryAddress:b,tokenA:e,tokenB:t})};var t=e.prototype;return t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||u(!1),e.equals(this.token0)?this.token0Price:this.token1Price},t.reserveOf=function(e){return this.involvesToken(e)||u(!1),e.equals(this.token0)?this.reserve0:this.reserve1},t.getOutputAmount=function(t){if(this.involvesToken(t.currency)||u(!1),i.equal(this.reserve0.quotient,a.ZERO)||i.equal(this.reserve1.quotient,a.ZERO))throw new Gt;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),o=i.multiply(t.quotient,a._997),s=i.multiply(o,r.quotient),p=i.add(i.multiply(n.quotient,a._1000),o),d=a.CurrencyAmount.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,i.divide(s,p));if(i.equal(d.quotient,a.ZERO))throw new Lt;return[d,new e(n.add(t),r.subtract(d))]},t.getInputAmount=function(t){if(this.involvesToken(t.currency)||u(!1),i.equal(this.reserve0.quotient,a.ZERO)||i.equal(this.reserve1.quotient,a.ZERO)||i.greaterThanOrEqual(t.quotient,this.reserveOf(t.currency).quotient))throw new Gt;var n=this.reserveOf(t.currency),r=this.reserveOf(t.currency.equals(this.token0)?this.token1:this.token0),o=i.multiply(i.multiply(r.quotient,t.quotient),a._1000),s=i.multiply(i.subtract(n.quotient,t.quotient),a._997),p=a.CurrencyAmount.fromRawAmount(t.currency.equals(this.token0)?this.token1:this.token0,i.add(i.divide(o,s),a.ONE));return[p,new e(r.add(p),n.subtract(t))]},t.getLiquidityMinted=function(e,t,n){e.currency.equals(this.liquidityToken)||u(!1);var r,o=t.currency.sortsBefore(n.currency)?[t,n]:[n,t];if(o[0].currency.equals(this.token0)&&o[1].currency.equals(this.token1)||u(!1),i.equal(e.quotient,a.ZERO))r=i.subtract(Et(i.multiply(o[0].quotient,o[1].quotient)),F);else{var s=i.divide(i.multiply(o[0].quotient,e.quotient),this.reserve0.quotient),p=i.divide(i.multiply(o[1].quotient,e.quotient),this.reserve1.quotient);r=i.lessThanOrEqual(s,p)?s:p}if(!i.greaterThan(r,a.ZERO))throw new Lt;return a.CurrencyAmount.fromRawAmount(this.liquidityToken,r)},t.getLiquidityValue=function(e,t,n,r,o){var s;if(void 0===r&&(r=!1),this.involvesToken(e)||u(!1),t.currency.equals(this.liquidityToken)||u(!1),n.currency.equals(this.liquidityToken)||u(!1),i.lessThanOrEqual(n.quotient,t.quotient)||u(!1),r){o||u(!1);var p=i.BigInt(o);if(i.equal(p,a.ZERO))s=t;else{var d=Et(i.multiply(this.reserve0.quotient,this.reserve1.quotient)),l=Et(p);if(i.greaterThan(d,l)){var c=i.multiply(t.quotient,i.subtract(d,l)),y=i.add(i.multiply(d,a.FIVE),l),m=i.divide(c,y);s=t.add(a.CurrencyAmount.fromRawAmount(this.liquidityToken,m))}else s=t}}else s=t;return a.CurrencyAmount.fromRawAmount(e,i.divide(i.multiply(n.quotient,this.reserveOf(e).quotient),s.quotient))},Z(e,[{key:"token0Price",get:function(){var e=this.tokenAmounts[1].divide(this.tokenAmounts[0]);return new a.Price(this.token0,this.token1,e.denominator,e.numerator)}},{key:"token1Price",get:function(){var e=this.tokenAmounts[0].divide(this.tokenAmounts[1]);return new a.Price(this.token1,this.token0,e.denominator,e.numerator)}},{key:"chainId",get:function(){return this.token0.chainId}},{key:"token0",get:function(){return this.tokenAmounts[0].currency}},{key:"token1",get:function(){return this.tokenAmounts[1].currency}},{key:"reserve0",get:function(){return this.tokenAmounts[0]}},{key:"reserve1",get:function(){return this.tokenAmounts[1]}}]),e}();function Xt(e,t){var n=e.pools.reduce((function(e,t,n){var a=e.inputToken,i=e.path,r=e.types,u=t.token0.equals(a)?t.token1:t.token0;return 0===n?{inputToken:u,types:["address","uint24","address"],path:[a.address,t.fee,u.address]}:{inputToken:u,types:[].concat(r,["uint24","address"]),path:[].concat(i,[t.fee,u.address])}}),{inputToken:e.input.wrapped,path:[],types:[]}),a=n.path,i=n.types;return t?f.pack(i.reverse(),a.reverse()):f.pack(i,a)}var Zt=function(){function e(){}return e.quoteCallParameters=function(e,t,n,i){void 0===i&&(i={});var r,o=1===e.pools.length,s=a.toHex(t.quotient),p=i.useQuoterV2?this.V2INTERFACE:this.V1INTERFACE;if(o){var d,l,c={tokenIn:e.tokenPath[0].address,tokenOut:e.tokenPath[1].address,fee:e.pools[0].fee,sqrtPriceLimitX96:a.toHex(null!=(d=null==(l=i)?void 0:l.sqrtPriceLimitX96)?d:0)},y=j({},c,n==exports.TradeType.EXACT_INPUT?{amountIn:s}:{amount:s}),m=n===exports.TradeType.EXACT_INPUT?"quoteExactInputSingle":"quoteExactOutputSingle";r=p.encodeFunctionData(m,i.useQuoterV2?[y]:[c.tokenIn,c.tokenOut,c.fee,s,c.sqrtPriceLimitX96])}else{var f;void 0!==(null==(f=i)?void 0:f.sqrtPriceLimitX96)&&u(!1);var h=Xt(e,n===exports.TradeType.EXACT_OUTPUT),T=n===exports.TradeType.EXACT_INPUT?"quoteExactInput":"quoteExactOutput";r=p.encodeFunctionData(T,[h,s])}return{calldata:r,value:a.toHex(0)}},e}();Zt.V1INTERFACE=new r.Interface(v.abi),Zt.V2INTERFACE=new r.Interface(T.abi);var Vt=function(){function e(e,t,n){this._midPrice=null,e.length>0||u(!1);var a=e[0].chainId;e.every((function(e){return e.chainId===a}))||u(!1);var i=t.wrapped;e[0].involvesToken(i)||u(!1),e[e.length-1].involvesToken(n.wrapped)||u(!1);for(var r,o=[i],s=V(e.entries());!(r=s()).done;){var p=r.value,d=p[1],l=o[p[0]];l.equals(d.token0)||l.equals(d.token1)||u(!1);var c=l.equals(d.token0)?d.token1:d.token0;o.push(c)}this.pools=e,this.tokenPath=o,this.input=t,this.output=null!=n?n:o[o.length-1]}return Z(e,[{key:"chainId",get:function(){return this.pools[0].chainId}},{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;var e=this.pools.slice(1).reduce((function(e,t){var n=e.price;return e.nextInput.equals(t.token0)?{nextInput:t.token1,price:n.multiply(t.token0Price)}:{nextInput:t.token0,price:n.multiply(t.token1Price)}}),this.pools[0].token0.equals(this.input.wrapped)?{nextInput:this.pools[0].token1,price:this.pools[0].token0Price}:{nextInput:this.pools[0].token0,price:this.pools[0].token1Price}).price;return this._midPrice=new a.Price(this.input,this.output,e.denominator,e.numerator)}}]),e}(),jt=function(){function e(e,t,n){this._midPrice=null,e.length>0||u(!1);var a=e[0].chainId;e.every((function(e){return e.chainId===a}))||u(!1);var i=t.wrapped;e[0].involvesToken(i)||u(!1),void 0===n||e[e.length-1].involvesToken(n.wrapped)||u(!1);for(var r,o=[i],s=V(e.entries());!(r=s()).done;){var p=r.value,d=p[1],l=o[p[0]];l.equals(d.token0)||l.equals(d.token1)||u(!1);var c=l.equals(d.token0)?d.token1:d.token0;o.push(c)}this.pairs=e,this.path=o,this.input=t,this.output=n}return Z(e,[{key:"midPrice",get:function(){if(null!==this._midPrice)return this._midPrice;for(var e,t=[],n=V(this.pairs.entries());!(e=n()).done;){var i=e.value,r=i[1];t.push(this.path[i[0]].equals(r.token0)?new a.Price(r.reserve0.currency,r.reserve1.currency,r.reserve0.quotient,r.reserve1.quotient):new a.Price(r.reserve1.currency,r.reserve0.currency,r.reserve1.quotient,r.reserve0.quotient))}var u=t.slice(1).reduce((function(e,t){return e.multiply(t)}),t[0]);return this._midPrice=new a.Price(this.input,this.output,u.denominator,u.numerator)}},{key:"chainId",get:function(){return this.pairs[0].chainId}}]),e}(),Kt=function(){function e(){}return e.encodeClaim=function(t,n){var i,r=[];r.push(e.INTERFACE.encodeFunctionData("unstakeToken",[this._encodeIncentiveKey(t),a.toHex(n.tokenId)]));var u=Qe(n.recipient),o=null!=(i=n.amount)?i:0;return r.push(e.INTERFACE.encodeFunctionData("claimReward",[t.rewardToken.address,u,a.toHex(o)])),r},e.collectRewards=function(t,n){for(var i,r=[],u=V(t=Array.isArray(t)?t:[t]);!(i=u()).done;){var o=i.value;(r=r.concat(this.encodeClaim(o,n))).push(e.INTERFACE.encodeFunctionData("stakeToken",[this._encodeIncentiveKey(o),a.toHex(n.tokenId)]))}return{calldata:ze.encodeMulticall(r),value:a.toHex(0)}},e.withdrawToken=function(t,n){var i=[];t=Array.isArray(t)?t:[t];for(var r,u={tokenId:n.tokenId,recipient:n.recipient,amount:n.amount},o=V(t);!(r=o()).done;)i=i.concat(this.encodeClaim(r.value,u));var s=Qe(n.owner);return i.push(e.INTERFACE.encodeFunctionData("withdrawToken",[a.toHex(n.tokenId),s,n.data?n.data:a.toHex(0)])),{calldata:ze.encodeMulticall(i),value:a.toHex(0)}},e.encodeDeposit=function(t){var n;if((t=Array.isArray(t)?t:[t]).length>1){for(var a,i=[],u=V(t);!(a=u()).done;)i.push(this._encodeIncentiveKey(a.value));n=r.defaultAbiCoder.encode([e.INCENTIVE_KEY_ABI+"[]"],[i])}else n=r.defaultAbiCoder.encode([e.INCENTIVE_KEY_ABI],[this._encodeIncentiveKey(t[0])]);return n},e._encodeIncentiveKey=function(e){var t=e.pool,n=t.token0,i=t.token1,r=t.fee,u=Qe(e.refundee);return{rewardToken:e.rewardToken.address,pool:bt.getAddress(n,i,r),startTime:a.toHex(e.startTime),endTime:a.toHex(e.endTime),refundee:u}},e}();Kt.INTERFACE=new r.Interface(g.abi),Kt.INCENTIVE_KEY_ABI="tuple(address rewardToken, address pool, uint256 startTime, uint256 endTime, address refundee)";var zt=function(){function e(){}return e.swapCallParameters=function(t,n){Array.isArray(t)||(t=[t]);var i=t[0],r=i.inputAmount.currency.wrapped,o=i.outputAmount.currency.wrapped;t.every((function(e){return e.inputAmount.currency.wrapped.equals(r)}))||u(!1),t.every((function(e){return e.outputAmount.currency.wrapped.equals(o)}))||u(!1);var s=[],p=a.CurrencyAmount.fromRawAmount(t[0].inputAmount.currency,0),d=a.CurrencyAmount.fromRawAmount(t[0].outputAmount.currency,0),l=t.reduce((function(e,t){return e.add(t.minimumAmountOut(n.slippageTolerance))}),d),c=i.inputAmount.currency.isNative&&i.tradeType===exports.TradeType.EXACT_OUTPUT,y=i.outputAmount.currency.isNative,m=y||!!n.fee,f=i.inputAmount.currency.isNative?t.reduce((function(e,t){return e.add(t.maximumAmountIn(n.slippageTolerance))}),p):p;n.inputTokenPermit&&(i.inputAmount.currency.isToken||u(!1),s.push(St.encodePermit(i.inputAmount.currency,n.inputTokenPermit)));for(var h,T=Qe(n.recipient),v=a.toHex(n.deadline),g=V(t);!(h=g()).done;)for(var w,b=h.value,k=V(b.swaps);!(w=k()).done;){var I=w.value,A=I.route,E=I.outputAmount,O=a.toHex(b.maximumAmountIn(n.slippageTolerance,I.inputAmount).quotient),R=a.toHex(b.minimumAmountOut(n.slippageTolerance,E).quotient);if(1===A.pools.length)if(b.tradeType===exports.TradeType.EXACT_INPUT){var M,F={tokenIn:A.tokenPath[0].address,tokenOut:A.tokenPath[1].address,fee:A.pools[0].fee,recipient:m?x:T,deadline:v,amountIn:O,amountOutMinimum:R,sqrtPriceLimitX96:a.toHex(null!=(M=n.sqrtPriceLimitX96)?M:0)};s.push(e.INTERFACE.encodeFunctionData("exactInputSingle",[F]))}else{var B,q={tokenIn:A.tokenPath[0].address,tokenOut:A.tokenPath[1].address,fee:A.pools[0].fee,recipient:m?x:T,deadline:v,amountOut:R,amountInMaximum:O,sqrtPriceLimitX96:a.toHex(null!=(B=n.sqrtPriceLimitX96)?B:0)};s.push(e.INTERFACE.encodeFunctionData("exactOutputSingle",[q]))}else{void 0!==n.sqrtPriceLimitX96&&u(!1);var P=Xt(A,b.tradeType===exports.TradeType.EXACT_OUTPUT);b.tradeType===exports.TradeType.EXACT_INPUT?s.push(e.INTERFACE.encodeFunctionData("exactInput",[{path:P,recipient:m?x:T,deadline:v,amountIn:O,amountOutMinimum:R}])):s.push(e.INTERFACE.encodeFunctionData("exactOutput",[{path:P,recipient:m?x:T,deadline:v,amountOut:R,amountInMaximum:O}]))}}return m&&s.push(n.fee?y?$e.encodeUnwrapWETH9(l.quotient,T,n.fee):$e.encodeSweepToken(i.outputAmount.currency.wrapped,l.quotient,T,n.fee):$e.encodeUnwrapWETH9(l.quotient,T)),c&&s.push($e.encodeRefundETH()),{calldata:ze.encodeMulticall(s),value:a.toHex(f.quotient)}},e}();function Qt(e,t,n,a){if(n>0||u(!1),e.length<=n||u(!1),0===e.length)return e.push(t),null;var i=e.length===n;if(i&&a(e[e.length-1],t)<=0)return t;for(var r=0,o=e.length;r<o;){var s=r+o>>>1;a(e[s],t)<=0?r=s+1:o=s}return e.splice(r,0,t),i?e.pop():null}function Yt(e){var t=e.factoryAddress,n=e.underlying,a=e.initCodeHash;return t||u(!1),a||u(!1),d.getCreate2Address(t,n.concat("000000000000000000000000"),a)}zt.INTERFACE=new r.Interface(w.abi);var $t=function(){function e(e,t,n){var i=e.sortsBefore(t)?[e,t]:[t,e];this.token0=i[0],this.token1=i[1],this.fee=null!=n?n:new a.Percent(0),this.vaultIsToken0=this.token0.equals(t)}e.getAddress=function(e,t,n){return Yt({factoryAddress:null!=n?n:a.BalancerAddresses[e.chainId].ComposableStablePoolWrapperFactory,underlying:e.address,initCodeHash:null!=t?t:a.BalancerAddresses[e.chainId].ComposableStablePoolWrapperInitCodeHash})};var t=e.prototype;return t.vault=function(){return this.vaultIsToken0?this.token0:this.token1},t.underlying=function(){return this.vaultIsToken0?this.token1:this.token0},t.involvesToken=function(e){return e.equals(this.token0)||e.equals(this.token1)},t.priceOf=function(e){return this.involvesToken(e)||u(!1),e.equals(this.token0)?this.token0Price:this.token1Price},Z(e,[{key:"chainId",get:function(){return this.token0.chainId}}]),e}();function Jt(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||u(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||u(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?e.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0)-t.swaps.reduce((function(e,t){return e+t.route.tokenPath.length}),0):e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}var en=function(){function e(e){var t=e.routes,n=e.tradeType,a=t[0].inputAmount.currency,i=t[0].outputAmount.currency;t.every((function(e){return a.wrapped.equals(e.route.input.wrapped)}))||u(!1),t.every((function(e){return i.wrapped.equals(e.route.output.wrapped)}))||u(!1);for(var r,o=t.map((function(e){return e.route.pools.length})).reduce((function(e,t){return e+t}),0),s=new Set,p=V(t);!(r=p()).done;)for(var d,l=V(r.value.route.pools);!(d=l()).done;){var c=d.value;c instanceof bt&&s.add(bt.getAddress(c.token0,c.token1,c.fee)),c instanceof te&&s.add(c.pool.address),c instanceof $t&&s.add(c.vault().address)}o!=s.size&&u(!1),this.swaps=t,this.tradeType=n}e.exactIn=function(){var t=H(Y().mark((function t(n,a){return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,a,exports.TradeType.EXACT_INPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.exactOut=function(){var t=H(Y().mark((function t(n,a){return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt("return",e.fromRoute(n,a,exports.TradeType.EXACT_OUTPUT));case 1:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.fromRoute=function(){var t=H(Y().mark((function t(n,i,r){var o,s,p,d,l,c,y;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(o=new Array(n.tokenPath.length),r!==exports.TradeType.EXACT_INPUT){t.next=19;break}i.currency.equals(n.input)||u(!1),o[0]=i.wrapped,d=0;case 5:if(!(d<n.tokenPath.length-1)){t.next=15;break}return l=n.pools[d],t.next=9,l.getOutputAmount(o[d]);case 9:o[d+1]=t.sent[0];case 12:d++,t.next=5;break;case 15:s=a.CurrencyAmount.fromFractionalAmount(n.input,i.numerator,i.denominator),p=a.CurrencyAmount.fromFractionalAmount(n.output,o[o.length-1].numerator,o[o.length-1].denominator),t.next=34;break;case 19:i.currency.equals(n.output)||u(!1),o[o.length-1]=i.wrapped,c=n.tokenPath.length-1;case 22:if(!(c>0)){t.next=32;break}return y=n.pools[c-1],t.next=26,y.getInputAmount(o[c]);case 26:o[c-1]=t.sent[0];case 29:c--,t.next=22;break;case 32:s=a.CurrencyAmount.fromFractionalAmount(n.input,o[0].numerator,o[0].denominator),p=a.CurrencyAmount.fromFractionalAmount(n.output,i.numerator,i.denominator);case 34:return t.abrupt("return",new e({routes:[{inputAmount:s,outputAmount:p,route:n}],tradeType:r}));case 35:case"end":return t.stop()}}),t)})));return function(e,n,a){return t.apply(this,arguments)}}(),e.fromRoutes=function(){var t=H(Y().mark((function t(n,i){var r,o,s,p,d,l,c,y,m,f,h,T,v;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:r=[],o=V(n);case 2:if((s=o()).done){t.next=43;break}if(d=(p=s.value).route,l=p.amount,c=new Array(d.tokenPath.length),y=void 0,m=void 0,i!==exports.TradeType.EXACT_INPUT){t.next=25;break}l.currency.equals(d.input)||u(!1),y=a.CurrencyAmount.fromFractionalAmount(d.input,l.numerator,l.denominator),c[0]=a.CurrencyAmount.fromFractionalAmount(d.input.wrapped,l.numerator,l.denominator),f=0;case 12:if(!(f<d.tokenPath.length-1)){t.next=22;break}return h=d.pools[f],t.next=16,h.getOutputAmount(c[f]);case 16:c[f+1]=t.sent[0];case 19:f++,t.next=12;break;case 22:m=a.CurrencyAmount.fromFractionalAmount(d.output,c[c.length-1].numerator,c[c.length-1].denominator),t.next=40;break;case 25:l.currency.equals(d.output)||u(!1),m=a.CurrencyAmount.fromFractionalAmount(d.output,l.numerator,l.denominator),c[c.length-1]=a.CurrencyAmount.fromFractionalAmount(d.output.wrapped,l.numerator,l.denominator),T=d.tokenPath.length-1;case 29:if(!(T>0)){t.next=39;break}return v=d.pools[T-1],t.next=33,v.getInputAmount(c[T]);case 33:c[T-1]=t.sent[0];case 36:T--,t.next=29;break;case 39:y=a.CurrencyAmount.fromFractionalAmount(d.input,c[0].numerator,c[0].denominator);case 40:r.push({route:d,inputAmount:y,outputAmount:m});case 41:t.next=2;break;case 43:return t.abrupt("return",new e({routes:r,tradeType:i}));case 44:case"end":return t.stop()}}),t)})));return function(e,n){return t.apply(this,arguments)}}(),e.createUncheckedTrade=function(t){return new e(j({},t,{routes:[{inputAmount:t.inputAmount,outputAmount:t.outputAmount,route:t.route}]}))},e.createUncheckedTradeWithMultipleRoutes=function(t){return new e(t)};var t=e.prototype;return t.minimumAmountOut=function(e,t){if(void 0===t&&(t=this.outputAmount),e.lessThan(a.ZERO)&&u(!1),this.tradeType===exports.TradeType.EXACT_OUTPUT)return t;var n=new a.Fraction(a.ONE).add(e).invert().multiply(t.quotient).quotient;return a.CurrencyAmount.fromRawAmount(t.currency,n)},t.maximumAmountIn=function(e,t){if(void 0===t&&(t=this.inputAmount),e.lessThan(a.ZERO)&&u(!1),this.tradeType===exports.TradeType.EXACT_INPUT)return t;var n=new a.Fraction(a.ONE).add(e).multiply(t.quotient).quotient;return a.CurrencyAmount.fromRawAmount(t.currency,n)},t.worstExecutionPrice=function(e){return new a.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactIn=function(){var t=H(Y().mark((function t(n,a,i,r,o,s,p){var d,l,c,y,m,f,h,T,v,g,w;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=void 0===(l=(d=void 0===r?{}:r).maxNumResults)?3:l,m=void 0===(y=d.maxHops)?3:y,void 0===o&&(o=[]),void 0===s&&(s=a),void 0===p&&(p=[]),n.length>0||u(!1),m>0||u(!1),a===s||o.length>0||u(!1),f=s.wrapped,h=i.wrapped,T=0;case 10:if(!(T<n.length)){t.next=46;break}if((v=n[T]).token0.equals(f.currency)||v.token1.equals(f.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,v.getOutputAmount(f);case 19:g=t.sent[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!(t.t0 instanceof Lt)){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.isToken||!g.currency.equals(h)){t.next=39;break}return t.t1=Qt,t.t2=p,t.next=33,e.fromRoute(new Vt([].concat(o,[v]),a.currency,i),a,exports.TradeType.EXACT_INPUT);case 33:t.t3=t.sent,t.t4=c,t.t5=Jt,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(m>1&&n.length>1)){t.next=43;break}return w=n.slice(0,T).concat(n.slice(T+1,n.length)),t.next=43,e.bestTradeExactIn(w,a,i,{maxNumResults:c,maxHops:m-1},[].concat(o,[v]),g,p);case 43:T++,t.next=10;break;case 46:return t.abrupt("return",p);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,a,i,r,u,o){return t.apply(this,arguments)}}(),e.bestTradeExactOut=function(){var t=H(Y().mark((function t(n,a,i,r,o,s,p){var d,l,c,y,m,f,h,T,v,g,w;return Y().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:c=void 0===(l=(d=void 0===r?{}:r).maxNumResults)?3:l,m=void 0===(y=d.maxHops)?3:y,void 0===o&&(o=[]),void 0===s&&(s=i),void 0===p&&(p=[]),n.length>0||u(!1),m>0||u(!1),i===s||o.length>0||u(!1),f=s.wrapped,h=a.wrapped,T=0;case 10:if(!(T<n.length)){t.next=46;break}if((v=n[T]).token0.equals(f.currency)||v.token1.equals(f.currency)){t.next=14;break}return t.abrupt("continue",43);case 14:return g=void 0,t.prev=15,t.next=19,v.getInputAmount(f);case 19:g=t.sent[0],t.next=28;break;case 23:if(t.prev=23,t.t0=t.catch(15),!(t.t0 instanceof Gt)){t.next=27;break}return t.abrupt("continue",43);case 27:throw t.t0;case 28:if(!g.currency.equals(h)){t.next=39;break}return t.t1=Qt,t.t2=p,t.next=33,e.fromRoute(new Vt([v].concat(o),a,i.currency),i,exports.TradeType.EXACT_OUTPUT);case 33:t.t3=t.sent,t.t4=c,t.t5=Jt,(0,t.t1)(t.t2,t.t3,t.t4,t.t5),t.next=43;break;case 39:if(!(m>1&&n.length>1)){t.next=43;break}return w=n.slice(0,T).concat(n.slice(T+1,n.length)),t.next=43,e.bestTradeExactOut(w,a,i,{maxNumResults:c,maxHops:m-1},[v].concat(o),g,p);case 43:T++,t.next=10;break;case 46:return t.abrupt("return",p);case 47:case"end":return t.stop()}}),t,null,[[15,23]])})));return function(e,n,a,i,r,u,o){return t.apply(this,arguments)}}(),Z(e,[{key:"route",get:function(){return 1!=this.swaps.length&&u(!1),this.swaps[0].route}},{key:"inputAmount",get:function(){if(this._inputAmount)return this._inputAmount;var e=this.swaps[0].inputAmount.currency,t=this.swaps.map((function(e){return e.inputAmount})).reduce((function(e,t){return e.add(t)}),a.CurrencyAmount.fromRawAmount(e,0));return this._inputAmount=t,this._inputAmount}},{key:"outputAmount",get:function(){if(this._outputAmount)return this._outputAmount;var e=this.swaps[0].outputAmount.currency,t=this.swaps.map((function(e){return e.outputAmount})).reduce((function(e,t){return e.add(t)}),a.CurrencyAmount.fromRawAmount(e,0));return this._outputAmount=t,this._outputAmount}},{key:"executionPrice",get:function(){var e;return null!=(e=this._executionPrice)?e:this._executionPrice=new a.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient)}},{key:"priceImpact",get:function(){if(this._priceImpact)return this._priceImpact;for(var e,t=a.CurrencyAmount.fromRawAmount(this.outputAmount.currency,0),n=V(this.swaps);!(e=n()).done;){var i=e.value;t=t.add(i.route.midPrice.quote(i.inputAmount))}var r=t.subtract(this.outputAmount).divide(t);return this._priceImpact=new a.Percent(r.numerator,r.denominator),this._priceImpact}}]),e}();function tn(e,t){return e.inputAmount.currency.equals(t.inputAmount.currency)||u(!1),e.outputAmount.currency.equals(t.outputAmount.currency)||u(!1),e.outputAmount.equalTo(t.outputAmount)?e.inputAmount.equalTo(t.inputAmount)?0:e.inputAmount.lessThan(t.inputAmount)?-1:1:e.outputAmount.lessThan(t.outputAmount)?1:-1}function nn(e,t){var n=tn(e,t);return 0!==n?n:e.priceImpact.lessThan(t.priceImpact)?-1:e.priceImpact.greaterThan(t.priceImpact)?1:e.route.path.length-t.route.path.length}var an=function(){function e(e,t,n){this.route=e,this.tradeType=n;var i,r,o,s=new Array(e.path.length);if(n===exports.TradeType.EXACT_INPUT){t.currency.equals(e.input)||u(!1),s[0]=t.wrapped;for(var p=0;p<e.path.length-1;p++){var d=e.pairs[p].getOutputAmount(s[p]);s[p+1]=d[0]}this.inputAmount=a.CurrencyAmount.fromFractionalAmount(e.input,t.numerator,t.denominator),this.outputAmount=a.CurrencyAmount.fromFractionalAmount(e.output,s[s.length-1].numerator,s[s.length-1].denominator)}else{t.currency.equals(e.output)||u(!1),s[s.length-1]=t.wrapped;for(var l=e.path.length-1;l>0;l--){var c=e.pairs[l-1].getInputAmount(s[l]);s[l-1]=c[0]}this.inputAmount=a.CurrencyAmount.fromFractionalAmount(e.input,s[0].numerator,s[0].denominator),this.outputAmount=a.CurrencyAmount.fromFractionalAmount(e.output,t.numerator,t.denominator)}this.executionPrice=new a.Price(this.inputAmount.currency,this.outputAmount.currency,this.inputAmount.quotient,this.outputAmount.quotient),this.priceImpact=(i=this.outputAmount,o=(r=e.midPrice.quote(this.inputAmount)).subtract(i).divide(r),new a.Percent(o.numerator,o.denominator))}e.exactIn=function(t,n){return new e(t,n,exports.TradeType.EXACT_INPUT)},e.exactOut=function(t,n){return new e(t,n,exports.TradeType.EXACT_OUTPUT)};var t=e.prototype;return t.minimumAmountOut=function(e){if(e.lessThan(a.ZERO)&&u(!1),this.tradeType===exports.TradeType.EXACT_OUTPUT)return this.outputAmount;var t=new a.Fraction(a.ONE).add(e).invert().multiply(this.outputAmount.quotient).quotient;return a.CurrencyAmount.fromRawAmount(this.outputAmount.currency,t)},t.maximumAmountIn=function(e){if(e.lessThan(a.ZERO)&&u(!1),this.tradeType===exports.TradeType.EXACT_INPUT)return this.inputAmount;var t=new a.Fraction(a.ONE).add(e).multiply(this.inputAmount.quotient).quotient;return a.CurrencyAmount.fromRawAmount(this.inputAmount.currency,t)},e.bestTradeExactIn=function(t,n,i,r,o,s,p){var d=void 0===r?{}:r,l=d.maxNumResults,c=void 0===l?3:l,y=d.maxHops,m=void 0===y?3:y;void 0===o&&(o=[]),void 0===s&&(s=n),void 0===p&&(p=[]),t.length>0||u(!1),m>0||u(!1),n===s||o.length>0||u(!1);for(var f=s.wrapped,h=i.wrapped,T=0;T<t.length;T++){var v=t[T];if((v.token0.equals(f.currency)||v.token1.equals(f.currency))&&!v.reserve0.equalTo(a.ZERO)&&!v.reserve1.equalTo(a.ZERO)){var g=void 0;try{g=v.getOutputAmount(f)[0]}catch(e){if(e instanceof Lt)continue;throw e}if(g.currency.equals(h))Qt(p,new e(new jt([].concat(o,[v]),n.currency,i),n,exports.TradeType.EXACT_INPUT),c,nn);else if(m>1&&t.length>1){var w=t.slice(0,T).concat(t.slice(T+1,t.length));e.bestTradeExactIn(w,n,i,{maxNumResults:c,maxHops:m-1},[].concat(o,[v]),g,p)}}}return p},t.worstExecutionPrice=function(e){return new a.Price(this.inputAmount.currency,this.outputAmount.currency,this.maximumAmountIn(e).quotient,this.minimumAmountOut(e).quotient)},e.bestTradeExactOut=function(t,n,i,r,o,s,p){var d=void 0===r?{}:r,l=d.maxNumResults,c=void 0===l?3:l,y=d.maxHops,m=void 0===y?3:y;void 0===o&&(o=[]),void 0===s&&(s=i),void 0===p&&(p=[]),t.length>0||u(!1),m>0||u(!1),i===s||o.length>0||u(!1);for(var f=s.wrapped,h=n.wrapped,T=0;T<t.length;T++){var v=t[T];if((v.token0.equals(f.currency)||v.token1.equals(f.currency))&&!v.reserve0.equalTo(a.ZERO)&&!v.reserve1.equalTo(a.ZERO)){var g=void 0;try{g=v.getInputAmount(f)[0]}catch(e){if(e instanceof Gt)continue;throw e}if(g.currency.equals(h))Qt(p,new e(new jt([v].concat(o),n,i.currency),i,exports.TradeType.EXACT_OUTPUT),c,nn);else if(m>1&&t.length>1){var w=t.slice(0,T).concat(t.slice(T+1,t.length));e.bestTradeExactOut(w,n,i,{maxNumResults:c,maxHops:m-1},[v].concat(o),g,p)}}}return p},e}(),rn=[{type:"constructor",inputs:[{name:"_factory",type:"address",internalType:"contract IUniswapV3Factory"},{name:"_nonfungiblePositionManager",type:"address",internalType:"contract INonfungiblePositionManager"},{name:"_uniswapV3GaugeFactory",type:"address",internalType:"contract IUniswapV3GaugeFactory"},{name:"_hermesGaugeBoost",type:"address",internalType:"contract bHermesBoost"},{name:"_maxIncentiveStartLeadTime",type:"uint256",internalType:"uint256"},{name:"_minter",type:"address",internalType:"address"},{name:"_hermes",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"bribeDepots",inputs:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[{name:"depot",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"claimAllRewards",inputs:[{name:"to",type:"address",internalType:"address"}],outputs:[{name:"reward",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"claimReward",inputs:[{name:"to",type:"address",internalType:"address"},{name:"amountRequested",type:"uint256",internalType:"uint256"}],outputs:[{name:"reward",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"createIncentive",inputs:[{name:"key",type:"tuple",internalType:"struct IUniswapV3Staker.IncentiveKey",components:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"},{name:"startTime",type:"uint96",internalType:"uint96"}]},{name:"reward",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"createIncentiveFromGauge",inputs:[{name:"reward",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deposits",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"owner",type:"address",internalType:"address"},{name:"tickLower",type:"int24",internalType:"int24"},{name:"tickUpper",type:"int24",internalType:"int24"},{name:"stakedTimestamp",type:"uint40",internalType:"uint40"}],stateMutability:"view"},{type:"function",name:"endIncentive",inputs:[{name:"key",type:"tuple",internalType:"struct IUniswapV3Staker.IncentiveKey",components:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"},{name:"startTime",type:"uint96",internalType:"uint96"}]}],outputs:[{name:"refund",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"factory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IUniswapV3Factory"}],stateMutability:"view"},{type:"function",name:"gaugePool",inputs:[{name:"gauge",type:"address",internalType:"address"}],outputs:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"}],stateMutability:"view"},{type:"function",name:"gauges",inputs:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[{name:"gauge",type:"address",internalType:"contract UniswapV3Gauge"}],stateMutability:"view"},{type:"function",name:"getRewardInfo",inputs:[{name:"key",type:"tuple",internalType:"struct IUniswapV3Staker.IncentiveKey",components:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"},{name:"startTime",type:"uint96",internalType:"uint96"}]},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"reward",type:"uint256",internalType:"uint256"},{name:"secondsInsideX128",type:"uint160",internalType:"uint160"}],stateMutability:"view"},{type:"function",name:"hermes",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"hermesGaugeBoost",inputs:[],outputs:[{name:"",type:"address",internalType:"contract bHermesBoost"}],stateMutability:"view"},{type:"function",name:"incentives",inputs:[{name:"incentiveId",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"totalRewardUnclaimed",type:"uint256",internalType:"uint256"},{name:"totalSecondsClaimedX128",type:"uint160",internalType:"uint160"},{name:"numberOfStakes",type:"uint96",internalType:"uint96"}],stateMutability:"view"},{type:"function",name:"maxIncentiveStartLeadTime",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"minter",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"multicall",inputs:[{name:"data",type:"bytes[]",internalType:"bytes[]"}],outputs:[{name:"",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"nonpayable"},{type:"function",name:"nonfungiblePositionManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract INonfungiblePositionManager"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"from",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"poolsMinimumWidth",inputs:[{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[{name:"minimumWidth",type:"uint24",internalType:"uint24"}],stateMutability:"view"},{type:"function",name:"restakeToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rewards",inputs:[{name:"user",type:"address",internalType:"address"}],outputs:[{name:"rewardAmount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"stakeToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stakes",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"incentiveId",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"secondsPerLiquidityInsideInitialX128",type:"uint160",internalType:"uint160"},{name:"liquidity",type:"uint128",internalType:"uint128"}],stateMutability:"view"},{type:"function",name:"tokenIdRewards",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"rewardAmount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"uniswapV3GaugeFactory",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IUniswapV3GaugeFactory"}],stateMutability:"view"},{type:"function",name:"unstakeToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateBribeDepot",inputs:[{name:"uniswapV3Pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateGauges",inputs:[{name:"uniswapV3Pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updatePoolMinimumWidth",inputs:[{name:"uniswapV3Pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"userAttachements",inputs:[{name:"user",type:"address",internalType:"address"},{name:"pool",type:"address",internalType:"contract IUniswapV3Pool"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"withdrawToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"to",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"BribeDepotUpdated",inputs:[{name:"uniswapV3Pool",type:"address",indexed:!0,internalType:"contract IUniswapV3Pool"},{name:"bribeDepot",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"DepositTransferred",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"GaugeUpdated",inputs:[{name:"uniswapV3Pool",type:"address",indexed:!0,internalType:"contract IUniswapV3Pool"},{name:"uniswapV3Gauge",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"IncentiveCreated",inputs:[{name:"pool",type:"address",indexed:!0,internalType:"contract IUniswapV3Pool"},{name:"startTime",type:"uint256",indexed:!0,internalType:"uint256"},{name:"reward",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"IncentiveEnded",inputs:[{name:"incentiveId",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"refund",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PoolMinimumWidthUpdated",inputs:[{name:"uniswapV3Pool",type:"address",indexed:!0,internalType:"contract IUniswapV3Pool"},{name:"poolMinimumWidth",type:"uint24",indexed:!0,internalType:"uint24"}],anonymous:!1},{type:"event",name:"RewardClaimed",inputs:[{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"reward",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"TokenStaked",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"incentiveId",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"isBoosted",type:"bool",indexed:!0,internalType:"bool"}],anonymous:!1},{type:"event",name:"TokenUnstaked",inputs:[{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"reward",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"EndIncentiveBeforeEndTime",inputs:[]},{type:"error",name:"EndIncentiveNoRefundAvailable",inputs:[]},{type:"error",name:"EndIncentiveWhileStakesArePresent",inputs:[]},{type:"error",name:"IncentiveCallerMustBeRegisteredGauge",inputs:[]},{type:"error",name:"IncentiveCannotBeCreatedForPoolWithNoGauge",inputs:[]},{type:"error",name:"IncentiveRewardMustBeGreaterThanZero",inputs:[]},{type:"error",name:"IncentiveStartTimeMustBeNowOrInTheFuture",inputs:[]},{type:"error",name:"IncentiveStartTimeNotAtEndOfAnEpoch",inputs:[]},{type:"error",name:"IncentiveStartTimeTooFarIntoFuture",inputs:[]},{type:"error",name:"InvalidGauge",inputs:[]},{type:"error",name:"InvalidRecipient",inputs:[]},{type:"error",name:"InvalidStartTime",inputs:[]},{type:"error",name:"NoLiquidityError",inputs:[]},{type:"error",name:"NonExistentIncentiveError",inputs:[]},{type:"error",name:"NotCalledByOwner",inputs:[]},{type:"error",name:"RangeTooSmallError",inputs:[]},{type:"error",name:"TokenNotDeposited",inputs:[]},{type:"error",name:"TokenNotStaked",inputs:[]},{type:"error",name:"TokenNotUniswapV3NFT",inputs:[]},{type:"error",name:"TokenStakedError",inputs:[]}],un=function(){function e(){}return e.encodeCreateIncentiveCalldata=function(t){var n=t.pool,i=t.startTime,r=t.reward;return n||u(!1),n==x&&u(!1),i>a.ZERO||u(!1),r>a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("createIncentive",[{pool:n,startTime:i},r])},e.encodeWithdrawTokenCalldata=function(t){var n=t.tokenId,a=t.to;return n||u(!1),a||u(!1),a==x&&u(!1),e.INTERFACE.encodeFunctionData("withdrawToken",[n,a])},e.encodeUnstakeTokenCalldata=function(t){var n=t.tokenId;return n||u(!1),e.INTERFACE.encodeFunctionData("unstakeToken",[n])},e.encodeStakeTokenCalldata=function(t){var n=t.tokenId;return n||u(!1),e.INTERFACE.encodeFunctionData("stakeToken",[n])},e.encodeRestakeTokenCalldata=function(t){var n=t.tokenId;return n||u(!1),e.INTERFACE.encodeFunctionData("restakeToken",[n])},e.encodeClaimRewardCalldata=function(t){var n=t.recipient,i=t.amount;return n||u(!1),n==x&&u(!1),i>a.ZERO||u(!1),e.INTERFACE.encodeFunctionData("claimReward",[n,i])},e.encodeClaimAllRewardsCalldata=function(t){var n=t.recipient;return n||u(!1),n==x&&u(!1),e.INTERFACE.encodeFunctionData("claimAllRewards",[n])},e}();un.INTERFACE=new r.Interface(rn);var on=function(e){function t(t,n,a){var i;return(i=e.call(this,t,n)||this).rate=a,i}z(t,e),t.priceOfVault=function(e,t,n){return new a.Price(t,e,n,a.ONE_18)},t.priceOfUnderlying=function(e,t,n){return new a.Price(e,t,a.ONE_18,n)};var n=t.prototype;return n.getOutputAmount=function(){var e=H(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getAmount(t,n,!0));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.getInputAmount=function(){var e=H(Y().mark((function e(t,n){return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",this.getAmount(t,n,!1));case 1:case"end":return e.stop()}}),e,this)})));return function(t,n){return e.apply(this,arguments)}}(),n.getAmount=function(){var e=H(Y().mark((function e(n,a,i){var r;return Y().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.involvesToken(n.currency)||u(!1),a||(a=this.rate),r=t.getOtherAmount(n,this.underlying(),this.vault(),a,i),e.abrupt("return",[r,new t(this.underlying(),this.vault(),this.rate)]);case 4:case"end":return e.stop()}}),e,this)})));return function(t,n,a){return e.apply(this,arguments)}}(),t.getOtherAmount=function(e,t,n,i,r){var u,o=e.currency.equals(n);return u=r?o?nt.divDownFixed(e.quotient,i):nt.mulDownFixed(e.quotient,i):o?nt.divUpFixed(e.quotient,i):nt.mulUpFixed(e.quotient,i),a.CurrencyAmount.fromRawAmount(o?t:n,u)},Z(t,[{key:"token0Price",get:function(){var e;return null!=(e=this._token0Price)?e:this._token0Price=this.vaultIsToken0?t.priceOfVault(this.token1,this.token0,this.rate):t.priceOfUnderlying(this.token0,this.token1,this.rate)}},{key:"token1Price",get:function(){var e;return null!=(e=this._token1Price)?e:this._token1Price=this.vaultIsToken0?t.priceOfUnderlying(this.token1,this.token0,this.rate):t.priceOfVault(this.token0,this.token1,this.rate)}}]),t}($t);function sn(e,t,n){return e/t*n}var pn=Math.pow(2,20);function dn(e,t){var n=function(e,t){return e>=pn?0:1/Math.pow(1.0001,function(e,t){return Math.max(e,Math.ceil(t/e)*e)}(t,e))}(t,ln(e));return 1/(1-Math.pow(n,1/4))}function ln(e){return 100==e?1:500==e?10:3e3==e?60:1e4==e?200:0}function cn(e,t,n){return e*dn(t,0)/dn(t,n)}function yn(e,t,n,a,i,r,u,o){var s=ln(a);if(void 0===t||isNaN(t))return 0;var p=hn(!1,e,t,n,a,s),d=hn(!0,e,t,n,a,s);return p/Math.pow(10,i)*u+d/Math.pow(10,r)*o}var mn=i.BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"),fn={100:exports.FeeAmount.LOWEST,500:exports.FeeAmount.LOW,3e3:exports.FeeAmount.MEDIUM,1e4:exports.FeeAmount.HIGH};function hn(e,t,n,a,r,u){var o,s=ot.computeSwapStep(i.BigInt(t),function(e,t,n){var a=e?(Math.ceil(t/n)-1)*n:(Math.floor(t/n)+1)*n;return a<yt.MIN_TICK?a=yt.MIN_TICK:a>yt.MAX_TICK&&(a=yt.MAX_TICK),yt.getSqrtRatioAtTick(a)}(e,n,u),i.BigInt(a),mn,fn[r]);return null!=(o=i.toNumber(s[2]))?o:0}var Tn=i.exponentiate(i.BigInt(2),i.BigInt(256));function vn(e,t){var n=i.subtract(e,t);return i.lessThan(n,a.ZERO)?i.add(Tn,n):n}var gn=function(){function e(){}return e.getFeeGrowthInside=function(e,t,n,a,i,r,u){var o,s,p,d;return i>=n?(o=e.feeGrowthOutside0X128,s=e.feeGrowthOutside1X128):(o=vn(r,e.feeGrowthOutside0X128),s=vn(u,e.feeGrowthOutside1X128)),i<a?(p=t.feeGrowthOutside0X128,d=t.feeGrowthOutside1X128):(p=vn(r,t.feeGrowthOutside0X128),d=vn(u,t.feeGrowthOutside1X128)),[vn(vn(r,o),p),vn(vn(u,s),d)]},e}();exports.ADDRESS_ZERO=x,exports.BALANCER_VAULT_ADDRESS="0xBA12222222228d8Ba445958a75a0704d566BF2C8",exports.BHermes=q,exports.BHermesBoost=S,exports.BHermesGauges=N,exports.BHermesVotes=_,exports.BalancerComposableStablePool=Xe,exports.ComposableStablePool=te,exports.ComposableStablePoolWrapper=on,exports.Ether=Ve,exports.FACTORY_ADDRESS=b,exports.Flywheel=Ke,exports.FullMath=nt,exports.InsufficientInputAmountError=Lt,exports.InsufficientReservesError=Gt,exports.LiquidityMath=et,exports.MAX_SAFE_INTEGER=xt,exports.MINIMUM_LIQUIDITY=F,exports.Multicall=ze,exports.NoTickDataProvider=mt,exports.NonfungiblePositionManager=_t,exports.POOL_INIT_CODE_HASH=I,exports.Pair=Wt,exports.Payments=$e,exports.Pool=bt,exports.Position=Pt,exports.Q192=M,exports.Q96=R,exports.Route=Vt,exports.SelfPermit=St,exports.SqrtPriceMath=rt,exports.Staker=Kt,exports.SwapMath=ot,exports.SwapQuoter=Zt,exports.SwapRouter=zt,exports.TICK_SPACINGS=O,exports.Tick=vt,exports.TickLibrary=gn,exports.TickList=Tt,exports.TickListDataProvider=gt,exports.TickMath=yt,exports.Trade=en,exports.UniswapV3Gauge=function(e,t,n,a,i,r){this.pool=e,this.isActive=t,this.currentGaugeWeight=n,this.currentBoost=a,this.currentIncentive=null!=r?r:void 0,this.minWidth=i},exports.UniswapV3Staker=un,exports.V2RouteSDK=jt,exports.V2Trade=an,exports.Vault=$t,exports.WETH9=Ze,exports.aprPercentage=function(e){if(0==e.tokenPriceUSD)return"0% - 0%";var t=31536e3/(e.endTime-e.startTime)*100,n=e.reward*e.tokenPriceUSD;return(e.fullRangeLiquidityUSD>0&&(.4*sn(n,e.fullRangeLiquidityUSD,t)).toFixed(2)||"0")+"% - "+(e.activeLiquidityUSD>0&&sn(n,e.activeLiquidityUSD,t).toFixed(2)||"0")+"%"},exports.calculateCustomLiquidityData=function(e,t,n,a,i){var r,u,o,s=yn(Number(null==e?void 0:e.sqrtPrice),Number(null==e?void 0:e.tick),Number(null==e?void 0:e.liquidity),Number(null==e?void 0:e.feeTier),Number(null==e||null==(r=e.token0)?void 0:r.decimals),Number(null==e||null==(u=e.token1)?void 0:u.decimals),Number(n),Number(a));return{activeLiquidityUSD:cn(s,null==e?void 0:e.feeTier,null!=(o=null==t?void 0:t.minWidth)?o:0),customRangeLiquidityUSD:cn(s,null==e?void 0:e.feeTier,i)}},exports.calculateLiquidityData=function(e,t,n,a){var i,r,u,o=yn(Number(null==e?void 0:e.sqrtPrice),Number(null==e?void 0:e.tick),Number(null==e?void 0:e.liquidity),Number(null==e?void 0:e.feeTier),Number(null==e||null==(i=e.token0)?void 0:i.decimals),Number(null==e||null==(r=e.token1)?void 0:r.decimals),Number(n),Number(a));return{activeLiquidityUSD:cn(o,null==e?void 0:e.feeTier,null!=(u=null==t?void 0:t.minWidth)?u:0),fullRangeLiquidityUSD:cn(o,null==e?void 0:e.feeTier,k)}},exports.checkIsValidAddress=function(e){if(Ye.test(e))return e},exports.checkValidAddress=function(e){if(Ye.test(e))return e;throw new Error(e+" is not a valid address.")},exports.computePairAddress=Ht,exports.computePoolAddress=Je,exports.computeVaultAddress=Yt,exports.convertBasedOnEfficiency=cn,exports.encodeRouteToPath=Xt,exports.encodeSqrtRatioX96=Ot,exports.getPositionAmounts=function(e,t,n,r,u){return function(e,t,n,r,u){var o=function(e,t,n,r,u){return e<t?rt.getAmount0Delta(yt.getSqrtRatioAtTick(t),yt.getSqrtRatioAtTick(n),r,!1):e<n?rt.getAmount0Delta(u,yt.getSqrtRatioAtTick(n),r,!1):i.BigInt(a.ZERO)}(e,t,n,r,u),s=function(e,t,n,r,u){return e<t?i.BigInt(a.ZERO):rt.getAmount1Delta(yt.getSqrtRatioAtTick(t),e<n?u:yt.getSqrtRatioAtTick(n),r,!1)}(e,t,n,r,u);return[i.toNumber(o),i.toNumber(s)]}(Number(e),Number(t),Number(n),i.BigInt(r),i.BigInt(u))},exports.inputOutputComparator=tn,exports.isSorted=ft,exports.maxLiquidityForAmounts=Bt,exports.mostSignificantBit=dt,exports.nearestUsableTick=function(e,t){Number.isInteger(e)&&Number.isInteger(t)||u(!1),t>0||u(!1),e>=yt.MIN_TICK&&e<=yt.MAX_TICK||u(!1);var n=Math.round(e/t)*t;return n<yt.MIN_TICK?n+t:n>yt.MAX_TICK?n-t:n},exports.priceToClosestTick=function(e){var t=e.baseCurrency.sortsBefore(e.quoteCurrency),n=t?Ot(e.numerator,e.denominator):Ot(e.denominator,e.numerator),a=yt.getTickAtSqrtRatio(n),i=qt(e.baseCurrency,e.quoteCurrency,a+1);return t?e.lessThan(i)||a++:e.greaterThan(i)||a++,a},exports.sortedInsert=Qt,exports.sqrt=Et,exports.subIn256=vn,exports.tickToPrice=qt,exports.tradeComparator=Jt,exports.validateAndParseAddress=Qe;
//# sourceMappingURL=hermes-v2-sdk.cjs.production.min.js.map