1try{let e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="a7508726-d261-4a8b-9187-1c9e5d28e4fd",e._sentryDebugIdIdentifier="sentry-dbid-a7508726-d261-4a8b-9187-1c9e5d28e4fd")}catch(e){}"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1480],{121480:(e,t,n)=>{n.d(t,{Dp:()=>p,E3:()=>h,b1:()=>x,kz:()=>c});var a=n(541269),i=n(217992),r=n(658255),u=n(228876),s=n(311560),o=[{type:"constructor",inputs:[{name:"_name",type:"string"},{name:"_symbol",type:"string"},{name:"_A",type:"uint256"},{name:"_fee",type:"uint256"},{name:"_offpeg_fee_multiplier",type:"uint256"},{name:"_oracle_helper",type:"address"},{name:"_coins",type:"address[]"},{name:"_rate_multipliers",type:"uint256[]"},{name:"_asset_types",type:"uint8[]"},{name:"_method_ids",type:"bytes4[]"},{name:"_oracles",type:"address[]"}],stateMutability:"nonpayable"},{type:"function",name:"A",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"A_precise",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"D_ma_time",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"D_oracle",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"MIN_RAMP_TIME",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"N_COINS",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"add_liquidity",inputs:[{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_min_mint_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"add_liquidity",inputs:[{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_min_mint_amount",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"admin_balances",inputs:[{name:"arg0",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"admin_fee",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"allowance",inputs:[{name:"arg0",type:"address"},{name:"arg1",type:"address"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],outputs:[{name:"",type:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"arg0",type:"address"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"balances",inputs:[{name:"i",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAddLiquidity",inputs:[{name:"sender",type:"address"},{name:"key",type:"tuple",components:[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"hooks",type:"address"},{name:"poolManager",type:"address"},{name:"fee",type:"uint24"},{name:"parameters",type:"bytes32"}]},{name:"params",type:"tuple",components:[{name:"tickLower",type:"int24"},{name:"tickUpper",type:"int24"},{name:"liquidityDelta",type:"int256"},{name:"salt",type:"bytes32"}]},{name:"hookData",type:"bytes"}],outputs:[{name:"",type:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"beforeInitialize",inputs:[{name:"sender",type:"address"},{name:"key",type:"tuple",components:[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"hooks",type:"address"},{name:"poolManager",type:"address"},{name:"fee",type:"uint24"},{name:"parameters",type:"bytes32"}]},{name:"sqrtPriceX96",type:"uint160"}],outputs:[{name:"",type:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"beforeRemoveLiquidity",inputs:[{name:"sender",type:"address"},{name:"key",type:"tuple",components:[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"hooks",type:"address"},{name:"poolManager",type:"address"},{name:"fee",type:"uint24"},{name:"parameters",type:"bytes32"}]},{name:"params",type:"tuple",components:[{name:"tickLower",type:"int24"},{name:"tickUpper",type:"int24"},{name:"liquidityDelta",type:"int256"},{name:"salt",type:"bytes32"}]},{name:"hookData",type:"bytes"}],outputs:[{name:"",type:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"beforeSwap",inputs:[{name:"sender",type:"address"},{name:"key",type:"tuple",components:[{name:"currency0",type:"address"},{name:"currency1",type:"address"},{name:"hooks",type:"address"},{name:"poolManager",type:"address"},{name:"fee",type:"uint24"},{name:"parameters",type:"bytes32"}]},{name:"params",type:"tuple",components:[{name:"zeroForOne",type:"bool"},{name:"amountSpecified",type:"int256"},{name:"sqrtPriceLimitX96",type:"uint160"}]},{name:"hookData",type:"bytes"}],outputs:[{name:"",type:"bytes4"},{name:"",type:"int256"},{name:"",type:"uint24"}],stateMutability:"nonpayable"},{type:"function",name:"calc_token_amount",inputs:[{name:"_amounts",type:"uint256[]"},{name:"_is_deposit",type:"bool"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"calc_withdraw_one_coin",inputs:[{name:"_burn_amount",type:"uint256"},{name:"i",type:"int128"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"coins",inputs:[{name:"arg0",type:"uint256"}],outputs:[{name:"",type:"address"}],stateMutability:"view"},{type:"function",name:"decimals",inputs:[],outputs:[{name:"",type:"uint8"}],stateMutability:"view"},{type:"function",name:"dynamic_fee",inputs:[{name:"i",type:"int128"},{name:"j",type:"int128"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"}
1,{type:"function",name:"ema_price",inputs:[{name:"i",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"fee",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"future_A",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"future_A_time",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"getHooksRegistrationBitmap",inputs:[],outputs:[{name:"",type:"uint16"}],stateMutability:"pure"},{type:"function",name:"get_balances",inputs:[],outputs:[{name:"",type:"uint256[]"}],stateMutability:"view"},{type:"function",name:"get_dx",inputs:[{name:"i",type:"int128"},{name:"j",type:"int128"},{name:"dy",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"get_dy",inputs:[{name:"i",type:"int128"},{name:"j",type:"int128"},{name:"dx",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"get_p",inputs:[{name:"i",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"get_virtual_price",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"initial_A",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"initial_A_time",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"is_binded",inputs:[],outputs:[{name:"",type:"bool"}],stateMutability:"view"},{type:"function",name:"last_price",inputs:[{name:"i",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"lockAcquired",inputs:[{name:"data",type:"bytes"}],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"lock_acquired_add_liquidity",inputs:[{name:"_sender",type:"address"},{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_min_mint_amount",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"lock_acquired_remove_liquidity",inputs:[{name:"_sender",type:"address"},{name:"_burn_amount",type:"uint256"},{name:"_min_amount0",type:"uint256"},{name:"_min_amount1",type:"uint256"},{name:"_receiver",type:"address"},{name:"_claim_admin_fees",type:"bool"}],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"lock_acquired_remove_liquidity_imbalance",inputs:[{name:"_sender",type:"address"},{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_max_burn_amount",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"lock_acquired_remove_liquidity_one_coin",inputs:[{name:"_sender",type:"address"},{name:"_burn_amount",type:"uint256"},{name:"_zero_or_one",type:"bool"},{name:"_min_received",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"lock_acquired_withdraw_admin_fees",inputs:[],outputs:[{name:"",type:"bytes"}],stateMutability:"nonpayable"},{type:"function",name:"ma_exp_time",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"ma_last_time",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string"}],stateMutability:"view"},{type:"function",name:"offpeg_fee_multiplier",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"oracle",inputs:[],outputs:[{name:"",type:"address"}],stateMutability:"view"},{type:"function",name:"pool_manager",inputs:[],outputs:[{name:"",type:"address"}],stateMutability:"view"},{type:"function",name:"price_oracle",inputs:[{name:"i",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"ramp_A",inputs:[{name:"_future_A",type:"uint256"},{name:"_future_time",type:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity",inputs:[{name:"_burn_amount",type:"uint256"},{name:"_min_amount0",type:"uint256"},{name:"_min_amount1",type:"uint256"}],outputs:[{name:"",type:"uint256"},{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity",inputs:[{name:"_burn_amount",type:"uint256"},{name:"_min_amount0",type:"uint256"},{name:"_min_amount1",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"},{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity",inputs:[{name:"_burn_amount",type:"uint256"},{name:"_min_amount0",type:"uint256"},{name:"_min_amount1",type:"uint256"},{name:"_receiver",type:"address"},{name:"_claim_admin_fees",type:"bool"}],outputs:[{name:"",type:"uint256"},{name:"",type:"uint256"}],stateMutability:"nonpayable"}
1,{type:"function",name:"remove_liquidity_imbalance",inputs:[{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_max_burn_amount",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity_imbalance",inputs:[{name:"_amount0",type:"uint256"},{name:"_amount1",type:"uint256"},{name:"_max_burn_amount",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity_one_coin",inputs:[{name:"_burn_amount",type:"uint256"},{name:"_zero_or_one",type:"bool"},{name:"_min_received",type:"uint256"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"remove_liquidity_one_coin",inputs:[{name:"_burn_amount",type:"uint256"},{name:"_zero_or_one",type:"bool"},{name:"_min_received",type:"uint256"},{name:"_receiver",type:"address"}],outputs:[{name:"",type:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"set_ma_exp_time",inputs:[{name:"_ma_exp_time",type:"uint256"},{name:"_D_ma_time",type:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"set_new_fee",inputs:[{name:"_new_fee",type:"uint256"},{name:"_new_offpeg_fee_multiplier",type:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stop_ramp_A",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"stored_rates",inputs:[],outputs:[{name:"",type:"uint256[]"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],outputs:[{name:"",type:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],outputs:[{name:"",type:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"vault",inputs:[],outputs:[{name:"",type:"address"}],stateMutability:"view"},{type:"function",name:"withdraw_admin_fees",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AddLiquidity",inputs:[{name:"provider",type:"address",indexed:!0},{name:"token_amounts",type:"uint256[]",indexed:!1},{name:"fees",type:"uint256[]",indexed:!1},{name:"invariant",type:"uint256",indexed:!1},{name:"token_supply",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"AdminFeesReceiverUpdated",inputs:[{name:"new_admin_fees_receiver",type:"address",indexed:!0}],anonymous:!1},{type:"event",name:"ApplyNewFee",inputs:[{name:"fee",type:"uint256",indexed:!1},{name:"offpeg_fee_multiplier",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0},{name:"spender",type:"address",indexed:!0},{name:"value",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"RampA",inputs:[{name:"old_A",type:"uint256",indexed:!1},{name:"new_A",type:"uint256",indexed:!1},{name:"initial_time",type:"uint256",indexed:!1},{name:"future_time",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"RemoveLiquidity",inputs:[{name:"provider",type:"address",indexed:!0},{name:"token_amounts",type:"uint256[]",indexed:!1},{name:"fees",type:"uint256[]",indexed:!1},{name:"token_supply",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"RemoveLiquidityImbalance",inputs:[{name:"provider",type:"address",indexed:!0},{name:"token_amounts",type:"uint256[]",indexed:!1},{name:"fees",type:"uint256[]",indexed:!1},{name:"invariant",type:"uint256",indexed:!1},{name:"token_supply",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"RemoveLiquidityOne",inputs:[{name:"provider",type:"address",indexed:!0},{name:"token_id",type:"int128",indexed:!1},{name:"token_amount",type:"uint256",indexed:!1},{name:"coin_amount",type:"uint256",indexed:!1},{name:"token_supply",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"SetNewMATime",inputs:[{name:"ma_exp_time",type:"uint256",indexed:!1}
1,{name:"D_ma_time",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"StopRampA",inputs:[{name:"A",type:"uint256",indexed:!1},{name:"t",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"TokenExchange",inputs:[{name:"buyer",type:"address",indexed:!0},{name:"sold_id",type:"int128",indexed:!1},{name:"tokens_sold",type:"uint256",indexed:!1},{name:"bought_id",type:"int128",indexed:!1},{name:"tokens_bought",type:"uint256",indexed:!1}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"sender",type:"address",indexed:!0},{name:"receiver",type:"address",indexed:!0},{name:"value",type:"uint256",indexed:!1}],anonymous:!1}],p=class{static async getBalancesOfMany(e,t,n){if(!t.length)return[];try{let a=await e.multicall({contracts:t.map(e=>({abi:o,address:e,functionName:"balanceOf",args:[n]})),allowFailure:!0});return t.map((e,t)=>{let n=a[t],i="success"===n.status&&n.result?n.result:0n;return{hookAddress:e,balance:i}}).filter(e=>e.balance>0n)}catch(e){throw console.error("Error fetching balances for multiple hooks:",e),e}}static async getCoinsMany(e,t){if(!t.length)return[];try{let n=await e.multicall({contracts:t.flatMap(e=>[{abi:o,address:e,functionName:"coins",args:[0n]},{abi:o,address:e,functionName:"coins",args:[1n]}]),allowFailure:!0});return t.map((e,t)=>{let a=n[2*t],i=n[2*t+1],r=a&&"success"===a.status&&a.result?a.result:"0x0000000000000000000000000000000000000000",u=i&&"success"===i.status&&i.result?i.result:"0x0000000000000000000000000000000000000000";return{hookAddress:e,coin0:r,coin1:u}})}catch(e){throw console.error("Error fetching coins for multiple hooks:",e),e}}static async getPoolBalancesMany(e,t){if(!t.length)return[];try{let n=await e.multicall({contracts:t.map(e=>({abi:o,address:e,functionName:"get_balances",args:[]})),allowFailure:!0});return t.map((e,t)=>{let a=n[t],i=a&&"success"===a.status&&a.result?a.result:[0n,0n];return{hookAddress:e,balances:i}})}catch(e){throw console.error("Error fetching pool balances for multiple hooks:",e),e}}async calcTokenAmount(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"calc_token_amount",args:[e,t]})}catch(e){throw console.error("Error calculating token amount:",e),e}}async totalSupply(){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"totalSupply",args:[]})}catch(e){throw console.error("Error getting total supply:",e),e}}async fee(){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"fee",args:[]})}catch(e){throw console.error("Error getting fee:",e),e}}getAddLiquidityCalldata(e,t,n){return{address:this.contractAddress,calldata:(0,a.p)({abi:o,functionName:"add_liquidity",args:[e,t,n]})}}async balanceOf(e){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"balanceOf",args:[e]})}catch(e){throw console.error("Error getting balance:",e),e}}async balances(e){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"balances",args:[BigInt(e)]})}catch(e){throw console.error("Error getting pool balance:",e),e}}async getPoolBalances(){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"get_balances",args:[]})}catch(e){throw console.error("Error getting pool balances:",e),e}}async getCoins(){try{let[e,t]=await this.publicClient.multicall({allowFailure:!1,contracts:[{address:this.contractAddress,abi:o,functionName:"coins",args:[0n]},{address:this.contractAddress,abi:o,functionName:"coins",args:[1n]}]});return[e,t]}catch(e){throw console.error("Error getting coins:",e),e}}getRemoveLiquidityCalldata(e,t,n,i){return{address:this.contractAddress,calldata:(0,a.p)({abi:o,functionName:"remove_liquidity",args:[e,t,n,i,!1]})}}async calcWithdrawOneCoin(e,t){try{return await this.publicClient.readContract({address:this.contractAddress,abi:o,functionName:"calc_withdraw_one_coin",args:[e,BigInt(t)]})}catch(e){throw console.error("Error calculating withdraw one coin:",e),e}}getRemoveLiquidityOneCoinCalldata(e,t,n){return{address:this.contractAddress,calldata:(0,a.p)({abi:o,functionName:"remove_liquidity_one_coin",args:[e,t,n]})}}getRemoveLiquidityImbalanceCalldata(e,t,n){return{address:this.contractAddress,calldata:(0,a.p)({abi:o,functionName:"remove_liquidity_imbalance",args:[e,t,n]})}}constructor(e,t){this.contractAddress=e,this.publicClient=t}};p.ABI=o;var y=[{inputs:[{internalType:"address",name:"_hookFactory",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"NameTooLong",type:"error"},{inputs:[{internalType:"address",name:"token",type:"address"}],name:"SafeERC20FailedOperation",type:"error"},{inputs:[],name:"SymbolTooLong",type:"error"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address[]",name:"coins",type:"address[]"},{indexed:!1,internalType:"uint256",name:"A",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"}],name:"PoolCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address[]",name:"coins",type:"address[]"},{indexed:!1,internalType:"uint256",name:"A",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!0,internalType:"PoolId",name:"poolId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"amount0",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount1",type:"uint256"},{indexed:!1,internalType:"uint256",name:"lpMinted",type:"uint256"},{indexed:!1,internalType:"address",name:"receiver",type:"address"}],name:"PoolCreatedAndLiquidityAdded",type:"event"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"address[]",name:"coins",type:"address[]"},{internalType:"uint256",name:"A",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"uint256",name:"offpegFeeMultiplier",type:"uint256"},{internalType:"uint256",name:"maExpTime",type:"uint256"},{internalType:"uint256",name:"implementationIdx",type:"uint256"}
1,{internalType:"uint8[]",name:"assetTypes",type:"uint8[]"},{internalType:"bytes4[]",name:"methodIds",type:"bytes4[]"},{internalType:"address[]",name:"oracles",type:"address[]"}],internalType:"struct ICLStableSwapPoolFactory.CreatePoolParam",name:"param",type:"tuple"}],name:"createPool",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"bytes32",name:"parameters",type:"bytes32"}],internalType:"struct PoolKey",name:"",type:"tuple"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"symbol",type:"string"},{internalType:"address[]",name:"coins",type:"address[]"},{internalType:"uint256",name:"A",type:"uint256"},{internalType:"uint256",name:"fee",type:"uint256"},{internalType:"uint256",name:"offpegFeeMultiplier",type:"uint256"},{internalType:"uint256",name:"maExpTime",type:"uint256"},{internalType:"uint256",name:"implementationIdx",type:"uint256"},{internalType:"uint8[]",name:"assetTypes",type:"uint8[]"},{internalType:"bytes4[]",name:"methodIds",type:"bytes4[]"},{internalType:"address[]",name:"oracles",type:"address[]"}],internalType:"struct ICLStableSwapPoolFactory.CreatePoolParam",name:"createPoolParam",type:"tuple"},{components:[{internalType:"uint256",name:"amount0",type:"uint256"},{internalType:"uint256",name:"amount1",type:"uint256"},{internalType:"uint256",name:"minMintAmount",type:"uint256"},{internalType:"address",name:"receiver",type:"address"}],internalType:"struct ICLStableSwapPoolFactory.AddLiquidityParam",name:"addLiquidityParam",type:"tuple"}],name:"createPoolAndAddLiquidity",outputs:[{components:[{internalType:"Currency",name:"currency0",type:"address"},{internalType:"Currency",name:"currency1",type:"address"},{internalType:"contract IHooks",name:"hooks",type:"address"},{internalType:"contract IPoolManager",name:"poolManager",type:"address"},{internalType:"uint24",name:"fee",type:"uint24"},{internalType:"bytes32",name:"parameters",type:"bytes32"}],internalType:"struct PoolKey",name:"",type:"tuple"},{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"hookFactory",outputs:[{internalType:"contract ICLStableSwapHookFactory",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"poolManager",outputs:[{internalType:"contract ICLPoolManager",name:"",type:"address"}],stateMutability:"view",type:"function"}],m={[u.nU.BSC]:"0x3669dDD1a9ee009dB9Eb2174C5C760FFfc66cfeF",[u.nU.BSC_TESTNET]:"0x41187151170541bE6Ec0F3C235781ED9d7EF9923"},d={[u.nU.BSC]:"0x44de03599d1088b205D959b09A842448A0a63173",[u.nU.BSC_TESTNET]:"0x9188584835110FB6e0eB3BAE10ef1459Acf99edB"},l="0x00000000",c=1e10,_=(e=>(e[e.STANDARD=0]="STANDARD",e[e.ORACLE=1]="ORACLE",e))(_||{}),b="0x0000000000000000000000000000000000000000",f={fiat:{A:1000n,fee:1000000n,offpegFeeMultiplier:100000000000n,maExpTime:866n},crypto:{A:500n,fee:2000000n,offpegFeeMultiplier:200000000000n,maExpTime:866n},lrt:{A:2000n,fee:500000n,offpegFeeMultiplier:50000000000n,maExpTime:866n}};function v(e,t){(0,r.A)(!e.equals(t),"IDENTICAL_CURRENCIES"),(0,r.A)(e.wrapped.address!==t.wrapped.address,"IDENTICAL_ADDRESSES")}function g(e,t){return e.wrapped.sortsBefore(t.wrapped)?[e,t]:[t,e]}var w=class{static getFactoryAddress(e){let t=m[e];return(0,r.A)(t,`Unsupported chainId: ${e}`),t}static encodeCreatePool(e){var t,n,i,u,s,o,p,y;let[m,d]=g(e.tokenA,e.tokenB),c=`${m.symbol}-${d.symbol}`,_=`${m.symbol}-${d.symbol}`,f=[m.wrapped.address,d.wrapped.address];(0,r.A)(void 0!==e.A,"A parameter is required"),(0,r.A)(void 0!==e.fee,"fee parameter is required"),(0,r.A)(void 0!==e.offpegFeeMultiplier,"offpegFeeMultiplier parameter is required"),(0,r.A)(void 0!==e.maExpTime,"maExpTime parameter is required"),(0,r.A)(void 0!==e.assetTypes,"assetTypes parameter is required");let{A:v}=e,{fee:A}=e,{offpegFeeMultiplier:M}=e,{maExpTime:h}=e,{assetTypes:T}=e,x=[null!=(s=null==(t=e.methodIds)?void 0:t[0])?s:l,null!=(o=null==(n=e.methodIds)?void 0:n[1])?o:l],k=[null!=(p=null==(i=e.oracles)?void 0:i[0])?p:b,null!=(y=null==(u=e.oracles)?void 0:u[1])?y:b];return console.info("[debug] InfinityStablePoolFactory.encodeCreatePool call parameters",{name:c,symbol:_,coins:f,A:v,fee:A,offpegFeeMultiplier:M,maExpTime:h,implementationIdx:0n,assetTypes:T,methodIds:x,oracles:k}
1),(0,a.p)({abi:w.ABI,functionName:"createPool",args:[{name:c,symbol:_,coins:f,A:v,fee:A,offpegFeeMultiplier:M,maExpTime:h,implementationIdx:0n,assetTypes:T,methodIds:x,oracles:k}]})}static createPoolCallParameters(e){return v(e.tokenA,e.tokenB),{calldata:this.encodeCreatePool(e),value:(0,i.nj)(0)}}static createPoolWithPresetCallParameters(e,t,n){let a=f[n];return(0,r.A)(a,`Unknown preset: ${n}`),this.createPoolCallParameters({tokenA:e,tokenB:t,...a})}static getPresetConfig(e){let t=f[e];return(0,r.A)(t,`Unknown preset: ${e}`),t}static encodeCreatePoolAndAddLiquidity(e){var t,n,i,u,s,o,p,y;let[m,d]=g(e.tokenA,e.tokenB),c=`${m.symbol}-${d.symbol}`,_=`${m.symbol}-${d.symbol}`,f=[m.wrapped.address,d.wrapped.address];(0,r.A)(void 0!==e.A,"A parameter is required"),(0,r.A)(void 0!==e.fee,"fee parameter is required"),(0,r.A)(void 0!==e.offpegFeeMultiplier,"offpegFeeMultiplier parameter is required"),(0,r.A)(void 0!==e.maExpTime,"maExpTime parameter is required"),(0,r.A)(void 0!==e.assetTypes,"assetTypes parameter is required"),(0,r.A)(void 0!==e.amount0,"amount0 is required"),(0,r.A)(void 0!==e.amount1,"amount1 is required"),(0,r.A)(void 0!==e.minMintAmount,"minMintAmount is required"),(0,r.A)(void 0!==e.receiver,"receiver is required");let{A:v}=e,{fee:A}=e,{offpegFeeMultiplier:M}=e,{maExpTime:h}=e,{assetTypes:T}=e,x=[null!=(s=null==(t=e.methodIds)?void 0:t[0])?s:l,null!=(o=null==(n=e.methodIds)?void 0:n[1])?o:l],k=[null!=(p=null==(i=e.oracles)?void 0:i[0])?p:b,null!=(y=null==(u=e.oracles)?void 0:u[1])?y:b],C=e.tokenA.wrapped.sortsBefore(e.tokenB.wrapped),I=C?e.amount0:e.amount1,q=C?e.amount1:e.amount0;return console.info("[debug] InfinityStablePoolFactory.encodeCreatePoolAndAddLiquidity call parameters",{name:c,symbol:_,coins:f,A:v,fee:A,offpegFeeMultiplier:M,maExpTime:h,implementationIdx:0n,assetTypes:T,methodIds:x,oracles:k,amount0:I,amount1:q,minMintAmount:e.minMintAmount,receiver:e.receiver}),(0,a.p)({abi:w.ABI,functionName:"createPoolAndAddLiquidity",args:[{name:c,symbol:_,coins:f,A:v,fee:A,offpegFeeMultiplier:M,maExpTime:h,implementationIdx:0n,assetTypes:T,methodIds:x,oracles:k},{amount0:I,amount1:q,minMintAmount:e.minMintAmount,receiver:e.receiver}]})}static parsePoolFormParams(e){let t={};return e.swapFee&&(t.fee=BigInt(Math.floor(Math.max(0,Math.min(1,parseFloat(e.swapFee)))/100*c))),e.isAdvancedEnabled&&(e.amplificationParam&&(t.A=BigInt(e.amplificationParam.replace(/,/g,""))),e.offpegFeeMultiplier&&(t.offpegFeeMultiplier=BigInt(Math.floor(1e10*parseFloat(e.offpegFeeMultiplier)))),e.movingAverageTime&&(t.maExpTime=BigInt(Math.floor(parseInt(e.movingAverageTime,10)/Math.log(2))))),t}static createPoolAndAddLiquidityCallParameters(e){return v(e.tokenA,e.tokenB),{calldata:this.encodeCreatePoolAndAddLiquidity(e),value:(0,i.nj)(0)}}constructor(){}};w.ABI=y;var A=[{stateMutability:"view",type:"function",name:"pool_list",inputs:[{name:"arg0",type:"uint256"}],outputs:[{name:"",type:"address"}]},{stateMutability:"view",type:"function",name:"pool_count",inputs:[],outputs:[{name:"",type:"uint256"}]}],M=[s.nU.BSC,s.nU.BSC_TESTNET];function h(e){return M.includes(e)}var T=class{static getInstance(){return T.instance||(T.instance=new T),T.instance}static getHookFactoryAddress(e){if(!h(e))throw Error(`Unsupported chainId: ${e}`);let t=d[e];if(!t)throw Error(`HOOK_INFINITY_STABLE_HOOK_FACTORY_ADDRESS not found for chainId: ${e}`);return t}static async getPoolCount(e,t){if(!h(t))throw Error(`Unsupported chainId: ${t}`);let n=T.getHookFactoryAddress(t);try{let t=await e.readContract({address:n,abi:A,functionName:"pool_count"});return Number(null==t?void 0:t.toString())}catch(e){throw Error(`pool_count() call failed: ${e}`)}}static async getPoolAddressesBatch(e,t,n){if(!h(t))throw Error(`Unsupported chainId: ${t}`);if(0===n)return[];let a=T.getHookFactoryAddress(t),i=Array.from({length:n},(e,t)=>({abi:A,address:a,functionName:"pool_list",args:[BigInt(t)]}));return(await e.multicall({contracts:i,allowFailure:!0})).map(e=>e.result).filter(e=>void 0!==e)}static async getPools(e,t){if(!h(t))throw Error(`Unsupported chainId: ${t}`);let n=T.getHookFactoryAddress(t);try{let t=0;try{let a=await e.readContract({address:n,abi:A,functionName:"pool_count"});t=Number(null==a?void 0:a.toString())}catch(e){throw Error(`pool_count() call failed: ${e}`)}if(0===t)return[];let a=[];for(let i=0;i<t;i++){let t=await e.readContract({address:n,abi:A,functionName:"pool_list",args:[BigInt(i)]});a.push(t)}return a}catch(e){return console.error("InfinityStableHookFactory Error: getPools() call failed",e),[]}}},x=T;x.instance=null}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.