@ring-protocol/universal-router-sdk 0.1.38 → 0.1.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,r,o,n,a=e(require("tiny-invariant")),i=e(require("@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json")),s=require("@ethersproject/abi"),p=require("ethers"),d=require("@ring-protocol/v3-sdk"),u=require("@ring-protocol/v4-sdk"),m=require("@ring-protocol/sdk-core"),c=require("ethers/lib/utils"),T=require("@ring-protocol/few-v2-sdk"),A=require("@ring-protocol/v2-sdk"),l=require("@ring-protocol/router-sdk");function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function f(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return C(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}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 E(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}require("jsbi"),require("bignumber.js"),(r=exports.CommandType||(exports.CommandType={}))[r.V3_SWAP_EXACT_IN=0]="V3_SWAP_EXACT_IN",r[r.V3_SWAP_EXACT_OUT=1]="V3_SWAP_EXACT_OUT",r[r.PERMIT2_TRANSFER_FROM=2]="PERMIT2_TRANSFER_FROM",r[r.PERMIT2_PERMIT_BATCH=3]="PERMIT2_PERMIT_BATCH",r[r.SWEEP=4]="SWEEP",r[r.TRANSFER=5]="TRANSFER",r[r.PAY_PORTION=6]="PAY_PORTION",r[r.V2_SWAP_EXACT_IN=8]="V2_SWAP_EXACT_IN",r[r.V2_SWAP_EXACT_OUT=9]="V2_SWAP_EXACT_OUT",r[r.PERMIT2_PERMIT=10]="PERMIT2_PERMIT",r[r.WRAP_ETH=11]="WRAP_ETH",r[r.UNWRAP_WETH=12]="UNWRAP_WETH",r[r.PERMIT2_TRANSFER_FROM_BATCH=13]="PERMIT2_TRANSFER_FROM_BATCH",r[r.BALANCE_CHECK_ERC20=14]="BALANCE_CHECK_ERC20",r[r.V4_SWAP=16]="V4_SWAP",r[r.V3_POSITION_MANAGER_PERMIT=17]="V3_POSITION_MANAGER_PERMIT",r[r.V3_POSITION_MANAGER_CALL=18]="V3_POSITION_MANAGER_CALL",r[r.V4_INITIALIZE_POOL=19]="V4_INITIALIZE_POOL",r[r.V4_POSITION_MANAGER_CALL=20]="V4_POSITION_MANAGER_CALL",r[r.EXECUTE_SUB_PLAN=33]="EXECUTE_SUB_PLAN",r[r.FEW_V2_SWAP_EXACT_IN=35]="FEW_V2_SWAP_EXACT_IN",r[r.FEW_V2_SWAP_EXACT_OUT=36]="FEW_V2_SWAP_EXACT_OUT",r[r.WRAP_FEW_TOKEN=39]="WRAP_FEW_TOKEN",r[r.UNWRAP_FEW_TOKEN=40]="UNWRAP_FEW_TOKEN",(o=exports.Subparser||(exports.Subparser={}))[o.V3PathExactIn=0]="V3PathExactIn",o[o.V3PathExactOut=1]="V3PathExactOut",(n=exports.Parser||(exports.Parser={}))[n.Abi=0]="Abi",n[n.V4Actions=1]="V4Actions",n[n.V3Actions=2]="V3Actions";var y,x,_,h,P,R,v,w,I,b,g,V,F,N,O,k,U,W,B,S,D,q,M,L,X,H,K,Y,j,G,Z,z,Q,$,J=new Set([exports.CommandType.EXECUTE_SUB_PLAN]),ee=((t={})[exports.CommandType.EXECUTE_SUB_PLAN]={parser:exports.Parser.Abi,params:[{name:"commands",type:"bytes"},{name:"inputs",type:"bytes[]"}]},t[exports.CommandType.PERMIT2_PERMIT]={parser:exports.Parser.Abi,params:[{name:"permit",type:"((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)"},{name:"signature",type:"bytes"}]},t[exports.CommandType.PERMIT2_PERMIT_BATCH]={parser:exports.Parser.Abi,params:[{name:"permit",type:"((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)"},{name:"signature",type:"bytes"}]},t[exports.CommandType.PERMIT2_TRANSFER_FROM]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint160"}]},t[exports.CommandType.PERMIT2_TRANSFER_FROM_BATCH]={parser:exports.Parser.Abi,params:[{name:"transferFrom",type:"(address from,address to,uint160 amount,address token)[]"}]},t[exports.CommandType.V3_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",subparser:exports.Subparser.V3PathExactIn,type:"bytes"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V3_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",subparser:exports.Subparser.V3PathExactOut,type:"bytes"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V2_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V2_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.FEW_V2_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.FEW_V2_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V4_SWAP]={parser:exports.Parser.V4Actions},t[exports.CommandType.WRAP_FEW_TOKEN]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}]},t[exports.CommandType.UNWRAP_FEW_TOKEN]={parser:exports.Parser.Abi,params:[{name:"wrappedToken",type:"address"},{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.WRAP_ETH]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}]},t[exports.CommandType.UNWRAP_WETH]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.SWEEP]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.TRANSFER]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"value",type:"uint256"}]},t[exports.CommandType.PAY_PORTION]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"bips",type:"uint256"}]},t[exports.CommandType.BALANCE_CHECK_ERC20]={parser:exports.Parser.Abi,params:[{name:"owner",type:"address"},{name:"token",type:"address"},{name:"minBalance",type:"uint256"}]},t[exports.CommandType.V4_INITIALIZE_POOL]={parser:exports.Parser.Abi,params:[{name:"poolKey",type:"(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)"},{name:"sqrtPriceX96",type:"uint160"}]},t[exports.CommandType.V3_POSITION_MANAGER_PERMIT]={parser:exports.Parser.V3Actions},t[exports.CommandType.V3_POSITION_MANAGER_CALL]={parser:exports.Parser.V3Actions},t[exports.CommandType.V4_POSITION_MANAGER_CALL]={parser:exports.Parser.V4Actions},t),te=function(){function e(){this.commands="0x",this.inputs=[]}var t=e.prototype;return t.addSubPlan=function(e){return this.addCommand(exports.CommandType.EXECUTE_SUB_PLAN,[e.commands,e.inputs],!0),this},t.addCommand=function(e,t,r){void 0===r&&(r=!1);var o=function(e,t){var r=ee[e];switch(r.parser){case exports.Parser.Abi:return{type:e,encodedInput:c.defaultAbiCoder.encode(r.params.map((function(e){return e.type})),t)};case exports.Parser.V4Actions:case exports.Parser.V3Actions:return{type:e,encodedInput:t[0]}}}(e,t);if(this.inputs.push(o.encodedInput),r){if(!J.has(o.type))throw new Error("command type: "+o.type+" cannot be allowed to revert");o.type=128|o.type}return this.commands=this.commands.concat(o.type.toString(16).padStart(2,"0")),this},e}();function re(e,t){if(T.isFewToken(t.token0.wrapped)||T.isFewToken(t.token1.wrapped))return e;if(t.involvesToken(e))return e;if(t.involvesToken(e.wrapped))return e.wrapped;if(t instanceof u.Pool&&t.token0.wrapped.equals(e))return t.token0;if(t instanceof u.Pool&&t.token1.wrapped.equals(e))return t.token1;throw new Error("Expected currency "+e.symbol+" to be either "+t.token0.symbol+" or "+t.token1.symbol)}(y=exports.RouterActionType||(exports.RouterActionType={})).UniswapTrade="UniswapTrade",y.UnwrapWETH="UnwrapWETH",($=exports.UniversalRouterVersion||(exports.UniversalRouterVersion={})).V1_2="1.2",$.V2_0="2.0";var oe,ne=((Q={})[1]={weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",routerConfigs:(x={},x[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17143817},x[exports.UniversalRouterVersion.V2_0]={address:"0x24e743CcE93235641f2be8Ce7ffC6330903ab96f",creationBlock:17143817},x)},Q[5]={weth:"0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6",routerConfigs:(_={},_[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8940568},_[exports.UniversalRouterVersion.V2_0]={address:"0xEc6b9a7FE7C7c751E6490648e05C5010DDfe0469",creationBlock:8940568},_)},Q[11155111]={weth:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",routerConfigs:(h={},h[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:3543575},h[exports.UniversalRouterVersion.V2_0]={address:"0x97974e98fa4734CD2fBA2aFB4063012679a2f56A",creationBlock:9024677},h)},Q[137]={weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",routerConfigs:(P={},P[exports.UniversalRouterVersion.V1_2]={address:"0xec7BE89e9d109e7e3Fec59c222CF297125FEFda2",creationBlock:52210153},P[exports.UniversalRouterVersion.V2_0]={address:"0x643770E279d5D0733F21d6DC03A8efbABf3255B4",creationBlock:46866777},P)},Q[80001]={weth:"0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889",routerConfigs:(R={},R[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:35176052},R[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:35176052},R)},Q[10]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(v={},v[exports.UniversalRouterVersion.V1_2]={address:"0xCb1355ff08Ab38bBCE60111F1bb2B784bE25D7e8",creationBlock:114702266},v[exports.UniversalRouterVersion.V2_0]={address:"0xeC8B0F7Ffe3ae75d7FfAb09429e3675bb63503e4",creationBlock:108825869},v)},Q[420]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(w={},w[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8887728},w[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8887728},w)},Q[42161]={weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",routerConfigs:(I={},I[exports.UniversalRouterVersion.V1_2]={address:"0x5E325eDA8064b456f4781070C0738d849c824258",creationBlock:169472836},I[exports.UniversalRouterVersion.V2_0]={address:"0x4e30E64faeF7c9Aee835904a48DC27eDA40e2CA7",creationBlock:285583808},I)},Q[421613]={weth:"0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3",routerConfigs:(b={},b[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:18815277},b[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:18815277},b)},Q[42220]={weth:"0x0000000000000000000000000000000000000000",routerConfigs:(g={},g[exports.UniversalRouterVersion.V1_2]={address:"0x643770e279d5d0733f21d6dc03a8efbabf3255b4",creationBlock:21407637},g[exports.UniversalRouterVersion.V2_0]={address:"0x88a3ED7F21A3fCF6adb86b6F878C5B7a02D20e9b",creationBlock:21116361},g)},Q[44787]={weth:"0x0000000000000000000000000000000000000000",routerConfigs:(V={},V[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17566658},V[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17566658},V)},Q[56]={weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",routerConfigs:(F={},F[exports.UniversalRouterVersion.V1_2]={address:"0x4Dae2f939ACf50408e13d58534Ff8c2776d45265",creationBlock:35160263},F[exports.UniversalRouterVersion.V2_0]={address:"0x1Fb6ef969D925f0B81245cE28F2cAD95b638CfCC",creationBlock:56739372},F)},Q[43114]={weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",routerConfigs:(N={},N[exports.UniversalRouterVersion.V1_2]={address:"0x4Dae2f939ACf50408e13d58534Ff8c2776d45265",creationBlock:40237257},N[exports.UniversalRouterVersion.V2_0]={address:"0x82635AF6146972cD6601161c4472ffe97237D292",creationBlock:34491144},N)},Q[84531]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(O={},O[exports.UniversalRouterVersion.V1_2]={address:"0xd0872d928672ae2ff74bdb2f5130ac12229cafaf",creationBlock:6915289},O[exports.UniversalRouterVersion.V2_0]={address:"0xd0872d928672ae2ff74bdb2f5130ac12229cafaf",creationBlock:6915289},O)},Q[8453]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(k={},k[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:9107268},k[exports.UniversalRouterVersion.V2_0]={address:"0xcc1d0c42CC672Fcb610Db8934635Acd0F605Fd86",creationBlock:23766578},k)},Q[81457]={weth:"0x4300000000000000000000000000000000000004",routerConfigs:(U={},U[exports.UniversalRouterVersion.V1_2]={address:"0x643770E279d5D0733F21d6DC03A8efbABf3255B4",creationBlock:1116444},U[exports.UniversalRouterVersion.V2_0]={address:"0x404Fd85edAe4501eCeB32Ca6ac603D9529df7AfB",creationBlock:165686},U)},Q[7777777]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(W={},W[exports.UniversalRouterVersion.V1_2]={address:"0x2986d9721A49838ab4297b695858aF7F17f38014",creationBlock:11832155},W[exports.UniversalRouterVersion.V2_0]={address:"0x3315ef7ca28db74abadc6c44570efdf06b04b020",creationBlock:1737562927},W)},Q[324]={weth:"0x5aea5775959fbc2557cc8789bc1bf90a239d9a91",routerConfigs:(B={},B[exports.UniversalRouterVersion.V1_2]={address:"0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06",creationBlock:12640979},B[exports.UniversalRouterVersion.V2_0]={address:"0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06",creationBlock:12640979},B)},Q[480]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(S={},S[exports.UniversalRouterVersion.V1_2]={address:"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",creationBlock:4063979},S[exports.UniversalRouterVersion.V2_0]={address:"0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743",creationBlock:1737559557},S)},Q[1301]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(D={},D[exports.UniversalRouterVersion.V1_2]={address:"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",creationBlock:1241811},D[exports.UniversalRouterVersion.V2_0]={address:"0xC9DD682A06dbf10D91e2adbdAC70f3Adb8a3f201",creationBlock:165686},D)},Q[130]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(q={},q[exports.UniversalRouterVersion.V1_2]={address:"0x4D73A4411CA1c660035e4AECC8270E5DdDEC8C17",creationBlock:23678},q[exports.UniversalRouterVersion.V2_0]={address:"0xa7f0381288753e01171752483413E53f8D7faf4D",creationBlock:8799030},q)},Q[10143]={weth:"0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",routerConfigs:(M={},M[exports.UniversalRouterVersion.V1_2]={address:"0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893",creationBlock:23678},M[exports.UniversalRouterVersion.V2_0]={address:"0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893",creationBlock:23678},M)},Q[84532]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(L={},L[exports.UniversalRouterVersion.V1_2]={address:"0x492e6456d9528771018deb9e87ef7750ef184104",creationBlock:20216585},L[exports.UniversalRouterVersion.V2_0]={address:"0x492e6456d9528771018deb9e87ef7750ef184104",creationBlock:20216585},L)},Q[1868]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(X={},X[exports.UniversalRouterVersion.V1_2]={address:"0x0e2850543f69f678257266e0907ff9a58b3f13de",creationBlock:3254782},X[exports.UniversalRouterVersion.V2_0]={address:"0x0e2850543f69f678257266e0907ff9a58b3f13de",creationBlock:3254782},X)},Q[168587773]={weth:"0x4200000000000000000000000000000000000023",routerConfigs:(H={},H[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:3273124},H[exports.UniversalRouterVersion.V2_0]={address:"0x899FAeDA183A26Ae7085C82e5E057E90bdb75283",creationBlock:3273124},H)},Q[421614]={weth:"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73",routerConfigs:(K={},K[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:104439157},K[exports.UniversalRouterVersion.V2_0]={address:"0x6Db48677E616921d70fe4c88aAB62665Efffe4A8",creationBlock:104439157},K)},Q[1516]={weth:"0xe8CabF9d1FFB6CE23cF0a86641849543ec7BD7d5",routerConfigs:(Y={},Y[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:2240752},Y[exports.UniversalRouterVersion.V2_0]={address:"0x20504f37A95eF80e3FC7476c4801fb39AaE6bAd0",creationBlock:2240752},Y)},Q[1514]={weth:"0x1514000000000000000000000000000000000000",routerConfigs:(j={},j[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:2305094},j[exports.UniversalRouterVersion.V2_0]={address:"0x5dF345fB4e5F4791869bFD9cbCa941D931e6E781",creationBlock:2305094},j)},Q[196]={weth:"0xe538905cf8410324e03A5A23C1c177a474D59b2b",routerConfigs:(G={},G[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:196},G[exports.UniversalRouterVersion.V2_0]={address:"0xe5da3186011c61e0d6bd6a4a4ca51ee7c1d3f7b2",creationBlock:196},G)},Q[4326]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(Z={},Z[exports.UniversalRouterVersion.V1_2]={address:"0xAAB1C664CeaD881AfBB58555e6A3a79523D3e4C0",creationBlock:3522892},Z[exports.UniversalRouterVersion.V2_0]={address:"0xAAB1C664CeaD881AfBB58555e6A3a79523D3e4C0",creationBlock:3522892},Z)},Q[999]={weth:"0x5555555555555555555555555555555555555555",routerConfigs:(z={},z[exports.UniversalRouterVersion.V1_2]={address:"0x7d3D28dee339C17452A4d6b53C71b2557278B530",creationBlock:9273064},z[exports.UniversalRouterVersion.V2_0]={address:"0xE65081EFa5ad4A196B1Df768716c337e6AB140E9",creationBlock:9273064},z)},Q),ae=function(e,t){if(!(t in ne))throw new Error("Universal Router not deployed on chain "+t);return ne[t].routerConfigs[e].address},ie=function(e){if(!(e in ne))throw new Error("Universal Router not deployed on chain "+e);if("0x0000000000000000000000000000000000000000"==ne[e].weth)throw new Error("Chain "+e+" does not have WETH");return ne[e].weth},se=p.BigNumber.from(2).pow(255),pe="0x0000000000000000000000000000000000000000",de="0x0000000000000000000000000000000000000001",ue="0x0000000000000000000000000000000000000002";function me(e){return e.isNative?pe:e.wrapped.address}var ce=((oe={})[m.ChainId.HYPER_MAINNET]=new m.Token(999,"0x9e1148bC3665a9f7C35F313d89c0432c34928AEf",18,"fwWHYPE","Few Wrapped Wrapped Hyper"),oe[m.ChainId.MAINNET]=new m.Token(1,"0xa250CC729Bb3323e7933022a67B52200fE354767",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BASE]=new m.Token(8453,"0xd38e4149df30AfFFEE13d771f3Ec9277c72333E4",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.ARBITRUM_ONE]=new m.Token(42161,"0x76CDff74222533Efa4BAa713BC3d14df81A460F7",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.ARBITRUM_SEPOLIA]=new m.Token(421614,"0x1fc632A9A9c99ae7C406f8565cd709b52BA0ed47",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.UNICHAIN]=new m.Token(130,"0x05e6c1B4Da05c41c86c35Ce42a8a222C1a450167",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.UNICHAIN_SEPOLIA]=new m.Token(1301,"0x1fc632A9A9c99ae7C406f8565cd709b52BA0ed47",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.GOERLI]=new m.Token(5,"0x6b7e07C37a157d01D71012c36644907Ab5a7694e",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BLAST]=new m.Token(81457,"0x66714DB8F3397c767d0A602458B5b4E3C0FE7dd1",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.SEPOLIA]=new m.Token(11155111,"0x98b902eF4f9fEB2F6982ceEB4E98761294854D61",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BLAST_SEPOLIA]=new m.Token(m.ChainId.BLAST_SEPOLIA,"0x798dE0520497E28E8eBfF0DF1d791c2E942eA881",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.STORY_ODYSSEY]=new m.Token(m.ChainId.STORY_ODYSSEY,"0xA67013F71AF4f21563BAf8C1d156F1Dc7ab681C6",18,"fwWIP","Few Wrapped Wrapped IP"),oe[m.ChainId.STORY_MAINNET]=new m.Token(m.ChainId.STORY_MAINNET,"0x088dE218b725975E6285995C25Ce3706BAe0f4Ec",18,"fwWIP","Few Wrapped Wrapped IP"),oe[m.ChainId.BNB]=new m.Token(56,"0x7f0172b75d3823D8aF04feE3A3f6a14aBD68EFE1",18,"fwWBNB","Few Wrapped Wrapped BNB"),oe),Te=new m.Percent(50,100),Ae=function(){function e(e,t){if(this.trade=e,this.options=t,this.tradeType=exports.RouterActionType.UniswapTrade,t.fee&&t.flatFee)throw new Error("Only one fee option permitted");this.payerIsUser=!(this.inputRequiresWrap||this.inputRequiresUnwrap||this.options.useRouterBalance)}var t,r;return e.prototype.encode=function(e,t){var r;this.inputRequiresWrap?e.addCommand(exports.CommandType.WRAP_ETH,[ue,this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString()]):this.inputRequiresUnwrap&&(e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[this.trade.inputAmount.currency.address,ue,this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0])),this.options.recipient=null!=(r=this.options.recipient)?r:de;for(var o,n,a=this.trade.tradeType===m.TradeType.EXACT_INPUT&&this.trade.routes.length>2||this.outputRequiresTransition||!!(o=this.options).fee||!!o.flatFee,i=f(this.trade.swaps);!(n=i()).done;){var s=n.value;switch(s.route.protocol){case l.Protocol.FEWV2:le(e,s,this.trade.tradeType,this.options);break;case l.Protocol.V2:Ce(e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.V3:fe(e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.V4:Ee(this.trade.swaps,e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.MIXED:ye(this.trade.swaps,e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;default:throw new Error("UNSUPPORTED_TRADE_PROTOCOL")}}var u=p.BigNumber.from(this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString());if(a){var c=this.trade.swaps[0].route.pools,T=me(re(this.trade.outputAmount.currency,c[c.length-1]));if(this.options.fee){var A=d.toHex(this.options.fee.fee.multiply(1e4).quotient);e.addCommand(exports.CommandType.PAY_PORTION,[T,this.options.fee.recipient,A]),this.trade.tradeType===m.TradeType.EXACT_OUTPUT&&(u=u.sub(u.mul(A).div(1e4)))}if(this.options.flatFee){var C=this.options.flatFee.amount;if(u.lt(C))throw new Error("Flat fee amount greater than minimumAmountOut");e.addCommand(exports.CommandType.TRANSFER,[T,this.options.flatFee.recipient,C]),this.trade.tradeType===m.TradeType.EXACT_OUTPUT&&(u=u.sub(C))}this.outputRequiresUnwrap?(e.addCommand(exports.CommandType.UNWRAP_WETH,[this.options.recipient,"0"]),e.addCommand(exports.CommandType.SWEEP,[me(this.trade.outputAmount.currency),de,"0"])):this.outputRequiresWrap?e.addCommand(exports.CommandType.WRAP_ETH,[this.options.recipient,se]):e.addCommand(exports.CommandType.SWEEP,this.hasFewV2?[me(this.trade.outputAmount.currency),this.options.recipient,"0"]:[me(this.trade.outputAmount.currency),this.options.recipient,u])}var E=ce[this.trade.inputAmount.currency.wrapped.chainId];(this.trade.tradeType===m.TradeType.EXACT_OUTPUT||this.trade.priceImpact.greaterThan(Te))&&(this.inputRequiresWrap?(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[this.options.recipient,0]),e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])):this.inputRequiresUnwrap?e.addCommand(exports.CommandType.WRAP_ETH,[this.options.recipient,se]):this.trade.inputAmount.currency.isNative&&(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[de,0]),e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])),e.addCommand(exports.CommandType.SWEEP,[this.trade.inputAmount.currency.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.SWEEP,[this.trade.outputAmount.currency.wrapped.address,de,"0"])),this.options.safeMode&&e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])},t=e,(r=[{key:"isAllV4",get:function(){for(var e,t=!0,r=f(this.trade.swaps);!(e=r()).done;)t=t&&e.value.route.protocol==l.Protocol.V4;return t}},{key:"hasFewV2",get:function(){for(var e,t=!1,r=f(this.trade.swaps);!(e=r()).done;)t=t||e.value.route.protocol==l.Protocol.FEWV2;return t}},{key:"inputRequiresWrap",get:function(){return this.trade.swaps[0].route.pools[0]instanceof u.Pool?this.trade.inputAmount.currency.isNative&&!this.trade.swaps[0].route.pathInput.isNative:this.trade.inputAmount.currency.isNative}},{key:"inputRequiresUnwrap",get:function(){return this.trade.swaps[0].route.pools[0]instanceof u.Pool&&!this.trade.inputAmount.currency.isNative&&this.trade.swaps[0].route.pathInput.isNative}},{key:"outputRequiresWrap",get:function(){var e=this.trade.swaps[0].route;return e.pools[e.pools.length-1]instanceof u.Pool&&!this.trade.outputAmount.currency.isNative&&e.pathOutput.isNative}},{key:"outputRequiresUnwrap",get:function(){var e=this.trade.swaps[0].route;return e.pools[e.pools.length-1]instanceof u.Pool?this.trade.outputAmount.currency.isNative&&!this.trade.swaps[0].route.pathOutput.isNative:this.trade.outputAmount.currency.isNative}},{key:"outputRequiresTransition",get:function(){return this.outputRequiresWrap||this.outputRequiresUnwrap}}])&&function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,E(o.key),o)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}();function le(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=new T.Trade(i,r==m.TradeType.EXACT_INPUT?t.inputAmount:s,r),d=i.path[0],u=i.path[i.path.length-1];p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.quotient.toString()]),r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.FEW_V2_SWAP_EXACT_IN,[ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),0,i.path.map((function(e){return e.wrapped.address})),!1]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.FEW_V2_SWAP_EXACT_OUT,[ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),!1]);var c=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId);s.currency.isNative?e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[ce[p.inputAmount.currency.wrapped.chainId].address,ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]):T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)&&(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[c.address,de,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[d.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]))}function Ce(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=new A.Trade(i,r==m.TradeType.EXACT_INPUT?t.inputAmount:s,r),d=i.path[0],u=i.path[i.path.length-1];if(T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)){p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.currency.isNative?se:p.inputAmount.quotient.toString()]),n=!1,a=!0,r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V2_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]);var c=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId);T.isFewToken(d.wrapped)&&T.isFewToken(u.wrapped)&&(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,s.currency.isNative?[c.address,ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]:[c.address,de,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[d.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]))}else r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V2_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n])}function fe(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=d.Trade.createUncheckedTrade({route:i,inputAmount:t.inputAmount,outputAmount:s,tradeType:r}),u=i.path[0],c=i.path[i.path.length-1];if(T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)){p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.currency.isNative?se:p.inputAmount.quotient.toString()]),n=!1,a=!0;var A=T.getFewTokenFromOriginalToken(i.input.wrapped,i.input.chainId),l=T.getFewTokenFromOriginalToken(i.output.wrapped,i.output.chainId),C=new d.Route(i.pools,A,l),f=d.encodeRouteToPath(C,p.tradeType===m.TradeType.EXACT_OUTPUT);r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),f,n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V3_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),f,n]);var E=T.getFewTokenFromOriginalToken(p.inputAmount.currency.wrapped,p.inputAmount.currency.chainId),y=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId);T.isFewToken(u.wrapped)&&T.isFewToken(c.wrapped)&&(s.currency.isNative?e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[y.address,ue,"0"]):p.inputAmount.currency.isNative?(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[de,"0"])):e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[y.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[c.wrapped.address,de,"0"]))}else{var x=d.encodeRouteToPath(i,p.tradeType===m.TradeType.EXACT_OUTPUT);r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),x,n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V3_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),x,n])}}function Ee(e,t,r,o,n,a,i){var s=r.inputAmount,p=r.outputAmount,d=r.route,c=e[0],A=e[e.length-1],C=d.path[0],f=d.path[d.path.length-1],E=d.pools.map((function(e){return e})),y=new u.Route(E,s.currency,p.currency);if(T.isFewToken(d.pools[0].token0.wrapped)&&T.isFewToken(d.pools[0].token1.wrapped)){var x,_=T.getFewTokenFromOriginalToken(s.currency.wrapped,s.currency.chainId),h=T.getFewTokenFromOriginalToken(p.currency.wrapped,p.currency.chainId),P=new u.Route(E,_,h),R=u.Trade.createUncheckedTrade({route:P,inputAmount:s,outputAmount:p,tradeType:o});R.inputAmount.currency.isNative||t.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[R.inputAmount.currency.address,ue,R.maximumAmountIn(n.slippageTolerance).quotient.toString()]),R.inputAmount.currency.isNative&&t.addCommand(exports.CommandType.WRAP_ETH,[ue,R.inputAmount.quotient.toString()]),t.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[R.inputAmount.currency.wrapped.address,ue,R.inputAmount.currency.isNative?se:R.inputAmount.quotient.toString()]),a=!1;var v=(i=!0)&&o==m.TradeType.EXACT_INPUT?void 0:n.slippageTolerance,w=new u.V4Planner;w.addTrade(R,v),w.addSettle(R.route.pathInput,a),w.addTake(R.route.pathOutput,i?ue:null!=(x=n.recipient)?x:de),t.addCommand(exports.CommandType.V4_SWAP,[w.finalize()]);var I=T.getFewTokenFromOriginalToken(R.outputAmount.currency.wrapped,R.outputAmount.currency.chainId);T.isFewToken(C.wrapped)&&T.isFewToken(f.wrapped)&&(p.currency.isNative?(t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[I.address,ue,R.minimumAmountOut(n.slippageTolerance).quotient.toString()]),t.addCommand(exports.CommandType.UNWRAP_WETH,[de,0])):t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[I.address,de,R.minimumAmountOut(n.slippageTolerance).quotient.toString()]),t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[C.wrapped.address,de,"0"]),t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[f.wrapped.address,de,"0"]))}else{var b,g=u.Trade.createUncheckedTrade({route:y,inputAmount:s,outputAmount:p,tradeType:o}),V=i&&o==m.TradeType.EXACT_INPUT?void 0:n.slippageTolerance,F=new u.V4Planner;F.addTrade(g,V),F.addSettle(g.route.pathInput,a),F.addTake(g.route.pathOutput,i?ue:null!=(b=n.recipient)?b:de),c.route.protocol!==l.Protocol.V4&&A.route.protocol===l.Protocol.V4&&g.route.pathInput.isNative&&t.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0]),t.addCommand(exports.CommandType.V4_SWAP,[F.finalize()])}}function ye(e,t,r,o,n,a,i){var s,p=r.route,m=r.inputAmount,c=r.outputAmount,T=i?ue:null!=(s=n.recipient)?s:de;if(1===p.pools.length){if(p.pools[0]instanceof u.Pool)return Ee(e,t,r,o,n,a,i);if(p.pools[0]instanceof d.Pool)return fe(t,r,o,n,a,i);if(p.pools[0]instanceof A.Pair)return Ce(t,r,o,n,a,i);throw new Error("Invalid route type")}for(var C=l.MixedRouteTrade.createUncheckedTrade({route:p,inputAmount:m,outputAmount:c,tradeType:o}),f=C.maximumAmountIn(n.slippageTolerance,m).quotient.toString(),E=i?0:C.minimumAmountOut(n.slippageTolerance,c).quotient.toString(),y=l.partitionMixedRouteByProtocol(p),x=function(e){return e===y.length-1},_=p.pathInput,h=0;h<y.length;h++){var P=y[h],R=P[0],v=l.getOutputOfPools(P,_),w=new l.MixedRoute(new l.MixedRouteSDK([].concat(P),_,v)),I=void 0,b=void 0;if(x(h))I=v,b=T;else{var g=y[h+1][0];I=re(v,g),b=g instanceof A.Pair&&v.equals(I)?g.liquidityToken.address:ue}if(R instanceof u.Pool){var V=new u.V4Planner,F=new u.Route(P,w.input,w.output);V.addSettle(_,a&&0===h,0==h?f:se),V.addAction(u.Actions.SWAP_EXACT_IN,[{currencyIn:_.isNative?pe:_.address,path:u.encodeRouteToPath(F),amountIn:0,amountOutMinimum:x(h)?E:0}]),V.addTake(v,b),t.addCommand(exports.CommandType.V4_SWAP,[V.finalize()])}else if(R instanceof d.Pool)t.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[b,0==h?f:se,x(h)?E:0,l.encodeMixedRouteToPath(w),a&&0===h]);else{if(!(R instanceof A.Pair))throw new Error("Unexpected Pool Type");t.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[b,0===h?f:se,x(h)?E:0,w.path.map((function(e){return e.wrapped.address})),a&&0===h])}x(h)||(v.isNative&&!I.isNative?t.addCommand(exports.CommandType.WRAP_ETH,[ue,se]):!v.isNative&&I.isNative&&t.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0])),_=I}}function xe(e,t){var r=t.signature,o=p.ethers.utils.arrayify(t.signature).length;65!==o&&64!==o||(r=p.ethers.utils.joinSignature(p.ethers.utils.splitSignature(t.signature))),e.addCommand(exports.CommandType.PERMIT2_PERMIT,[t,r])}var _e=function(){function e(){}return e.swapCallParameters=function(t,r){var o=new te,n=new Ae(t,r),i=n.trade.inputAmount.currency;i.isNative&&r.inputTokenPermit&&a(!1),r.inputTokenPermit&&xe(o,r.inputTokenPermit);var s=p.BigNumber.from(i.isNative?n.trade.maximumAmountIn(r.slippageTolerance).quotient.toString():0);return n.encode(o,{allowRevert:!1}),e.encodePlan(o,s,{deadline:r.deadlineOrPreviousBlockhash?p.BigNumber.from(r.deadlineOrPreviousBlockhash):void 0})},e.migrateV3ToV4CallParameters=function(t,r){var o=t.outputPosition.pool,n=t.inputPosition.pool.token0,i=t.inputPosition.pool.token1,s=null!=r?r:m.CHAIN_TO_ADDRESSES_MAP[o.chainId].v4PositionManagerAddress;o.currency0.isNative?o.currency0.wrapped.equals(n)&&o.currency1.equals(i)||o.currency0.wrapped.equals(i)&&o.currency1.equals(n)||a(!1):(n!==o.token0&&a(!1),i!==o.token1&&a(!1)),t.v3RemoveLiquidityOptions.liquidityPercentage.equalTo(new m.Percent(100,100))||a(!1),1!=t.v3RemoveLiquidityOptions.burnToken&&a(!1),t.v3RemoveLiquidityOptions.collectOptions.recipient!==s&&a(!1),!function(e){return Object.keys(e).some((function(e){return"recipient"===e}))}(t.v4AddLiquidityOptions)&&a(!1),t.v4AddLiquidityOptions.migrate||a(!1);var c=new te;if(t.v4AddLiquidityOptions.createPool){var T=u.Pool.getPoolKey(o.currency0,o.currency1,o.fee,o.tickSpacing,o.hooks);c.addCommand(exports.CommandType.V4_INITIALIZE_POOL,[T,o.sqrtRatioX96.toString()]),delete t.v4AddLiquidityOptions.createPool}t.v3RemoveLiquidityOptions.permit&&(ae(exports.UniversalRouterVersion.V2_0,t.inputPosition.pool.chainId)!=t.v3RemoveLiquidityOptions.permit.spender&&a(!1),function(e,t,r){var o=d.NonfungiblePositionManager.INTERFACE.encodeFunctionData("permit",[m.validateAndParseAddress(t.spender),r,t.deadline,t.v,t.r,t.s]);e.addCommand(exports.CommandType.V3_POSITION_MANAGER_PERMIT,[o])}(c,t.v3RemoveLiquidityOptions.permit,t.v3RemoveLiquidityOptions.tokenId),delete t.v3RemoveLiquidityOptions.permit);for(var A,l=d.NonfungiblePositionManager.removeCallParameters(t.inputPosition,t.v3RemoveLiquidityOptions),C=f(d.Multicall.decodeMulticall(l.calldata));!(A=C()).done;){var E=A.value,y=E.slice(0,10);y!=d.NonfungiblePositionManager.INTERFACE.getSighash("collect")&&y!=d.NonfungiblePositionManager.INTERFACE.getSighash("decreaseLiquidity")&&y!=d.NonfungiblePositionManager.INTERFACE.getSighash("burn")&&a(!1),c.addCommand(exports.CommandType.V3_POSITION_MANAGER_CALL,[E])}var x=u.V4PositionManager.addCallParameters(t.outputPosition,t.v4AddLiquidityOptions);return x.calldata.slice(0,10)!=u.V4PositionManager.INTERFACE.getSighash("modifyLiquidities")&&a(!1),c.addCommand(exports.CommandType.V4_POSITION_MANAGER_CALL,[x.calldata]),e.encodePlan(c,p.BigNumber.from(0),{deadline:p.BigNumber.from(t.v4AddLiquidityOptions.deadline)})},e.encodePlan=function(t,r,o){void 0===o&&(o={});var n=t.commands,a=t.inputs;return{calldata:e.INTERFACE.encodeFunctionData(o.deadline?"execute(bytes,bytes[],uint256)":"execute(bytes,bytes[])",o.deadline?[n,a,o.deadline]:[n,a]),value:r.toHexString()}},e}();_e.INTERFACE=new s.Interface(i.abi);var he,Pe=function(){function e(e,t,r){this.tradeType=exports.RouterActionType.UnwrapWETH,this.wethAddress=ie(t),this.amount=e,r&&(r.details.token.toLowerCase()!==this.wethAddress.toLowerCase()&&a(!1),r.details.amount>=e||a(!1),this.permit2Data=r)}return e.prototype.encode=function(e,t){!function(e,t){t.permit2TransferFrom&&t.permit2Permit&&t.permit2TransferFrom.token!==t.permit2Permit.details.token&&a(!1),t.permit2Permit&&xe(e,t.permit2Permit),t.permit2TransferFrom&&e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[t.permit2TransferFrom.token,t.permit2TransferFrom.recipient?t.permit2TransferFrom.recipient:ue,t.permit2TransferFrom.amount])}(e,{permit2Permit:this.permit2Data,permit2TransferFrom:{token:this.wethAddress,amount:this.amount.toString()}}),e.addCommand(exports.CommandType.UNWRAP_WETH,[ue,this.amount])},e}();(he=exports.PoolType||(exports.PoolType={})).V2Pool="v2-pool",he.V3Pool="v3-pool",he.V4Pool="v4-pool";var Re=function(e){return e.toLowerCase()===pe.toLowerCase()||e.toLowerCase()==="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee".toLowerCase()},ve=function(){function e(){}return e.fromClassicQuote=function(t){var r=t.route,o=t.tokenIn,n=t.tokenOut;if(!r)throw new Error("Expected route to be present");if(!r.length)throw new Error("Expected there to be at least one route");if(r.some((function(e){return!e.length})))throw new Error("Expected all routes to have at least one pool");var a=r[0],i=a[0].tokenIn,s=a[a.length-1].tokenOut;if(!i||!s)throw new Error("Expected both tokenIn and tokenOut to be present");if(i.chainId!==s.chainId)throw new Error("Expected tokenIn and tokenOut to be have same chainId");var p=e.toCurrency(Re(o),i),c=e.toCurrency(Re(n),s),T=r.map((function(t){var r=t[0].amountIn,o=t[t.length-1].amountOut;if(!r||!o)throw new Error("Expected both raw amountIn and raw amountOut to be present");var n=m.CurrencyAmount.fromRawAmount(p,r),a=m.CurrencyAmount.fromRawAmount(c,o),i=e.isVersionedRoute(exports.PoolType.V2Pool,t),s=e.isVersionedRoute(exports.PoolType.V3Pool,t),T=e.isVersionedRoute(exports.PoolType.V4Pool,t);return{routev4:T?new u.Route(t.map(e.toV4Pool),p,c):null,routev3:s?new d.Route(t.map(e.toV3Pool),p,c):null,routev2:i?new A.Route(t.map(e.toPair),p,c):null,mixedRoute:T||s||i?null:new l.MixedRouteSDK(t.map(e.toPoolOrPair),p,c),inputAmount:n,outputAmount:a}}));return new l.Trade({v2Routes:T.filter((function(e){return e.routev2})).map((function(e){return{routev2:e.routev2,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),v3Routes:T.filter((function(e){return e.routev3})).map((function(e){return{routev3:e.routev3,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),v4Routes:T.filter((function(e){return e.routev4})).map((function(e){return{routev4:e.routev4,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),mixedRoutes:T.filter((function(e){return e.mixedRoute})).map((function(e){return{mixedRoute:e.mixedRoute,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),tradeType:t.tradeType})},e.toCurrency=function(e,t){return e?m.Ether.onChain(t.chainId):this.toToken(t)},e.toToken=function(e){var t=e.symbol,r=e.buyFeeBps,o=e.sellFeeBps;return new m.Token(e.chainId,e.address,parseInt(e.decimals.toString()),t,void 0,!1,r?p.BigNumber.from(r):void 0,o?p.BigNumber.from(o):void 0)},e.toV3Pool=function(t){var r=t.fee,o=t.sqrtRatioX96,n=t.liquidity,a=t.tickCurrent,i=t.tokenOut;return new d.Pool(e.toToken(t.tokenIn),e.toToken(i),parseInt(r),o,n,parseInt(a))},e.toV4Pool=function(t){var r=e.toCurrency(Re(t.tokenIn.address),t.tokenIn),o=e.toCurrency(Re(t.tokenOut.address),t.tokenOut);return new u.Pool(r,o,parseInt(t.fee),parseInt(t.tickSpacing),t.hooks,t.sqrtRatioX96,t.liquidity,parseInt(t.tickCurrent))},e.isVersionedRoute=function(e,t){return t.every((function(t){return t.type===e}))},e}();ve.toPoolOrPair=function(e){switch(e.type){case exports.PoolType.V4Pool:return ve.toV4Pool(e);case exports.PoolType.V3Pool:return ve.toV3Pool(e);case exports.PoolType.V2Pool:return ve.toPair(e);default:throw new Error("Invalid pool type")}},ve.toPair=function(e){var t=e.reserve0,r=e.reserve1;return new A.Pair(m.CurrencyAmount.fromRawAmount(ve.toToken(t.token),t.quotient),m.CurrencyAmount.fromRawAmount(ve.toToken(r.token),r.quotient))};var we=function(){function e(){}return e.parseCalldata=function(t){var r=new Ie(ee),o=e.INTERFACE.parseTransaction({data:t}).args;return r.parse(o.commands,o.inputs)},e}();we.INTERFACE=new s.Interface(i.abi);var Ie=function(){function e(e){this.commandDefinition=e}return e.prototype.parse=function(t,r){var o=this;return{commands:e.getCommands(t).map((function(e,t){var n,a=o.commandDefinition[e];if(a.parser===exports.Parser.V4Actions){var i=u.V4BaseActionsParser.parseCalldata(r[t]);return{commandName:exports.CommandType[e],commandType:e,params:(n=i.actions,n.map((function(e){return{name:e.actionName,value:e.params.map((function(e){return{name:e.name,value:e.value}}))}})))}}if(a.parser===exports.Parser.Abi){var s=a.params,d=p.ethers.utils.defaultAbiCoder.decode(s.map((function(e){return e.type})),r[t]).map((function(e,t){switch(s[t].subparser){case exports.Subparser.V3PathExactIn:return{name:s[t].name,value:be(e)};case exports.Subparser.V3PathExactOut:return{name:s[t].name,value:ge(e)};default:return{name:s[t].name,value:e}}}));return{commandName:exports.CommandType[e],commandType:e,params:d}}if(a.parser===exports.Parser.V3Actions)return{commandName:exports.CommandType[e],commandType:e,params:r.map((function(e){return{name:"command",value:e}}))};throw new Error("Unsupported parser: "+a)}))}},e.getCommands=function(e){for(var t=[],r=2;r<e.length;r+=2){var o=e.substring(r,r+2);t.push(parseInt(o,16))}return t},e}();function be(e){for(var t=e.replace("0x",""),r=p.ethers.utils.getAddress(t.substring(0,40)),o=40,n=[];o<t.length;){var a=t.substring(o,o+46),i=parseInt(a.substring(0,6),16),s=p.ethers.utils.getAddress(a.substring(6,46));n.push({tokenIn:r,tokenOut:s,fee:i}),r=s,o+=46}return n}function ge(e){for(var t=e.replace("0x",""),r=p.ethers.utils.getAddress(t.substring(t.length-40)),o=t.length-86,n=[];o>=0;){var a=t.substring(o,o+46),i=p.ethers.utils.getAddress(a.substring(0,40)),s=parseInt(a.substring(40,46),16);n.push({tokenIn:r,tokenOut:i,fee:s}),r=i,o-=46}return n}exports.COMMAND_DEFINITION=ee,exports.CommandParser=we,exports.FEW_WRAPPED_NATIVE_CURRENCY=ce,exports.GenericCommandParser=Ie,exports.ROUTER_AS_RECIPIENT=ue,exports.RoutePlanner=te,exports.RouterTradeAdapter=ve,exports.SwapRouter=_e,exports.UNIVERSAL_ROUTER_ADDRESS=ae,exports.UNIVERSAL_ROUTER_CREATION_BLOCK=function(e,t){if(!(t in ne))throw new Error("Universal Router not deployed on chain "+t);return ne[t].routerConfigs[e].creationBlock},exports.UniswapTrade=Ae,exports.UnwrapWETH=Pe,exports.WETH_ADDRESS=ie,exports.isNativeCurrency=Re;
1
+ "use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t,r,o,n,a=e(require("tiny-invariant")),i=e(require("@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json")),s=require("@ethersproject/abi"),p=require("ethers"),d=require("@ring-protocol/v3-sdk"),u=require("@ring-protocol/v4-sdk"),m=require("@ring-protocol/sdk-core"),c=require("ethers/lib/utils"),T=require("@ring-protocol/few-v2-sdk"),A=require("@ring-protocol/v2-sdk"),l=require("@ring-protocol/router-sdk");function C(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=Array(t);r<t;r++)o[r]=e[r];return o}function f(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return C(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?C(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var o=0;return function(){return o>=e.length?{done:!0}:{done:!1,value:e[o++]}}}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 E(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,"string");if("object"!=typeof o)return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}require("jsbi"),require("bignumber.js"),(r=exports.CommandType||(exports.CommandType={}))[r.V3_SWAP_EXACT_IN=0]="V3_SWAP_EXACT_IN",r[r.V3_SWAP_EXACT_OUT=1]="V3_SWAP_EXACT_OUT",r[r.PERMIT2_TRANSFER_FROM=2]="PERMIT2_TRANSFER_FROM",r[r.PERMIT2_PERMIT_BATCH=3]="PERMIT2_PERMIT_BATCH",r[r.SWEEP=4]="SWEEP",r[r.TRANSFER=5]="TRANSFER",r[r.PAY_PORTION=6]="PAY_PORTION",r[r.V2_SWAP_EXACT_IN=8]="V2_SWAP_EXACT_IN",r[r.V2_SWAP_EXACT_OUT=9]="V2_SWAP_EXACT_OUT",r[r.PERMIT2_PERMIT=10]="PERMIT2_PERMIT",r[r.WRAP_ETH=11]="WRAP_ETH",r[r.UNWRAP_WETH=12]="UNWRAP_WETH",r[r.PERMIT2_TRANSFER_FROM_BATCH=13]="PERMIT2_TRANSFER_FROM_BATCH",r[r.BALANCE_CHECK_ERC20=14]="BALANCE_CHECK_ERC20",r[r.V4_SWAP=16]="V4_SWAP",r[r.V3_POSITION_MANAGER_PERMIT=17]="V3_POSITION_MANAGER_PERMIT",r[r.V3_POSITION_MANAGER_CALL=18]="V3_POSITION_MANAGER_CALL",r[r.V4_INITIALIZE_POOL=19]="V4_INITIALIZE_POOL",r[r.V4_POSITION_MANAGER_CALL=20]="V4_POSITION_MANAGER_CALL",r[r.EXECUTE_SUB_PLAN=33]="EXECUTE_SUB_PLAN",r[r.FEW_V2_SWAP_EXACT_IN=35]="FEW_V2_SWAP_EXACT_IN",r[r.FEW_V2_SWAP_EXACT_OUT=36]="FEW_V2_SWAP_EXACT_OUT",r[r.WRAP_FEW_TOKEN=39]="WRAP_FEW_TOKEN",r[r.UNWRAP_FEW_TOKEN=40]="UNWRAP_FEW_TOKEN",(o=exports.Subparser||(exports.Subparser={}))[o.V3PathExactIn=0]="V3PathExactIn",o[o.V3PathExactOut=1]="V3PathExactOut",(n=exports.Parser||(exports.Parser={}))[n.Abi=0]="Abi",n[n.V4Actions=1]="V4Actions",n[n.V3Actions=2]="V3Actions";var y,x,_,h,P,R,v,w,I,b,g,V,F,N,O,k,W,U,B,S,D,q,M,L,X,H,K,Y,j,G,Z,z,Q,$,J=new Set([exports.CommandType.EXECUTE_SUB_PLAN]),ee=((t={})[exports.CommandType.EXECUTE_SUB_PLAN]={parser:exports.Parser.Abi,params:[{name:"commands",type:"bytes"},{name:"inputs",type:"bytes[]"}]},t[exports.CommandType.PERMIT2_PERMIT]={parser:exports.Parser.Abi,params:[{name:"permit",type:"((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)"},{name:"signature",type:"bytes"}]},t[exports.CommandType.PERMIT2_PERMIT_BATCH]={parser:exports.Parser.Abi,params:[{name:"permit",type:"((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)"},{name:"signature",type:"bytes"}]},t[exports.CommandType.PERMIT2_TRANSFER_FROM]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint160"}]},t[exports.CommandType.PERMIT2_TRANSFER_FROM_BATCH]={parser:exports.Parser.Abi,params:[{name:"transferFrom",type:"(address from,address to,uint160 amount,address token)[]"}]},t[exports.CommandType.V3_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",subparser:exports.Subparser.V3PathExactIn,type:"bytes"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V3_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",subparser:exports.Subparser.V3PathExactOut,type:"bytes"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V2_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V2_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.FEW_V2_SWAP_EXACT_IN]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountIn",type:"uint256"},{name:"amountOutMin",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.FEW_V2_SWAP_EXACT_OUT]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountOut",type:"uint256"},{name:"amountInMax",type:"uint256"},{name:"path",type:"address[]"},{name:"payerIsUser",type:"bool"}]},t[exports.CommandType.V4_SWAP]={parser:exports.Parser.V4Actions},t[exports.CommandType.WRAP_FEW_TOKEN]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amount",type:"uint256"}]},t[exports.CommandType.UNWRAP_FEW_TOKEN]={parser:exports.Parser.Abi,params:[{name:"wrappedToken",type:"address"},{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.WRAP_ETH]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amount",type:"uint256"}]},t[exports.CommandType.UNWRAP_WETH]={parser:exports.Parser.Abi,params:[{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.SWEEP]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"amountMin",type:"uint256"}]},t[exports.CommandType.TRANSFER]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"value",type:"uint256"}]},t[exports.CommandType.PAY_PORTION]={parser:exports.Parser.Abi,params:[{name:"token",type:"address"},{name:"recipient",type:"address"},{name:"bips",type:"uint256"}]},t[exports.CommandType.BALANCE_CHECK_ERC20]={parser:exports.Parser.Abi,params:[{name:"owner",type:"address"},{name:"token",type:"address"},{name:"minBalance",type:"uint256"}]},t[exports.CommandType.V4_INITIALIZE_POOL]={parser:exports.Parser.Abi,params:[{name:"poolKey",type:"(address currency0,address currency1,uint24 fee,int24 tickSpacing,address hooks)"},{name:"sqrtPriceX96",type:"uint160"}]},t[exports.CommandType.V3_POSITION_MANAGER_PERMIT]={parser:exports.Parser.V3Actions},t[exports.CommandType.V3_POSITION_MANAGER_CALL]={parser:exports.Parser.V3Actions},t[exports.CommandType.V4_POSITION_MANAGER_CALL]={parser:exports.Parser.V4Actions},t),te=function(){function e(){this.commands="0x",this.inputs=[]}var t=e.prototype;return t.addSubPlan=function(e){return this.addCommand(exports.CommandType.EXECUTE_SUB_PLAN,[e.commands,e.inputs],!0),this},t.addCommand=function(e,t,r){void 0===r&&(r=!1);var o=function(e,t){var r=ee[e];switch(r.parser){case exports.Parser.Abi:return{type:e,encodedInput:c.defaultAbiCoder.encode(r.params.map((function(e){return e.type})),t)};case exports.Parser.V4Actions:case exports.Parser.V3Actions:return{type:e,encodedInput:t[0]}}}(e,t);if(this.inputs.push(o.encodedInput),r){if(!J.has(o.type))throw new Error("command type: "+o.type+" cannot be allowed to revert");o.type=128|o.type}return this.commands=this.commands.concat(o.type.toString(16).padStart(2,"0")),this},e}();function re(e,t){if(T.isFewToken(t.token0.wrapped)||T.isFewToken(t.token1.wrapped))return e;if(t.involvesToken(e))return e;if(t.involvesToken(e.wrapped))return e.wrapped;if(t instanceof u.Pool&&t.token0.wrapped.equals(e))return t.token0;if(t instanceof u.Pool&&t.token1.wrapped.equals(e))return t.token1;throw new Error("Expected currency "+e.symbol+" to be either "+t.token0.symbol+" or "+t.token1.symbol)}(y=exports.RouterActionType||(exports.RouterActionType={})).UniswapTrade="UniswapTrade",y.UnwrapWETH="UnwrapWETH",($=exports.UniversalRouterVersion||(exports.UniversalRouterVersion={})).V1_2="1.2",$.V2_0="2.0";var oe,ne=((Q={})[1]={weth:"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",routerConfigs:(x={},x[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17143817},x[exports.UniversalRouterVersion.V2_0]={address:"0x24e743CcE93235641f2be8Ce7ffC6330903ab96f",creationBlock:17143817},x)},Q[5]={weth:"0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6",routerConfigs:(_={},_[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8940568},_[exports.UniversalRouterVersion.V2_0]={address:"0xEc6b9a7FE7C7c751E6490648e05C5010DDfe0469",creationBlock:8940568},_)},Q[11155111]={weth:"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",routerConfigs:(h={},h[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:3543575},h[exports.UniversalRouterVersion.V2_0]={address:"0x97974e98fa4734CD2fBA2aFB4063012679a2f56A",creationBlock:9024677},h)},Q[137]={weth:"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270",routerConfigs:(P={},P[exports.UniversalRouterVersion.V1_2]={address:"0xec7BE89e9d109e7e3Fec59c222CF297125FEFda2",creationBlock:52210153},P[exports.UniversalRouterVersion.V2_0]={address:"0x643770E279d5D0733F21d6DC03A8efbABf3255B4",creationBlock:46866777},P)},Q[80001]={weth:"0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889",routerConfigs:(R={},R[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:35176052},R[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:35176052},R)},Q[10]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(v={},v[exports.UniversalRouterVersion.V1_2]={address:"0xCb1355ff08Ab38bBCE60111F1bb2B784bE25D7e8",creationBlock:114702266},v[exports.UniversalRouterVersion.V2_0]={address:"0xeC8B0F7Ffe3ae75d7FfAb09429e3675bb63503e4",creationBlock:108825869},v)},Q[420]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(w={},w[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8887728},w[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:8887728},w)},Q[42161]={weth:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",routerConfigs:(I={},I[exports.UniversalRouterVersion.V1_2]={address:"0x5E325eDA8064b456f4781070C0738d849c824258",creationBlock:169472836},I[exports.UniversalRouterVersion.V2_0]={address:"0x4e30E64faeF7c9Aee835904a48DC27eDA40e2CA7",creationBlock:285583808},I)},Q[421613]={weth:"0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3",routerConfigs:(b={},b[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:18815277},b[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:18815277},b)},Q[42220]={weth:"0x0000000000000000000000000000000000000000",routerConfigs:(g={},g[exports.UniversalRouterVersion.V1_2]={address:"0x643770e279d5d0733f21d6dc03a8efbabf3255b4",creationBlock:21407637},g[exports.UniversalRouterVersion.V2_0]={address:"0x88a3ED7F21A3fCF6adb86b6F878C5B7a02D20e9b",creationBlock:21116361},g)},Q[44787]={weth:"0x0000000000000000000000000000000000000000",routerConfigs:(V={},V[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17566658},V[exports.UniversalRouterVersion.V2_0]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:17566658},V)},Q[56]={weth:"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",routerConfigs:(F={},F[exports.UniversalRouterVersion.V1_2]={address:"0x4Dae2f939ACf50408e13d58534Ff8c2776d45265",creationBlock:35160263},F[exports.UniversalRouterVersion.V2_0]={address:"0x1Fb6ef969D925f0B81245cE28F2cAD95b638CfCC",creationBlock:56739372},F)},Q[43114]={weth:"0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7",routerConfigs:(N={},N[exports.UniversalRouterVersion.V1_2]={address:"0x4Dae2f939ACf50408e13d58534Ff8c2776d45265",creationBlock:40237257},N[exports.UniversalRouterVersion.V2_0]={address:"0x82635AF6146972cD6601161c4472ffe97237D292",creationBlock:34491144},N)},Q[84531]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(O={},O[exports.UniversalRouterVersion.V1_2]={address:"0xd0872d928672ae2ff74bdb2f5130ac12229cafaf",creationBlock:6915289},O[exports.UniversalRouterVersion.V2_0]={address:"0xd0872d928672ae2ff74bdb2f5130ac12229cafaf",creationBlock:6915289},O)},Q[8453]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(k={},k[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:9107268},k[exports.UniversalRouterVersion.V2_0]={address:"0xcc1d0c42CC672Fcb610Db8934635Acd0F605Fd86",creationBlock:23766578},k)},Q[81457]={weth:"0x4300000000000000000000000000000000000004",routerConfigs:(W={},W[exports.UniversalRouterVersion.V1_2]={address:"0x643770E279d5D0733F21d6DC03A8efbABf3255B4",creationBlock:1116444},W[exports.UniversalRouterVersion.V2_0]={address:"0x404Fd85edAe4501eCeB32Ca6ac603D9529df7AfB",creationBlock:165686},W)},Q[7777777]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(U={},U[exports.UniversalRouterVersion.V1_2]={address:"0x2986d9721A49838ab4297b695858aF7F17f38014",creationBlock:11832155},U[exports.UniversalRouterVersion.V2_0]={address:"0x3315ef7ca28db74abadc6c44570efdf06b04b020",creationBlock:1737562927},U)},Q[324]={weth:"0x5aea5775959fbc2557cc8789bc1bf90a239d9a91",routerConfigs:(B={},B[exports.UniversalRouterVersion.V1_2]={address:"0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06",creationBlock:12640979},B[exports.UniversalRouterVersion.V2_0]={address:"0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06",creationBlock:12640979},B)},Q[480]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(S={},S[exports.UniversalRouterVersion.V1_2]={address:"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D",creationBlock:4063979},S[exports.UniversalRouterVersion.V2_0]={address:"0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743",creationBlock:1737559557},S)},Q[1301]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(D={},D[exports.UniversalRouterVersion.V1_2]={address:"0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",creationBlock:1241811},D[exports.UniversalRouterVersion.V2_0]={address:"0xC9DD682A06dbf10D91e2adbdAC70f3Adb8a3f201",creationBlock:165686},D)},Q[130]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(q={},q[exports.UniversalRouterVersion.V1_2]={address:"0x4D73A4411CA1c660035e4AECC8270E5DdDEC8C17",creationBlock:23678},q[exports.UniversalRouterVersion.V2_0]={address:"0xa7f0381288753e01171752483413E53f8D7faf4D",creationBlock:8799030},q)},Q[10143]={weth:"0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701",routerConfigs:(M={},M[exports.UniversalRouterVersion.V1_2]={address:"0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893",creationBlock:23678},M[exports.UniversalRouterVersion.V2_0]={address:"0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893",creationBlock:23678},M)},Q[84532]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(L={},L[exports.UniversalRouterVersion.V1_2]={address:"0x492e6456d9528771018deb9e87ef7750ef184104",creationBlock:20216585},L[exports.UniversalRouterVersion.V2_0]={address:"0x492e6456d9528771018deb9e87ef7750ef184104",creationBlock:20216585},L)},Q[1868]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(X={},X[exports.UniversalRouterVersion.V1_2]={address:"0x0e2850543f69f678257266e0907ff9a58b3f13de",creationBlock:3254782},X[exports.UniversalRouterVersion.V2_0]={address:"0x0e2850543f69f678257266e0907ff9a58b3f13de",creationBlock:3254782},X)},Q[168587773]={weth:"0x4200000000000000000000000000000000000023",routerConfigs:(H={},H[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:3273124},H[exports.UniversalRouterVersion.V2_0]={address:"0x899FAeDA183A26Ae7085C82e5E057E90bdb75283",creationBlock:3273124},H)},Q[421614]={weth:"0x980B62Da83eFf3D4576C647993b0c1D7faf17c73",routerConfigs:(K={},K[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:104439157},K[exports.UniversalRouterVersion.V2_0]={address:"0x6Db48677E616921d70fe4c88aAB62665Efffe4A8",creationBlock:104439157},K)},Q[1516]={weth:"0xe8CabF9d1FFB6CE23cF0a86641849543ec7BD7d5",routerConfigs:(Y={},Y[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:2240752},Y[exports.UniversalRouterVersion.V2_0]={address:"0x20504f37A95eF80e3FC7476c4801fb39AaE6bAd0",creationBlock:2240752},Y)},Q[1514]={weth:"0x1514000000000000000000000000000000000000",routerConfigs:(j={},j[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:2305094},j[exports.UniversalRouterVersion.V2_0]={address:"0x5dF345fB4e5F4791869bFD9cbCa941D931e6E781",creationBlock:2305094},j)},Q[196]={weth:"0xe538905cf8410324e03A5A23C1c177a474D59b2b",routerConfigs:(G={},G[exports.UniversalRouterVersion.V1_2]={address:"0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD",creationBlock:196},G[exports.UniversalRouterVersion.V2_0]={address:"0xe5da3186011c61e0d6bd6a4a4ca51ee7c1d3f7b2",creationBlock:196},G)},Q[4326]={weth:"0x4200000000000000000000000000000000000006",routerConfigs:(Z={},Z[exports.UniversalRouterVersion.V1_2]={address:"0xAAB1C664CeaD881AfBB58555e6A3a79523D3e4C0",creationBlock:3522892},Z[exports.UniversalRouterVersion.V2_0]={address:"0xAAB1C664CeaD881AfBB58555e6A3a79523D3e4C0",creationBlock:3522892},Z)},Q[999]={weth:"0x5555555555555555555555555555555555555555",routerConfigs:(z={},z[exports.UniversalRouterVersion.V1_2]={address:"0x7d3D28dee339C17452A4d6b53C71b2557278B530",creationBlock:9273064},z[exports.UniversalRouterVersion.V2_0]={address:"0xE65081EFa5ad4A196B1Df768716c337e6AB140E9",creationBlock:9273064},z)},Q),ae=function(e,t){if(!(t in ne))throw new Error("Universal Router not deployed on chain "+t);return ne[t].routerConfigs[e].address},ie=function(e){if(!(e in ne))throw new Error("Universal Router not deployed on chain "+e);if("0x0000000000000000000000000000000000000000"==ne[e].weth)throw new Error("Chain "+e+" does not have WETH");return ne[e].weth},se=p.BigNumber.from(2).pow(255),pe="0x0000000000000000000000000000000000000000",de="0x0000000000000000000000000000000000000001",ue="0x0000000000000000000000000000000000000002";function me(e){return e.isNative?pe:e.wrapped.address}var ce=((oe={})[m.ChainId.HYPER_MAINNET]=new m.Token(999,"0x9e1148bC3665a9f7C35F313d89c0432c34928AEf",18,"fwWHYPE","Few Wrapped Wrapped Hyper"),oe[m.ChainId.MAINNET]=new m.Token(1,"0xa250CC729Bb3323e7933022a67B52200fE354767",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BASE]=new m.Token(8453,"0xd38e4149df30AfFFEE13d771f3Ec9277c72333E4",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.ARBITRUM_ONE]=new m.Token(42161,"0x76CDff74222533Efa4BAa713BC3d14df81A460F7",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.ARBITRUM_SEPOLIA]=new m.Token(421614,"0x1fc632A9A9c99ae7C406f8565cd709b52BA0ed47",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.UNICHAIN]=new m.Token(130,"0x05e6c1B4Da05c41c86c35Ce42a8a222C1a450167",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.UNICHAIN_SEPOLIA]=new m.Token(1301,"0x1fc632A9A9c99ae7C406f8565cd709b52BA0ed47",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.GOERLI]=new m.Token(5,"0x6b7e07C37a157d01D71012c36644907Ab5a7694e",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BLAST]=new m.Token(81457,"0x66714DB8F3397c767d0A602458B5b4E3C0FE7dd1",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.SEPOLIA]=new m.Token(11155111,"0x98b902eF4f9fEB2F6982ceEB4E98761294854D61",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.BLAST_SEPOLIA]=new m.Token(m.ChainId.BLAST_SEPOLIA,"0x798dE0520497E28E8eBfF0DF1d791c2E942eA881",18,"fwWETH","Few Wrapped Wrapped Ether"),oe[m.ChainId.STORY_ODYSSEY]=new m.Token(m.ChainId.STORY_ODYSSEY,"0xA67013F71AF4f21563BAf8C1d156F1Dc7ab681C6",18,"fwWIP","Few Wrapped Wrapped IP"),oe[m.ChainId.STORY_MAINNET]=new m.Token(m.ChainId.STORY_MAINNET,"0x088dE218b725975E6285995C25Ce3706BAe0f4Ec",18,"fwWIP","Few Wrapped Wrapped IP"),oe[m.ChainId.BNB]=new m.Token(56,"0x7f0172b75d3823D8aF04feE3A3f6a14aBD68EFE1",18,"fwWBNB","Few Wrapped Wrapped BNB"),oe),Te=new m.Percent(50,100),Ae=function(){function e(e,t){if(this.trade=e,this.options=t,this.tradeType=exports.RouterActionType.UniswapTrade,t.fee&&t.flatFee)throw new Error("Only one fee option permitted");this.payerIsUser=!(this.inputRequiresWrap||this.inputRequiresUnwrap||this.options.useRouterBalance)}var t,r;return e.prototype.encode=function(e,t){var r;this.inputRequiresWrap?e.addCommand(exports.CommandType.WRAP_ETH,[ue,this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString()]):this.inputRequiresUnwrap&&(e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[this.trade.inputAmount.currency.address,ue,this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0])),this.options.recipient=null!=(r=this.options.recipient)?r:de;for(var o,n,a=this.trade.tradeType===m.TradeType.EXACT_INPUT&&this.trade.routes.length>2||this.outputRequiresTransition||!!(o=this.options).fee||!!o.flatFee,i=f(this.trade.swaps);!(n=i()).done;){var s=n.value;switch(s.route.protocol){case l.Protocol.FEWV2:le(e,s,this.trade.tradeType,this.options);break;case l.Protocol.V2:Ce(e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.V3:fe(e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.V4:Ee(this.trade.swaps,e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;case l.Protocol.MIXED:ye(this.trade.swaps,e,s,this.trade.tradeType,this.options,this.payerIsUser,a);break;default:throw new Error("UNSUPPORTED_TRADE_PROTOCOL")}}var u=p.BigNumber.from(this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString());if(a){var c=this.trade.swaps[0].route.pools,T=me(re(this.trade.outputAmount.currency,c[c.length-1]));if(this.options.fee){var A=d.toHex(this.options.fee.fee.multiply(1e4).quotient);e.addCommand(exports.CommandType.PAY_PORTION,[T,this.options.fee.recipient,A]),this.trade.tradeType===m.TradeType.EXACT_OUTPUT&&(u=u.sub(u.mul(A).div(1e4)))}if(this.options.flatFee){var C=this.options.flatFee.amount;if(u.lt(C))throw new Error("Flat fee amount greater than minimumAmountOut");e.addCommand(exports.CommandType.TRANSFER,[T,this.options.flatFee.recipient,C]),this.trade.tradeType===m.TradeType.EXACT_OUTPUT&&(u=u.sub(C))}this.outputRequiresUnwrap?(e.addCommand(exports.CommandType.UNWRAP_WETH,[this.options.recipient,"0"]),e.addCommand(exports.CommandType.SWEEP,[me(this.trade.outputAmount.currency),de,"0"])):this.outputRequiresWrap?e.addCommand(exports.CommandType.WRAP_ETH,[this.options.recipient,se]):e.addCommand(exports.CommandType.SWEEP,this.hasFewV2?[me(this.trade.outputAmount.currency),this.options.recipient,"0"]:[me(this.trade.outputAmount.currency),this.options.recipient,u])}var E=ce[this.trade.inputAmount.currency.wrapped.chainId];(this.trade.tradeType===m.TradeType.EXACT_OUTPUT||this.trade.priceImpact.greaterThan(Te))&&(this.inputRequiresWrap?(E&&e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[this.options.recipient,0]),e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])):this.inputRequiresUnwrap?e.addCommand(exports.CommandType.WRAP_ETH,[this.options.recipient,se]):this.trade.inputAmount.currency.isNative&&(E&&e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[de,0]),e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])),e.addCommand(exports.CommandType.SWEEP,[this.trade.inputAmount.currency.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.SWEEP,[this.trade.outputAmount.currency.wrapped.address,de,"0"])),this.options.safeMode&&e.addCommand(exports.CommandType.SWEEP,[pe,this.options.recipient,0])},t=e,(r=[{key:"isAllV4",get:function(){for(var e,t=!0,r=f(this.trade.swaps);!(e=r()).done;)t=t&&e.value.route.protocol==l.Protocol.V4;return t}},{key:"hasFewV2",get:function(){for(var e,t=!1,r=f(this.trade.swaps);!(e=r()).done;)t=t||e.value.route.protocol==l.Protocol.FEWV2;return t}},{key:"inputRequiresWrap",get:function(){return this.trade.swaps[0].route.pools[0]instanceof u.Pool?this.trade.inputAmount.currency.isNative&&!this.trade.swaps[0].route.pathInput.isNative:this.trade.inputAmount.currency.isNative}},{key:"inputRequiresUnwrap",get:function(){return this.trade.swaps[0].route.pools[0]instanceof u.Pool&&!this.trade.inputAmount.currency.isNative&&this.trade.swaps[0].route.pathInput.isNative}},{key:"outputRequiresWrap",get:function(){var e=this.trade.swaps[0].route;return e.pools[e.pools.length-1]instanceof u.Pool&&!this.trade.outputAmount.currency.isNative&&e.pathOutput.isNative}},{key:"outputRequiresUnwrap",get:function(){var e=this.trade.swaps[0].route;return e.pools[e.pools.length-1]instanceof u.Pool?this.trade.outputAmount.currency.isNative&&!this.trade.swaps[0].route.pathOutput.isNative:this.trade.outputAmount.currency.isNative}},{key:"outputRequiresTransition",get:function(){return this.outputRequiresWrap||this.outputRequiresUnwrap}}])&&function(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,E(o.key),o)}}(t.prototype,r),Object.defineProperty(t,"prototype",{writable:!1}),t}();function le(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=new T.Trade(i,r==m.TradeType.EXACT_INPUT?t.inputAmount:s,r),d=i.path[0],u=i.path[i.path.length-1];p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.quotient.toString()]),r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.FEW_V2_SWAP_EXACT_IN,[ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),0,i.path.map((function(e){return e.wrapped.address})),!1]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.FEW_V2_SWAP_EXACT_OUT,[ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),!1]);var c=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId),A=ce[p.inputAmount.currency.wrapped.chainId];s.currency.isNative?A?e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[A.address,ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]):e.addCommand(exports.CommandType.UNWRAP_WETH,[o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]):T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)&&(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[c.address,de,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[d.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]))}function Ce(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=new A.Trade(i,r==m.TradeType.EXACT_INPUT?t.inputAmount:s,r),d=i.path[0],u=i.path[i.path.length-1];if(T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)){p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.currency.isNative?se:p.inputAmount.quotient.toString()]),n=!1,a=!0,r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V2_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]);var c=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId);T.isFewToken(d.wrapped)&&T.isFewToken(u.wrapped)&&(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,s.currency.isNative?[c.address,ue,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]:[c.address,de,p.minimumAmountOut(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[d.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]))}else r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V2_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),i.path.map((function(e){return e.wrapped.address})),n])}function fe(e,t,r,o,n,a){var i=t.route,s=t.outputAmount,p=d.Trade.createUncheckedTrade({route:i,inputAmount:t.inputAmount,outputAmount:s,tradeType:r}),u=i.path[0],c=i.path[i.path.length-1];if(T.isFewToken(i.pathInput.wrapped)&&T.isFewToken(i.pathOutput.wrapped)){p.inputAmount.currency.isNative||e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[p.inputAmount.currency.address,ue,p.maximumAmountIn(o.slippageTolerance).quotient.toString()]),e.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[p.inputAmount.currency.wrapped.address,ue,p.inputAmount.currency.isNative?se:p.inputAmount.quotient.toString()]),n=!1,a=!0;var A=T.getFewTokenFromOriginalToken(i.input.wrapped,i.input.chainId),l=T.getFewTokenFromOriginalToken(i.output.wrapped,i.output.chainId),C=new d.Route(i.pools,A,l),f=d.encodeRouteToPath(C,p.tradeType===m.TradeType.EXACT_OUTPUT);r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),f,n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V3_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),f,n]);var E=T.getFewTokenFromOriginalToken(p.inputAmount.currency.wrapped,p.inputAmount.currency.chainId),y=T.getFewTokenFromOriginalToken(p.outputAmount.currency.wrapped,p.outputAmount.currency.chainId);T.isFewToken(u.wrapped)&&T.isFewToken(c.wrapped)&&(s.currency.isNative?e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[y.address,ue,"0"]):p.inputAmount.currency.isNative?(e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[E.address,ue,"0"]),e.addCommand(exports.CommandType.UNWRAP_WETH,[de,"0"])):e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[y.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[u.wrapped.address,de,"0"]),e.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[c.wrapped.address,de,"0"]))}else{var x=d.encodeRouteToPath(i,p.tradeType===m.TradeType.EXACT_OUTPUT);r==m.TradeType.EXACT_INPUT?e.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[a?ue:o.recipient,p.maximumAmountIn(o.slippageTolerance).quotient.toString(),a?0:p.minimumAmountOut(o.slippageTolerance).quotient.toString(),x,n]):r==m.TradeType.EXACT_OUTPUT&&e.addCommand(exports.CommandType.V3_SWAP_EXACT_OUT,[a?ue:o.recipient,p.minimumAmountOut(o.slippageTolerance).quotient.toString(),p.maximumAmountIn(o.slippageTolerance).quotient.toString(),x,n])}}function Ee(e,t,r,o,n,a,i){var s=r.inputAmount,p=r.outputAmount,d=r.route,c=e[0],A=e[e.length-1],C=d.path[0],f=d.path[d.path.length-1],E=d.pools.map((function(e){return e})),y=new u.Route(E,s.currency,p.currency);if(T.isFewToken(d.pools[0].token0.wrapped)&&T.isFewToken(d.pools[0].token1.wrapped)){var x,_=T.getFewTokenFromOriginalToken(s.currency.wrapped,s.currency.chainId),h=T.getFewTokenFromOriginalToken(p.currency.wrapped,p.currency.chainId),P=new u.Route(E,_,h),R=u.Trade.createUncheckedTrade({route:P,inputAmount:s,outputAmount:p,tradeType:o});R.inputAmount.currency.isNative||t.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[R.inputAmount.currency.address,ue,R.maximumAmountIn(n.slippageTolerance).quotient.toString()]),R.inputAmount.currency.isNative&&t.addCommand(exports.CommandType.WRAP_ETH,[ue,R.inputAmount.quotient.toString()]),t.addCommand(exports.CommandType.WRAP_FEW_TOKEN,[R.inputAmount.currency.wrapped.address,ue,R.inputAmount.currency.isNative?se:R.inputAmount.quotient.toString()]),a=!1;var v=(i=!0)&&o==m.TradeType.EXACT_INPUT?void 0:n.slippageTolerance,w=new u.V4Planner;w.addTrade(R,v),w.addSettle(R.route.pathInput,a),w.addTake(R.route.pathOutput,i?ue:null!=(x=n.recipient)?x:de),t.addCommand(exports.CommandType.V4_SWAP,[w.finalize()]);var I=T.getFewTokenFromOriginalToken(R.outputAmount.currency.wrapped,R.outputAmount.currency.chainId);T.isFewToken(C.wrapped)&&T.isFewToken(f.wrapped)&&(p.currency.isNative?(t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[I.address,ue,R.minimumAmountOut(n.slippageTolerance).quotient.toString()]),t.addCommand(exports.CommandType.UNWRAP_WETH,[de,0])):t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[I.address,de,R.minimumAmountOut(n.slippageTolerance).quotient.toString()]),t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[C.wrapped.address,de,"0"]),t.addCommand(exports.CommandType.UNWRAP_FEW_TOKEN,[f.wrapped.address,de,"0"]))}else{var b,g=u.Trade.createUncheckedTrade({route:y,inputAmount:s,outputAmount:p,tradeType:o}),V=i&&o==m.TradeType.EXACT_INPUT?void 0:n.slippageTolerance,F=new u.V4Planner;F.addTrade(g,V),F.addSettle(g.route.pathInput,a),F.addTake(g.route.pathOutput,i?ue:null!=(b=n.recipient)?b:de),c.route.protocol!==l.Protocol.V4&&A.route.protocol===l.Protocol.V4&&g.route.pathInput.isNative&&t.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0]),t.addCommand(exports.CommandType.V4_SWAP,[F.finalize()])}}function ye(e,t,r,o,n,a,i){var s,p=r.route,m=r.inputAmount,c=r.outputAmount,T=i?ue:null!=(s=n.recipient)?s:de;if(1===p.pools.length){if(p.pools[0]instanceof u.Pool)return Ee(e,t,r,o,n,a,i);if(p.pools[0]instanceof d.Pool)return fe(t,r,o,n,a,i);if(p.pools[0]instanceof A.Pair)return Ce(t,r,o,n,a,i);throw new Error("Invalid route type")}for(var C=l.MixedRouteTrade.createUncheckedTrade({route:p,inputAmount:m,outputAmount:c,tradeType:o}),f=C.maximumAmountIn(n.slippageTolerance,m).quotient.toString(),E=i?0:C.minimumAmountOut(n.slippageTolerance,c).quotient.toString(),y=l.partitionMixedRouteByProtocol(p),x=function(e){return e===y.length-1},_=p.pathInput,h=0;h<y.length;h++){var P=y[h],R=P[0],v=l.getOutputOfPools(P,_),w=new l.MixedRoute(new l.MixedRouteSDK([].concat(P),_,v)),I=void 0,b=void 0;if(x(h))I=v,b=T;else{var g=y[h+1][0];I=re(v,g),b=g instanceof A.Pair&&v.equals(I)?g.liquidityToken.address:ue}if(R instanceof u.Pool){var V=new u.V4Planner,F=new u.Route(P,w.input,w.output);V.addSettle(_,a&&0===h,0==h?f:se),V.addAction(u.Actions.SWAP_EXACT_IN,[{currencyIn:_.isNative?pe:_.address,path:u.encodeRouteToPath(F),amountIn:0,amountOutMinimum:x(h)?E:0}]),V.addTake(v,b),t.addCommand(exports.CommandType.V4_SWAP,[V.finalize()])}else if(R instanceof d.Pool)t.addCommand(exports.CommandType.V3_SWAP_EXACT_IN,[b,0==h?f:se,x(h)?E:0,l.encodeMixedRouteToPath(w),a&&0===h]);else{if(!(R instanceof A.Pair))throw new Error("Unexpected Pool Type");t.addCommand(exports.CommandType.V2_SWAP_EXACT_IN,[b,0===h?f:se,x(h)?E:0,w.path.map((function(e){return e.wrapped.address})),a&&0===h])}x(h)||(v.isNative&&!I.isNative?t.addCommand(exports.CommandType.WRAP_ETH,[ue,se]):!v.isNative&&I.isNative&&t.addCommand(exports.CommandType.UNWRAP_WETH,[ue,0])),_=I}}function xe(e,t){var r=t.signature,o=p.ethers.utils.arrayify(t.signature).length;65!==o&&64!==o||(r=p.ethers.utils.joinSignature(p.ethers.utils.splitSignature(t.signature))),e.addCommand(exports.CommandType.PERMIT2_PERMIT,[t,r])}var _e=function(){function e(){}return e.swapCallParameters=function(t,r){var o=new te,n=new Ae(t,r),i=n.trade.inputAmount.currency;i.isNative&&r.inputTokenPermit&&a(!1),r.inputTokenPermit&&xe(o,r.inputTokenPermit);var s=p.BigNumber.from(i.isNative?n.trade.maximumAmountIn(r.slippageTolerance).quotient.toString():0);return n.encode(o,{allowRevert:!1}),e.encodePlan(o,s,{deadline:r.deadlineOrPreviousBlockhash?p.BigNumber.from(r.deadlineOrPreviousBlockhash):void 0})},e.migrateV3ToV4CallParameters=function(t,r){var o=t.outputPosition.pool,n=t.inputPosition.pool.token0,i=t.inputPosition.pool.token1,s=null!=r?r:m.CHAIN_TO_ADDRESSES_MAP[o.chainId].v4PositionManagerAddress;o.currency0.isNative?o.currency0.wrapped.equals(n)&&o.currency1.equals(i)||o.currency0.wrapped.equals(i)&&o.currency1.equals(n)||a(!1):(n!==o.token0&&a(!1),i!==o.token1&&a(!1)),t.v3RemoveLiquidityOptions.liquidityPercentage.equalTo(new m.Percent(100,100))||a(!1),1!=t.v3RemoveLiquidityOptions.burnToken&&a(!1),t.v3RemoveLiquidityOptions.collectOptions.recipient!==s&&a(!1),!function(e){return Object.keys(e).some((function(e){return"recipient"===e}))}(t.v4AddLiquidityOptions)&&a(!1),t.v4AddLiquidityOptions.migrate||a(!1);var c=new te;if(t.v4AddLiquidityOptions.createPool){var T=u.Pool.getPoolKey(o.currency0,o.currency1,o.fee,o.tickSpacing,o.hooks);c.addCommand(exports.CommandType.V4_INITIALIZE_POOL,[T,o.sqrtRatioX96.toString()]),delete t.v4AddLiquidityOptions.createPool}t.v3RemoveLiquidityOptions.permit&&(ae(exports.UniversalRouterVersion.V2_0,t.inputPosition.pool.chainId)!=t.v3RemoveLiquidityOptions.permit.spender&&a(!1),function(e,t,r){var o=d.NonfungiblePositionManager.INTERFACE.encodeFunctionData("permit",[m.validateAndParseAddress(t.spender),r,t.deadline,t.v,t.r,t.s]);e.addCommand(exports.CommandType.V3_POSITION_MANAGER_PERMIT,[o])}(c,t.v3RemoveLiquidityOptions.permit,t.v3RemoveLiquidityOptions.tokenId),delete t.v3RemoveLiquidityOptions.permit);for(var A,l=d.NonfungiblePositionManager.removeCallParameters(t.inputPosition,t.v3RemoveLiquidityOptions),C=f(d.Multicall.decodeMulticall(l.calldata));!(A=C()).done;){var E=A.value,y=E.slice(0,10);y!=d.NonfungiblePositionManager.INTERFACE.getSighash("collect")&&y!=d.NonfungiblePositionManager.INTERFACE.getSighash("decreaseLiquidity")&&y!=d.NonfungiblePositionManager.INTERFACE.getSighash("burn")&&a(!1),c.addCommand(exports.CommandType.V3_POSITION_MANAGER_CALL,[E])}var x=u.V4PositionManager.addCallParameters(t.outputPosition,t.v4AddLiquidityOptions);return x.calldata.slice(0,10)!=u.V4PositionManager.INTERFACE.getSighash("modifyLiquidities")&&a(!1),c.addCommand(exports.CommandType.V4_POSITION_MANAGER_CALL,[x.calldata]),e.encodePlan(c,p.BigNumber.from(0),{deadline:p.BigNumber.from(t.v4AddLiquidityOptions.deadline)})},e.encodePlan=function(t,r,o){void 0===o&&(o={});var n=t.commands,a=t.inputs;return{calldata:e.INTERFACE.encodeFunctionData(o.deadline?"execute(bytes,bytes[],uint256)":"execute(bytes,bytes[])",o.deadline?[n,a,o.deadline]:[n,a]),value:r.toHexString()}},e}();_e.INTERFACE=new s.Interface(i.abi);var he,Pe=function(){function e(e,t,r){this.tradeType=exports.RouterActionType.UnwrapWETH,this.wethAddress=ie(t),this.amount=e,r&&(r.details.token.toLowerCase()!==this.wethAddress.toLowerCase()&&a(!1),r.details.amount>=e||a(!1),this.permit2Data=r)}return e.prototype.encode=function(e,t){!function(e,t){t.permit2TransferFrom&&t.permit2Permit&&t.permit2TransferFrom.token!==t.permit2Permit.details.token&&a(!1),t.permit2Permit&&xe(e,t.permit2Permit),t.permit2TransferFrom&&e.addCommand(exports.CommandType.PERMIT2_TRANSFER_FROM,[t.permit2TransferFrom.token,t.permit2TransferFrom.recipient?t.permit2TransferFrom.recipient:ue,t.permit2TransferFrom.amount])}(e,{permit2Permit:this.permit2Data,permit2TransferFrom:{token:this.wethAddress,amount:this.amount.toString()}}),e.addCommand(exports.CommandType.UNWRAP_WETH,[ue,this.amount])},e}();(he=exports.PoolType||(exports.PoolType={})).V2Pool="v2-pool",he.V3Pool="v3-pool",he.V4Pool="v4-pool";var Re=function(e){return e.toLowerCase()===pe.toLowerCase()||e.toLowerCase()==="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee".toLowerCase()},ve=function(){function e(){}return e.fromClassicQuote=function(t){var r=t.route,o=t.tokenIn,n=t.tokenOut;if(!r)throw new Error("Expected route to be present");if(!r.length)throw new Error("Expected there to be at least one route");if(r.some((function(e){return!e.length})))throw new Error("Expected all routes to have at least one pool");var a=r[0],i=a[0].tokenIn,s=a[a.length-1].tokenOut;if(!i||!s)throw new Error("Expected both tokenIn and tokenOut to be present");if(i.chainId!==s.chainId)throw new Error("Expected tokenIn and tokenOut to be have same chainId");var p=e.toCurrency(Re(o),i),c=e.toCurrency(Re(n),s),T=r.map((function(t){var r=t[0].amountIn,o=t[t.length-1].amountOut;if(!r||!o)throw new Error("Expected both raw amountIn and raw amountOut to be present");var n=m.CurrencyAmount.fromRawAmount(p,r),a=m.CurrencyAmount.fromRawAmount(c,o),i=e.isVersionedRoute(exports.PoolType.V2Pool,t),s=e.isVersionedRoute(exports.PoolType.V3Pool,t),T=e.isVersionedRoute(exports.PoolType.V4Pool,t);return{routev4:T?new u.Route(t.map(e.toV4Pool),p,c):null,routev3:s?new d.Route(t.map(e.toV3Pool),p,c):null,routev2:i?new A.Route(t.map(e.toPair),p,c):null,mixedRoute:T||s||i?null:new l.MixedRouteSDK(t.map(e.toPoolOrPair),p,c),inputAmount:n,outputAmount:a}}));return new l.Trade({v2Routes:T.filter((function(e){return e.routev2})).map((function(e){return{routev2:e.routev2,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),v3Routes:T.filter((function(e){return e.routev3})).map((function(e){return{routev3:e.routev3,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),v4Routes:T.filter((function(e){return e.routev4})).map((function(e){return{routev4:e.routev4,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),mixedRoutes:T.filter((function(e){return e.mixedRoute})).map((function(e){return{mixedRoute:e.mixedRoute,inputAmount:e.inputAmount,outputAmount:e.outputAmount}})),tradeType:t.tradeType})},e.toCurrency=function(e,t){return e?m.Ether.onChain(t.chainId):this.toToken(t)},e.toToken=function(e){var t=e.symbol,r=e.buyFeeBps,o=e.sellFeeBps;return new m.Token(e.chainId,e.address,parseInt(e.decimals.toString()),t,void 0,!1,r?p.BigNumber.from(r):void 0,o?p.BigNumber.from(o):void 0)},e.toV3Pool=function(t){var r=t.fee,o=t.sqrtRatioX96,n=t.liquidity,a=t.tickCurrent,i=t.tokenOut;return new d.Pool(e.toToken(t.tokenIn),e.toToken(i),parseInt(r),o,n,parseInt(a))},e.toV4Pool=function(t){var r=e.toCurrency(Re(t.tokenIn.address),t.tokenIn),o=e.toCurrency(Re(t.tokenOut.address),t.tokenOut);return new u.Pool(r,o,parseInt(t.fee),parseInt(t.tickSpacing),t.hooks,t.sqrtRatioX96,t.liquidity,parseInt(t.tickCurrent))},e.isVersionedRoute=function(e,t){return t.every((function(t){return t.type===e}))},e}();ve.toPoolOrPair=function(e){switch(e.type){case exports.PoolType.V4Pool:return ve.toV4Pool(e);case exports.PoolType.V3Pool:return ve.toV3Pool(e);case exports.PoolType.V2Pool:return ve.toPair(e);default:throw new Error("Invalid pool type")}},ve.toPair=function(e){var t=e.reserve0,r=e.reserve1;return new A.Pair(m.CurrencyAmount.fromRawAmount(ve.toToken(t.token),t.quotient),m.CurrencyAmount.fromRawAmount(ve.toToken(r.token),r.quotient))};var we=function(){function e(){}return e.parseCalldata=function(t){var r=new Ie(ee),o=e.INTERFACE.parseTransaction({data:t}).args;return r.parse(o.commands,o.inputs)},e}();we.INTERFACE=new s.Interface(i.abi);var Ie=function(){function e(e){this.commandDefinition=e}return e.prototype.parse=function(t,r){var o=this;return{commands:e.getCommands(t).map((function(e,t){var n,a=o.commandDefinition[e];if(a.parser===exports.Parser.V4Actions){var i=u.V4BaseActionsParser.parseCalldata(r[t]);return{commandName:exports.CommandType[e],commandType:e,params:(n=i.actions,n.map((function(e){return{name:e.actionName,value:e.params.map((function(e){return{name:e.name,value:e.value}}))}})))}}if(a.parser===exports.Parser.Abi){var s=a.params,d=p.ethers.utils.defaultAbiCoder.decode(s.map((function(e){return e.type})),r[t]).map((function(e,t){switch(s[t].subparser){case exports.Subparser.V3PathExactIn:return{name:s[t].name,value:be(e)};case exports.Subparser.V3PathExactOut:return{name:s[t].name,value:ge(e)};default:return{name:s[t].name,value:e}}}));return{commandName:exports.CommandType[e],commandType:e,params:d}}if(a.parser===exports.Parser.V3Actions)return{commandName:exports.CommandType[e],commandType:e,params:r.map((function(e){return{name:"command",value:e}}))};throw new Error("Unsupported parser: "+a)}))}},e.getCommands=function(e){for(var t=[],r=2;r<e.length;r+=2){var o=e.substring(r,r+2);t.push(parseInt(o,16))}return t},e}();function be(e){for(var t=e.replace("0x",""),r=p.ethers.utils.getAddress(t.substring(0,40)),o=40,n=[];o<t.length;){var a=t.substring(o,o+46),i=parseInt(a.substring(0,6),16),s=p.ethers.utils.getAddress(a.substring(6,46));n.push({tokenIn:r,tokenOut:s,fee:i}),r=s,o+=46}return n}function ge(e){for(var t=e.replace("0x",""),r=p.ethers.utils.getAddress(t.substring(t.length-40)),o=t.length-86,n=[];o>=0;){var a=t.substring(o,o+46),i=p.ethers.utils.getAddress(a.substring(0,40)),s=parseInt(a.substring(40,46),16);n.push({tokenIn:r,tokenOut:i,fee:s}),r=i,o-=46}return n}exports.COMMAND_DEFINITION=ee,exports.CommandParser=we,exports.FEW_WRAPPED_NATIVE_CURRENCY=ce,exports.GenericCommandParser=Ie,exports.ROUTER_AS_RECIPIENT=ue,exports.RoutePlanner=te,exports.RouterTradeAdapter=ve,exports.SwapRouter=_e,exports.UNIVERSAL_ROUTER_ADDRESS=ae,exports.UNIVERSAL_ROUTER_CREATION_BLOCK=function(e,t){if(!(t in ne))throw new Error("Universal Router not deployed on chain "+t);return ne[t].routerConfigs[e].creationBlock},exports.UniswapTrade=Ae,exports.UnwrapWETH=Pe,exports.WETH_ADDRESS=ie,exports.isNativeCurrency=Re;
2
2
  //# sourceMappingURL=universal-router-sdk.cjs.production.min.js.map