@swapkit/toolboxes 4.14.1 → 4.14.3
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/dist/src/evm/index.cjs +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/types/evm/toolbox/baseEVMToolbox.d.ts.map +1 -1
- package/dist/types/evm/toolbox/evm.d.ts.map +1 -1
- package/dist/types/evm/toolbox/op.d.ts.map +1 -1
- package/dist/types/hypercore/toolbox.d.ts.map +1 -1
- package/dist/types/hypercore/types.d.ts +2 -4
- package/dist/types/hypercore/types.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/src/evm/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Yy=Object.create;var{getPrototypeOf:Zy,defineProperty:O,getOwnPropertyNames:ct,getOwnPropertyDescriptor:$y}=Object,vt=Object.prototype.hasOwnProperty;function ht(t){return this[t]}var Jy,zy,ry=(t,y,u)=>{var n=t!=null&&typeof t==="object";if(n){var l=y?Jy??=new WeakMap:zy??=new WeakMap,b=l.get(t);if(b)return b}u=t!=null?Yy(Zy(t)):{};let M=y||!t||!t.__esModule?O(u,"default",{value:t,enumerable:!0}):u;for(let D of ct(t))if(!vt.call(M,D))O(M,D,{get:ht.bind(t,D),enumerable:!0});if(n)l.set(t,M);return M},ky=(t)=>{var y=(gt??=new WeakMap).get(t),u;if(y)return y;if(y=O({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var n of ct(t))if(!vt.call(y,n))O(y,n,{get:ht.bind(t,n),enumerable:!(u=$y(t,n))||u.enumerable})}return gt.set(t,y),y},gt;var _y=(t)=>t;function jy(t,y){this[t]=_y.bind(null,y)}var et=(t,y)=>{for(var u in y)O(t,u,{get:y[u],enumerable:!0,configurable:!0,set:jy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);function yu(){function t(){let y=Date.now(),u=Qt||y;return Qt=u,y>Qt?y:u+1}return Ny+t().toString(36)}function dt(t){return async function(u,n=!0){let l=await st.SwapKitApi.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:b}=I.getChainConfig(t),M=l.map(({identifier:R,value:q,decimal:G})=>{return new I.AssetValue({decimal:G||b,identifier:R,value:q})});if(!M.some((R)=>R.isGasAsset))return[I.AssetValue.from({chain:t}),...M];return M}}var I,st,Ny,Qt=0;var it=k(()=>{I=require("@swapkit/helpers"),st=require("@swapkit/helpers/api"),Ny=typeof process<"u"&&process.pid?process.pid.toString(36):""});function P(t){return{getBalance:dt(t)}}function Sy(t){return t}var i=k(()=>{it()});function rt(t){return new _.JsonRpcProvider(t)}async function Jt(t,y){return rt(y||await w.getRPCUrl(t))}function C(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function zt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=w.getChainConfig(t);return function(){return t!==w.Chain.Ethereum?{...Vy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function kt(t){return![w.Chain.Adi,w.Chain.Arbitrum,w.Chain.BinanceSmartChain].includes(t)}function Vy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=w.getChainConfig(t);return $t.match(t).with(w.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(w.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(w.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(w.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(w.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(w.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:w.Chain.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function _t(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 ty(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,b)=>{throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${b}`}})};$t.match(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Ky(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!at(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!at(l?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function yy(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 Xt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Yt(t,y){if(t.isTuple()&&t.components){let u=Xt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:Yt(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=Xt(t.name.replace(/s$/,""));return y[n]=u.components.map((l)=>({name:l.name,type:Yt(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function Zt(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,b]of(y.components??[]).entries())n[b.name]=Zt(u[b.name]??t[l],b);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>Zt(n,u??void 0))}return t}function xy({chain:t,abi:y,data:u,to:n}){let b=new _.Interface(y).parseTransaction({data:u});if(!b)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let M={},D=Xt(b.name);M[D]=b.fragment.inputs.map((L)=>({name:L.name,type:Yt(L,M)}));let R={};for(let[L,H]of b.fragment.inputs.entries())R[H.name]=Zt(b.args[L],H);let{chainId:q}=w.getChainConfig(t),G={chainId:Number(q),verifyingContract:_.getAddress(n)},o=yy(G);return{domain:G,message:R,primaryType:D,types:{EIP712Domain:o,...M}}}function jt(t,y){if(!Array.isArray(t)||t.length===0)throw new w.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(ty(n,u),y!==void 0&&n.chainId!==y)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var w,_,$t,at=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ky=(t)=>{try{return typeof t==="string"&&!!_.getAddress(t)}catch{return!1}};var p=k(()=>{w=require("@swapkit/helpers"),_=require("ethers"),$t=require("ts-pattern")});var uy;var ny=k(()=>{uy=[{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=T.Chain.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:Iy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:by({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:my({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:j({chain:t,provider:y}),createTransaction:Nt({chain:t,provider:y,signer:u}),createTransferTx:Nt({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:My({provider:y,signer:u}),estimateGasLimit:Cy({chain:t,provider:y,signer:u}),estimateGasPrices:N({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:gy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:P(t).getBalance,getNetworkParams:zt(t),isApproved:Oy({chain:t,provider:y}),sendTransaction:Dy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:py({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:b,value:M})=>u.signTypedData(l,b,M):void 0,transfer:Py({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return $.getAddress(t),!0}catch{return!1}}function x(t){return t instanceof $.BrowserProvider}function g(t,y,u){return new $.Contract(t,$.Interface.from(y),u)}function Kt({provider:t}){return function(u,n){return new $.Contract(u,$.Interface.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new T.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Fy.includes(u.stateMutability)}function ly(t){return $.getAddress(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new T.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:b,maxFeePerGas:M,maxPriorityFeePerGas:D,...R}=n;return t.send("eth_sendTransaction",[{...R,value:C(BigInt(u||0))}])}}function Ty(t,y){let u=A(t,y);if(u)return $.getAddress(u.toLowerCase());throw new T.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===T.Chain.BinanceSmartChain&&y==="BNB"&&u==="BNB",b=t===T.Chain.Hyperevm&&y==="HYPE"&&u==="HYPE",M=t===n&&y===n&&u===n,D=Ey.includes(t)&&y==="ETH"&&u==="ETH";if(M||l||b||D)return Ft[n];return $.getAddress(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function j({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:b})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(b).filter((M)=>typeof M<"u"))}function N({chain:t,provider:y,isEIP1559Compatible:u=!0}){return St.match(t).with(T.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:b}=await y.getFeeData();if(!l||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Average),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Average)},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(T.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{gasPrice:l},[T.FeeOption.Fast]:{gasPrice:l},[T.FeeOption.Fastest]:{gasPrice:l}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:b,gasPrice:M}=await y.getFeeData();if(u){if(l===null||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:b},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}if(!M)throw new T.SwapKitError("toolbox_evm_no_gas_price");return{[T.FeeOption.Average]:{gasPrice:M},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:b,contractAddress:M,abi:D,funcName:R,funcParams:q=[],txOverrides:G={},feeOption:o=T.FeeOption.Fast}){let L=b||t;if(!M)throw new T.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let H=xt({abi:D,funcName:R});if(H&&x(L)&&u){let Y=j({chain:n,provider:L}),z=G?.from||await u?.getAddress(),J=await Y({abi:D,contractAddress:M,funcName:R,funcParams:q,txOverrides:{...G,from:z}});return F(L)(J)}let Q=g(M,D,L);if(H){if(!u)throw new T.SwapKitError("toolbox_evm_no_signer");let Y=G?.from||await u.getAddress();if(!Y)throw new T.SwapKitError("toolbox_evm_no_signer_address");let z=Q.connect(u),J=N({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:S,maxPriorityFeePerGas:e,gasPrice:E}=(await J())[o],s=await Q.getFunction(R).estimateGas(...q,G),Z=await z[R](...q,{...G,gasLimit:s,gasPrice:E,maxFeePerGas:S,maxPriorityFeePerGas:e,nonce:G?.nonce||await L.getTransactionCount(Y)});return typeof Z?.hash==="string"?Z?.hash:Z}let X=await Q[R]?.(...q);return typeof X?.hash==="string"?X?.hash:X}}function by({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:b}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:V.erc20ABI,contractAddress:n,funcName:"allowance",funcParams:[b,l]})}}function Oy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:b,amount:M=m}){let D=await by({chain:y,provider:t})({assetAddress:n,from:b,spenderAddress:l});return T.SwapKitNumber.fromBigInt(D).gte(T.SwapKitNumber.fromBigInt(BigInt(M)))}}function Iy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:b,spenderAddress:M,feeOptionKey:D=T.FeeOption.Fast,amount:R,gasLimitFallback:q,from:G,nonce:o}){let L=[M,BigInt(R||m)],H=await t?.getAddress()||G,Q={abi:V.erc20ABI,contractAddress:b,funcName:"approve",funcParams:L,signer:t,txOverrides:{from:H}};if(x(u)){let Y=j({chain:n,provider:u}),z=F(u),J=await Y(Q);return z(J)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Q,feeOption:D,funcParams:L,txOverrides:{from:H,gasLimit:q?BigInt(q.toString()):void 0,nonce:o}})}}function Py({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:b,recipient:M,feeOptionKey:D=T.FeeOption.Fast,sender:R,...q}){let{hexlify:G,toUtf8Bytes:o}=await import("ethers"),L=l.getBaseValue("bigint"),H=l.chain,Q=R||await t?.getAddress(),X=Dy({chain:H,isEIP1559Compatible:y,provider:u,signer:t});if(!Q)throw new T.SwapKitError("toolbox_evm_no_from_address");if(l.isGasAsset){let E={...q,data:G(o(b||"")),feeOptionKey:D,from:Q,to:M,value:L};return X(E)}if(!A(l,H))throw new T.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:z,maxPriorityFeePerGas:J,gasPrice:S}=(await N({chain:H,isEIP1559Compatible:y,provider:u})())[D],e=await Nt({chain:H,provider:u,signer:t})({assetValue:l,data:G(o(b||"")),gasPrice:S,maxFeePerGas:z,maxPriorityFeePerGas:J,memo:b,recipient:M,sender:Q});return X(e)}}function My({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:b,funcParams:M=[],txOverrides:D}){if(!n)throw new T.SwapKitError("toolbox_evm_no_contract_address");let R=g(n,l,t);return y?R.connect(y).getFunction(b).estimateGas(...M,D):R.getFunction(b).estimateGas(...M,D)}}function Cy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:b,data:M,sender:D,funcName:R,funcParams:q,txOverrides:G}){let o=n.bigIntValue,L=n.isGasAsset?null:A(n,n.chain);if(L&&R)return My({provider:t,signer:y})({abi:V.erc20ABI,contractAddress:L,funcName:R,funcParams:q,txOverrides:G});let{hexlify:H,toUtf8Bytes:Q}=await import("ethers");return t.estimateGas({data:M?M:b?H(Q(b)):void 0,from:D,to:l,value:o})}}function py({signer:t}){if(!t)return;return(y)=>_t(t,y)}function Dy({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:b=T.FeeOption.Fast,...M}){let{from:D,to:R,data:q,value:G,...o}=M;if(!y)throw new T.SwapKitError("toolbox_evm_no_signer");if(!R)throw new T.SwapKitError("toolbox_evm_no_to_address");let L={...o,data:q||"0x",from:D,to:R,value:BigInt(G||0)};if(x(t))return F(t)(L);let H=D||await y.getAddress(),Q=M.nonce||await t.getTransactionCount(H),X=(await t.getNetwork()).chainId,Y=Ot(L,u);if(Y==="eip7702")jt(L.authorizations||[],X);let z=St.match(Y).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),J={...L,chainId:X,nonce:Q,type:z,...Y==="eip7702"&&{authorizationList:L.authorizations}},S=N({chain:n,isEIP1559Compatible:u,provider:t}),E=Y!=="legacy"&&!(L.maxFeePerGas&&L.maxPriorityFeePerGas)||!L.gasPrice?Object.entries((await S())[b]).reduce((Z,[d,mt])=>({...Z,[d]:C(BigInt(mt))}),{}):{},s;try{s=C(L.gasLimit||await t.estimateGas(J)*11n/10n)}catch(Z){throw new T.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...J,gasLimit:s,...E};try{return(await y.sendTransaction(Z)).hash}catch{let d=await y.signTransaction({...Z,from:H});return(await t.broadcastTransaction(d)).hash}}catch(Z){throw new T.SwapKitError("toolbox_evm_error_sending_transaction",{error:Z})}}}function Nt({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:b,data:M,sender:D,maxFeePerGas:R,maxPriorityFeePerGas:q,gasPrice:G,...o}){let L=n.getBaseValue("bigint"),H=n.chain,Q=D||await y?.getAddress();if(!Q)throw new T.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset(n)){let{hexlify:z,toUtf8Bytes:J}=await import("ethers");return{...o,data:M||z(J(l||"")),from:Q,to:b,value:L}}let X=A(n,H);if(!X)throw new T.SwapKitError("toolbox_evm_no_contract_address");return j({chain:n.chain,provider:t})({abi:V.erc20ABI,contractAddress:X,funcName:"transfer",funcParams:[b,L],txOverrides:{from:Q,gasPrice:G,maxFeePerGas:R,maxPriorityFeePerGas:q}})}}function my({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:b,amount:M,from:D}){let R=await y?.getAddress()||D,q=j({chain:u,provider:t}),G=["bigint","number"].includes(typeof M)?M:M||m;return await q({abi:V.erc20ABI,contractAddress:l,funcName:"approve",funcParams:[b,BigInt(G)],txOverrides:{from:R}})}}function gy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=T.FeeOption.Fast,...b}){let D=await N({chain:u,isEIP1559Compatible:y,provider:t})(),R=await t.estimateGas(b),q=T.AssetValue.from({chain:u}),{gasPrice:G,maxFeePerGas:o,maxPriorityFeePerGas:L}=D[l];if(!y&&G)return q.set(T.SwapKitNumber.fromBigInt(G*R,q.decimal));if(o&&L){let H=(o+L)*R;return q.set(T.SwapKitNumber.fromBigInt(H,q.decimal))}throw new T.SwapKitError("toolbox_evm_no_gas_price")}}var T,V,$,St,m,Fy,Ay,Ft,Ey,a=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!a(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(a(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var r=k(()=>{i();p();T=require("@swapkit/helpers"),V=require("@swapkit/helpers/contracts"),$=require("ethers"),St=require("ts-pattern"),m=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Fy=["payable","nonpayable"];Ay=T.EVMChains.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...Ay,[T.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[T.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Ey=[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Base,T.Chain.Optimism]});function tt(t){let y=W(B.Chain.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",b="aggregate",M=B.FeeOption.Fast){let D=await y.createContractTxObject({abi:uy,contractAddress:l,funcName:b,funcParams:[n]});return y.sendTransaction({...D,feeOptionKey:M})}return{...y,multicall:u}}function W(t){return function({provider:u,...n}){let l=kt(t),b=c.match(n).with({phrase:c.P.string},({phrase:D})=>Ry.HDNodeWallet.fromPhrase(D).connect(u)).with({signer:c.P.any},({signer:D})=>D).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:b})}}var B,Ry,c,yt,ut,nt,lt,Tt,bt,Mt,Ly,Dt,Rt,Lt,wt,Gt,qt,v,Bt,ft,Ht,Ut;var It=k(()=>{ny();p();r();B=require("@swapkit/helpers"),Ry=require("ethers"),c=require("ts-pattern");yt=W(B.Chain.Adi),ut=W(B.Chain.Arbitrum),nt=W(B.Chain.Aurora),lt=W(B.Chain.Avalanche),Tt=W(B.Chain.Base),bt=W(B.Chain.Berachain),Mt=W(B.Chain.BinanceSmartChain),Ly=W(B.Chain.Botanix),Dt=W(B.Chain.Core),Rt=W(B.Chain.Corn),Lt=W(B.Chain.Cronos),wt=W(B.Chain.Gnosis),Gt=W(B.Chain.Hyperevm),qt=W(B.Chain.Polygon),v=W(B.Chain.Sonic),Bt=W(B.Chain.Unichain),ft=W(B.Chain.XLayer),Ht=W(B.Chain.Monad),Ut=W(B.Chain.MegaETH)});var wy;var Gy=k(()=>{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 Wt.Contract(vy,wy,t)}function qy(t){return async function(){let u=Pt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function By(t){return async function({from:u,to:n,nonce:l,...b}){let{Transaction:M}=await import("ethers");if(!n)throw new f.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return M.from({...b,authorizationList:b.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function fy(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function Hy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,b=await t.estimateGas(u);return l*b}}function hy(t){return async function(u){let n=await fy(t)(u)??0n,l=await Hy(t)(u);return n+l}}function ey(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function sy(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),b=await qy(t)(),M=l;if(!(u&&n))throw new f.SwapKitError("toolbox_evm_no_fee_data");return{[f.FeeOption.Average]:{gasPrice:M,l1GasPrice:b,maxFeePerGas:u,maxPriorityFeePerGas:n},[f.FeeOption.Fast]:{gasPrice:f.applyFeeMultiplierToBigInt(M,f.FeeOption.Fast),l1GasPrice:f.applyFeeMultiplierToBigInt(b||0n,f.FeeOption.Fast),maxFeePerGas:u,maxPriorityFeePerGas:f.applyFeeMultiplierToBigInt(n,f.FeeOption.Fast)},[f.FeeOption.Fastest]:{gasPrice:f.applyFeeMultiplierToBigInt(M,f.FeeOption.Fastest),l1GasPrice:f.applyFeeMultiplierToBigInt(b||0n,f.FeeOption.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:f.applyFeeMultiplierToBigInt(n,f.FeeOption.Fastest)}}}catch(u){throw new f.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function ot({provider:t,...y}){let u=h.match(y).with({phrase:h.P.string},({phrase:b})=>Wt.HDNodeWallet.fromPhrase(b).connect(t)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=qy(t);return{...n,estimateGasPrices:sy(t),estimateL1Gas:ey(t),estimateL1GasCost:fy(t),estimateL2GasCost:Hy(t),estimateTotalGasCost:hy(t),getBalance:P(f.Chain.Optimism).getBalance,getL1GasPrice:l}}var f,Wt,h,vy="0x420000000000000000000000000000000000000f";var Ct=k(()=>{i();Gy();r();f=require("@swapkit/helpers"),Wt=require("ethers"),h=require("ts-pattern")});var dy={};et(dy,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>ly,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Wy,getEvmToolbox:()=>pt,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createContract:()=>g,XLayerToolbox:()=>ft,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>ot,MONADToolbox:()=>Ht,MEGAETHToolbox:()=>Ut,MAX_APPROVAL:()=>m,MATICToolbox:()=>qt,HYPEREVMToolbox:()=>Gt,GNOToolbox:()=>wt,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});function pt(t,y){return Uy.match(t).with(U.Chain.Adi,()=>yt(y)).with(U.Chain.Arbitrum,()=>ut(y)).with(U.Chain.Aurora,()=>nt(y)).with(U.Chain.Avalanche,()=>lt(y)).with(U.Chain.Base,()=>Tt(y)).with(U.Chain.Berachain,()=>bt(y)).with(U.Chain.BinanceSmartChain,()=>Mt(y)).with(U.Chain.Botanix,()=>v(y)).with(U.Chain.Core,()=>Dt(y)).with(U.Chain.Corn,()=>Rt(y)).with(U.Chain.Cronos,()=>Lt(y)).with(U.Chain.Ethereum,()=>tt(y)).with(U.Chain.Gnosis,()=>wt(y)).with(U.Chain.Hyperevm,()=>Gt(y)).with(U.Chain.Optimism,()=>ot(y)).with(U.Chain.Polygon,()=>qt(y)).with(U.Chain.Sonic,()=>v(y)).with(U.Chain.Unichain,()=>Bt(y)).with(U.Chain.XLayer,()=>ft(y)).with(U.Chain.Monad,()=>Ht(y)).with(U.Chain.MegaETH,()=>Ut(y)).exhaustive()}async function Wy(t,y){let u={...y,provider:y?.provider||await Jt(t)};return pt(t,u)}var U,Uy;var oy=k(()=>{p();It();Ct();U=require("@swapkit/helpers"),Uy=require("ts-pattern");r();It();Ct()});var Qy;var Xy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(Qy||={})});var iy={};et(iy,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>jt,validateAuthorization:()=>ty,toHexString:()=>C,toChecksumAddress:()=>ly,signAuthorization:()=>_t,parseEIP712FromEVMTx:()=>xy,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>rt,getProvider:()=>Jt,getNetworkParams:()=>zt,getIsEIP1559Compatible:()=>kt,getEvmToolboxAsync:()=>Wy,getEvmToolbox:()=>pt,getEvmApi:()=>P,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createCustomEvmApi:()=>Sy,createContract:()=>g,buildEIP712DomainType:()=>yy,XLayerToolbox:()=>ft,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>ot,MONADToolbox:()=>Ht,MEGAETHToolbox:()=>Ut,MAX_APPROVAL:()=>m,MATICToolbox:()=>qt,HYPEREVMToolbox:()=>Gt,GNOToolbox:()=>wt,EthNetwork:()=>Qy,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});module.exports=ky(iy);var ay=k(()=>{i();p();oy();Xy()});ay();
|
|
1
|
+
var $y=Object.create;var{getPrototypeOf:fy,defineProperty:O,getOwnPropertyNames:ct,getOwnPropertyDescriptor:Jy}=Object,vt=Object.prototype.hasOwnProperty;function ht(t){return this[t]}var zy,oy,ry=(t,y,u)=>{var n=t!=null&&typeof t==="object";if(n){var l=y?zy??=new WeakMap:oy??=new WeakMap,b=l.get(t);if(b)return b}u=t!=null?$y(fy(t)):{};let M=y||!t||!t.__esModule?O(u,"default",{value:t,enumerable:!0}):u;for(let D of ct(t))if(!vt.call(M,D))O(M,D,{get:ht.bind(t,D),enumerable:!0});if(n)l.set(t,M);return M},ky=(t)=>{var y=(gt??=new WeakMap).get(t),u;if(y)return y;if(y=O({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var n of ct(t))if(!vt.call(y,n))O(y,n,{get:ht.bind(t,n),enumerable:!(u=Jy(t,n))||u.enumerable})}return gt.set(t,y),y},gt;var _y=(t)=>t;function jy(t,y){this[t]=_y.bind(null,y)}var st=(t,y)=>{for(var u in y)O(t,u,{get:y[u],enumerable:!0,configurable:!0,set:jy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);function yu(){function t(){let y=Date.now(),u=Yt||y;return Yt=u,y>Yt?y:u+1}return Ny+t().toString(36)}function dt(t){return async function(u,n=!0){let l=await et.SwapKitApi.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:b}=I.getChainConfig(t),M=l.map(({identifier:R,value:G,decimal:q})=>{return new I.AssetValue({decimal:q||b,identifier:R,value:G})});if(!M.some((R)=>R.isGasAsset))return[I.AssetValue.from({chain:t}),...M];return M}}var I,et,Ny,Yt=0;var it=k(()=>{I=require("@swapkit/helpers"),et=require("@swapkit/helpers/api"),Ny=typeof process<"u"&&process.pid?process.pid.toString(36):""});function P(t){return{getBalance:dt(t)}}function Sy(t){return t}var i=k(()=>{it()});function rt(t){return new _.JsonRpcProvider(t)}async function zt(t,y){return rt(y||await w.getRPCUrl(t))}function C(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function ot(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=w.getChainConfig(t);return function(){return t!==w.Chain.Ethereum?{...Vy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function kt(t){return![w.Chain.Adi,w.Chain.Arbitrum,w.Chain.BinanceSmartChain].includes(t)}function Vy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=w.getChainConfig(t);return Jt.match(t).with(w.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(w.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(w.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(w.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(w.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(w.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:w.Chain.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function _t(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 ty(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,b)=>{throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${b}`}})};Jt.match(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Ky(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!at(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!at(l?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function yy(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 $t(t,y){if(t.isTuple()&&t.components){let u=Zt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:$t(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((l)=>({name:l.name,type:$t(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function ft(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,b]of(y.components??[]).entries())n[b.name]=ft(u[b.name]??t[l],b);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>ft(n,u??void 0))}return t}function xy({chain:t,abi:y,data:u,to:n}){let b=new _.Interface(y).parseTransaction({data:u});if(!b)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let M={},D=Zt(b.name);M[D]=b.fragment.inputs.map((L)=>({name:L.name,type:$t(L,M)}));let R={};for(let[L,U]of b.fragment.inputs.entries())R[U.name]=ft(b.args[L],U);let{chainId:G}=w.getChainConfig(t),q={chainId:Number(G),verifyingContract:_.getAddress(n)},X=yy(q);return{domain:q,message:R,primaryType:D,types:{EIP712Domain:X,...M}}}function jt(t,y){if(!Array.isArray(t)||t.length===0)throw new w.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(ty(n,u),y!==void 0&&n.chainId!==y)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var w,_,Jt,at=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ky=(t)=>{try{return typeof t==="string"&&!!_.getAddress(t)}catch{return!1}};var m=k(()=>{w=require("@swapkit/helpers"),_=require("ethers"),Jt=require("ts-pattern")});var uy;var ny=k(()=>{uy=[{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=T.Chain.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:Iy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:by({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:py({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:j({chain:t,provider:y}),createTransaction:Nt({chain:t,provider:y,signer:u}),createTransferTx:Nt({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:My({provider:y,signer:u}),estimateGasLimit:Cy({chain:t,provider:y,signer:u}),estimateGasPrices:N({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:gy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:P(t).getBalance,getNetworkParams:ot(t),isApproved:Oy({chain:t,provider:y}),sendTransaction:Dy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:my({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:b,value:M})=>u.signTypedData(l,b,M):void 0,transfer:Py({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return J.getAddress(t),!0}catch{return!1}}function x(t){return t instanceof J.BrowserProvider}function g(t,y,u){return new J.Contract(t,J.Interface.from(y),u)}function Kt({provider:t}){return function(u,n){return new J.Contract(u,J.Interface.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new T.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Fy.includes(u.stateMutability)}function ly(t){return J.getAddress(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new T.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:b,maxFeePerGas:M,maxPriorityFeePerGas:D,...R}=n;return t.send("eth_sendTransaction",[{...R,value:C(BigInt(u||0))}])}}function Ty(t,y){let u=A(t,y);if(u)return J.getAddress(u.toLowerCase());throw new T.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===T.Chain.BinanceSmartChain&&y==="BNB"&&u==="BNB",b=t===T.Chain.Hyperevm&&y==="HYPE"&&u==="HYPE",M=t===n&&y===n&&u===n,D=Ey.includes(t)&&y==="ETH"&&u==="ETH";if(M||l||b||D)return Ft[n];return J.getAddress(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function j({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:b})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(b).filter((M)=>typeof M<"u"))}function N({chain:t,provider:y,isEIP1559Compatible:u=!0}){return St.match(t).with(T.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:b}=await y.getFeeData();if(!l||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Average),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Average)},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(T.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new T.SwapKitError("toolbox_evm_no_fee_data");let b=l*12n/10n;return{[T.FeeOption.Average]:{gasPrice:b},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:b,gasPrice:M}=await y.getFeeData();if(u){if(l===null||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:b},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}if(!M)throw new T.SwapKitError("toolbox_evm_no_gas_price");return{[T.FeeOption.Average]:{gasPrice:M},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:b,contractAddress:M,abi:D,funcName:R,funcParams:G=[],txOverrides:q={},feeOption:X=T.FeeOption.Fast}){let L=b||t;if(!M)throw new T.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let U=xt({abi:D,funcName:R});if(U&&x(L)&&u){let $=j({chain:n,provider:L}),o=q?.from||await u?.getAddress(),z=await $({abi:D,contractAddress:M,funcName:R,funcParams:G,txOverrides:{...q,from:o}});return F(L)(z)}let Y=g(M,D,L);if(U){if(!u)throw new T.SwapKitError("toolbox_evm_no_signer");let $=q?.from||await u.getAddress();if(!$)throw new T.SwapKitError("toolbox_evm_no_signer_address");let o=Y.connect(u),z=N({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:S,maxPriorityFeePerGas:s,gasPrice:E}=(await z())[X],e=await Y.getFunction(R).estimateGas(...G,q),f=await o[R](...G,{...q,gasLimit:e,gasPrice:E,maxFeePerGas:S,maxPriorityFeePerGas:s,nonce:q?.nonce||await L.getTransactionCount($)});return typeof f?.hash==="string"?f?.hash:f}let Z=await Y[R]?.(...G);return typeof Z?.hash==="string"?Z?.hash:Z}}function by({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:b}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:V.erc20ABI,contractAddress:n,funcName:"allowance",funcParams:[b,l]})}}function Oy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:b,amount:M=p}){let D=await by({chain:y,provider:t})({assetAddress:n,from:b,spenderAddress:l});return T.SwapKitNumber.fromBigInt(D).gte(T.SwapKitNumber.fromBigInt(BigInt(M)))}}function Iy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:b,spenderAddress:M,feeOptionKey:D=T.FeeOption.Fast,amount:R,gasLimitFallback:G,from:q,nonce:X}){let L=[M,BigInt(R||p)],U=await t?.getAddress()||q,Y={abi:V.erc20ABI,contractAddress:b,funcName:"approve",funcParams:L,signer:t,txOverrides:{from:U}};if(x(u)){let $=j({chain:n,provider:u}),o=F(u),z=await $(Y);return o(z)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:D,funcParams:L,txOverrides:{from:U,gasLimit:G?BigInt(G.toString()):void 0,nonce:X}})}}function Py({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:b,recipient:M,feeOptionKey:D=T.FeeOption.Fast,sender:R,...G}){let{hexlify:q,toUtf8Bytes:X}=await import("ethers"),L=l.getBaseValue("bigint"),U=l.chain,Y=R||await t?.getAddress(),Z=Dy({chain:U,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new T.SwapKitError("toolbox_evm_no_from_address");if(l.isGasAsset){let E={...G,data:q(X(b||"")),feeOptionKey:D,from:Y,to:M,value:L};return Z(E)}if(!A(l,U))throw new T.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:o,maxPriorityFeePerGas:z,gasPrice:S}=(await N({chain:U,isEIP1559Compatible:y,provider:u})())[D],s=await Nt({chain:U,provider:u,signer:t})({assetValue:l,data:q(X(b||"")),gasPrice:S,maxFeePerGas:o,maxPriorityFeePerGas:z,memo:b,recipient:M,sender:Y});return Z(s)}}function My({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:b,funcParams:M=[],txOverrides:D}){if(!n)throw new T.SwapKitError("toolbox_evm_no_contract_address");let R=g(n,l,t);return y?R.connect(y).getFunction(b).estimateGas(...M,D):R.getFunction(b).estimateGas(...M,D)}}function Cy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:b,data:M,sender:D,funcName:R,funcParams:G,txOverrides:q}){let X=n.bigIntValue,L=n.isGasAsset?null:A(n,n.chain);if(L&&R)return My({provider:t,signer:y})({abi:V.erc20ABI,contractAddress:L,funcName:R,funcParams:G,txOverrides:q});let{hexlify:U,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:M?M:b?U(Y(b)):void 0,from:D,to:l,value:X})}}function my({signer:t}){if(!t)return;return(y)=>_t(t,y)}function Dy({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:b=T.FeeOption.Fast,...M}){let{from:D,to:R,data:G,value:q,...X}=M;if(!y)throw new T.SwapKitError("toolbox_evm_no_signer");if(!R)throw new T.SwapKitError("toolbox_evm_no_to_address");let L={...X,data:G||"0x",from:D,to:R,value:BigInt(q||0)};if(x(t))return F(t)(L);let U=D||await y.getAddress(),Y=M.nonce||await t.getTransactionCount(U),Z=(await t.getNetwork()).chainId,$=Ot(L,u);if($==="eip7702")jt(L.authorizations||[],Z);let o=St.match($).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),z={...L,chainId:Z,nonce:Y,type:o,...$==="eip7702"&&{authorizationList:L.authorizations}},S=N({chain:n,isEIP1559Compatible:u,provider:t}),E=$!=="legacy"&&!(L.maxFeePerGas&&L.maxPriorityFeePerGas)||!L.gasPrice?Object.entries((await S())[b]).reduce((f,[d,pt])=>({...f,[d]:C(BigInt(pt))}),{}):{},e;try{e=C(L.gasLimit||await t.estimateGas(z)*11n/10n)}catch(f){throw new T.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:f})}try{let f={...z,gasLimit:e,...E};try{return(await y.sendTransaction(f)).hash}catch{let d=await y.signTransaction({...f,from:U});return(await t.broadcastTransaction(d)).hash}}catch(f){throw new T.SwapKitError("toolbox_evm_error_sending_transaction",{error:f})}}}function Nt({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:b,data:M,sender:D,maxFeePerGas:R,maxPriorityFeePerGas:G,gasPrice:q,...X}){let L=n.getBaseValue("bigint"),U=n.chain,Y=D||await y?.getAddress();if(!Y)throw new T.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset(n)){let{hexlify:o,toUtf8Bytes:z}=await import("ethers");return{...X,data:M||o(z(l||"")),from:Y,to:b,value:L}}let Z=A(n,U);if(!Z)throw new T.SwapKitError("toolbox_evm_no_contract_address");return j({chain:n.chain,provider:t})({abi:V.erc20ABI,contractAddress:Z,funcName:"transfer",funcParams:[b,L],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:R,maxPriorityFeePerGas:G}})}}function py({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:b,amount:M,from:D}){let R=await y?.getAddress()||D,G=j({chain:u,provider:t}),q=["bigint","number"].includes(typeof M)?M:M||p;return await G({abi:V.erc20ABI,contractAddress:l,funcName:"approve",funcParams:[b,BigInt(q)],txOverrides:{from:R}})}}function gy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=T.FeeOption.Fast,...b}){let D=await N({chain:u,isEIP1559Compatible:y,provider:t})(),R=await t.estimateGas(b),G=T.AssetValue.from({chain:u}),{gasPrice:q,maxFeePerGas:X,maxPriorityFeePerGas:L}=D[l];if(!y&&q)return G.set(T.SwapKitNumber.fromBigInt(q*R,G.decimal));if(X&&L){let U=(X+L)*R;return G.set(T.SwapKitNumber.fromBigInt(U,G.decimal))}throw new T.SwapKitError("toolbox_evm_no_gas_price")}}var T,V,J,St,p,Fy,Ay,Ft,Ey,a=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!a(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(a(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var r=k(()=>{i();m();T=require("@swapkit/helpers"),V=require("@swapkit/helpers/contracts"),J=require("ethers"),St=require("ts-pattern"),p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Fy=["payable","nonpayable"];Ay=T.EVMChains.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...Ay,[T.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[T.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Ey=[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Base,T.Chain.Optimism]});function tt(t){let y=Q(B.Chain.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",b="aggregate",M=B.FeeOption.Fast){let D=await y.createContractTxObject({abi:uy,contractAddress:l,funcName:b,funcParams:[n]});return y.sendTransaction({...D,feeOptionKey:M})}return{...y,multicall:u}}function Q(t){return function({provider:u,...n}){let l=kt(t),b=c.match(n).with({phrase:c.P.string},({phrase:D})=>Ry.HDNodeWallet.fromPhrase(D).connect(u)).with({signer:c.P.any},({signer:D})=>D).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:b})}}var B,Ry,c,yt,ut,nt,lt,Tt,bt,Mt,Ly,Dt,Rt,Lt,wt,qt,Gt,v,Bt,Ht,Ut,Wt;var It=k(()=>{ny();m();r();B=require("@swapkit/helpers"),Ry=require("ethers"),c=require("ts-pattern");yt=Q(B.Chain.Adi),ut=Q(B.Chain.Arbitrum),nt=Q(B.Chain.Aurora),lt=Q(B.Chain.Avalanche),Tt=Q(B.Chain.Base),bt=Q(B.Chain.Berachain),Mt=Q(B.Chain.BinanceSmartChain),Ly=Q(B.Chain.Botanix),Dt=Q(B.Chain.Core),Rt=Q(B.Chain.Corn),Lt=Q(B.Chain.Cronos),wt=Q(B.Chain.Gnosis),qt=Q(B.Chain.Hyperevm),Gt=Q(B.Chain.Polygon),v=Q(B.Chain.Sonic),Bt=Q(B.Chain.Unichain),Ht=Q(B.Chain.XLayer),Ut=Q(B.Chain.Monad),Wt=Q(B.Chain.MegaETH)});var wy;var qy=k(()=>{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 Qt.Contract(vy,wy,t)}function Gy(t){return async function(){let u=Pt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function By(t){return async function({from:u,to:n,nonce:l,...b}){let{Transaction:M}=await import("ethers");if(!n)throw new H.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return M.from({...b,authorizationList:b.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Hy(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function Uy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,b=await t.estimateGas(u);return l*b}}function hy(t){return async function(u){let n=await Hy(t)(u)??0n,l=await Uy(t)(u);return n+l}}function sy(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function ey(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),b=await Gy(t)(),M=l;if(!(u&&n))throw new H.SwapKitError("toolbox_evm_no_fee_data");return{[H.FeeOption.Average]:{gasPrice:M,l1GasPrice:b,maxFeePerGas:u,maxPriorityFeePerGas:n},[H.FeeOption.Fast]:{gasPrice:H.applyFeeMultiplierToBigInt(M,H.FeeOption.Fast),l1GasPrice:H.applyFeeMultiplierToBigInt(b||0n,H.FeeOption.Fast),maxFeePerGas:u,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(n,H.FeeOption.Fast)},[H.FeeOption.Fastest]:{gasPrice:H.applyFeeMultiplierToBigInt(M,H.FeeOption.Fastest),l1GasPrice:H.applyFeeMultiplierToBigInt(b||0n,H.FeeOption.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(n,H.FeeOption.Fastest)}}}catch(u){throw new H.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function Xt({provider:t,...y}){let u=h.match(y).with({phrase:h.P.string},({phrase:b})=>Qt.HDNodeWallet.fromPhrase(b).connect(t)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=Gy(t);return{...n,estimateGasPrices:ey(t),estimateL1Gas:sy(t),estimateL1GasCost:Hy(t),estimateL2GasCost:Uy(t),estimateTotalGasCost:hy(t),getBalance:P(H.Chain.Optimism).getBalance,getL1GasPrice:l}}var H,Qt,h,vy="0x420000000000000000000000000000000000000f";var Ct=k(()=>{i();qy();r();H=require("@swapkit/helpers"),Qt=require("ethers"),h=require("ts-pattern")});var dy={};st(dy,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>ly,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createContract:()=>g,XLayerToolbox:()=>Ht,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>Xt,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,HYPEREVMToolbox:()=>qt,GNOToolbox:()=>wt,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});function mt(t,y){return Wy.match(t).with(W.Chain.Adi,()=>yt(y)).with(W.Chain.Arbitrum,()=>ut(y)).with(W.Chain.Aurora,()=>nt(y)).with(W.Chain.Avalanche,()=>lt(y)).with(W.Chain.Base,()=>Tt(y)).with(W.Chain.Berachain,()=>bt(y)).with(W.Chain.BinanceSmartChain,()=>Mt(y)).with(W.Chain.Botanix,()=>v(y)).with(W.Chain.Core,()=>Dt(y)).with(W.Chain.Corn,()=>Rt(y)).with(W.Chain.Cronos,()=>Lt(y)).with(W.Chain.Ethereum,()=>tt(y)).with(W.Chain.Gnosis,()=>wt(y)).with(W.Chain.Hyperevm,()=>qt(y)).with(W.Chain.Optimism,()=>Xt(y)).with(W.Chain.Polygon,()=>Gt(y)).with(W.Chain.Sonic,()=>v(y)).with(W.Chain.Unichain,()=>Bt(y)).with(W.Chain.XLayer,()=>Ht(y)).with(W.Chain.Monad,()=>Ut(y)).with(W.Chain.MegaETH,()=>Wt(y)).exhaustive()}async function Qy(t,y){let u={...y,provider:y?.provider||await zt(t)};return mt(t,u)}var W,Wy;var Xy=k(()=>{m();It();Ct();W=require("@swapkit/helpers"),Wy=require("ts-pattern");r();It();Ct()});var Yy;var Zy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(Yy||={})});var iy={};st(iy,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>jt,validateAuthorization:()=>ty,toHexString:()=>C,toChecksumAddress:()=>ly,signAuthorization:()=>_t,parseEIP712FromEVMTx:()=>xy,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>rt,getProvider:()=>zt,getNetworkParams:()=>ot,getIsEIP1559Compatible:()=>kt,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEvmApi:()=>P,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createCustomEvmApi:()=>Sy,createContract:()=>g,buildEIP712DomainType:()=>yy,XLayerToolbox:()=>Ht,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>Xt,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,HYPEREVMToolbox:()=>qt,GNOToolbox:()=>wt,EthNetwork:()=>Yy,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});module.exports=ky(iy);var ay=k(()=>{i();m();Xy();Zy()});ay();
|
package/dist/src/evm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var $y=Object.defineProperty;var Jy=(t)=>t;function zy(t,y){this[t]=Jy.bind(null,y)}var ct=(t,y)=>{for(var u in y)$y(t,u,{get:y[u],enumerable:!0,configurable:!0,set:zy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);var s=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(y,u)=>(typeof require<"u"?require:y)[u]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as vt,getChainConfig as ky}from"@swapkit/helpers";import{SwapKitApi as _y}from"@swapkit/helpers/api";function Hu(){function t(){let y=Date.now(),u=Xt||y;return Xt=u,y>Xt?y:u+1}return jy+t().toString(36)}function ht(t){return async function(u,n=!0){let l=await _y.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:T}=ky(t),b=l.map(({identifier:D,value:G,decimal:w})=>{return new vt({decimal:w||T,identifier:D,value:G})});if(!b.some((D)=>D.isGasAsset))return[vt.from({chain:t}),...b];return b}}var jy,Xt=0;var et=k(()=>{jy=typeof process<"u"&&process.pid?process.pid.toString(36):""});function I(t){return{getBalance:ht(t)}}function Ny(t){return t}var d=k(()=>{et()});import{Chain as f,getChainConfig as Jt,getRPCUrl as Sy,SwapKitError as i}from"@swapkit/helpers";import{getAddress as dt,Interface as Vy,JsonRpcProvider as Ky}from"ethers";import{match as it}from"ts-pattern";function at(t){return new Ky(t)}async function zt(t,y){return at(y||await Sy(t))}function P(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=Jt(t);return function(){return t!==f.Ethereum?{...xy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function _t(t){return![f.Adi,f.Arbitrum,f.BinanceSmartChain].includes(t)}function xy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=Jt(t);return it(t).with(f.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:f.Ethereum}})).with(f.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:f.Ethereum}})).with(f.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(f.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:f.Ethereum}})).with(f.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(f.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(f.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(f.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(f.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:f.Ethereum}})).with(f.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:f.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function jt(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 rt(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,T)=>{throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${T}`}})};it(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Fy(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!st(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!st(l?.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 Yt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Zt(t,y){if(t.isTuple()&&t.components){let u=Yt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:Zt(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=Yt(t.name.replace(/s$/,""));return y[n]=u.components.map((l)=>({name:l.name,type:Zt(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function $t(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,T]of(y.components??[]).entries())n[T.name]=$t(u[T.name]??t[l],T);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>$t(n,u??void 0))}return t}function Ay({chain:t,abi:y,data:u,to:n}){let T=new Vy(y).parseTransaction({data:u});if(!T)throw new i({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=Yt(T.name);b[M]=T.fragment.inputs.map((R)=>({name:R.name,type:Zt(R,b)}));let D={};for(let[R,B]of T.fragment.inputs.entries())D[B.name]=$t(T.args[R],B);let{chainId:G}=Jt(t),w={chainId:Number(G),verifyingContract:dt(n)},o=ty(w);return{domain:w,message:D,primaryType:M,types:{EIP712Domain:o,...b}}}function Nt(t,y){if(!Array.isArray(t)||t.length===0)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(rt(n,u),y!==void 0&&n.chainId!==y)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var st=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Fy=(t)=>{try{return typeof t==="string"&&!!dt(t)}catch{return!1}};var C=()=>{};var yy;var uy=k(()=>{yy=[{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 Ey,applyFeeMultiplierToBigInt as J,Chain as _,EVMChains as Oy,FeeOption as L,isGasAsset as Iy,SwapKitError as q,SwapKitNumber as a}from"@swapkit/helpers";import{erc20ABI as p}from"@swapkit/helpers/contracts";import{BrowserProvider as Py,Contract as ny,getAddress as r,Interface as ly}from"ethers";import{match as Ty}from"ts-pattern";function K({chain:t=_.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:cy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Dy({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:sy({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:N({chain:t,provider:y}),createTransaction:St({chain:t,provider:y,signer:u}),createTransferTx:St({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:Ry({provider:y,signer:u}),estimateGasLimit:hy({chain:t,provider:y,signer:u}),estimateGasPrices:S({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:dy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:I(t).getBalance,getNetworkParams:kt(t),isApproved:gy({chain:t,provider:y}),sendTransaction:Ly({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:ey({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:T,value:b})=>u.signTypedData(l,T,b):void 0,transfer:vy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return r(t),!0}catch{return!1}}function x(t){return t instanceof Py}function g(t,y,u){return new ny(t,ly.from(y),u)}function Kt({provider:t}){return function(u,n){return new ny(u,ly.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new q("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Cy.includes(u.stateMutability)}function by(t){return r(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new q("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:T,maxFeePerGas:b,maxPriorityFeePerGas:M,...D}=n;return t.send("eth_sendTransaction",[{...D,value:P(BigInt(u||0))}])}}function My(t,y){let u=A(t,y);if(u)return r(u.toLowerCase());throw new q("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===_.BinanceSmartChain&&y==="BNB"&&u==="BNB",T=t===_.Hyperevm&&y==="HYPE"&&u==="HYPE",b=t===n&&y===n&&u===n,M=my.includes(t)&&y==="ETH"&&u==="ETH";if(b||l||T||M)return Ft[n];return r(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:T})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(T).filter((b)=>typeof b<"u"))}function S({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Ty(t).with(_.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:T}=await y.getFeeData();if(!l||T===null)throw new q("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:J(l,L.Average),maxPriorityFeePerGas:J(T,L.Average)},[L.Fast]:{maxFeePerGas:J(l,L.Fast),maxPriorityFeePerGas:J(T,L.Fast)},[L.Fastest]:{maxFeePerGas:J(l,L.Fastest),maxPriorityFeePerGas:J(T,L.Fastest)}}}catch(l){throw new q("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(_.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new q("toolbox_evm_no_fee_data");return{[L.Average]:{gasPrice:l},[L.Fast]:{gasPrice:l},[L.Fastest]:{gasPrice:l}}}catch(l){throw new q("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:T,gasPrice:b}=await y.getFeeData();if(u){if(l===null||T===null)throw new q("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:T},[L.Fast]:{maxFeePerGas:J(l,L.Fast),maxPriorityFeePerGas:J(T,L.Fast)},[L.Fastest]:{maxFeePerGas:J(l,L.Fastest),maxPriorityFeePerGas:J(T,L.Fastest)}}}if(!b)throw new q("toolbox_evm_no_gas_price");return{[L.Average]:{gasPrice:b},[L.Fast]:{gasPrice:J(b,L.Fast)},[L.Fastest]:{gasPrice:J(b,L.Fastest)}}}catch(l){throw new q("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:T,contractAddress:b,abi:M,funcName:D,funcParams:G=[],txOverrides:w={},feeOption:o=L.Fast}){let R=T||t;if(!b)throw new q("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=xt({abi:M,funcName:D});if(B&&x(R)&&u){let Y=N({chain:n,provider:R}),z=w?.from||await u?.getAddress(),$=await Y({abi:M,contractAddress:b,funcName:D,funcParams:G,txOverrides:{...w,from:z}});return F(R)($)}let Q=g(b,M,R);if(B){if(!u)throw new q("toolbox_evm_no_signer");let Y=w?.from||await u.getAddress();if(!Y)throw new q("toolbox_evm_no_signer_address");let z=Q.connect(u),$=S({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:V,maxPriorityFeePerGas:v,gasPrice:O}=(await $())[o],h=await Q.getFunction(D).estimateGas(...G,w),Z=await z[D](...G,{...w,gasLimit:h,gasPrice:O,maxFeePerGas:V,maxPriorityFeePerGas:v,nonce:w?.nonce||await R.getTransactionCount(Y)});return typeof Z?.hash==="string"?Z?.hash:Z}let X=await Q[D]?.(...G);return typeof X?.hash==="string"?X?.hash:X}}function Dy({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:T}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:p,contractAddress:n,funcName:"allowance",funcParams:[T,l]})}}function gy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:T,amount:b=m}){let M=await Dy({chain:y,provider:t})({assetAddress:n,from:T,spenderAddress:l});return a.fromBigInt(M).gte(a.fromBigInt(BigInt(b)))}}function cy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:T,spenderAddress:b,feeOptionKey:M=L.Fast,amount:D,gasLimitFallback:G,from:w,nonce:o}){let R=[b,BigInt(D||m)],B=await t?.getAddress()||w,Q={abi:p,contractAddress:T,funcName:"approve",funcParams:R,signer:t,txOverrides:{from:B}};if(x(u)){let Y=N({chain:n,provider:u}),z=F(u),$=await Y(Q);return z($)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Q,feeOption:M,funcParams:R,txOverrides:{from:B,gasLimit:G?BigInt(G.toString()):void 0,nonce:o}})}}function vy({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:T,recipient:b,feeOptionKey:M=L.Fast,sender:D,...G}){let{hexlify:w,toUtf8Bytes:o}=await import("ethers"),R=l.getBaseValue("bigint"),B=l.chain,Q=D||await t?.getAddress(),X=Ly({chain:B,isEIP1559Compatible:y,provider:u,signer:t});if(!Q)throw new q("toolbox_evm_no_from_address");if(l.isGasAsset){let O={...G,data:w(o(T||"")),feeOptionKey:M,from:Q,to:b,value:R};return X(O)}if(!A(l,B))throw new q("toolbox_evm_no_contract_address");let{maxFeePerGas:z,maxPriorityFeePerGas:$,gasPrice:V}=(await S({chain:B,isEIP1559Compatible:y,provider:u})())[M],v=await St({chain:B,provider:u,signer:t})({assetValue:l,data:w(o(T||"")),gasPrice:V,maxFeePerGas:z,maxPriorityFeePerGas:$,memo:T,recipient:b,sender:Q});return X(v)}}function Ry({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:T,funcParams:b=[],txOverrides:M}){if(!n)throw new q("toolbox_evm_no_contract_address");let D=g(n,l,t);return y?D.connect(y).getFunction(T).estimateGas(...b,M):D.getFunction(T).estimateGas(...b,M)}}function hy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:T,data:b,sender:M,funcName:D,funcParams:G,txOverrides:w}){let o=n.bigIntValue,R=n.isGasAsset?null:A(n,n.chain);if(R&&D)return Ry({provider:t,signer:y})({abi:p,contractAddress:R,funcName:D,funcParams:G,txOverrides:w});let{hexlify:B,toUtf8Bytes:Q}=await import("ethers");return t.estimateGas({data:b?b:T?B(Q(T)):void 0,from:M,to:l,value:o})}}function ey({signer:t}){if(!t)return;return(y)=>jt(t,y)}function Ly({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:T=L.Fast,...b}){let{from:M,to:D,data:G,value:w,...o}=b;if(!y)throw new q("toolbox_evm_no_signer");if(!D)throw new q("toolbox_evm_no_to_address");let R={...o,data:G||"0x",from:M,to:D,value:BigInt(w||0)};if(x(t))return F(t)(R);let B=M||await y.getAddress(),Q=b.nonce||await t.getTransactionCount(B),X=(await t.getNetwork()).chainId,Y=Ot(R,u);if(Y==="eip7702")Nt(R.authorizations||[],X);let z=Ty(Y).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),$={...R,chainId:X,nonce:Q,type:z,...Y==="eip7702"&&{authorizationList:R.authorizations}},V=S({chain:n,isEIP1559Compatible:u,provider:t}),O=Y!=="legacy"&&!(R.maxFeePerGas&&R.maxPriorityFeePerGas)||!R.gasPrice?Object.entries((await V())[T]).reduce((Z,[e,gt])=>({...Z,[e]:P(BigInt(gt))}),{}):{},h;try{h=P(R.gasLimit||await t.estimateGas($)*11n/10n)}catch(Z){throw new q("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...$,gasLimit:h,...O};try{return(await y.sendTransaction(Z)).hash}catch{let e=await y.signTransaction({...Z,from:B});return(await t.broadcastTransaction(e)).hash}}catch(Z){throw new q("toolbox_evm_error_sending_transaction",{error:Z})}}}function St({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:T,data:b,sender:M,maxFeePerGas:D,maxPriorityFeePerGas:G,gasPrice:w,...o}){let R=n.getBaseValue("bigint"),B=n.chain,Q=M||await y?.getAddress();if(!Q)throw new q("toolbox_evm_no_from_address");if(Iy(n)){let{hexlify:z,toUtf8Bytes:$}=await import("ethers");return{...o,data:b||z($(l||"")),from:Q,to:T,value:R}}let X=A(n,B);if(!X)throw new q("toolbox_evm_no_contract_address");return N({chain:n.chain,provider:t})({abi:p,contractAddress:X,funcName:"transfer",funcParams:[T,R],txOverrides:{from:Q,gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:G}})}}function sy({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:T,amount:b,from:M}){let D=await y?.getAddress()||M,G=N({chain:u,provider:t}),w=["bigint","number"].includes(typeof b)?b:b||m;return await G({abi:p,contractAddress:l,funcName:"approve",funcParams:[T,BigInt(w)],txOverrides:{from:D}})}}function dy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=L.Fast,...T}){let M=await S({chain:u,isEIP1559Compatible:y,provider:t})(),D=await t.estimateGas(T),G=Ey.from({chain:u}),{gasPrice:w,maxFeePerGas:o,maxPriorityFeePerGas:R}=M[l];if(!y&&w)return G.set(a.fromBigInt(w*D,G.decimal));if(o&&R){let B=(o+R)*D;return G.set(a.fromBigInt(B,G.decimal))}throw new q("toolbox_evm_no_gas_price")}}var m,Cy,py,Ft,my,tt=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!tt(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(tt(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var yt=k(()=>{d();C();m=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Cy=["payable","nonpayable"];py=Oy.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...py,[_.Optimism]:"0x4200000000000000000000000000000000000042",[_.Polygon]:"0x0000000000000000000000000000000000001010"},my=[_.Arbitrum,_.Aurora,_.Base,_.Optimism]});import{Chain as U,FeeOption as iy}from"@swapkit/helpers";import{HDNodeWallet as ay}from"ethers";import{match as ry,P as wy}from"ts-pattern";function ut(t){let y=W(U.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",b=iy.Fast){let M=await y.createContractTxObject({abi:yy,contractAddress:l,funcName:T,funcParams:[n]});return y.sendTransaction({...M,feeOptionKey:b})}return{...y,multicall:u}}function W(t){return function({provider:u,...n}){let l=_t(t),T=ry(n).with({phrase:wy.string},({phrase:M})=>ay.fromPhrase(M).connect(u)).with({signer:wy.any},({signer:M})=>M).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:T})}}var nt,lt,Tt,bt,Mt,Dt,Rt,Gy,Lt,wt,Gt,qt,Bt,ft,c,Ht,Ut,Wt,ot;var It=k(()=>{uy();C();yt();nt=W(U.Adi),lt=W(U.Arbitrum),Tt=W(U.Aurora),bt=W(U.Avalanche),Mt=W(U.Base),Dt=W(U.Berachain),Rt=W(U.BinanceSmartChain),Gy=W(U.Botanix),Lt=W(U.Core),wt=W(U.Corn),Gt=W(U.Cronos),qt=W(U.Gnosis),Bt=W(U.Hyperevm),ft=W(U.Polygon),c=W(U.Sonic),Ht=W(U.Unichain),Ut=W(U.XLayer),Wt=W(U.Monad),ot=W(U.MegaETH)});var qy;var By=k(()=>{qy=[{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"}]});import{applyFeeMultiplierToBigInt as E,Chain as yu,FeeOption as j,SwapKitError as Pt}from"@swapkit/helpers";import{Contract as uu,HDNodeWallet as nu}from"ethers";import{match as lu,P as fy}from"ts-pattern";function Ct(t){return new uu(Tu,qy,t)}function Hy(t){return async function(){let u=Ct(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function Uy(t){return async function({from:u,to:n,nonce:l,...T}){let{Transaction:b}=await import("ethers");if(!n)throw new Pt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...T,authorizationList:T.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Wy(t){return async function(u){let n=Ct(t),l=await Uy(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function oy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,T=await t.estimateGas(u);return l*T}}function bu(t){return async function(u){let n=await Wy(t)(u)??0n,l=await oy(t)(u);return n+l}}function Mu(t){return async function(u){let n=Ct(t),l=await Uy(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function Du(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),T=await Hy(t)(),b=l;if(!(u&&n))throw new Pt("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:b,l1GasPrice:T,maxFeePerGas:u,maxPriorityFeePerGas:n},[j.Fast]:{gasPrice:E(b,j.Fast),l1GasPrice:E(T||0n,j.Fast),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fast)},[j.Fastest]:{gasPrice:E(b,j.Fastest),l1GasPrice:E(T||0n,j.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fastest)}}}catch(u){throw new Pt("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function Qt({provider:t,...y}){let u=lu(y).with({phrase:fy.string},({phrase:T})=>nu.fromPhrase(T).connect(t)).with({signer:fy.any},({signer:T})=>T).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=Hy(t);return{...n,estimateGasPrices:Du(t),estimateL1Gas:Mu(t),estimateL1GasCost:Wy(t),estimateL2GasCost:oy(t),estimateTotalGasCost:bu(t),getBalance:I(yu.Optimism).getBalance,getL1GasPrice:l}}var Tu="0x420000000000000000000000000000000000000f";var pt=k(()=>{d();By();yt()});var Lu={};ct(Lu,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>by,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createContract:()=>g,XLayerToolbox:()=>Ut,UNIToolbox:()=>Ht,SONICToolbox:()=>c,OPToolbox:()=>Qt,MONADToolbox:()=>Wt,MEGAETHToolbox:()=>ot,MAX_APPROVAL:()=>m,MATICToolbox:()=>ft,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>qt,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>Gt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>Gy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});import{Chain as H}from"@swapkit/helpers";import{match as Ru}from"ts-pattern";function mt(t,y){return Ru(t).with(H.Adi,()=>nt(y)).with(H.Arbitrum,()=>lt(y)).with(H.Aurora,()=>Tt(y)).with(H.Avalanche,()=>bt(y)).with(H.Base,()=>Mt(y)).with(H.Berachain,()=>Dt(y)).with(H.BinanceSmartChain,()=>Rt(y)).with(H.Botanix,()=>c(y)).with(H.Core,()=>Lt(y)).with(H.Corn,()=>wt(y)).with(H.Cronos,()=>Gt(y)).with(H.Ethereum,()=>ut(y)).with(H.Gnosis,()=>qt(y)).with(H.Hyperevm,()=>Bt(y)).with(H.Optimism,()=>Qt(y)).with(H.Polygon,()=>ft(y)).with(H.Sonic,()=>c(y)).with(H.Unichain,()=>Ht(y)).with(H.XLayer,()=>Ut(y)).with(H.Monad,()=>Wt(y)).with(H.MegaETH,()=>ot(y)).exhaustive()}async function Qy(t,y){let u={...y,provider:y?.provider||await zt(t)};return mt(t,u)}var Xy=k(()=>{C();It();pt();yt();It();pt()});var Yy;var Zy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(Yy||={})});var wu={};ct(wu,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>Nt,validateAuthorization:()=>rt,toHexString:()=>P,toChecksumAddress:()=>by,signAuthorization:()=>jt,parseEIP712FromEVMTx:()=>Ay,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>at,getProvider:()=>zt,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEvmApi:()=>I,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createCustomEvmApi:()=>Ny,createContract:()=>g,buildEIP712DomainType:()=>ty,XLayerToolbox:()=>Ut,UNIToolbox:()=>Ht,SONICToolbox:()=>c,OPToolbox:()=>Qt,MONADToolbox:()=>Wt,MEGAETHToolbox:()=>ot,MAX_APPROVAL:()=>m,MATICToolbox:()=>ft,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>qt,EthNetwork:()=>Yy,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>Gt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>Gy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});var Gu=k(()=>{d();C();Xy();Zy()});Gu();export{Vt as validateEVMAddress,Nt as validateAuthorizations,rt as validateAuthorization,P as toHexString,by as toChecksumAddress,jt as signAuthorization,Ay as parseEIP712FromEVMTx,xt as isStateChangingCall,tt as isEIP7702Transaction,Et as isEIP1559Transaction,x as isBrowserProvider,A as getTokenAddress,at as getProviderSync,zt as getProvider,kt as getNetworkParams,_t as getIsEIP1559Compatible,Qy as getEvmToolboxAsync,mt as getEvmToolbox,I as getEvmApi,S as getEstimateGasPrices,Ot as getEVMTxType,F as getEIP1193SendTransaction,N as getCreateContractTxObject,Kt as getCreateContract,My as getChecksumAddressFromAsset,Ny as createCustomEvmApi,g as createContract,ty as buildEIP712DomainType,Ut as XLayerToolbox,Ht as UNIToolbox,c as SONICToolbox,Qt as OPToolbox,Wt as MONADToolbox,ot as MEGAETHToolbox,m as MAX_APPROVAL,ft as MATICToolbox,Bt as HYPEREVMToolbox,qt as GNOToolbox,Yy as EthNetwork,ut as ETHToolbox,Ft as ContractAddress,Gt as CROToolbox,wt as CORNToolbox,Lt as COREToolbox,Gy as BotanixToolbox,K as BaseEVMToolbox,Rt as BSCToolbox,Dt as BERAToolbox,Mt as BASEToolbox,bt as AVAXToolbox,Tt as AURORAToolbox,lt as ARBToolbox,nt as ADIToolbox};
|
|
1
|
+
var Jy=Object.defineProperty;var zy=(t)=>t;function oy(t,y){this[t]=zy.bind(null,y)}var ct=(t,y)=>{for(var u in y)Jy(t,u,{get:y[u],enumerable:!0,configurable:!0,set:oy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);var e=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(y,u)=>(typeof require<"u"?require:y)[u]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as vt,getChainConfig as ky}from"@swapkit/helpers";import{SwapKitApi as _y}from"@swapkit/helpers/api";function Uu(){function t(){let y=Date.now(),u=Zt||y;return Zt=u,y>Zt?y:u+1}return jy+t().toString(36)}function ht(t){return async function(u,n=!0){let l=await _y.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:T}=ky(t),b=l.map(({identifier:D,value:q,decimal:w})=>{return new vt({decimal:w||T,identifier:D,value:q})});if(!b.some((D)=>D.isGasAsset))return[vt.from({chain:t}),...b];return b}}var jy,Zt=0;var st=k(()=>{jy=typeof process<"u"&&process.pid?process.pid.toString(36):""});function I(t){return{getBalance:ht(t)}}function Ny(t){return t}var d=k(()=>{st()});import{Chain as H,getChainConfig as zt,getRPCUrl as Sy,SwapKitError as i}from"@swapkit/helpers";import{getAddress as dt,Interface as Vy,JsonRpcProvider as Ky}from"ethers";import{match as it}from"ts-pattern";function at(t){return new Ky(t)}async function ot(t,y){return at(y||await Sy(t))}function P(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=zt(t);return function(){return t!==H.Ethereum?{...xy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function _t(t){return![H.Adi,H.Arbitrum,H.BinanceSmartChain].includes(t)}function xy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=zt(t);return it(t).with(H.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(H.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(H.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(H.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(H.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(H.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:H.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function jt(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 rt(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,T)=>{throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${T}`}})};it(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Fy(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!et(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!et(l?.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 $t(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ft(t,y){if(t.isTuple()&&t.components){let u=$t(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:ft(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=$t(t.name.replace(/s$/,""));return y[n]=u.components.map((l)=>({name:l.name,type:ft(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function Jt(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,T]of(y.components??[]).entries())n[T.name]=Jt(u[T.name]??t[l],T);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>Jt(n,u??void 0))}return t}function Ay({chain:t,abi:y,data:u,to:n}){let T=new Vy(y).parseTransaction({data:u});if(!T)throw new i({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=$t(T.name);b[M]=T.fragment.inputs.map((R)=>({name:R.name,type:ft(R,b)}));let D={};for(let[R,B]of T.fragment.inputs.entries())D[B.name]=Jt(T.args[R],B);let{chainId:q}=zt(t),w={chainId:Number(q),verifyingContract:dt(n)},X=ty(w);return{domain:w,message:D,primaryType:M,types:{EIP712Domain:X,...b}}}function Nt(t,y){if(!Array.isArray(t)||t.length===0)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(rt(n,u),y!==void 0&&n.chainId!==y)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var et=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Fy=(t)=>{try{return typeof t==="string"&&!!dt(t)}catch{return!1}};var C=()=>{};var yy;var uy=k(()=>{yy=[{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 Ey,applyFeeMultiplierToBigInt as $,Chain as _,EVMChains as Oy,FeeOption as L,isGasAsset as Iy,SwapKitError as G,SwapKitNumber as a}from"@swapkit/helpers";import{erc20ABI as m}from"@swapkit/helpers/contracts";import{BrowserProvider as Py,Contract as ny,getAddress as r,Interface as ly}from"ethers";import{match as Ty}from"ts-pattern";function K({chain:t=_.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:cy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Dy({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:ey({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:N({chain:t,provider:y}),createTransaction:St({chain:t,provider:y,signer:u}),createTransferTx:St({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:Ry({provider:y,signer:u}),estimateGasLimit:hy({chain:t,provider:y,signer:u}),estimateGasPrices:S({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:dy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:I(t).getBalance,getNetworkParams:kt(t),isApproved:gy({chain:t,provider:y}),sendTransaction:Ly({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:sy({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:T,value:b})=>u.signTypedData(l,T,b):void 0,transfer:vy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return r(t),!0}catch{return!1}}function x(t){return t instanceof Py}function g(t,y,u){return new ny(t,ly.from(y),u)}function Kt({provider:t}){return function(u,n){return new ny(u,ly.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new G("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Cy.includes(u.stateMutability)}function by(t){return r(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new G("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:T,maxFeePerGas:b,maxPriorityFeePerGas:M,...D}=n;return t.send("eth_sendTransaction",[{...D,value:P(BigInt(u||0))}])}}function My(t,y){let u=A(t,y);if(u)return r(u.toLowerCase());throw new G("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===_.BinanceSmartChain&&y==="BNB"&&u==="BNB",T=t===_.Hyperevm&&y==="HYPE"&&u==="HYPE",b=t===n&&y===n&&u===n,M=py.includes(t)&&y==="ETH"&&u==="ETH";if(b||l||T||M)return Ft[n];return r(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:T})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(T).filter((b)=>typeof b<"u"))}function S({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Ty(t).with(_.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:T}=await y.getFeeData();if(!l||T===null)throw new G("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:$(l,L.Average),maxPriorityFeePerGas:$(T,L.Average)},[L.Fast]:{maxFeePerGas:$(l,L.Fast),maxPriorityFeePerGas:$(T,L.Fast)},[L.Fastest]:{maxFeePerGas:$(l,L.Fastest),maxPriorityFeePerGas:$(T,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(_.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new G("toolbox_evm_no_fee_data");let T=l*12n/10n;return{[L.Average]:{gasPrice:T},[L.Fast]:{gasPrice:$(T,L.Fast)},[L.Fastest]:{gasPrice:$(T,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:T,gasPrice:b}=await y.getFeeData();if(u){if(l===null||T===null)throw new G("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:T},[L.Fast]:{maxFeePerGas:$(l,L.Fast),maxPriorityFeePerGas:$(T,L.Fast)},[L.Fastest]:{maxFeePerGas:$(l,L.Fastest),maxPriorityFeePerGas:$(T,L.Fastest)}}}if(!b)throw new G("toolbox_evm_no_gas_price");return{[L.Average]:{gasPrice:b},[L.Fast]:{gasPrice:$(b,L.Fast)},[L.Fastest]:{gasPrice:$(b,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:T,contractAddress:b,abi:M,funcName:D,funcParams:q=[],txOverrides:w={},feeOption:X=L.Fast}){let R=T||t;if(!b)throw new G("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=xt({abi:M,funcName:D});if(B&&x(R)&&u){let f=N({chain:n,provider:R}),o=w?.from||await u?.getAddress(),z=await f({abi:M,contractAddress:b,funcName:D,funcParams:q,txOverrides:{...w,from:o}});return F(R)(z)}let Y=g(b,M,R);if(B){if(!u)throw new G("toolbox_evm_no_signer");let f=w?.from||await u.getAddress();if(!f)throw new G("toolbox_evm_no_signer_address");let o=Y.connect(u),z=S({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:V,maxPriorityFeePerGas:v,gasPrice:O}=(await z())[X],h=await Y.getFunction(D).estimateGas(...q,w),J=await o[D](...q,{...w,gasLimit:h,gasPrice:O,maxFeePerGas:V,maxPriorityFeePerGas:v,nonce:w?.nonce||await R.getTransactionCount(f)});return typeof J?.hash==="string"?J?.hash:J}let Z=await Y[D]?.(...q);return typeof Z?.hash==="string"?Z?.hash:Z}}function Dy({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:T}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:m,contractAddress:n,funcName:"allowance",funcParams:[T,l]})}}function gy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:T,amount:b=p}){let M=await Dy({chain:y,provider:t})({assetAddress:n,from:T,spenderAddress:l});return a.fromBigInt(M).gte(a.fromBigInt(BigInt(b)))}}function cy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:T,spenderAddress:b,feeOptionKey:M=L.Fast,amount:D,gasLimitFallback:q,from:w,nonce:X}){let R=[b,BigInt(D||p)],B=await t?.getAddress()||w,Y={abi:m,contractAddress:T,funcName:"approve",funcParams:R,signer:t,txOverrides:{from:B}};if(x(u)){let f=N({chain:n,provider:u}),o=F(u),z=await f(Y);return o(z)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:M,funcParams:R,txOverrides:{from:B,gasLimit:q?BigInt(q.toString()):void 0,nonce:X}})}}function vy({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:T,recipient:b,feeOptionKey:M=L.Fast,sender:D,...q}){let{hexlify:w,toUtf8Bytes:X}=await import("ethers"),R=l.getBaseValue("bigint"),B=l.chain,Y=D||await t?.getAddress(),Z=Ly({chain:B,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new G("toolbox_evm_no_from_address");if(l.isGasAsset){let O={...q,data:w(X(T||"")),feeOptionKey:M,from:Y,to:b,value:R};return Z(O)}if(!A(l,B))throw new G("toolbox_evm_no_contract_address");let{maxFeePerGas:o,maxPriorityFeePerGas:z,gasPrice:V}=(await S({chain:B,isEIP1559Compatible:y,provider:u})())[M],v=await St({chain:B,provider:u,signer:t})({assetValue:l,data:w(X(T||"")),gasPrice:V,maxFeePerGas:o,maxPriorityFeePerGas:z,memo:T,recipient:b,sender:Y});return Z(v)}}function Ry({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:T,funcParams:b=[],txOverrides:M}){if(!n)throw new G("toolbox_evm_no_contract_address");let D=g(n,l,t);return y?D.connect(y).getFunction(T).estimateGas(...b,M):D.getFunction(T).estimateGas(...b,M)}}function hy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:T,data:b,sender:M,funcName:D,funcParams:q,txOverrides:w}){let X=n.bigIntValue,R=n.isGasAsset?null:A(n,n.chain);if(R&&D)return Ry({provider:t,signer:y})({abi:m,contractAddress:R,funcName:D,funcParams:q,txOverrides:w});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:b?b:T?B(Y(T)):void 0,from:M,to:l,value:X})}}function sy({signer:t}){if(!t)return;return(y)=>jt(t,y)}function Ly({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:T=L.Fast,...b}){let{from:M,to:D,data:q,value:w,...X}=b;if(!y)throw new G("toolbox_evm_no_signer");if(!D)throw new G("toolbox_evm_no_to_address");let R={...X,data:q||"0x",from:M,to:D,value:BigInt(w||0)};if(x(t))return F(t)(R);let B=M||await y.getAddress(),Y=b.nonce||await t.getTransactionCount(B),Z=(await t.getNetwork()).chainId,f=Ot(R,u);if(f==="eip7702")Nt(R.authorizations||[],Z);let o=Ty(f).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),z={...R,chainId:Z,nonce:Y,type:o,...f==="eip7702"&&{authorizationList:R.authorizations}},V=S({chain:n,isEIP1559Compatible:u,provider:t}),O=f!=="legacy"&&!(R.maxFeePerGas&&R.maxPriorityFeePerGas)||!R.gasPrice?Object.entries((await V())[T]).reduce((J,[s,gt])=>({...J,[s]:P(BigInt(gt))}),{}):{},h;try{h=P(R.gasLimit||await t.estimateGas(z)*11n/10n)}catch(J){throw new G("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...z,gasLimit:h,...O};try{return(await y.sendTransaction(J)).hash}catch{let s=await y.signTransaction({...J,from:B});return(await t.broadcastTransaction(s)).hash}}catch(J){throw new G("toolbox_evm_error_sending_transaction",{error:J})}}}function St({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:T,data:b,sender:M,maxFeePerGas:D,maxPriorityFeePerGas:q,gasPrice:w,...X}){let R=n.getBaseValue("bigint"),B=n.chain,Y=M||await y?.getAddress();if(!Y)throw new G("toolbox_evm_no_from_address");if(Iy(n)){let{hexlify:o,toUtf8Bytes:z}=await import("ethers");return{...X,data:b||o(z(l||"")),from:Y,to:T,value:R}}let Z=A(n,B);if(!Z)throw new G("toolbox_evm_no_contract_address");return N({chain:n.chain,provider:t})({abi:m,contractAddress:Z,funcName:"transfer",funcParams:[T,R],txOverrides:{from:Y,gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:q}})}}function ey({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:T,amount:b,from:M}){let D=await y?.getAddress()||M,q=N({chain:u,provider:t}),w=["bigint","number"].includes(typeof b)?b:b||p;return await q({abi:m,contractAddress:l,funcName:"approve",funcParams:[T,BigInt(w)],txOverrides:{from:D}})}}function dy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=L.Fast,...T}){let M=await S({chain:u,isEIP1559Compatible:y,provider:t})(),D=await t.estimateGas(T),q=Ey.from({chain:u}),{gasPrice:w,maxFeePerGas:X,maxPriorityFeePerGas:R}=M[l];if(!y&&w)return q.set(a.fromBigInt(w*D,q.decimal));if(X&&R){let B=(X+R)*D;return q.set(a.fromBigInt(B,q.decimal))}throw new G("toolbox_evm_no_gas_price")}}var p,Cy,my,Ft,py,tt=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!tt(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(tt(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var yt=k(()=>{d();C();p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Cy=["payable","nonpayable"];my=Oy.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...my,[_.Optimism]:"0x4200000000000000000000000000000000000042",[_.Polygon]:"0x0000000000000000000000000000000000001010"},py=[_.Arbitrum,_.Aurora,_.Base,_.Optimism]});import{Chain as W,FeeOption as iy}from"@swapkit/helpers";import{HDNodeWallet as ay}from"ethers";import{match as ry,P as wy}from"ts-pattern";function ut(t){let y=Q(W.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",b=iy.Fast){let M=await y.createContractTxObject({abi:yy,contractAddress:l,funcName:T,funcParams:[n]});return y.sendTransaction({...M,feeOptionKey:b})}return{...y,multicall:u}}function Q(t){return function({provider:u,...n}){let l=_t(t),T=ry(n).with({phrase:wy.string},({phrase:M})=>ay.fromPhrase(M).connect(u)).with({signer:wy.any},({signer:M})=>M).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:T})}}var nt,lt,Tt,bt,Mt,Dt,Rt,qy,Lt,wt,qt,Gt,Bt,Ht,c,Ut,Wt,Qt,Xt;var It=k(()=>{uy();C();yt();nt=Q(W.Adi),lt=Q(W.Arbitrum),Tt=Q(W.Aurora),bt=Q(W.Avalanche),Mt=Q(W.Base),Dt=Q(W.Berachain),Rt=Q(W.BinanceSmartChain),qy=Q(W.Botanix),Lt=Q(W.Core),wt=Q(W.Corn),qt=Q(W.Cronos),Gt=Q(W.Gnosis),Bt=Q(W.Hyperevm),Ht=Q(W.Polygon),c=Q(W.Sonic),Ut=Q(W.Unichain),Wt=Q(W.XLayer),Qt=Q(W.Monad),Xt=Q(W.MegaETH)});var Gy;var By=k(()=>{Gy=[{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"}]});import{applyFeeMultiplierToBigInt as E,Chain as yu,FeeOption as j,SwapKitError as Pt}from"@swapkit/helpers";import{Contract as uu,HDNodeWallet as nu}from"ethers";import{match as lu,P as Hy}from"ts-pattern";function Ct(t){return new uu(Tu,Gy,t)}function Uy(t){return async function(){let u=Ct(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function Wy(t){return async function({from:u,to:n,nonce:l,...T}){let{Transaction:b}=await import("ethers");if(!n)throw new Pt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...T,authorizationList:T.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Qy(t){return async function(u){let n=Ct(t),l=await Wy(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function Xy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,T=await t.estimateGas(u);return l*T}}function bu(t){return async function(u){let n=await Qy(t)(u)??0n,l=await Xy(t)(u);return n+l}}function Mu(t){return async function(u){let n=Ct(t),l=await Wy(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function Du(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),T=await Uy(t)(),b=l;if(!(u&&n))throw new Pt("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:b,l1GasPrice:T,maxFeePerGas:u,maxPriorityFeePerGas:n},[j.Fast]:{gasPrice:E(b,j.Fast),l1GasPrice:E(T||0n,j.Fast),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fast)},[j.Fastest]:{gasPrice:E(b,j.Fastest),l1GasPrice:E(T||0n,j.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fastest)}}}catch(u){throw new Pt("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function Yt({provider:t,...y}){let u=lu(y).with({phrase:Hy.string},({phrase:T})=>nu.fromPhrase(T).connect(t)).with({signer:Hy.any},({signer:T})=>T).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=Uy(t);return{...n,estimateGasPrices:Du(t),estimateL1Gas:Mu(t),estimateL1GasCost:Qy(t),estimateL2GasCost:Xy(t),estimateTotalGasCost:bu(t),getBalance:I(yu.Optimism).getBalance,getL1GasPrice:l}}var Tu="0x420000000000000000000000000000000000000f";var mt=k(()=>{d();By();yt()});var Lu={};ct(Lu,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>by,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Yy,getEvmToolbox:()=>pt,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createContract:()=>g,XLayerToolbox:()=>Wt,UNIToolbox:()=>Ut,SONICToolbox:()=>c,OPToolbox:()=>Yt,MONADToolbox:()=>Qt,MEGAETHToolbox:()=>Xt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Gt,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>qt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>qy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});import{Chain as U}from"@swapkit/helpers";import{match as Ru}from"ts-pattern";function pt(t,y){return Ru(t).with(U.Adi,()=>nt(y)).with(U.Arbitrum,()=>lt(y)).with(U.Aurora,()=>Tt(y)).with(U.Avalanche,()=>bt(y)).with(U.Base,()=>Mt(y)).with(U.Berachain,()=>Dt(y)).with(U.BinanceSmartChain,()=>Rt(y)).with(U.Botanix,()=>c(y)).with(U.Core,()=>Lt(y)).with(U.Corn,()=>wt(y)).with(U.Cronos,()=>qt(y)).with(U.Ethereum,()=>ut(y)).with(U.Gnosis,()=>Gt(y)).with(U.Hyperevm,()=>Bt(y)).with(U.Optimism,()=>Yt(y)).with(U.Polygon,()=>Ht(y)).with(U.Sonic,()=>c(y)).with(U.Unichain,()=>Ut(y)).with(U.XLayer,()=>Wt(y)).with(U.Monad,()=>Qt(y)).with(U.MegaETH,()=>Xt(y)).exhaustive()}async function Yy(t,y){let u={...y,provider:y?.provider||await ot(t)};return pt(t,u)}var Zy=k(()=>{C();It();mt();yt();It();mt()});var $y;var fy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})($y||={})});var wu={};ct(wu,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>Nt,validateAuthorization:()=>rt,toHexString:()=>P,toChecksumAddress:()=>by,signAuthorization:()=>jt,parseEIP712FromEVMTx:()=>Ay,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>at,getProvider:()=>ot,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>Yy,getEvmToolbox:()=>pt,getEvmApi:()=>I,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createCustomEvmApi:()=>Ny,createContract:()=>g,buildEIP712DomainType:()=>ty,XLayerToolbox:()=>Wt,UNIToolbox:()=>Ut,SONICToolbox:()=>c,OPToolbox:()=>Yt,MONADToolbox:()=>Qt,MEGAETHToolbox:()=>Xt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Gt,EthNetwork:()=>$y,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>qt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>qy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});var qu=k(()=>{d();C();Zy();fy()});qu();export{Vt as validateEVMAddress,Nt as validateAuthorizations,rt as validateAuthorization,P as toHexString,by as toChecksumAddress,jt as signAuthorization,Ay as parseEIP712FromEVMTx,xt as isStateChangingCall,tt as isEIP7702Transaction,Et as isEIP1559Transaction,x as isBrowserProvider,A as getTokenAddress,at as getProviderSync,ot as getProvider,kt as getNetworkParams,_t as getIsEIP1559Compatible,Yy as getEvmToolboxAsync,pt as getEvmToolbox,I as getEvmApi,S as getEstimateGasPrices,Ot as getEVMTxType,F as getEIP1193SendTransaction,N as getCreateContractTxObject,Kt as getCreateContract,My as getChecksumAddressFromAsset,Ny as createCustomEvmApi,g as createContract,ty as buildEIP712DomainType,Wt as XLayerToolbox,Ut as UNIToolbox,c as SONICToolbox,Yt as OPToolbox,Qt as MONADToolbox,Xt as MEGAETHToolbox,p as MAX_APPROVAL,Ht as MATICToolbox,Bt as HYPEREVMToolbox,Gt as GNOToolbox,$y as EthNetwork,ut as ETHToolbox,Ft as ContractAddress,qt as CROToolbox,wt as CORNToolbox,Lt as COREToolbox,qy as BotanixToolbox,K as BaseEVMToolbox,Rt as BSCToolbox,Dt as BERAToolbox,Mt as BASEToolbox,bt as AVAXToolbox,Tt as AURORAToolbox,lt as ARBToolbox,nt as ADIToolbox};
|