@swapkit/toolboxes 4.22.0 → 4.23.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # @swapkit/toolboxes
2
2
 
3
+ ## 4.23.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#317](https://github.com/swapkit/sdk/pull/317) [`41978a5`](https://github.com/swapkit/sdk/commit/41978a5601851ff5a72cb2a59495294dd04059a2) Thanks [@towanTG](https://github.com/towanTG)! - Replace dead THORChain default endpoints (thorchain.network, Nine Realms) with the official Liquify public gateway (gateway.liquify.com) for THORNode API, Tendermint RPC and Midgard (via @swapkit/helpers@4.16.2)
8
+
9
+ ## 4.23.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [#315](https://github.com/swapkit/sdk/pull/315) [`b42ef37`](https://github.com/swapkit/sdk/commit/b42ef37d2510ffa6ffaf5f9e36ad13fa4881bbf7) Thanks [@towanTG](https://github.com/towanTG)! - Rename Robinhood Chain string identifier from RBH to HOOD. `Chain.Robinhood` now equals `"HOOD"`, the gas asset identifier is `HOOD.ETH`, and the EVM toolbox export is `HOODToolbox` (previously `RBHToolbox`). Chain ID (4663) and all other chain config values are unchanged. Anyone consuming the short-lived `"RBH"` string or `RBHToolbox` export from 4.16.0 must switch to `"HOOD"` / `HOODToolbox`.
14
+
15
+ ### Patch Changes
16
+
17
+ - Updated dependencies []:
18
+ - @swapkit/helpers@4.16.1
19
+
3
20
  ## 4.22.0
4
21
 
5
22
  ### Minor Changes
@@ -1,2 +1,2 @@
1
- import{ea as Wt}from"./chunk-jdh5asaw.js";import{fa as g}from"./chunk-fjyc6m34.js";import{Chain as w}from"@swapkit/helpers";import{match as Cy}from"ts-pattern";import{Chain as q,getChainConfig as P,getRPCUrl as rt,SKConfig as ty,SwapKitError as K}from"@swapkit/helpers";import{FallbackProvider as yy,getAddress as Dt,Interface as uy,JsonRpcProvider as s,Network as ny}from"ethers";import{match as Lt}from"ts-pattern";function Ty(t){return new s(t)}async function vy(t,y){return Ty(y||await rt(t))}function Rt(t){let y=ty.get("rpcUrls")[t]?.filter(Boolean)??[];if(y.length===0)throw new K("helpers_chain_no_public_or_set_rpc_url",{chain:t});let{chainId:u}=P(t),n=ny.from(Number(u)),[T]=y;if(y.length===1)return new s(T,n,{staticNetwork:n});return new yy(y.map((l,b)=>({priority:b+1,provider:new s(l,n,{staticNetwork:n}),stallTimeout:2000})),n,{quorum:1})}function N(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function qt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=P(t);return function(){return t!==q.Ethereum?{...ly({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function Gt(t){return![q.Adi,q.Arbitrum,q.BinanceSmartChain,q.Robinhood].includes(t)}function ly({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=P(t);return Lt(t).with(q.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(q.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(q.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(q.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(q.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(q.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:q.Polygon}})).with(q.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function Bt(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}var Mt=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),by=(t)=>{try{return typeof t==="string"&&!!Dt(t)}catch{return!1}};function My(t,y){let u=y!==void 0?`index ${y}: `:"",n=(T,l)=>{throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${u}${l}`}})};Lt(t).when(({chainId:T})=>typeof T!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:T})=>!by(T),()=>n("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>n("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!Mt(T?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!Mt(T?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Dy(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function e(t){return t.charAt(0).toUpperCase()+t.slice(1)}function i(t,y){if(t.isTuple()&&t.components){let u=e(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:i(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=e(t.name.replace(/s$/,""));return y[n]=u.components.map((T)=>({name:T.name,type:i(T,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function a(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[T,l]of(y.components??[]).entries())n[l.name]=a(u[l.name]??t[T],l);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>a(n,u??void 0))}return t}function hy({chain:t,abi:y,data:u,to:n}){let l=new uy(y).parseTransaction({data:u});if(!l)throw new K({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=e(l.name);b[M]=l.fragment.inputs.map((D)=>({name:D.name,type:i(D,b)}));let R={};for(let[D,Q]of l.fragment.inputs.entries())R[Q.name]=a(l.args[D],Q);let{chainId:B}=P(t),G={chainId:Number(B),verifyingContract:Dt(n)},X=Dy(G);return{domain:G,message:R,primaryType:M,types:{EIP712Domain:X,...b}}}function wt(t,y){if(!Array.isArray(t)||t.length===0)throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(My(n,u),y!==void 0&&n.chainId!==y)throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}import{Chain as W,FeeOption as Ny}from"@swapkit/helpers";import{HDNodeWallet as Vy}from"ethers";import{match as Sy,P as Jt}from"ts-pattern";var Ht=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}];import{AssetValue as Ly,applyFeeMultiplierToBigInt as $,Chain as k,EVMChains as Ry,FeeOption as L,isGasAsset as qy,SwapKitError as H,SwapKitNumber as m}from"@swapkit/helpers";import{erc20ABI as x}from"@swapkit/helpers/contracts";import{BrowserProvider as Gy,Contract as Ut,getAddress as p,Interface as Qt}from"ethers";import{match as Xt}from"ts-pattern";function C(t){return{getBalance:Wt(t)}}function iy(t){return t}var tt=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function c({chain:t=k.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:Zy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Yt({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:ut({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:_y({chain:t,provider:y,signer:u}),createContract:wy({chain:t,provider:y}),createContractTxObject:F({chain:t,provider:y}),createTransaction:r({chain:t,provider:y,signer:u}),createTransferTx:r({chain:t,provider:y,signer:u}),EIP1193SendTransaction:h(y),estimateCall:Zt({provider:y,signer:u}),estimateGasLimit:zy({chain:t,provider:y,signer:u}),estimateGasPrices:A({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:jy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:C(t).getBalance,getNetworkParams:qt(t),isApproved:Yy({chain:t,provider:y}),sendTransaction:zt({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:Jy({signer:u}),signMessage:u?(T)=>u.signMessage(T):void 0,signTypedData:u?({domain:T,types:l,value:b})=>u.signTypedData(T,l,b):void 0,transfer:$y({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:By}}function By(t){try{return p(t),!0}catch{return!1}}function v(t){return t instanceof Gy}function yt(t,y,u){return new Ut(t,Qt.from(y),u)}function wy({provider:t}){return function(u,n){return new Ut(u,Qt.from(n),t)}}var Hy=["payable","nonpayable"];function Wy({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new H("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Hy.includes(u.stateMutability)}function lu(t){return p(t)}function h(t){return function({value:u,...n}){if(!v(t))throw new H("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:l,maxFeePerGas:b,maxPriorityFeePerGas:M,...R}=n;return t.send("eth_sendTransaction",[{...R,value:N(BigInt(u||0))}])}}function bu(t,y){let u=d(t,y);if(u)return p(u.toLowerCase());throw new H("toolbox_evm_invalid_gas_asset_address")}var Uy=Ry.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Qy={...Uy,[k.Optimism]:"0x4200000000000000000000000000000000000042",[k.Polygon]:"0x0000000000000000000000000000000000001010"},Xy=[k.Arbitrum,k.Aurora,k.Base,k.Optimism,k.Robinhood];function d({chain:t,symbol:y,ticker:u},n){try{let T=t===k.BinanceSmartChain&&y==="BNB"&&u==="BNB",l=t===k.Hyperevm&&y==="HYPE"&&u==="HYPE",b=t===n&&y===n&&u===n,M=Xy.includes(t)&&y==="ETH"&&u==="ETH";if(b||T||l||M)return Qy[n];return p(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function F({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:T=[],txOverrides:l})=>{let b=await yt(y,u,t).getFunction(n).populateTransaction(...T.concat(l).filter((M)=>typeof M<"u"));return{...b,value:N(BigInt(b.value||0))}}}function A({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Xt(t).with(k.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:l}=await y.getFeeData();if(!T||l===null)throw new H("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:$(T,L.Average),maxPriorityFeePerGas:$(l,L.Average)},[L.Fast]:{maxFeePerGas:$(T,L.Fast),maxPriorityFeePerGas:$(l,L.Fast)},[L.Fastest]:{maxFeePerGas:$(T,L.Fastest),maxPriorityFeePerGas:$(l,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(k.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await y.getFeeData();if(!T)throw new H("toolbox_evm_no_fee_data");let l=T*12n/10n;return{[L.Average]:{gasPrice:l},[L.Fast]:{gasPrice:$(l,L.Fast)},[L.Fastest]:{gasPrice:$(l,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:l,gasPrice:b}=await y.getFeeData();if(u){if(T===null||l===null)throw new H("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:l},[L.Fast]:{maxFeePerGas:$(T,L.Fast),maxPriorityFeePerGas:$(l,L.Fast)},[L.Fastest]:{maxFeePerGas:$(T,L.Fastest),maxPriorityFeePerGas:$(l,L.Fastest)}}}if(!b)throw new H("toolbox_evm_no_gas_price");return{[L.Average]:{gasPrice:b},[L.Fast]:{gasPrice:$(b,L.Fast)},[L.Fastest]:{gasPrice:$(b,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function ut({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:l,contractAddress:b,abi:M,funcName:R,funcParams:B=[],txOverrides:G={},feeOption:X=L.Fast}){let D=l||t;if(!b)throw new H("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=Wy({abi:M,funcName:R});if(Q&&v(D)&&u){let z=F({chain:n,provider:D}),_=G?.from||await u?.getAddress(),f=await z({abi:M,contractAddress:b,funcName:R,funcParams:B,txOverrides:{...G,from:_}});return h(D)(f)}let Y=yt(b,M,D);if(Q){if(!u)throw new H("toolbox_evm_no_signer");let z=G?.from||await u.getAddress();if(!z)throw new H("toolbox_evm_no_signer_address");let _=Y.connect(u),f=A({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:V,maxPriorityFeePerGas:E,gasPrice:o}=(await f())[X],O=await Y.getFunction(R).estimateGas(...B,G),J=await _[R](...B,{...G,gasLimit:O,gasPrice:o,maxFeePerGas:V,maxPriorityFeePerGas:E,nonce:G?.nonce||await D.getTransactionCount(z)});return typeof J?.hash==="string"?J?.hash:J}let Z=await Y[R]?.(...B);return typeof Z?.hash==="string"?Z?.hash:Z}}function Yt({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:T,from:l}){return ut({chain:y,isEIP1559Compatible:!0,provider:t})({abi:x,contractAddress:n,funcName:"allowance",funcParams:[l,T]})}}function Yy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:T,from:l,amount:b=tt}){let M=await Yt({chain:y,provider:t})({assetAddress:n,from:l,spenderAddress:T});return m.fromBigInt(M).gte(m.fromBigInt(BigInt(b)))}}function Zy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:l,spenderAddress:b,feeOptionKey:M=L.Fast,amount:R,gasLimitFallback:B,from:G,nonce:X}){let D=[b,BigInt(R||tt)],Q=await t?.getAddress()||G,Y={abi:x,contractAddress:l,funcName:"approve",funcParams:D,signer:t,txOverrides:{from:Q}};if(v(u)){let z=F({chain:n,provider:u}),_=h(u),f=await z(Y);return _(f)}return ut({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:M,funcParams:D,txOverrides:{from:Q,gasLimit:B?BigInt(B.toString()):void 0,nonce:X}})}}function $y({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:T,memo:l,recipient:b,feeOptionKey:M=L.Fast,sender:R,...B}){let{hexlify:G,toUtf8Bytes:X}=await import("ethers"),D=T.getBaseValue("bigint"),Q=T.chain,Y=R||await t?.getAddress(),Z=zt({chain:Q,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new H("toolbox_evm_no_from_address");if(T.isGasAsset){let o={...B,data:G(X(l||"")),feeOptionKey:M,from:Y,to:b,value:N(D)};return Z(o)}if(!d(T,Q))throw new H("toolbox_evm_no_contract_address");let{maxFeePerGas:_,maxPriorityFeePerGas:f,gasPrice:V}=(await A({chain:Q,isEIP1559Compatible:y,provider:u})())[M],E=await r({chain:Q,provider:u,signer:t})({assetValue:T,data:G(X(l||"")),gasPrice:V,maxFeePerGas:_,maxPriorityFeePerGas:f,memo:l,recipient:b,sender:Y});return Z(E)}}function Zt({provider:t,signer:y}){return function({contractAddress:n,abi:T,funcName:l,funcParams:b=[],txOverrides:M}){if(!n)throw new H("toolbox_evm_no_contract_address");let R=yt(n,T,t);return y?R.connect(y).getFunction(l).estimateGas(...b,M):R.getFunction(l).estimateGas(...b,M)}}function zy({provider:t,signer:y}){return async function({assetValue:n,recipient:T,memo:l,data:b,sender:M,funcName:R,funcParams:B,txOverrides:G}){let X=n.bigIntValue,D=n.isGasAsset?null:d(n,n.chain);if(D&&R)return Zt({provider:t,signer:y})({abi:x,contractAddress:D,funcName:R,funcParams:B,txOverrides:G});let{hexlify:Q,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:b?b:l?Q(Y(l)):void 0,from:M,to:T,value:X})}}function Jy({signer:t}){if(!t)return;return(y)=>Bt(t,y)}var $t=(t)=>t.type===4||(t.authorizations?.length??0)>0,fy=(t)=>!$t(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),ky=(t,y=!0)=>{if($t(t))return"eip7702";if(fy(t)||y)return"eip1559";return"legacy"};function zt({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:l=L.Fast,...b}){let{from:M,to:R,data:B,value:G,...X}=b;if(!y)throw new H("toolbox_evm_no_signer");if(!R)throw new H("toolbox_evm_no_to_address");let D={...X,data:B||"0x",from:M,to:R,value:BigInt(G||0)};if(v(t))return h(t)(D);let Q=M||await y.getAddress(),Y=b.nonce||await t.getTransactionCount(Q),Z=(await t.getNetwork()).chainId,z=ky(D,u);if(z==="eip7702")wt(D.authorizations||[],Z);let _=Xt(z).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),f={...D,chainId:Z,nonce:Y,type:_,...z==="eip7702"&&{authorizationList:D.authorizations}},V=A({chain:n,isEIP1559Compatible:u,provider:t}),o=z!=="legacy"&&!(D.maxFeePerGas&&D.maxPriorityFeePerGas)||!D.gasPrice?Object.entries((await V())[l]).reduce((J,[I,bt])=>({...J,[I]:N(BigInt(bt))}),{}):{},O;try{O=N(D.gasLimit?BigInt(D.gasLimit):await t.estimateGas(f)*11n/10n)}catch(J){throw new H("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...f,gasLimit:O,...o};try{return(await y.sendTransaction(J)).hash}catch{let I=await y.signTransaction({...J,from:Q});return(await t.broadcastTransaction(I)).hash}}catch(J){throw new H("toolbox_evm_error_sending_transaction",{error:J})}}}function r({provider:t,signer:y}){return async function({assetValue:n,memo:T,recipient:l,data:b,sender:M,maxFeePerGas:R,maxPriorityFeePerGas:B,gasPrice:G,...X}){let D=n.getBaseValue("bigint"),Q=n.chain,Y=M||await y?.getAddress();if(!Y)throw new H("toolbox_evm_no_from_address");if(qy(n)){let{hexlify:_,toUtf8Bytes:f}=await import("ethers");return{...X,data:b||_(f(T||"")),from:Y,to:l,value:N(D)}}let Z=d(n,Q);if(!Z)throw new H("toolbox_evm_no_contract_address");return F({chain:n.chain,provider:t})({abi:x,contractAddress:Z,funcName:"transfer",funcParams:[l,D],txOverrides:{from:Y,gasPrice:G,maxFeePerGas:R,maxPriorityFeePerGas:B}})}}function _y({provider:t,signer:y,chain:u}){return async function({assetAddress:T,spenderAddress:l,amount:b,from:M}){let R=await y?.getAddress()||M,B=F({chain:u,provider:t}),G=["bigint","number"].includes(typeof b)?b:b||tt;return await B({abi:x,contractAddress:T,funcName:"approve",funcParams:[l,BigInt(G)],txOverrides:{from:R}})}}function jy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:T=L.Fast,...l}){let M=await A({chain:u,isEIP1559Compatible:y,provider:t})(),R=await t.estimateGas(l),B=Ly.from({chain:u}),{gasPrice:G,maxFeePerGas:X,maxPriorityFeePerGas:D}=M[T];if(!y&&G)return B.set(m.fromBigInt(G*R,B.decimal));if(X&&D){let Q=(X+D)*R;return B.set(m.fromBigInt(Q,B.decimal))}throw new H("toolbox_evm_no_gas_price")}}function ft(t){let y=U(W.Ethereum)(t);async function u(n,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",b=Ny.Fast){let M=await y.createContractTxObject({abi:Ht,contractAddress:T,funcName:l,funcParams:[n]});return y.sendTransaction({...M,feeOptionKey:b})}return{...y,multicall:u}}var kt=U(W.Adi),_t=U(W.Arbitrum),jt=U(W.Aurora),Nt=U(W.Avalanche),Vt=U(W.Base),St=U(W.Berachain),ot=U(W.BinanceSmartChain),wu=U(W.Botanix),Kt=U(W.Core),xt=U(W.Corn),Ft=U(W.Cronos),At=U(W.Gnosis),Et=U(W.Hyperevm),Ot=U(W.Linea),It=U(W.Polygon),Pt=U(W.MegaETH),Ct=U(W.Monad),mt=U(W.Plasma),gt=U(W.Robinhood),nt=U(W.Sonic),pt=U(W.Unichain),ct=U(W.XLayer);function U(t){return function({provider:u,...n}){let T=Gt(t),l=Sy(n).with({phrase:Jt.string},({phrase:M})=>Vy.fromPhrase(M).connect(u)).with({signer:Jt.any},({signer:M})=>M).otherwise(()=>{return});return c({chain:t,isEIP1559Compatible:T,provider:u,signer:l})}}import{applyFeeMultiplierToBigInt as S,Chain as Ky,FeeOption as j,SwapKitError as Tt}from"@swapkit/helpers";import{Contract as xy,HDNodeWallet as Fy}from"ethers";import{match as Ay,P as ht}from"ts-pattern";var vt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ey="0x420000000000000000000000000000000000000f";function lt(t){return new xy(Ey,vt,t)}function dt(t){return async function(){let u=lt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function st(t){return async function({from:u,to:n,nonce:T,...l}){let{Transaction:b}=await import("ethers");if(!n)throw new Tt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...l,authorizationList:l.authorizationList,nonce:T?T:u?await t.getTransactionCount(u):0,to:n}).serialized}}function et(t){return async function(u){let n=lt(t),T=await st(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(T)}}function it(t){return async function(u){let T=(await t.getFeeData()).gasPrice??0n,l=await t.estimateGas(u);return T*l}}function Oy(t){return async function(u){let n=await et(t)(u)??0n,T=await it(t)(u);return n+T}}function Iy(t){return async function(u){let n=lt(t),T=await st(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(T)}}function Py(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:T}=await t.getFeeData(),l=await dt(t)(),b=T;if(!(u&&n))throw new Tt("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:b,l1GasPrice:l,maxFeePerGas:u,maxPriorityFeePerGas:n},[j.Fast]:{gasPrice:S(b,j.Fast),l1GasPrice:S(l||0n,j.Fast),maxFeePerGas:u,maxPriorityFeePerGas:S(n,j.Fast)},[j.Fastest]:{gasPrice:S(b,j.Fastest),l1GasPrice:S(l||0n,j.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:S(n,j.Fastest)}}}catch(u){throw new Tt("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function at({provider:t,...y}){let u=Ay(y).with({phrase:ht.string},({phrase:l})=>Fy.fromPhrase(l).connect(t)).with({signer:ht.any},({signer:l})=>l).otherwise(()=>{return}),n=c({provider:t,signer:u}),T=dt(t);return{...n,estimateGasPrices:Py(t),estimateL1Gas:Iy(t),estimateL1GasCost:et(t),estimateL2GasCost:it(t),estimateTotalGasCost:Oy(t),getBalance:C(Ky.Optimism).getBalance,getL1GasPrice:T}}function my(t,y){return Cy(t).with(w.Adi,()=>kt(y)).with(w.Arbitrum,()=>_t(y)).with(w.Aurora,()=>jt(y)).with(w.Avalanche,()=>Nt(y)).with(w.Base,()=>Vt(y)).with(w.Berachain,()=>St(y)).with(w.BinanceSmartChain,()=>ot(y)).with(w.Botanix,()=>nt(y)).with(w.Core,()=>Kt(y)).with(w.Corn,()=>xt(y)).with(w.Cronos,()=>Ft(y)).with(w.Ethereum,()=>ft(y)).with(w.Gnosis,()=>At(y)).with(w.Hyperevm,()=>Et(y)).with(w.Linea,()=>Ot(y)).with(w.MegaETH,()=>Pt(y)).with(w.Monad,()=>Ct(y)).with(w.Optimism,()=>at(y)).with(w.Plasma,()=>mt(y)).with(w.Polygon,()=>It(y)).with(w.Robinhood,()=>gt(y)).with(w.Sonic,()=>nt(y)).with(w.Unichain,()=>pt(y)).with(w.XLayer,()=>ct(y)).exhaustive()}async function _u(t,y){let u={...y,provider:y?.provider||Rt(t)};return my(t,u)}
1
+ import{ea as Wt}from"./chunk-jdh5asaw.js";import{fa as g}from"./chunk-fjyc6m34.js";import{Chain as w}from"@swapkit/helpers";import{match as Cy}from"ts-pattern";import{Chain as q,getChainConfig as P,getRPCUrl as rt,SKConfig as ty,SwapKitError as K}from"@swapkit/helpers";import{FallbackProvider as yy,getAddress as Dt,Interface as uy,JsonRpcProvider as s,Network as ny}from"ethers";import{match as Lt}from"ts-pattern";function Ty(t){return new s(t)}async function vy(t,y){return Ty(y||await rt(t))}function Rt(t){let y=ty.get("rpcUrls")[t]?.filter(Boolean)??[];if(y.length===0)throw new K("helpers_chain_no_public_or_set_rpc_url",{chain:t});let{chainId:u}=P(t),n=ny.from(Number(u)),[T]=y;if(y.length===1)return new s(T,n,{staticNetwork:n});return new yy(y.map((l,b)=>({priority:b+1,provider:new s(l,n,{staticNetwork:n}),stallTimeout:2000})),n,{quorum:1})}function N(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function qt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=P(t);return function(){return t!==q.Ethereum?{...ly({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function Gt(t){return![q.Adi,q.Arbitrum,q.BinanceSmartChain,q.Robinhood].includes(t)}function ly({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=P(t);return Lt(t).with(q.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(q.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(q.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(q.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(q.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(q.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).with(q.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:q.Polygon}})).with(q.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:n,name:"Ethereum",symbol:q.Ethereum}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function Bt(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}var Mt=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),by=(t)=>{try{return typeof t==="string"&&!!Dt(t)}catch{return!1}};function My(t,y){let u=y!==void 0?`index ${y}: `:"",n=(T,l)=>{throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${u}${l}`}})};Lt(t).when(({chainId:T})=>typeof T!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:T})=>!by(T),()=>n("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>n("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!Mt(T?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!Mt(T?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Dy(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function e(t){return t.charAt(0).toUpperCase()+t.slice(1)}function i(t,y){if(t.isTuple()&&t.components){let u=e(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:i(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=e(t.name.replace(/s$/,""));return y[n]=u.components.map((T)=>({name:T.name,type:i(T,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function a(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[T,l]of(y.components??[]).entries())n[l.name]=a(u[l.name]??t[T],l);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>a(n,u??void 0))}return t}function hy({chain:t,abi:y,data:u,to:n}){let l=new uy(y).parseTransaction({data:u});if(!l)throw new K({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=e(l.name);b[M]=l.fragment.inputs.map((D)=>({name:D.name,type:i(D,b)}));let R={};for(let[D,Q]of l.fragment.inputs.entries())R[Q.name]=a(l.args[D],Q);let{chainId:B}=P(t),G={chainId:Number(B),verifyingContract:Dt(n)},X=Dy(G);return{domain:G,message:R,primaryType:M,types:{EIP712Domain:X,...b}}}function wt(t,y){if(!Array.isArray(t)||t.length===0)throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(My(n,u),y!==void 0&&n.chainId!==y)throw new K({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}import{Chain as W,FeeOption as Ny}from"@swapkit/helpers";import{HDNodeWallet as Vy}from"ethers";import{match as Sy,P as Jt}from"ts-pattern";var Ht=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}];import{AssetValue as Ly,applyFeeMultiplierToBigInt as $,Chain as k,EVMChains as Ry,FeeOption as L,isGasAsset as qy,SwapKitError as H,SwapKitNumber as m}from"@swapkit/helpers";import{erc20ABI as x}from"@swapkit/helpers/contracts";import{BrowserProvider as Gy,Contract as Ut,getAddress as p,Interface as Qt}from"ethers";import{match as Xt}from"ts-pattern";function C(t){return{getBalance:Wt(t)}}function iy(t){return t}var tt=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function c({chain:t=k.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:Zy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Yt({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:ut({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:_y({chain:t,provider:y,signer:u}),createContract:wy({chain:t,provider:y}),createContractTxObject:F({chain:t,provider:y}),createTransaction:r({chain:t,provider:y,signer:u}),createTransferTx:r({chain:t,provider:y,signer:u}),EIP1193SendTransaction:h(y),estimateCall:Zt({provider:y,signer:u}),estimateGasLimit:zy({chain:t,provider:y,signer:u}),estimateGasPrices:A({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:jy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:C(t).getBalance,getNetworkParams:qt(t),isApproved:Yy({chain:t,provider:y}),sendTransaction:zt({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:Jy({signer:u}),signMessage:u?(T)=>u.signMessage(T):void 0,signTypedData:u?({domain:T,types:l,value:b})=>u.signTypedData(T,l,b):void 0,transfer:$y({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:By}}function By(t){try{return p(t),!0}catch{return!1}}function v(t){return t instanceof Gy}function yt(t,y,u){return new Ut(t,Qt.from(y),u)}function wy({provider:t}){return function(u,n){return new Ut(u,Qt.from(n),t)}}var Hy=["payable","nonpayable"];function Wy({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new H("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Hy.includes(u.stateMutability)}function lu(t){return p(t)}function h(t){return function({value:u,...n}){if(!v(t))throw new H("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:l,maxFeePerGas:b,maxPriorityFeePerGas:M,...R}=n;return t.send("eth_sendTransaction",[{...R,value:N(BigInt(u||0))}])}}function bu(t,y){let u=d(t,y);if(u)return p(u.toLowerCase());throw new H("toolbox_evm_invalid_gas_asset_address")}var Uy=Ry.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Qy={...Uy,[k.Optimism]:"0x4200000000000000000000000000000000000042",[k.Polygon]:"0x0000000000000000000000000000000000001010"},Xy=[k.Arbitrum,k.Aurora,k.Base,k.Optimism,k.Robinhood];function d({chain:t,symbol:y,ticker:u},n){try{let T=t===k.BinanceSmartChain&&y==="BNB"&&u==="BNB",l=t===k.Hyperevm&&y==="HYPE"&&u==="HYPE",b=t===n&&y===n&&u===n,M=Xy.includes(t)&&y==="ETH"&&u==="ETH";if(b||T||l||M)return Qy[n];return p(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function F({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:T=[],txOverrides:l})=>{let b=await yt(y,u,t).getFunction(n).populateTransaction(...T.concat(l).filter((M)=>typeof M<"u"));return{...b,value:N(BigInt(b.value||0))}}}function A({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Xt(t).with(k.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:l}=await y.getFeeData();if(!T||l===null)throw new H("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:$(T,L.Average),maxPriorityFeePerGas:$(l,L.Average)},[L.Fast]:{maxFeePerGas:$(T,L.Fast),maxPriorityFeePerGas:$(l,L.Fast)},[L.Fastest]:{maxFeePerGas:$(T,L.Fastest),maxPriorityFeePerGas:$(l,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(k.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await y.getFeeData();if(!T)throw new H("toolbox_evm_no_fee_data");let l=T*12n/10n;return{[L.Average]:{gasPrice:l},[L.Fast]:{gasPrice:$(l,L.Fast)},[L.Fastest]:{gasPrice:$(l,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:l,gasPrice:b}=await y.getFeeData();if(u){if(T===null||l===null)throw new H("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:l},[L.Fast]:{maxFeePerGas:$(T,L.Fast),maxPriorityFeePerGas:$(l,L.Fast)},[L.Fastest]:{maxFeePerGas:$(T,L.Fastest),maxPriorityFeePerGas:$(l,L.Fastest)}}}if(!b)throw new H("toolbox_evm_no_gas_price");return{[L.Average]:{gasPrice:b},[L.Fast]:{gasPrice:$(b,L.Fast)},[L.Fastest]:{gasPrice:$(b,L.Fastest)}}}catch(T){throw new H("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function ut({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:l,contractAddress:b,abi:M,funcName:R,funcParams:B=[],txOverrides:G={},feeOption:X=L.Fast}){let D=l||t;if(!b)throw new H("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=Wy({abi:M,funcName:R});if(Q&&v(D)&&u){let z=F({chain:n,provider:D}),_=G?.from||await u?.getAddress(),f=await z({abi:M,contractAddress:b,funcName:R,funcParams:B,txOverrides:{...G,from:_}});return h(D)(f)}let Y=yt(b,M,D);if(Q){if(!u)throw new H("toolbox_evm_no_signer");let z=G?.from||await u.getAddress();if(!z)throw new H("toolbox_evm_no_signer_address");let _=Y.connect(u),f=A({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:V,maxPriorityFeePerGas:E,gasPrice:o}=(await f())[X],O=await Y.getFunction(R).estimateGas(...B,G),J=await _[R](...B,{...G,gasLimit:O,gasPrice:o,maxFeePerGas:V,maxPriorityFeePerGas:E,nonce:G?.nonce||await D.getTransactionCount(z)});return typeof J?.hash==="string"?J?.hash:J}let Z=await Y[R]?.(...B);return typeof Z?.hash==="string"?Z?.hash:Z}}function Yt({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:T,from:l}){return ut({chain:y,isEIP1559Compatible:!0,provider:t})({abi:x,contractAddress:n,funcName:"allowance",funcParams:[l,T]})}}function Yy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:T,from:l,amount:b=tt}){let M=await Yt({chain:y,provider:t})({assetAddress:n,from:l,spenderAddress:T});return m.fromBigInt(M).gte(m.fromBigInt(BigInt(b)))}}function Zy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:l,spenderAddress:b,feeOptionKey:M=L.Fast,amount:R,gasLimitFallback:B,from:G,nonce:X}){let D=[b,BigInt(R||tt)],Q=await t?.getAddress()||G,Y={abi:x,contractAddress:l,funcName:"approve",funcParams:D,signer:t,txOverrides:{from:Q}};if(v(u)){let z=F({chain:n,provider:u}),_=h(u),f=await z(Y);return _(f)}return ut({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:M,funcParams:D,txOverrides:{from:Q,gasLimit:B?BigInt(B.toString()):void 0,nonce:X}})}}function $y({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:T,memo:l,recipient:b,feeOptionKey:M=L.Fast,sender:R,...B}){let{hexlify:G,toUtf8Bytes:X}=await import("ethers"),D=T.getBaseValue("bigint"),Q=T.chain,Y=R||await t?.getAddress(),Z=zt({chain:Q,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new H("toolbox_evm_no_from_address");if(T.isGasAsset){let o={...B,data:G(X(l||"")),feeOptionKey:M,from:Y,to:b,value:N(D)};return Z(o)}if(!d(T,Q))throw new H("toolbox_evm_no_contract_address");let{maxFeePerGas:_,maxPriorityFeePerGas:f,gasPrice:V}=(await A({chain:Q,isEIP1559Compatible:y,provider:u})())[M],E=await r({chain:Q,provider:u,signer:t})({assetValue:T,data:G(X(l||"")),gasPrice:V,maxFeePerGas:_,maxPriorityFeePerGas:f,memo:l,recipient:b,sender:Y});return Z(E)}}function Zt({provider:t,signer:y}){return function({contractAddress:n,abi:T,funcName:l,funcParams:b=[],txOverrides:M}){if(!n)throw new H("toolbox_evm_no_contract_address");let R=yt(n,T,t);return y?R.connect(y).getFunction(l).estimateGas(...b,M):R.getFunction(l).estimateGas(...b,M)}}function zy({provider:t,signer:y}){return async function({assetValue:n,recipient:T,memo:l,data:b,sender:M,funcName:R,funcParams:B,txOverrides:G}){let X=n.bigIntValue,D=n.isGasAsset?null:d(n,n.chain);if(D&&R)return Zt({provider:t,signer:y})({abi:x,contractAddress:D,funcName:R,funcParams:B,txOverrides:G});let{hexlify:Q,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:b?b:l?Q(Y(l)):void 0,from:M,to:T,value:X})}}function Jy({signer:t}){if(!t)return;return(y)=>Bt(t,y)}var $t=(t)=>t.type===4||(t.authorizations?.length??0)>0,fy=(t)=>!$t(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),ky=(t,y=!0)=>{if($t(t))return"eip7702";if(fy(t)||y)return"eip1559";return"legacy"};function zt({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:l=L.Fast,...b}){let{from:M,to:R,data:B,value:G,...X}=b;if(!y)throw new H("toolbox_evm_no_signer");if(!R)throw new H("toolbox_evm_no_to_address");let D={...X,data:B||"0x",from:M,to:R,value:BigInt(G||0)};if(v(t))return h(t)(D);let Q=M||await y.getAddress(),Y=b.nonce||await t.getTransactionCount(Q),Z=(await t.getNetwork()).chainId,z=ky(D,u);if(z==="eip7702")wt(D.authorizations||[],Z);let _=Xt(z).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),f={...D,chainId:Z,nonce:Y,type:_,...z==="eip7702"&&{authorizationList:D.authorizations}},V=A({chain:n,isEIP1559Compatible:u,provider:t}),o=z!=="legacy"&&!(D.maxFeePerGas&&D.maxPriorityFeePerGas)||!D.gasPrice?Object.entries((await V())[l]).reduce((J,[I,bt])=>({...J,[I]:N(BigInt(bt))}),{}):{},O;try{O=N(D.gasLimit?BigInt(D.gasLimit):await t.estimateGas(f)*11n/10n)}catch(J){throw new H("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...f,gasLimit:O,...o};try{return(await y.sendTransaction(J)).hash}catch{let I=await y.signTransaction({...J,from:Q});return(await t.broadcastTransaction(I)).hash}}catch(J){throw new H("toolbox_evm_error_sending_transaction",{error:J})}}}function r({provider:t,signer:y}){return async function({assetValue:n,memo:T,recipient:l,data:b,sender:M,maxFeePerGas:R,maxPriorityFeePerGas:B,gasPrice:G,...X}){let D=n.getBaseValue("bigint"),Q=n.chain,Y=M||await y?.getAddress();if(!Y)throw new H("toolbox_evm_no_from_address");if(qy(n)){let{hexlify:_,toUtf8Bytes:f}=await import("ethers");return{...X,data:b||_(f(T||"")),from:Y,to:l,value:N(D)}}let Z=d(n,Q);if(!Z)throw new H("toolbox_evm_no_contract_address");return F({chain:n.chain,provider:t})({abi:x,contractAddress:Z,funcName:"transfer",funcParams:[l,D],txOverrides:{from:Y,gasPrice:G,maxFeePerGas:R,maxPriorityFeePerGas:B}})}}function _y({provider:t,signer:y,chain:u}){return async function({assetAddress:T,spenderAddress:l,amount:b,from:M}){let R=await y?.getAddress()||M,B=F({chain:u,provider:t}),G=["bigint","number"].includes(typeof b)?b:b||tt;return await B({abi:x,contractAddress:T,funcName:"approve",funcParams:[l,BigInt(G)],txOverrides:{from:R}})}}function jy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:T=L.Fast,...l}){let M=await A({chain:u,isEIP1559Compatible:y,provider:t})(),R=await t.estimateGas(l),B=Ly.from({chain:u}),{gasPrice:G,maxFeePerGas:X,maxPriorityFeePerGas:D}=M[T];if(!y&&G)return B.set(m.fromBigInt(G*R,B.decimal));if(X&&D){let Q=(X+D)*R;return B.set(m.fromBigInt(Q,B.decimal))}throw new H("toolbox_evm_no_gas_price")}}function ft(t){let y=U(W.Ethereum)(t);async function u(n,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",b=Ny.Fast){let M=await y.createContractTxObject({abi:Ht,contractAddress:T,funcName:l,funcParams:[n]});return y.sendTransaction({...M,feeOptionKey:b})}return{...y,multicall:u}}var kt=U(W.Adi),_t=U(W.Arbitrum),jt=U(W.Aurora),Nt=U(W.Avalanche),Vt=U(W.Base),St=U(W.Berachain),ot=U(W.BinanceSmartChain),wu=U(W.Botanix),Kt=U(W.Core),xt=U(W.Corn),Ft=U(W.Cronos),At=U(W.Gnosis),Et=U(W.Robinhood),Ot=U(W.Hyperevm),It=U(W.Linea),Pt=U(W.Polygon),Ct=U(W.MegaETH),mt=U(W.Monad),gt=U(W.Plasma),nt=U(W.Sonic),pt=U(W.Unichain),ct=U(W.XLayer);function U(t){return function({provider:u,...n}){let T=Gt(t),l=Sy(n).with({phrase:Jt.string},({phrase:M})=>Vy.fromPhrase(M).connect(u)).with({signer:Jt.any},({signer:M})=>M).otherwise(()=>{return});return c({chain:t,isEIP1559Compatible:T,provider:u,signer:l})}}import{applyFeeMultiplierToBigInt as S,Chain as Ky,FeeOption as j,SwapKitError as Tt}from"@swapkit/helpers";import{Contract as xy,HDNodeWallet as Fy}from"ethers";import{match as Ay,P as ht}from"ts-pattern";var vt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var Ey="0x420000000000000000000000000000000000000f";function lt(t){return new xy(Ey,vt,t)}function dt(t){return async function(){let u=lt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function st(t){return async function({from:u,to:n,nonce:T,...l}){let{Transaction:b}=await import("ethers");if(!n)throw new Tt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...l,authorizationList:l.authorizationList,nonce:T?T:u?await t.getTransactionCount(u):0,to:n}).serialized}}function et(t){return async function(u){let n=lt(t),T=await st(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(T)}}function it(t){return async function(u){let T=(await t.getFeeData()).gasPrice??0n,l=await t.estimateGas(u);return T*l}}function Oy(t){return async function(u){let n=await et(t)(u)??0n,T=await it(t)(u);return n+T}}function Iy(t){return async function(u){let n=lt(t),T=await st(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(T)}}function Py(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:T}=await t.getFeeData(),l=await dt(t)(),b=T;if(!(u&&n))throw new Tt("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:b,l1GasPrice:l,maxFeePerGas:u,maxPriorityFeePerGas:n},[j.Fast]:{gasPrice:S(b,j.Fast),l1GasPrice:S(l||0n,j.Fast),maxFeePerGas:u,maxPriorityFeePerGas:S(n,j.Fast)},[j.Fastest]:{gasPrice:S(b,j.Fastest),l1GasPrice:S(l||0n,j.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:S(n,j.Fastest)}}}catch(u){throw new Tt("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function at({provider:t,...y}){let u=Ay(y).with({phrase:ht.string},({phrase:l})=>Fy.fromPhrase(l).connect(t)).with({signer:ht.any},({signer:l})=>l).otherwise(()=>{return}),n=c({provider:t,signer:u}),T=dt(t);return{...n,estimateGasPrices:Py(t),estimateL1Gas:Iy(t),estimateL1GasCost:et(t),estimateL2GasCost:it(t),estimateTotalGasCost:Oy(t),getBalance:C(Ky.Optimism).getBalance,getL1GasPrice:T}}function my(t,y){return Cy(t).with(w.Adi,()=>kt(y)).with(w.Arbitrum,()=>_t(y)).with(w.Aurora,()=>jt(y)).with(w.Avalanche,()=>Nt(y)).with(w.Base,()=>Vt(y)).with(w.Berachain,()=>St(y)).with(w.BinanceSmartChain,()=>ot(y)).with(w.Botanix,()=>nt(y)).with(w.Core,()=>Kt(y)).with(w.Corn,()=>xt(y)).with(w.Cronos,()=>Ft(y)).with(w.Ethereum,()=>ft(y)).with(w.Gnosis,()=>At(y)).with(w.Hyperevm,()=>Ot(y)).with(w.Linea,()=>It(y)).with(w.MegaETH,()=>Ct(y)).with(w.Monad,()=>mt(y)).with(w.Optimism,()=>at(y)).with(w.Plasma,()=>gt(y)).with(w.Polygon,()=>Pt(y)).with(w.Robinhood,()=>Et(y)).with(w.Sonic,()=>nt(y)).with(w.Unichain,()=>pt(y)).with(w.XLayer,()=>ct(y)).exhaustive()}async function _u(t,y){let u={...y,provider:y?.provider||Rt(t)};return my(t,u)}
2
2
  export{C as b,iy as c,Ty as d,vy as e,Rt as f,N as g,qt as h,Gt as i,Bt as j,My as k,Dy as l,hy as m,wt as n,tt as o,c as p,By as q,v as r,yt as s,wy as t,Wy as u,lu as v,h as w,bu as x,Qy as y,d as z,F as A,A as B,$t as C,fy as D,ky as E,ft as F,kt as G,_t as H,jt as I,Nt as J,Vt as K,St as L,ot as M,wu as N,Kt as O,xt as P,Ft as Q,At as R,Et as S,Ot as T,It as U,Pt as V,Ct as W,mt as X,gt as Y,nt as Z,pt as _,ct as $,at as aa,my as ba,_u as ca};
@@ -1 +1 @@
1
- import{$ as N,A as m,B as n,C as o,D as p,E as q,F as r,G as s,H as t,I as u,J as v,K as w,L as x,M as y,N as z,O as A,P as B,Q as C,R as D,S as E,T as F,U as G,V as H,W as I,X as J,Y as K,Z as L,_ as M,aa as O,ba as P,ca as Q,o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i,x as j,y as k,z as l}from"./chunk-x9vsnagh.js";import"./chunk-jdh5asaw.js";import"./chunk-fjyc6m34.js";export{c as validateEVMAddress,h as toChecksumAddress,g as isStateChangingCall,o as isEIP7702Transaction,p as isEIP1559Transaction,d as isBrowserProvider,l as getTokenAddress,Q as getEvmToolboxAsync,P as getEvmToolbox,n as getEstimateGasPrices,q as getEVMTxType,i as getEIP1193SendTransaction,m as getCreateContractTxObject,f as getCreateContract,j as getChecksumAddressFromAsset,e as createContract,N as XLayerToolbox,M as UNIToolbox,L as SONICToolbox,K as RBHToolbox,J as PLASMAToolbox,O as OPToolbox,I as MONADToolbox,H as MEGAETHToolbox,a as MAX_APPROVAL,G as MATICToolbox,F as LINEAToolbox,E as HYPEREVMToolbox,D as GNOToolbox,r as ETHToolbox,k as ContractAddress,C as CROToolbox,B as CORNToolbox,A as COREToolbox,z as BotanixToolbox,b as BaseEVMToolbox,y as BSCToolbox,x as BERAToolbox,w as BASEToolbox,v as AVAXToolbox,u as AURORAToolbox,t as ARBToolbox,s as ADIToolbox};
1
+ import{$ as N,A as m,B as n,C as o,D as p,E as q,F as r,G as s,H as t,I as u,J as v,K as w,L as x,M as y,N as z,O as A,P as B,Q as C,R as D,S as E,T as F,U as G,V as H,W as I,X as J,Y as K,Z as L,_ as M,aa as O,ba as P,ca as Q,o as a,p as b,q as c,r as d,s as e,t as f,u as g,v as h,w as i,x as j,y as k,z as l}from"./chunk-6b99avsd.js";import"./chunk-jdh5asaw.js";import"./chunk-fjyc6m34.js";export{c as validateEVMAddress,h as toChecksumAddress,g as isStateChangingCall,o as isEIP7702Transaction,p as isEIP1559Transaction,d as isBrowserProvider,l as getTokenAddress,Q as getEvmToolboxAsync,P as getEvmToolbox,n as getEstimateGasPrices,q as getEVMTxType,i as getEIP1193SendTransaction,m as getCreateContractTxObject,f as getCreateContract,j as getChecksumAddressFromAsset,e as createContract,N as XLayerToolbox,M as UNIToolbox,L as SONICToolbox,K as PLASMAToolbox,O as OPToolbox,J as MONADToolbox,I as MEGAETHToolbox,a as MAX_APPROVAL,H as MATICToolbox,G as LINEAToolbox,F as HYPEREVMToolbox,E as HOODToolbox,D as GNOToolbox,r as ETHToolbox,k as ContractAddress,C as CROToolbox,B as CORNToolbox,A as COREToolbox,z as BotanixToolbox,b as BaseEVMToolbox,y as BSCToolbox,x as BERAToolbox,w as BASEToolbox,v as AVAXToolbox,u as AURORAToolbox,t as ARBToolbox,s as ADIToolbox};
@@ -1 +1 @@
1
- var Jy=Object.create;var{getPrototypeOf:oy,defineProperty:I,getOwnPropertyNames:dt,getOwnPropertyDescriptor:_y}=Object,st=Object.prototype.hasOwnProperty;function et(t){return this[t]}var jy,ky,nu=(t,y,u)=>{var n=t!=null&&typeof t==="object";if(n){var T=y?jy??=new WeakMap:ky??=new WeakMap,b=T.get(t);if(b)return b}u=t!=null?Jy(oy(t)):{};let M=y||!t||!t.__esModule?I(u,"default",{value:t,enumerable:!0}):u;for(let D of dt(t))if(!st.call(M,D))I(M,D,{get:et.bind(t,D),enumerable:!0});if(n)T.set(t,M);return M},Ny=(t)=>{var y=(ht??=new WeakMap).get(t),u;if(y)return y;if(y=I({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var n of dt(t))if(!st.call(y,n))I(y,n,{get:et.bind(t,n),enumerable:!(u=_y(t,n))||u.enumerable})}return ht.set(t,y),y},ht;var Vy=(t)=>t;function Sy(t,y){this[t]=Vy.bind(null,y)}var it=(t,y)=>{for(var u in y)I(t,u,{get:y[u],enumerable:!0,configurable:!0,set:Sy.bind(y,u)})};var j=(t,y)=>()=>(t&&(y=t(t=0)),y);function lu(){function t(){let y=Date.now(),u=ft||y;return ft=u,y>ft?y:u+1}return xy+t().toString(36)}function rt(t){return async function(u,n=!0){let T=await at.SwapKitApi.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:b}=P.getChainConfig(t),M=T.map(({identifier:q,value:G,decimal:B})=>{return new P.AssetValue({decimal:B||b,identifier:q,value:G})});if(!M.some((q)=>q.isGasAsset))return[P.AssetValue.from({chain:t}),...M];return M}}var P,at,xy,ft=0;var ty=j(()=>{P=require("@swapkit/helpers"),at=require("@swapkit/helpers/api"),xy=typeof process<"u"&&process.pid?process.pid.toString(36):""});function C(t){return{getBalance:rt(t)}}function Ky(t){return t}var i=j(()=>{ty()});function uy(t){return new z.JsonRpcProvider(t)}async function Fy(t,y){return uy(y||await L.getRPCUrl(t))}function jt(t){let y=L.SKConfig.get("rpcUrls")[t]?.filter(Boolean)??[];if(y.length===0)throw new L.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:t});let{chainId:u}=L.getChainConfig(t),n=z.Network.from(Number(u)),[T]=y;if(y.length===1)return new z.JsonRpcProvider(T,n,{staticNetwork:n});return new z.FallbackProvider(y.map((b,M)=>({priority:M+1,provider:new z.JsonRpcProvider(b,n,{staticNetwork:n}),stallTimeout:2000})),n,{quorum:1})}function k(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=L.getChainConfig(t);return function(){return t!==L.Chain.Ethereum?{...Ay({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function Nt(t){return![L.Chain.Adi,L.Chain.Arbitrum,L.Chain.BinanceSmartChain,L.Chain.Robinhood].includes(t)}function Ay({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=L.getChainConfig(t);return _t.match(t).with(L.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(L.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(L.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(L.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(L.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(L.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:L.Chain.Polygon}})).with(L.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function Vt(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}function ny(t,y){let u=y!==void 0?`index ${y}: `:"",n=(T,b)=>{throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${u}${b}`}})};_t.match(t).when(({chainId:T})=>typeof T!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:T})=>!Ey(T),()=>n("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>n("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!yy(T?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!yy(T?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Ty(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function zt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Jt(t,y){if(t.isTuple()&&t.components){let u=zt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:Jt(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=zt(t.name.replace(/s$/,""));return y[n]=u.components.map((T)=>({name:T.name,type:Jt(T,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function ot(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[T,b]of(y.components??[]).entries())n[b.name]=ot(u[b.name]??t[T],b);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>ot(n,u??void 0))}return t}function Oy({chain:t,abi:y,data:u,to:n}){let b=new z.Interface(y).parseTransaction({data:u});if(!b)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let M={},D=zt(b.name);M[D]=b.fragment.inputs.map((R)=>({name:R.name,type:Jt(R,M)}));let q={};for(let[R,Q]of b.fragment.inputs.entries())q[Q.name]=ot(b.args[R],Q);let{chainId:G}=L.getChainConfig(t),B={chainId:Number(G),verifyingContract:z.getAddress(n)},X=Ty(B);return{domain:B,message:q,primaryType:D,types:{EIP712Domain:X,...M}}}function St(t,y){if(!Array.isArray(t)||t.length===0)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(ny(n,u),y!==void 0&&n.chainId!==y)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var L,z,_t,yy=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ey=(t)=>{try{return typeof t==="string"&&!!z.getAddress(t)}catch{return!1}};var m=j(()=>{L=require("@swapkit/helpers"),z=require("ethers"),_t=require("ts-pattern")});var ly;var by=j(()=>{ly=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function K({chain:t=l.Chain.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:py({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Ly({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:It({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:hy({chain:t,provider:y,signer:u}),createContract:At({chain:t,provider:y}),createContractTxObject:N({chain:t,provider:y}),createTransaction:xt({chain:t,provider:y,signer:u}),createTransferTx:xt({chain:t,provider:y,signer:u}),EIP1193SendTransaction:A(y),estimateCall:Ry({provider:y,signer:u}),estimateGasLimit:cy({chain:t,provider:y,signer:u}),estimateGasPrices:V({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:dy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:C(t).getBalance,getNetworkParams:kt(t),isApproved:my({chain:t,provider:y}),sendTransaction:qy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:vy({signer:u}),signMessage:u?(T)=>u.signMessage(T):void 0,signTypedData:u?({domain:T,types:b,value:M})=>u.signTypedData(T,b,M):void 0,transfer:gy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Ft}}function Ft(t){try{return J.getAddress(t),!0}catch{return!1}}function F(t){return t instanceof J.BrowserProvider}function g(t,y,u){return new J.Contract(t,J.Interface.from(y),u)}function At({provider:t}){return function(u,n){return new J.Contract(u,J.Interface.from(n),t)}}function Et({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new l.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Iy.includes(u.stateMutability)}function My(t){return J.getAddress(t)}function A(t){return function({value:u,...n}){if(!F(t))throw new l.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:b,maxFeePerGas:M,maxPriorityFeePerGas:D,...q}=n;return t.send("eth_sendTransaction",[{...q,value:k(BigInt(u||0))}])}}function Dy(t,y){let u=E(t,y);if(u)return J.getAddress(u.toLowerCase());throw new l.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function E({chain:t,symbol:y,ticker:u},n){try{let T=t===l.Chain.BinanceSmartChain&&y==="BNB"&&u==="BNB",b=t===l.Chain.Hyperevm&&y==="HYPE"&&u==="HYPE",M=t===n&&y===n&&u===n,D=Cy.includes(t)&&y==="ETH"&&u==="ETH";if(M||T||b||D)return Ot[n];return J.getAddress(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:T=[],txOverrides:b})=>{let M=await g(y,u,t).getFunction(n).populateTransaction(...T.concat(b).filter((D)=>typeof D<"u"));return{...M,value:k(BigInt(M.value||0))}}}function V({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Kt.match(t).with(l.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:b}=await y.getFeeData();if(!T||b===null)throw new l.SwapKitError("toolbox_evm_no_fee_data");return{[l.FeeOption.Average]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Average),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Average)},[l.FeeOption.Fast]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fast),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fastest),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(l.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await y.getFeeData();if(!T)throw new l.SwapKitError("toolbox_evm_no_fee_data");let b=T*12n/10n;return{[l.FeeOption.Average]:{gasPrice:b},[l.FeeOption.Fast]:{gasPrice:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{gasPrice:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:b,gasPrice:M}=await y.getFeeData();if(u){if(T===null||b===null)throw new l.SwapKitError("toolbox_evm_no_fee_data");return{[l.FeeOption.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:b},[l.FeeOption.Fast]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fast),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fastest),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}if(!M)throw new l.SwapKitError("toolbox_evm_no_gas_price");return{[l.FeeOption.Average]:{gasPrice:M},[l.FeeOption.Fast]:{gasPrice:l.applyFeeMultiplierToBigInt(M,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{gasPrice:l.applyFeeMultiplierToBigInt(M,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function It({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:b,contractAddress:M,abi:D,funcName:q,funcParams:G=[],txOverrides:B={},feeOption:X=l.FeeOption.Fast}){let R=b||t;if(!M)throw new l.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=Et({abi:D,funcName:q});if(Q&&F(R)&&u){let $=N({chain:n,provider:R}),_=B?.from||await u?.getAddress(),o=await $({abi:D,contractAddress:M,funcName:q,funcParams:G,txOverrides:{...B,from:_}});return A(R)(o)}let Y=g(M,D,R);if(Q){if(!u)throw new l.SwapKitError("toolbox_evm_no_signer");let $=B?.from||await u.getAddress();if(!$)throw new l.SwapKitError("toolbox_evm_no_signer_address");let _=Y.connect(u),o=V({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:S,maxPriorityFeePerGas:d,gasPrice:O}=(await o())[X],s=await Y.getFunction(q).estimateGas(...G,B),f=await _[q](...G,{...B,gasLimit:s,gasPrice:O,maxFeePerGas:S,maxPriorityFeePerGas:d,nonce:B?.nonce||await R.getTransactionCount($)});return typeof f?.hash==="string"?f?.hash:f}let Z=await Y[q]?.(...G);return typeof Z?.hash==="string"?Z?.hash:Z}}function Ly({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:T,from:b}){return It({chain:y,isEIP1559Compatible:!0,provider:t})({abi:x.erc20ABI,contractAddress:n,funcName:"allowance",funcParams:[b,T]})}}function my({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:T,from:b,amount:M=p}){let D=await Ly({chain:y,provider:t})({assetAddress:n,from:b,spenderAddress:T});return l.SwapKitNumber.fromBigInt(D).gte(l.SwapKitNumber.fromBigInt(BigInt(M)))}}function py({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:b,spenderAddress:M,feeOptionKey:D=l.FeeOption.Fast,amount:q,gasLimitFallback:G,from:B,nonce:X}){let R=[M,BigInt(q||p)],Q=await t?.getAddress()||B,Y={abi:x.erc20ABI,contractAddress:b,funcName:"approve",funcParams:R,signer:t,txOverrides:{from:Q}};if(F(u)){let $=N({chain:n,provider:u}),_=A(u),o=await $(Y);return _(o)}return It({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:D,funcParams:R,txOverrides:{from:Q,gasLimit:G?BigInt(G.toString()):void 0,nonce:X}})}}function gy({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:T,memo:b,recipient:M,feeOptionKey:D=l.FeeOption.Fast,sender:q,...G}){let{hexlify:B,toUtf8Bytes:X}=await import("ethers"),R=T.getBaseValue("bigint"),Q=T.chain,Y=q||await t?.getAddress(),Z=qy({chain:Q,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new l.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset){let O={...G,data:B(X(b||"")),feeOptionKey:D,from:Y,to:M,value:k(R)};return Z(O)}if(!E(T,Q))throw new l.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:_,maxPriorityFeePerGas:o,gasPrice:S}=(await V({chain:Q,isEIP1559Compatible:y,provider:u})())[D],d=await xt({chain:Q,provider:u,signer:t})({assetValue:T,data:B(X(b||"")),gasPrice:S,maxFeePerGas:_,maxPriorityFeePerGas:o,memo:b,recipient:M,sender:Y});return Z(d)}}function Ry({provider:t,signer:y}){return function({contractAddress:n,abi:T,funcName:b,funcParams:M=[],txOverrides:D}){if(!n)throw new l.SwapKitError("toolbox_evm_no_contract_address");let q=g(n,T,t);return y?q.connect(y).getFunction(b).estimateGas(...M,D):q.getFunction(b).estimateGas(...M,D)}}function cy({provider:t,signer:y}){return async function({assetValue:n,recipient:T,memo:b,data:M,sender:D,funcName:q,funcParams:G,txOverrides:B}){let X=n.bigIntValue,R=n.isGasAsset?null:E(n,n.chain);if(R&&q)return Ry({provider:t,signer:y})({abi:x.erc20ABI,contractAddress:R,funcName:q,funcParams:G,txOverrides:B});let{hexlify:Q,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:M?M:b?Q(Y(b)):void 0,from:D,to:T,value:X})}}function vy({signer:t}){if(!t)return;return(y)=>Vt(t,y)}function qy({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:b=l.FeeOption.Fast,...M}){let{from:D,to:q,data:G,value:B,...X}=M;if(!y)throw new l.SwapKitError("toolbox_evm_no_signer");if(!q)throw new l.SwapKitError("toolbox_evm_no_to_address");let R={...X,data:G||"0x",from:D,to:q,value:BigInt(B||0)};if(F(t))return A(t)(R);let Q=D||await y.getAddress(),Y=M.nonce||await t.getTransactionCount(Q),Z=(await t.getNetwork()).chainId,$=Ct(R,u);if($==="eip7702")St(R.authorizations||[],Z);let _=Kt.match($).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),o={...R,chainId:Z,nonce:Y,type:_,...$==="eip7702"&&{authorizationList:R.authorizations}},S=V({chain:n,isEIP1559Compatible:u,provider:t}),O=$!=="legacy"&&!(R.maxFeePerGas&&R.maxPriorityFeePerGas)||!R.gasPrice?Object.entries((await S())[b]).reduce((f,[e,vt])=>({...f,[e]:k(BigInt(vt))}),{}):{},s;try{s=k(R.gasLimit?BigInt(R.gasLimit):await t.estimateGas(o)*11n/10n)}catch(f){throw new l.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:f})}try{let f={...o,gasLimit:s,...O};try{return(await y.sendTransaction(f)).hash}catch{let e=await y.signTransaction({...f,from:Q});return(await t.broadcastTransaction(e)).hash}}catch(f){throw new l.SwapKitError("toolbox_evm_error_sending_transaction",{error:f})}}}function xt({provider:t,signer:y}){return async function({assetValue:n,memo:T,recipient:b,data:M,sender:D,maxFeePerGas:q,maxPriorityFeePerGas:G,gasPrice:B,...X}){let R=n.getBaseValue("bigint"),Q=n.chain,Y=D||await y?.getAddress();if(!Y)throw new l.SwapKitError("toolbox_evm_no_from_address");if(l.isGasAsset(n)){let{hexlify:_,toUtf8Bytes:o}=await import("ethers");return{...X,data:M||_(o(T||"")),from:Y,to:b,value:k(R)}}let Z=E(n,Q);if(!Z)throw new l.SwapKitError("toolbox_evm_no_contract_address");return N({chain:n.chain,provider:t})({abi:x.erc20ABI,contractAddress:Z,funcName:"transfer",funcParams:[b,R],txOverrides:{from:Y,gasPrice:B,maxFeePerGas:q,maxPriorityFeePerGas:G}})}}function hy({provider:t,signer:y,chain:u}){return async function({assetAddress:T,spenderAddress:b,amount:M,from:D}){let q=await y?.getAddress()||D,G=N({chain:u,provider:t}),B=["bigint","number"].includes(typeof M)?M:M||p;return await G({abi:x.erc20ABI,contractAddress:T,funcName:"approve",funcParams:[b,BigInt(B)],txOverrides:{from:q}})}}function dy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:T=l.FeeOption.Fast,...b}){let D=await V({chain:u,isEIP1559Compatible:y,provider:t})(),q=await t.estimateGas(b),G=l.AssetValue.from({chain:u}),{gasPrice:B,maxFeePerGas:X,maxPriorityFeePerGas:R}=D[T];if(!y&&B)return G.set(l.SwapKitNumber.fromBigInt(B*q,G.decimal));if(X&&R){let Q=(X+R)*q;return G.set(l.SwapKitNumber.fromBigInt(Q,G.decimal))}throw new l.SwapKitError("toolbox_evm_no_gas_price")}}var l,x,J,Kt,p,Iy,Py,Ot,Cy,a=(t)=>t.type===4||(t.authorizations?.length??0)>0,Pt=(t)=>!a(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ct=(t,y=!0)=>{if(a(t))return"eip7702";if(Pt(t)||y)return"eip1559";return"legacy"};var r=j(()=>{i();m();l=require("@swapkit/helpers"),x=require("@swapkit/helpers/contracts"),J=require("ethers"),Kt=require("ts-pattern"),p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Iy=["payable","nonpayable"];Py=l.EVMChains.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ot={...Py,[l.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[l.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Cy=[l.Chain.Arbitrum,l.Chain.Aurora,l.Chain.Base,l.Chain.Optimism,l.Chain.Robinhood]});function tt(t){let y=W(w.Chain.Ethereum)(t);async function u(n,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",b="aggregate",M=w.FeeOption.Fast){let D=await y.createContractTxObject({abi:ly,contractAddress:T,funcName:b,funcParams:[n]});return y.sendTransaction({...D,feeOptionKey:M})}return{...y,multicall:u}}function W(t){return function({provider:u,...n}){let T=Nt(t),b=c.match(n).with({phrase:c.P.string},({phrase:D})=>By.HDNodeWallet.fromPhrase(D).connect(u)).with({signer:c.P.any},({signer:D})=>D).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:T,provider:u,signer:b})}}var w,By,c,yt,ut,nt,Tt,lt,bt,Mt,Gy,Dt,Lt,Rt,qt,Bt,Gt,wt,Ht,Wt,Ut,Qt,v,Xt,Yt;var mt=j(()=>{by();m();r();w=require("@swapkit/helpers"),By=require("ethers"),c=require("ts-pattern");yt=W(w.Chain.Adi),ut=W(w.Chain.Arbitrum),nt=W(w.Chain.Aurora),Tt=W(w.Chain.Avalanche),lt=W(w.Chain.Base),bt=W(w.Chain.Berachain),Mt=W(w.Chain.BinanceSmartChain),Gy=W(w.Chain.Botanix),Dt=W(w.Chain.Core),Lt=W(w.Chain.Corn),Rt=W(w.Chain.Cronos),qt=W(w.Chain.Gnosis),Bt=W(w.Chain.Hyperevm),Gt=W(w.Chain.Linea),wt=W(w.Chain.Polygon),Ht=W(w.Chain.MegaETH),Wt=W(w.Chain.Monad),Ut=W(w.Chain.Plasma),Qt=W(w.Chain.Robinhood),v=W(w.Chain.Sonic),Xt=W(w.Chain.Unichain),Yt=W(w.Chain.XLayer)});var wy;var Hy=j(()=>{wy=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function pt(t){return new Zt.Contract(ey,wy,t)}function Wy(t){return async function(){let u=pt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function Uy(t){return async function({from:u,to:n,nonce:T,...b}){let{Transaction:M}=await import("ethers");if(!n)throw new U.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return M.from({...b,authorizationList:b.authorizationList,nonce:T?T:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Qy(t){return async function(u){let n=pt(t),T=await Uy(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(T)}}function Xy(t){return async function(u){let T=(await t.getFeeData()).gasPrice??0n,b=await t.estimateGas(u);return T*b}}function iy(t){return async function(u){let n=await Qy(t)(u)??0n,T=await Xy(t)(u);return n+T}}function ay(t){return async function(u){let n=pt(t),T=await Uy(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(T)}}function ry(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:T}=await t.getFeeData(),b=await Wy(t)(),M=T;if(!(u&&n))throw new U.SwapKitError("toolbox_evm_no_fee_data");return{[U.FeeOption.Average]:{gasPrice:M,l1GasPrice:b,maxFeePerGas:u,maxPriorityFeePerGas:n},[U.FeeOption.Fast]:{gasPrice:U.applyFeeMultiplierToBigInt(M,U.FeeOption.Fast),l1GasPrice:U.applyFeeMultiplierToBigInt(b||0n,U.FeeOption.Fast),maxFeePerGas:u,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(n,U.FeeOption.Fast)},[U.FeeOption.Fastest]:{gasPrice:U.applyFeeMultiplierToBigInt(M,U.FeeOption.Fastest),l1GasPrice:U.applyFeeMultiplierToBigInt(b||0n,U.FeeOption.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(n,U.FeeOption.Fastest)}}}catch(u){throw new U.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function $t({provider:t,...y}){let u=h.match(y).with({phrase:h.P.string},({phrase:b})=>Zt.HDNodeWallet.fromPhrase(b).connect(t)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return}),n=K({provider:t,signer:u}),T=Wy(t);return{...n,estimateGasPrices:ry(t),estimateL1Gas:ay(t),estimateL1GasCost:Qy(t),estimateL2GasCost:Xy(t),estimateTotalGasCost:iy(t),getBalance:C(U.Chain.Optimism).getBalance,getL1GasPrice:T}}var U,Zt,h,ey="0x420000000000000000000000000000000000000f";var gt=j(()=>{i();Hy();r();U=require("@swapkit/helpers"),Zt=require("ethers"),h=require("ts-pattern")});var tu={};it(tu,{validateEVMAddress:()=>Ft,toChecksumAddress:()=>My,isStateChangingCall:()=>Et,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Pt,isBrowserProvider:()=>F,getTokenAddress:()=>E,getEvmToolboxAsync:()=>Zy,getEvmToolbox:()=>ct,getEstimateGasPrices:()=>V,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>N,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>Dy,createContract:()=>g,XLayerToolbox:()=>Yt,UNIToolbox:()=>Xt,SONICToolbox:()=>v,RBHToolbox:()=>Qt,PLASMAToolbox:()=>Ut,OPToolbox:()=>$t,MONADToolbox:()=>Wt,MEGAETHToolbox:()=>Ht,MAX_APPROVAL:()=>p,MATICToolbox:()=>wt,LINEAToolbox:()=>Gt,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>qt,ETHToolbox:()=>tt,ContractAddress:()=>Ot,CROToolbox:()=>Rt,CORNToolbox:()=>Lt,COREToolbox:()=>Dt,BotanixToolbox:()=>Gy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>lt,AVAXToolbox:()=>Tt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});function ct(t,y){return Yy.match(t).with(H.Chain.Adi,()=>yt(y)).with(H.Chain.Arbitrum,()=>ut(y)).with(H.Chain.Aurora,()=>nt(y)).with(H.Chain.Avalanche,()=>Tt(y)).with(H.Chain.Base,()=>lt(y)).with(H.Chain.Berachain,()=>bt(y)).with(H.Chain.BinanceSmartChain,()=>Mt(y)).with(H.Chain.Botanix,()=>v(y)).with(H.Chain.Core,()=>Dt(y)).with(H.Chain.Corn,()=>Lt(y)).with(H.Chain.Cronos,()=>Rt(y)).with(H.Chain.Ethereum,()=>tt(y)).with(H.Chain.Gnosis,()=>qt(y)).with(H.Chain.Hyperevm,()=>Bt(y)).with(H.Chain.Linea,()=>Gt(y)).with(H.Chain.MegaETH,()=>Ht(y)).with(H.Chain.Monad,()=>Wt(y)).with(H.Chain.Optimism,()=>$t(y)).with(H.Chain.Plasma,()=>Ut(y)).with(H.Chain.Polygon,()=>wt(y)).with(H.Chain.Robinhood,()=>Qt(y)).with(H.Chain.Sonic,()=>v(y)).with(H.Chain.Unichain,()=>Xt(y)).with(H.Chain.XLayer,()=>Yt(y)).exhaustive()}async function Zy(t,y){let u={...y,provider:y?.provider||jt(t)};return ct(t,u)}var H,Yy;var $y=j(()=>{m();mt();gt();H=require("@swapkit/helpers"),Yy=require("ts-pattern");r();mt();gt()});var fy;var zy=j(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(fy||={})});var yu={};it(yu,{validateEVMAddress:()=>Ft,validateAuthorizations:()=>St,validateAuthorization:()=>ny,toHexString:()=>k,toChecksumAddress:()=>My,signAuthorization:()=>Vt,parseEIP712FromEVMTx:()=>Oy,isStateChangingCall:()=>Et,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Pt,isBrowserProvider:()=>F,getTokenAddress:()=>E,getProviderSync:()=>uy,getProvider:()=>Fy,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>Nt,getFallbackProvider:()=>jt,getEvmToolboxAsync:()=>Zy,getEvmToolbox:()=>ct,getEvmApi:()=>C,getEstimateGasPrices:()=>V,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>N,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>Dy,createCustomEvmApi:()=>Ky,createContract:()=>g,buildEIP712DomainType:()=>Ty,XLayerToolbox:()=>Yt,UNIToolbox:()=>Xt,SONICToolbox:()=>v,RBHToolbox:()=>Qt,PLASMAToolbox:()=>Ut,OPToolbox:()=>$t,MONADToolbox:()=>Wt,MEGAETHToolbox:()=>Ht,MAX_APPROVAL:()=>p,MATICToolbox:()=>wt,LINEAToolbox:()=>Gt,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>qt,EthNetwork:()=>fy,ETHToolbox:()=>tt,ContractAddress:()=>Ot,CROToolbox:()=>Rt,CORNToolbox:()=>Lt,COREToolbox:()=>Dt,BotanixToolbox:()=>Gy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>lt,AVAXToolbox:()=>Tt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});module.exports=Ny(yu);var uu=j(()=>{i();m();$y();zy()});uu();
1
+ var Jy=Object.create;var{getPrototypeOf:oy,defineProperty:I,getOwnPropertyNames:dt,getOwnPropertyDescriptor:_y}=Object,st=Object.prototype.hasOwnProperty;function et(t){return this[t]}var jy,ky,nu=(t,y,u)=>{var n=t!=null&&typeof t==="object";if(n){var T=y?jy??=new WeakMap:ky??=new WeakMap,b=T.get(t);if(b)return b}u=t!=null?Jy(oy(t)):{};let M=y||!t||!t.__esModule?I(u,"default",{value:t,enumerable:!0}):u;for(let D of dt(t))if(!st.call(M,D))I(M,D,{get:et.bind(t,D),enumerable:!0});if(n)T.set(t,M);return M},Ny=(t)=>{var y=(ht??=new WeakMap).get(t),u;if(y)return y;if(y=I({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var n of dt(t))if(!st.call(y,n))I(y,n,{get:et.bind(t,n),enumerable:!(u=_y(t,n))||u.enumerable})}return ht.set(t,y),y},ht;var Vy=(t)=>t;function Sy(t,y){this[t]=Vy.bind(null,y)}var it=(t,y)=>{for(var u in y)I(t,u,{get:y[u],enumerable:!0,configurable:!0,set:Sy.bind(y,u)})};var j=(t,y)=>()=>(t&&(y=t(t=0)),y);function lu(){function t(){let y=Date.now(),u=ft||y;return ft=u,y>ft?y:u+1}return xy+t().toString(36)}function rt(t){return async function(u,n=!0){let T=await at.SwapKitApi.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:b}=P.getChainConfig(t),M=T.map(({identifier:q,value:B,decimal:G})=>{return new P.AssetValue({decimal:G||b,identifier:q,value:B})});if(!M.some((q)=>q.isGasAsset))return[P.AssetValue.from({chain:t}),...M];return M}}var P,at,xy,ft=0;var ty=j(()=>{P=require("@swapkit/helpers"),at=require("@swapkit/helpers/api"),xy=typeof process<"u"&&process.pid?process.pid.toString(36):""});function C(t){return{getBalance:rt(t)}}function Ky(t){return t}var i=j(()=>{ty()});function uy(t){return new z.JsonRpcProvider(t)}async function Fy(t,y){return uy(y||await L.getRPCUrl(t))}function jt(t){let y=L.SKConfig.get("rpcUrls")[t]?.filter(Boolean)??[];if(y.length===0)throw new L.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:t});let{chainId:u}=L.getChainConfig(t),n=z.Network.from(Number(u)),[T]=y;if(y.length===1)return new z.JsonRpcProvider(T,n,{staticNetwork:n});return new z.FallbackProvider(y.map((b,M)=>({priority:M+1,provider:new z.JsonRpcProvider(b,n,{staticNetwork:n}),stallTimeout:2000})),n,{quorum:1})}function k(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=L.getChainConfig(t);return function(){return t!==L.Chain.Ethereum?{...Ay({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function Nt(t){return![L.Chain.Adi,L.Chain.Arbitrum,L.Chain.BinanceSmartChain,L.Chain.Robinhood].includes(t)}function Ay({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=L.getChainConfig(t);return _t.match(t).with(L.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(L.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(L.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(L.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(L.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(L.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).with(L.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:L.Chain.Polygon}})).with(L.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:n,name:"Ethereum",symbol:L.Chain.Ethereum}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function Vt(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}function ny(t,y){let u=y!==void 0?`index ${y}: `:"",n=(T,b)=>{throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${u}${b}`}})};_t.match(t).when(({chainId:T})=>typeof T!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:T})=>!Oy(T),()=>n("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>n("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!yy(T?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!yy(T?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Ty(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function zt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Jt(t,y){if(t.isTuple()&&t.components){let u=zt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:Jt(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=zt(t.name.replace(/s$/,""));return y[n]=u.components.map((T)=>({name:T.name,type:Jt(T,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function ot(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[T,b]of(y.components??[]).entries())n[b.name]=ot(u[b.name]??t[T],b);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>ot(n,u??void 0))}return t}function Ey({chain:t,abi:y,data:u,to:n}){let b=new z.Interface(y).parseTransaction({data:u});if(!b)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let M={},D=zt(b.name);M[D]=b.fragment.inputs.map((R)=>({name:R.name,type:Jt(R,M)}));let q={};for(let[R,Q]of b.fragment.inputs.entries())q[Q.name]=ot(b.args[R],Q);let{chainId:B}=L.getChainConfig(t),G={chainId:Number(B),verifyingContract:z.getAddress(n)},X=Ty(G);return{domain:G,message:q,primaryType:D,types:{EIP712Domain:X,...M}}}function St(t,y){if(!Array.isArray(t)||t.length===0)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(ny(n,u),y!==void 0&&n.chainId!==y)throw new L.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var L,z,_t,yy=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Oy=(t)=>{try{return typeof t==="string"&&!!z.getAddress(t)}catch{return!1}};var m=j(()=>{L=require("@swapkit/helpers"),z=require("ethers"),_t=require("ts-pattern")});var ly;var by=j(()=>{ly=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function K({chain:t=l.Chain.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:py({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Ly({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:It({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:hy({chain:t,provider:y,signer:u}),createContract:At({chain:t,provider:y}),createContractTxObject:N({chain:t,provider:y}),createTransaction:xt({chain:t,provider:y,signer:u}),createTransferTx:xt({chain:t,provider:y,signer:u}),EIP1193SendTransaction:A(y),estimateCall:Ry({provider:y,signer:u}),estimateGasLimit:cy({chain:t,provider:y,signer:u}),estimateGasPrices:V({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:dy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:C(t).getBalance,getNetworkParams:kt(t),isApproved:my({chain:t,provider:y}),sendTransaction:qy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:vy({signer:u}),signMessage:u?(T)=>u.signMessage(T):void 0,signTypedData:u?({domain:T,types:b,value:M})=>u.signTypedData(T,b,M):void 0,transfer:gy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Ft}}function Ft(t){try{return J.getAddress(t),!0}catch{return!1}}function F(t){return t instanceof J.BrowserProvider}function g(t,y,u){return new J.Contract(t,J.Interface.from(y),u)}function At({provider:t}){return function(u,n){return new J.Contract(u,J.Interface.from(n),t)}}function Ot({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new l.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Iy.includes(u.stateMutability)}function My(t){return J.getAddress(t)}function A(t){return function({value:u,...n}){if(!F(t))throw new l.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:b,maxFeePerGas:M,maxPriorityFeePerGas:D,...q}=n;return t.send("eth_sendTransaction",[{...q,value:k(BigInt(u||0))}])}}function Dy(t,y){let u=O(t,y);if(u)return J.getAddress(u.toLowerCase());throw new l.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function O({chain:t,symbol:y,ticker:u},n){try{let T=t===l.Chain.BinanceSmartChain&&y==="BNB"&&u==="BNB",b=t===l.Chain.Hyperevm&&y==="HYPE"&&u==="HYPE",M=t===n&&y===n&&u===n,D=Cy.includes(t)&&y==="ETH"&&u==="ETH";if(M||T||b||D)return Et[n];return J.getAddress(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:T=[],txOverrides:b})=>{let M=await g(y,u,t).getFunction(n).populateTransaction(...T.concat(b).filter((D)=>typeof D<"u"));return{...M,value:k(BigInt(M.value||0))}}}function V({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Kt.match(t).with(l.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:b}=await y.getFeeData();if(!T||b===null)throw new l.SwapKitError("toolbox_evm_no_fee_data");return{[l.FeeOption.Average]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Average),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Average)},[l.FeeOption.Fast]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fast),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fastest),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(l.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await y.getFeeData();if(!T)throw new l.SwapKitError("toolbox_evm_no_fee_data");let b=T*12n/10n;return{[l.FeeOption.Average]:{gasPrice:b},[l.FeeOption.Fast]:{gasPrice:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{gasPrice:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:b,gasPrice:M}=await y.getFeeData();if(u){if(T===null||b===null)throw new l.SwapKitError("toolbox_evm_no_fee_data");return{[l.FeeOption.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:b},[l.FeeOption.Fast]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fast),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{maxFeePerGas:l.applyFeeMultiplierToBigInt(T,l.FeeOption.Fastest),maxPriorityFeePerGas:l.applyFeeMultiplierToBigInt(b,l.FeeOption.Fastest)}}}if(!M)throw new l.SwapKitError("toolbox_evm_no_gas_price");return{[l.FeeOption.Average]:{gasPrice:M},[l.FeeOption.Fast]:{gasPrice:l.applyFeeMultiplierToBigInt(M,l.FeeOption.Fast)},[l.FeeOption.Fastest]:{gasPrice:l.applyFeeMultiplierToBigInt(M,l.FeeOption.Fastest)}}}catch(T){throw new l.SwapKitError("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function It({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:b,contractAddress:M,abi:D,funcName:q,funcParams:B=[],txOverrides:G={},feeOption:X=l.FeeOption.Fast}){let R=b||t;if(!M)throw new l.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=Ot({abi:D,funcName:q});if(Q&&F(R)&&u){let $=N({chain:n,provider:R}),_=G?.from||await u?.getAddress(),o=await $({abi:D,contractAddress:M,funcName:q,funcParams:B,txOverrides:{...G,from:_}});return A(R)(o)}let Y=g(M,D,R);if(Q){if(!u)throw new l.SwapKitError("toolbox_evm_no_signer");let $=G?.from||await u.getAddress();if(!$)throw new l.SwapKitError("toolbox_evm_no_signer_address");let _=Y.connect(u),o=V({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:S,maxPriorityFeePerGas:d,gasPrice:E}=(await o())[X],s=await Y.getFunction(q).estimateGas(...B,G),f=await _[q](...B,{...G,gasLimit:s,gasPrice:E,maxFeePerGas:S,maxPriorityFeePerGas:d,nonce:G?.nonce||await R.getTransactionCount($)});return typeof f?.hash==="string"?f?.hash:f}let Z=await Y[q]?.(...B);return typeof Z?.hash==="string"?Z?.hash:Z}}function Ly({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:T,from:b}){return It({chain:y,isEIP1559Compatible:!0,provider:t})({abi:x.erc20ABI,contractAddress:n,funcName:"allowance",funcParams:[b,T]})}}function my({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:T,from:b,amount:M=p}){let D=await Ly({chain:y,provider:t})({assetAddress:n,from:b,spenderAddress:T});return l.SwapKitNumber.fromBigInt(D).gte(l.SwapKitNumber.fromBigInt(BigInt(M)))}}function py({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:b,spenderAddress:M,feeOptionKey:D=l.FeeOption.Fast,amount:q,gasLimitFallback:B,from:G,nonce:X}){let R=[M,BigInt(q||p)],Q=await t?.getAddress()||G,Y={abi:x.erc20ABI,contractAddress:b,funcName:"approve",funcParams:R,signer:t,txOverrides:{from:Q}};if(F(u)){let $=N({chain:n,provider:u}),_=A(u),o=await $(Y);return _(o)}return It({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:D,funcParams:R,txOverrides:{from:Q,gasLimit:B?BigInt(B.toString()):void 0,nonce:X}})}}function gy({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:T,memo:b,recipient:M,feeOptionKey:D=l.FeeOption.Fast,sender:q,...B}){let{hexlify:G,toUtf8Bytes:X}=await import("ethers"),R=T.getBaseValue("bigint"),Q=T.chain,Y=q||await t?.getAddress(),Z=qy({chain:Q,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new l.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset){let E={...B,data:G(X(b||"")),feeOptionKey:D,from:Y,to:M,value:k(R)};return Z(E)}if(!O(T,Q))throw new l.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:_,maxPriorityFeePerGas:o,gasPrice:S}=(await V({chain:Q,isEIP1559Compatible:y,provider:u})())[D],d=await xt({chain:Q,provider:u,signer:t})({assetValue:T,data:G(X(b||"")),gasPrice:S,maxFeePerGas:_,maxPriorityFeePerGas:o,memo:b,recipient:M,sender:Y});return Z(d)}}function Ry({provider:t,signer:y}){return function({contractAddress:n,abi:T,funcName:b,funcParams:M=[],txOverrides:D}){if(!n)throw new l.SwapKitError("toolbox_evm_no_contract_address");let q=g(n,T,t);return y?q.connect(y).getFunction(b).estimateGas(...M,D):q.getFunction(b).estimateGas(...M,D)}}function cy({provider:t,signer:y}){return async function({assetValue:n,recipient:T,memo:b,data:M,sender:D,funcName:q,funcParams:B,txOverrides:G}){let X=n.bigIntValue,R=n.isGasAsset?null:O(n,n.chain);if(R&&q)return Ry({provider:t,signer:y})({abi:x.erc20ABI,contractAddress:R,funcName:q,funcParams:B,txOverrides:G});let{hexlify:Q,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:M?M:b?Q(Y(b)):void 0,from:D,to:T,value:X})}}function vy({signer:t}){if(!t)return;return(y)=>Vt(t,y)}function qy({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:b=l.FeeOption.Fast,...M}){let{from:D,to:q,data:B,value:G,...X}=M;if(!y)throw new l.SwapKitError("toolbox_evm_no_signer");if(!q)throw new l.SwapKitError("toolbox_evm_no_to_address");let R={...X,data:B||"0x",from:D,to:q,value:BigInt(G||0)};if(F(t))return A(t)(R);let Q=D||await y.getAddress(),Y=M.nonce||await t.getTransactionCount(Q),Z=(await t.getNetwork()).chainId,$=Ct(R,u);if($==="eip7702")St(R.authorizations||[],Z);let _=Kt.match($).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),o={...R,chainId:Z,nonce:Y,type:_,...$==="eip7702"&&{authorizationList:R.authorizations}},S=V({chain:n,isEIP1559Compatible:u,provider:t}),E=$!=="legacy"&&!(R.maxFeePerGas&&R.maxPriorityFeePerGas)||!R.gasPrice?Object.entries((await S())[b]).reduce((f,[e,vt])=>({...f,[e]:k(BigInt(vt))}),{}):{},s;try{s=k(R.gasLimit?BigInt(R.gasLimit):await t.estimateGas(o)*11n/10n)}catch(f){throw new l.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:f})}try{let f={...o,gasLimit:s,...E};try{return(await y.sendTransaction(f)).hash}catch{let e=await y.signTransaction({...f,from:Q});return(await t.broadcastTransaction(e)).hash}}catch(f){throw new l.SwapKitError("toolbox_evm_error_sending_transaction",{error:f})}}}function xt({provider:t,signer:y}){return async function({assetValue:n,memo:T,recipient:b,data:M,sender:D,maxFeePerGas:q,maxPriorityFeePerGas:B,gasPrice:G,...X}){let R=n.getBaseValue("bigint"),Q=n.chain,Y=D||await y?.getAddress();if(!Y)throw new l.SwapKitError("toolbox_evm_no_from_address");if(l.isGasAsset(n)){let{hexlify:_,toUtf8Bytes:o}=await import("ethers");return{...X,data:M||_(o(T||"")),from:Y,to:b,value:k(R)}}let Z=O(n,Q);if(!Z)throw new l.SwapKitError("toolbox_evm_no_contract_address");return N({chain:n.chain,provider:t})({abi:x.erc20ABI,contractAddress:Z,funcName:"transfer",funcParams:[b,R],txOverrides:{from:Y,gasPrice:G,maxFeePerGas:q,maxPriorityFeePerGas:B}})}}function hy({provider:t,signer:y,chain:u}){return async function({assetAddress:T,spenderAddress:b,amount:M,from:D}){let q=await y?.getAddress()||D,B=N({chain:u,provider:t}),G=["bigint","number"].includes(typeof M)?M:M||p;return await B({abi:x.erc20ABI,contractAddress:T,funcName:"approve",funcParams:[b,BigInt(G)],txOverrides:{from:q}})}}function dy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:T=l.FeeOption.Fast,...b}){let D=await V({chain:u,isEIP1559Compatible:y,provider:t})(),q=await t.estimateGas(b),B=l.AssetValue.from({chain:u}),{gasPrice:G,maxFeePerGas:X,maxPriorityFeePerGas:R}=D[T];if(!y&&G)return B.set(l.SwapKitNumber.fromBigInt(G*q,B.decimal));if(X&&R){let Q=(X+R)*q;return B.set(l.SwapKitNumber.fromBigInt(Q,B.decimal))}throw new l.SwapKitError("toolbox_evm_no_gas_price")}}var l,x,J,Kt,p,Iy,Py,Et,Cy,a=(t)=>t.type===4||(t.authorizations?.length??0)>0,Pt=(t)=>!a(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ct=(t,y=!0)=>{if(a(t))return"eip7702";if(Pt(t)||y)return"eip1559";return"legacy"};var r=j(()=>{i();m();l=require("@swapkit/helpers"),x=require("@swapkit/helpers/contracts"),J=require("ethers"),Kt=require("ts-pattern"),p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Iy=["payable","nonpayable"];Py=l.EVMChains.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Et={...Py,[l.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[l.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Cy=[l.Chain.Arbitrum,l.Chain.Aurora,l.Chain.Base,l.Chain.Optimism,l.Chain.Robinhood]});function tt(t){let y=W(w.Chain.Ethereum)(t);async function u(n,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",b="aggregate",M=w.FeeOption.Fast){let D=await y.createContractTxObject({abi:ly,contractAddress:T,funcName:b,funcParams:[n]});return y.sendTransaction({...D,feeOptionKey:M})}return{...y,multicall:u}}function W(t){return function({provider:u,...n}){let T=Nt(t),b=c.match(n).with({phrase:c.P.string},({phrase:D})=>Gy.HDNodeWallet.fromPhrase(D).connect(u)).with({signer:c.P.any},({signer:D})=>D).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:T,provider:u,signer:b})}}var w,Gy,c,yt,ut,nt,Tt,lt,bt,Mt,By,Dt,Lt,Rt,qt,Gt,Bt,wt,Ht,Wt,Ut,Qt,v,Xt,Yt;var mt=j(()=>{by();m();r();w=require("@swapkit/helpers"),Gy=require("ethers"),c=require("ts-pattern");yt=W(w.Chain.Adi),ut=W(w.Chain.Arbitrum),nt=W(w.Chain.Aurora),Tt=W(w.Chain.Avalanche),lt=W(w.Chain.Base),bt=W(w.Chain.Berachain),Mt=W(w.Chain.BinanceSmartChain),By=W(w.Chain.Botanix),Dt=W(w.Chain.Core),Lt=W(w.Chain.Corn),Rt=W(w.Chain.Cronos),qt=W(w.Chain.Gnosis),Gt=W(w.Chain.Robinhood),Bt=W(w.Chain.Hyperevm),wt=W(w.Chain.Linea),Ht=W(w.Chain.Polygon),Wt=W(w.Chain.MegaETH),Ut=W(w.Chain.Monad),Qt=W(w.Chain.Plasma),v=W(w.Chain.Sonic),Xt=W(w.Chain.Unichain),Yt=W(w.Chain.XLayer)});var wy;var Hy=j(()=>{wy=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function pt(t){return new Zt.Contract(ey,wy,t)}function Wy(t){return async function(){let u=pt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function Uy(t){return async function({from:u,to:n,nonce:T,...b}){let{Transaction:M}=await import("ethers");if(!n)throw new U.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return M.from({...b,authorizationList:b.authorizationList,nonce:T?T:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Qy(t){return async function(u){let n=pt(t),T=await Uy(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(T)}}function Xy(t){return async function(u){let T=(await t.getFeeData()).gasPrice??0n,b=await t.estimateGas(u);return T*b}}function iy(t){return async function(u){let n=await Qy(t)(u)??0n,T=await Xy(t)(u);return n+T}}function ay(t){return async function(u){let n=pt(t),T=await Uy(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(T)}}function ry(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:T}=await t.getFeeData(),b=await Wy(t)(),M=T;if(!(u&&n))throw new U.SwapKitError("toolbox_evm_no_fee_data");return{[U.FeeOption.Average]:{gasPrice:M,l1GasPrice:b,maxFeePerGas:u,maxPriorityFeePerGas:n},[U.FeeOption.Fast]:{gasPrice:U.applyFeeMultiplierToBigInt(M,U.FeeOption.Fast),l1GasPrice:U.applyFeeMultiplierToBigInt(b||0n,U.FeeOption.Fast),maxFeePerGas:u,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(n,U.FeeOption.Fast)},[U.FeeOption.Fastest]:{gasPrice:U.applyFeeMultiplierToBigInt(M,U.FeeOption.Fastest),l1GasPrice:U.applyFeeMultiplierToBigInt(b||0n,U.FeeOption.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(n,U.FeeOption.Fastest)}}}catch(u){throw new U.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function $t({provider:t,...y}){let u=h.match(y).with({phrase:h.P.string},({phrase:b})=>Zt.HDNodeWallet.fromPhrase(b).connect(t)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return}),n=K({provider:t,signer:u}),T=Wy(t);return{...n,estimateGasPrices:ry(t),estimateL1Gas:ay(t),estimateL1GasCost:Qy(t),estimateL2GasCost:Xy(t),estimateTotalGasCost:iy(t),getBalance:C(U.Chain.Optimism).getBalance,getL1GasPrice:T}}var U,Zt,h,ey="0x420000000000000000000000000000000000000f";var gt=j(()=>{i();Hy();r();U=require("@swapkit/helpers"),Zt=require("ethers"),h=require("ts-pattern")});var tu={};it(tu,{validateEVMAddress:()=>Ft,toChecksumAddress:()=>My,isStateChangingCall:()=>Ot,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Pt,isBrowserProvider:()=>F,getTokenAddress:()=>O,getEvmToolboxAsync:()=>Zy,getEvmToolbox:()=>ct,getEstimateGasPrices:()=>V,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>N,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>Dy,createContract:()=>g,XLayerToolbox:()=>Yt,UNIToolbox:()=>Xt,SONICToolbox:()=>v,PLASMAToolbox:()=>Qt,OPToolbox:()=>$t,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,LINEAToolbox:()=>wt,HYPEREVMToolbox:()=>Bt,HOODToolbox:()=>Gt,GNOToolbox:()=>qt,ETHToolbox:()=>tt,ContractAddress:()=>Et,CROToolbox:()=>Rt,CORNToolbox:()=>Lt,COREToolbox:()=>Dt,BotanixToolbox:()=>By,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>lt,AVAXToolbox:()=>Tt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});function ct(t,y){return Yy.match(t).with(H.Chain.Adi,()=>yt(y)).with(H.Chain.Arbitrum,()=>ut(y)).with(H.Chain.Aurora,()=>nt(y)).with(H.Chain.Avalanche,()=>Tt(y)).with(H.Chain.Base,()=>lt(y)).with(H.Chain.Berachain,()=>bt(y)).with(H.Chain.BinanceSmartChain,()=>Mt(y)).with(H.Chain.Botanix,()=>v(y)).with(H.Chain.Core,()=>Dt(y)).with(H.Chain.Corn,()=>Lt(y)).with(H.Chain.Cronos,()=>Rt(y)).with(H.Chain.Ethereum,()=>tt(y)).with(H.Chain.Gnosis,()=>qt(y)).with(H.Chain.Hyperevm,()=>Bt(y)).with(H.Chain.Linea,()=>wt(y)).with(H.Chain.MegaETH,()=>Wt(y)).with(H.Chain.Monad,()=>Ut(y)).with(H.Chain.Optimism,()=>$t(y)).with(H.Chain.Plasma,()=>Qt(y)).with(H.Chain.Polygon,()=>Ht(y)).with(H.Chain.Robinhood,()=>Gt(y)).with(H.Chain.Sonic,()=>v(y)).with(H.Chain.Unichain,()=>Xt(y)).with(H.Chain.XLayer,()=>Yt(y)).exhaustive()}async function Zy(t,y){let u={...y,provider:y?.provider||jt(t)};return ct(t,u)}var H,Yy;var $y=j(()=>{m();mt();gt();H=require("@swapkit/helpers"),Yy=require("ts-pattern");r();mt();gt()});var fy;var zy=j(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(fy||={})});var yu={};it(yu,{validateEVMAddress:()=>Ft,validateAuthorizations:()=>St,validateAuthorization:()=>ny,toHexString:()=>k,toChecksumAddress:()=>My,signAuthorization:()=>Vt,parseEIP712FromEVMTx:()=>Ey,isStateChangingCall:()=>Ot,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Pt,isBrowserProvider:()=>F,getTokenAddress:()=>O,getProviderSync:()=>uy,getProvider:()=>Fy,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>Nt,getFallbackProvider:()=>jt,getEvmToolboxAsync:()=>Zy,getEvmToolbox:()=>ct,getEvmApi:()=>C,getEstimateGasPrices:()=>V,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>N,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>Dy,createCustomEvmApi:()=>Ky,createContract:()=>g,buildEIP712DomainType:()=>Ty,XLayerToolbox:()=>Yt,UNIToolbox:()=>Xt,SONICToolbox:()=>v,PLASMAToolbox:()=>Qt,OPToolbox:()=>$t,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,LINEAToolbox:()=>wt,HYPEREVMToolbox:()=>Bt,HOODToolbox:()=>Gt,GNOToolbox:()=>qt,EthNetwork:()=>fy,ETHToolbox:()=>tt,ContractAddress:()=>Et,CROToolbox:()=>Rt,CORNToolbox:()=>Lt,COREToolbox:()=>Dt,BotanixToolbox:()=>By,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>lt,AVAXToolbox:()=>Tt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});module.exports=Ny(yu);var uu=j(()=>{i();m();$y();zy()});uu();
@@ -1 +1 @@
1
- import{a as ca}from"../../chunk-44m22jy1.js";import{$ as _,A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,W as V,X as W,Y as X,Z as Y,_ as Z,aa as $,b as a,ba as aa,c as b,ca as ba,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"../../chunk-x9vsnagh.js";import"../../chunk-jdh5asaw.js";import"../../chunk-fjyc6m34.js";export{p as validateEVMAddress,m as validateAuthorizations,j as validateAuthorization,f as toHexString,u as toChecksumAddress,i as signAuthorization,l as parseEIP712FromEVMTx,t as isStateChangingCall,B as isEIP7702Transaction,C as isEIP1559Transaction,q as isBrowserProvider,y as getTokenAddress,c as getProviderSync,d as getProvider,g as getNetworkParams,h as getIsEIP1559Compatible,e as getFallbackProvider,ba as getEvmToolboxAsync,aa as getEvmToolbox,a as getEvmApi,A as getEstimateGasPrices,D as getEVMTxType,v as getEIP1193SendTransaction,z as getCreateContractTxObject,s as getCreateContract,w as getChecksumAddressFromAsset,b as createCustomEvmApi,r as createContract,k as buildEIP712DomainType,_ as XLayerToolbox,Z as UNIToolbox,Y as SONICToolbox,X as RBHToolbox,W as PLASMAToolbox,$ as OPToolbox,V as MONADToolbox,U as MEGAETHToolbox,n as MAX_APPROVAL,T as MATICToolbox,S as LINEAToolbox,R as HYPEREVMToolbox,Q as GNOToolbox,ca as EthNetwork,E as ETHToolbox,x as ContractAddress,P as CROToolbox,O as CORNToolbox,N as COREToolbox,M as BotanixToolbox,o as BaseEVMToolbox,L as BSCToolbox,K as BERAToolbox,J as BASEToolbox,I as AVAXToolbox,H as AURORAToolbox,G as ARBToolbox,F as ADIToolbox};
1
+ import{a as ca}from"../../chunk-44m22jy1.js";import{$ as _,A as z,B as A,C as B,D as C,E as D,F as E,G as F,H as G,I as H,J as I,K as J,L as K,M as L,N as M,O as N,P as O,Q as P,R as Q,S as R,T as S,U as T,V as U,W as V,X as W,Y as X,Z as Y,_ as Z,aa as $,b as a,ba as aa,c as b,ca as ba,d as c,e as d,f as e,g as f,h as g,i as h,j as i,k as j,l as k,m as l,n as m,o as n,p as o,q as p,r as q,s as r,t as s,u as t,v as u,w as v,x as w,y as x,z as y}from"../../chunk-6b99avsd.js";import"../../chunk-jdh5asaw.js";import"../../chunk-fjyc6m34.js";export{p as validateEVMAddress,m as validateAuthorizations,j as validateAuthorization,f as toHexString,u as toChecksumAddress,i as signAuthorization,l as parseEIP712FromEVMTx,t as isStateChangingCall,B as isEIP7702Transaction,C as isEIP1559Transaction,q as isBrowserProvider,y as getTokenAddress,c as getProviderSync,d as getProvider,g as getNetworkParams,h as getIsEIP1559Compatible,e as getFallbackProvider,ba as getEvmToolboxAsync,aa as getEvmToolbox,a as getEvmApi,A as getEstimateGasPrices,D as getEVMTxType,v as getEIP1193SendTransaction,z as getCreateContractTxObject,s as getCreateContract,w as getChecksumAddressFromAsset,b as createCustomEvmApi,r as createContract,k as buildEIP712DomainType,_ as XLayerToolbox,Z as UNIToolbox,Y as SONICToolbox,X as PLASMAToolbox,$ as OPToolbox,W as MONADToolbox,V as MEGAETHToolbox,n as MAX_APPROVAL,U as MATICToolbox,T as LINEAToolbox,S as HYPEREVMToolbox,R as HOODToolbox,Q as GNOToolbox,ca as EthNetwork,E as ETHToolbox,x as ContractAddress,P as CROToolbox,O as CORNToolbox,N as COREToolbox,M as BotanixToolbox,o as BaseEVMToolbox,L as BSCToolbox,K as BERAToolbox,J as BASEToolbox,I as AVAXToolbox,H as AURORAToolbox,G as ARBToolbox,F as ADIToolbox};