@swapkit/toolboxes 4.1.8 → 4.1.10
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 +2 -2
- package/dist/src/evm/index.cjs.map +3 -3
- package/dist/src/evm/index.js +2 -2
- package/dist/src/evm/index.js.map +3 -3
- package/dist/src/index.cjs +3 -3
- package/dist/src/index.cjs.map +3 -3
- package/dist/src/index.js +3 -3
- package/dist/src/index.js.map +3 -3
- package/package.json +3 -3
package/dist/src/evm/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var on=Object.create;var{getPrototypeOf:un,defineProperty:V,getOwnPropertyNames:Jt,getOwnPropertyDescriptor:yn}=Object,kt=Object.prototype.hasOwnProperty;var X=(t,o,n)=>{n=t!=null?on(un(t)):{};let u=o||!t||!t.__esModule?V(n,"default",{value:t,enumerable:!0}):n;for(let y of Jt(t))if(!kt.call(u,y))V(u,y,{get:()=>t[y],enumerable:!0});return u},zt=new WeakMap,en=(t)=>{var o=zt.get(t),n;if(o)return o;if(o=V({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")Jt(t).map((u)=>!kt.call(o,u)&&V(o,u,{get:()=>t[u],enumerable:!(n=yn(t,u))||n.enumerable}));return zt.set(t,o),o};var Nt=(t,o)=>{for(var n in o)V(t,n,{get:o[n],enumerable:!0,configurable:!0,set:(u)=>o[n]=()=>u})};var h=(t,o)=>()=>(t&&(o=t(t=0)),o);function kn(){function t(){let o=Date.now(),n=Mt||o;return Mt=n,o>Mt?o:n+1}return ln+t().toString(36)}function Wt(t){return async function(n,u=!0){let y=await Xt.SwapKitApi.getChainBalance({address:n,chain:t,scamFilter:u}),{baseDecimal:l}=F.getChainConfig(t);return y.map(({identifier:a,value:b,decimal:m})=>{return new F.AssetValue({decimal:m||l,identifier:a,value:b})})}}var F,Xt,ln,Mt=0;var Yt=h(()=>{F=require("@swapkit/helpers"),Xt=require("@swapkit/helpers/api"),ln=typeof process<"u"&&process.pid?process.pid.toString(36):""});function S(t){let o=O.SKConfig.get("apis")[t];if(o)return O.warnOnce({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),o;return mn(t)}function an(t){return t}function mn(t){return{getBalance:Wt(t)}}var O;var v=h(()=>{Yt();O=require("@swapkit/helpers")});async function J(t,o){let{JsonRpcProvider:n}=await import("ethers");return new n(o||await s.getRPCUrl(t))}function _(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function ft(t){let{explorerUrl:o,chainId:n,rpcUrls:u}=s.getChainConfig(t);return()=>t===s.Chain.Ethereum?void 0:{...bn({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:u}}function Rt(t){return![s.Chain.Arbitrum,s.Chain.BinanceSmartChain].includes(t)}function bn({chain:t}){let{baseDecimal:o}=s.getChainConfig(t);switch(t){case s.Chain.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:t}};case s.Chain.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}};case s.Chain.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}};case s.Chain.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}};case s.Chain.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:s.Chain.Polygon}};default:throw new s.SwapKitError("toolbox_evm_not_supported",{chain:t})}}var s;var W=h(()=>{s=require("@swapkit/helpers")});var $t;var Qt=h(()=>{$t=[{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 $({chain:t=e.Chain.Ethereum,provider:o,signer:n,isEIP1559Compatible:u=!0}){return{approve:wn({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),approvedAmount:St({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:Gt({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),createApprovalTx:Rn({chain:t,provider:o,signer:n}),createContract:Ct({chain:t,provider:o}),createContractTxObject:k({chain:t,provider:o}),createTransaction:Bt({chain:t,provider:o,signer:n}),createTransferTx:Bt({chain:t,provider:o,signer:n}),EIP1193SendTransaction:Z(o),estimateCall:_t({provider:o,signer:n}),estimateGasLimit:Mn({chain:t,provider:o,signer:n}),estimateGasPrices:N({chain:t,isEIP1559Compatible:u,provider:o}),estimateTransactionFee:Bn({chain:t,isEIP1559Compatible:u,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},isApproved:xn({chain:t,provider:o}),sendTransaction:jt({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),signMessage:n?.signMessage,transfer:cn({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),validateAddress:(y)=>Dt({address:y})}}function Dt({address:t}){try{return U.getAddress(t),!0}catch{return!1}}function Q(t){return t instanceof U.BrowserProvider}function A(t,o,n){return new U.Contract(t,U.Interface.from(o),n)}function Ct({provider:t}){return function(n,u){return new U.Contract(n,U.Interface.from(u),t)}}function Ut({abi:t,funcName:o}){let n=t.find((u)=>u.name===o);if(!n)throw new e.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&Tn.includes(n.stateMutability)}function Et(t){return U.getAddress(t)}function Z(t){return function({value:n,...u}){if(!Q(t))throw new e.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:y,gasPrice:l,maxFeePerGas:a,maxPriorityFeePerGas:b,...m}=u;return t.send("eth_sendTransaction",[{...m,value:_(BigInt(n||0))}])}}function Vt(t,o){let n=E(t,o);if(n)return U.getAddress(n.toLowerCase());throw new e.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function E({chain:t,symbol:o,ticker:n},u){try{let y=t===e.Chain.BinanceSmartChain&&o==="BNB"&&n==="BNB",l=t===u&&o===u&&n===u,a=sn.includes(t)&&o==="ETH"&&n==="ETH";if(l||y||a)return Lt[u];return U.getAddress(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function k({provider:t}){return async({contractAddress:o,abi:n,funcName:u,funcParams:y=[],txOverrides:l})=>A(o,n,t).getFunction(u).populateTransaction(...y.concat(l).filter((a)=>typeof a<"u"))}function N({chain:t,provider:o,isEIP1559Compatible:n=!0}){return Zt.match(t).with(e.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:y,maxPriorityFeePerGas:l}=await o.getFeeData();if(!y||l===null)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Average),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Average)},[e.FeeOption.Fast]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fast),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fastest),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fastest)}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).with(e.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:y}=await o.getFeeData();if(!y)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{gasPrice:y},[e.FeeOption.Fast]:{gasPrice:y},[e.FeeOption.Fastest]:{gasPrice:y}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:l,gasPrice:a}=await o.getFeeData();if(n){if(y===null||l===null)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:l},[e.FeeOption.Fast]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fast),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fastest),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fastest)}}}if(!a)throw new e.SwapKitError("toolbox_evm_no_gas_price");return{[e.FeeOption.Average]:{gasPrice:a},[e.FeeOption.Fast]:{gasPrice:e.applyFeeMultiplierToBigInt(a,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{gasPrice:e.applyFeeMultiplierToBigInt(a,e.FeeOption.Fastest)}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}})}function Gt({provider:t,isEIP1559Compatible:o,signer:n,chain:u}){return async function({callProvider:l,contractAddress:a,abi:b,funcName:m,funcParams:w=[],txOverrides:x={},feeOption:B=e.FeeOption.Fast}){let p=l||t;if(!a)throw new e.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let i=Ut({abi:b,funcName:m});if(i&&Q(p)&&n){let L=k({chain:u,provider:p}),G=x?.from||await n?.getAddress(),H=await L({abi:b,contractAddress:a,funcName:m,funcParams:w,txOverrides:{...x,from:G}});return Z(p)(H)}let f=A(a,b,p);if(i){if(!n)throw new e.SwapKitError("toolbox_evm_no_signer");let L=x?.from||await n.getAddress();if(!L)throw new e.SwapKitError("toolbox_evm_no_signer_address");let G=f.connect(n),H=N({chain:u,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:z,maxPriorityFeePerGas:C,gasPrice:q}=(await H())[B],I=await f.getFunction(m).estimateGas(...w,x),it=await G[m](...w,{...x,gasLimit:I,gasPrice:q,maxFeePerGas:z,maxPriorityFeePerGas:C,nonce:x?.nonce||await p.getTransactionCount(L)});return typeof it?.hash==="string"?it?.hash:it}let D=await f[m]?.(...w);return typeof D?.hash==="string"?D?.hash:D}}function St({provider:t,chain:o}){return function({assetAddress:u,spenderAddress:y,from:l}){return Gt({chain:o,isEIP1559Compatible:!0,provider:t})({abi:Y.erc20ABI,contractAddress:u,funcName:"allowance",funcParams:[l,y]})}}function xn({provider:t,chain:o}){return async function({assetAddress:u,spenderAddress:y,from:l,amount:a=j}){let b=await St({chain:o,provider:t})({assetAddress:u,from:l,spenderAddress:y});return e.SwapKitNumber.fromBigInt(b).gte(e.SwapKitNumber.fromBigInt(BigInt(a)))}}function wn({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:u}){return async function({assetAddress:l,spenderAddress:a,feeOptionKey:b=e.FeeOption.Fast,amount:m,gasLimitFallback:w,from:x,nonce:B}){let p=[a,BigInt(m||j)],i=await t?.getAddress()||x,f={abi:Y.erc20ABI,contractAddress:l,funcName:"approve",funcParams:p,signer:t,txOverrides:{from:i}};if(Q(n)){let L=k({chain:u,provider:n}),G=Z(n),H=await L(f);return G(H)}return Gt({chain:u,isEIP1559Compatible:o,provider:n,signer:t})({...f,feeOption:b,funcParams:p,txOverrides:{from:i,gasLimit:w?BigInt(w.toString()):void 0,nonce:B}})}}function cn({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:y,memo:l,recipient:a,feeOptionKey:b=e.FeeOption.Fast,sender:m,...w}){let{hexlify:x,toUtf8Bytes:B}=await import("ethers"),p=y.getBaseValue("bigint"),i=y.chain,f=m||await t?.getAddress(),D=jt({chain:i,isEIP1559Compatible:o,provider:n,signer:t});if(!f)throw new e.SwapKitError("toolbox_evm_no_from_address");if(y.isGasAsset){let q={...w,data:x(B(l||"")),feeOptionKey:b,from:f,to:a,value:p};return D(q)}if(!E(y,i))throw new e.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:G,maxPriorityFeePerGas:H,gasPrice:z}=(await N({chain:i,isEIP1559Compatible:o,provider:n})())[b],C=await Bt({chain:i,provider:n,signer:t})({assetValue:y,data:x(B(l||"")),gasPrice:z,maxFeePerGas:G,maxPriorityFeePerGas:H,memo:l,recipient:a,sender:f});return D(C)}}function _t({provider:t,signer:o}){return function({contractAddress:u,abi:y,funcName:l,funcParams:a=[],txOverrides:b}){if(!u)throw new e.SwapKitError("toolbox_evm_no_contract_address");let m=A(u,y,t);return o?m.connect(o).getFunction(l).estimateGas(...a,b):m.getFunction(l).estimateGas(...a,b)}}function Mn({provider:t,signer:o}){return async function({assetValue:u,recipient:y,memo:l,data:a,sender:b,funcName:m,funcParams:w,txOverrides:x}){let B=u.bigIntValue,p=u.isGasAsset?null:E(u,u.chain);if(p&&m)return _t({provider:t,signer:o})({abi:Y.erc20ABI,contractAddress:p,funcName:m,funcParams:w,txOverrides:x});let{hexlify:i,toUtf8Bytes:f}=await import("ethers");return t.estimateGas({data:a?a:l?i(f(l)):void 0,from:b,to:y,value:B})}}function jt({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:u}){return async function({feeOptionKey:l=e.FeeOption.Fast,...a}){let{from:b,to:m,data:w,value:x,...B}=a;if(!o)throw new e.SwapKitError("toolbox_evm_no_signer");if(!m)throw new e.SwapKitError("toolbox_evm_no_to_address");let p={...B,data:w||"0x",from:b,to:m,value:BigInt(x||0)};if(Q(t))return Z(t)(p);let i=b||await o.getAddress(),f=a.nonce||await t.getTransactionCount(i),D=(await t.getNetwork()).chainId,L=fn(p)||n,G=N({chain:u,isEIP1559Compatible:n,provider:t}),H=L&&!(p.maxFeePerGas&&p.maxPriorityFeePerGas)||!p.gasPrice?Object.entries((await G())[l]).reduce((C,[q,I])=>({...C,[q]:_(BigInt(I))}),{}):{},z;try{z=_(p.gasLimit||await t.estimateGas(p)*11n/10n)}catch(C){throw new e.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:C})}try{let C={...p,chainId:D,gasLimit:z,nonce:f,type:L?2:0,...H};try{return(await o.sendTransaction(C)).hash}catch{let q=await o.signTransaction({...C,from:i});return(await t.broadcastTransaction(q)).hash}}catch(C){throw new e.SwapKitError("toolbox_evm_error_sending_transaction",{error:C})}}}function Bt({provider:t,signer:o}){return async function({assetValue:u,memo:y,recipient:l,data:a,sender:b,maxFeePerGas:m,maxPriorityFeePerGas:w,gasPrice:x,...B}){let p=u.getBaseValue("bigint"),i=u.chain,f=b||await o?.getAddress();if(!f)throw new e.SwapKitError("toolbox_evm_no_from_address");if(e.isGasAsset(u)){let{hexlify:G,toUtf8Bytes:H}=await import("ethers");return{...B,data:a||G(H(y||"")),from:f,to:l,value:p}}let D=E(u,i);if(!D)throw new e.SwapKitError("toolbox_evm_no_contract_address");return k({chain:u.chain,provider:t})({abi:Y.erc20ABI,contractAddress:D,funcName:"transfer",funcParams:[l,p],txOverrides:{from:f,gasPrice:x,maxFeePerGas:m,maxPriorityFeePerGas:w}})}}function Rn({provider:t,signer:o,chain:n}){return async function({assetAddress:y,spenderAddress:l,amount:a,from:b}){let m=await o?.getAddress()||b,w=k({chain:n,provider:t}),x=["bigint","number"].includes(typeof a)?a:a||j;return await w({abi:Y.erc20ABI,contractAddress:y,funcName:"approve",funcParams:[l,BigInt(x)],txOverrides:{from:m}})}}function Bn({provider:t,isEIP1559Compatible:o=!0}){return async function({feeOption:u=e.FeeOption.Fast,chain:y,...l}){let b=await N({chain:y,isEIP1559Compatible:o,provider:t})(),m=await t.estimateGas(l),w=e.AssetValue.from({chain:y}),{gasPrice:x,maxFeePerGas:B,maxPriorityFeePerGas:p}=b[u];if(!o&&x)return w.set(e.SwapKitNumber.fromBigInt(x*m,w.decimal));if(B&&p){let i=(B+p)*m;return w.set(e.SwapKitNumber.fromBigInt(i,w.decimal))}throw new e.SwapKitError("toolbox_evm_no_gas_price")}}var e,Y,U,Zt,j,Tn,pn,Lt,sn,fn=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;var d=h(()=>{W();e=require("@swapkit/helpers"),Y=require("@swapkit/helpers/contracts"),U=require("ethers"),Zt=require("ts-pattern"),j=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Tn=["payable","nonpayable"];pn=e.EVMChains.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),Lt={...pn,[e.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[e.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},sn=[e.Chain.Arbitrum,e.Chain.Aurora,e.Chain.Base,e.Chain.Optimism]});async function r({provider:t,...o}){let n=await R(c.Chain.Ethereum)({provider:t,...o});async function u(y,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",a="aggregate",b=c.FeeOption.Fast){let m=await n.createContractTxObject({abi:$t,contractAddress:l,funcName:a,funcParams:[y]});return n.sendTransaction({...m,feeOptionKey:b})}return{...n,multicall:u}}function R(t){return async function({provider:n,...u}){let{HDNodeWallet:y}=await import("ethers"),l=await c.getRPCUrl(t),a=n||await J(t,l),b=Rt(t),m=K.match(u).with({phrase:K.P.string},({phrase:x})=>y.fromPhrase(x).connect(a)).with({signer:K.P.any},({signer:x})=>x).otherwise(()=>{return});return{...$({chain:t,isEIP1559Compatible:b,provider:a,signer:m}),getBalance:S(t).getBalance,getNetworkParams:ft(t)}}}var c,K,tt,nt,ot,ut,yt,et,At,lt,at,mt,bt,Tt,pt,P,st,xt;var Ht=h(()=>{v();Qt();W();d();c=require("@swapkit/helpers"),K=require("ts-pattern");tt=R(c.Chain.Arbitrum),nt=R(c.Chain.Aurora),ot=R(c.Chain.Avalanche),ut=R(c.Chain.Base),yt=R(c.Chain.Berachain),et=R(c.Chain.BinanceSmartChain),At=R(c.Chain.Botanix),lt=R(c.Chain.Core),at=R(c.Chain.Corn),mt=R(c.Chain.Cronos),bt=R(c.Chain.Gnosis),Tt=R(c.Chain.Hyperevm),pt=R(c.Chain.Polygon),P=R(c.Chain.Sonic),st=R(c.Chain.Unichain),xt=R(c.Chain.XLayer)});var Kt;var Pt=h(()=>{Kt=[{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 ht(t){return new wt.Contract(Cn,Kt,t)}function gt(t){return async function(){let n=ht(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function It(t){return async function({from:n,to:u,nonce:y,...l}){let{Transaction:a}=await import("ethers");if(!u)throw new T.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return a.from({...l,authorizationList:l.authorizationList,nonce:y?y:n?await t.getTransactionCount(n):0,to:u}).serialized}}function Ft(t){return async function(n){let u=ht(t),y=await It(t)(n);if(u&&"getL1Fee"in u)return u.getL1Fee(y)}}function Ot(t){return async function(n){let u=await t.send("eth_gasPrice",[]),y=await t.estimateGas(n);return u.mul(y)}}function Un(t){return async function(n){let u=await Ft(t)(n),y=await Ot(t)(n);return u.add(y)}}function Ln(t){return async function(n){let u=ht(t),y=await It(t)(n);if(u&&"getL1GasUsed"in u)return u.getL1GasUsed(y)}}function Gn(){let{baseDecimal:t,chainId:o,explorerUrl:n,name:u,rpcUrls:y}=T.getChainConfig(T.Chain.Optimism);return{blockExplorerUrls:[n],chainId:o,chainName:u,nativeCurrency:{decimals:t,name:"Ethereum",symbol:T.Chain.Ethereum},rpcUrls:y}}async function Hn(t){try{let{maxFeePerGas:o,maxPriorityFeePerGas:n,gasPrice:u}=await t.getFeeData(),y=await gt(t)(),l=u;if(!(o&&n))throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{gasPrice:l,l1GasPrice:y,maxFeePerGas:o,maxPriorityFeePerGas:n},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),l1GasPrice:T.applyFeeMultiplierToBigInt(y||0n,T.FeeOption.Fast),maxFeePerGas:o,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(n,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),l1GasPrice:T.applyFeeMultiplierToBigInt(y||0n,T.FeeOption.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(n,T.FeeOption.Fastest)}}}catch(o){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}async function ct({provider:t,...o}){let n=T.Chain.Optimism,u=await T.getRPCUrl(n),y=t||await J(n,u),l=g.match(o).with({phrase:g.P.string},({phrase:m})=>wt.HDNodeWallet.fromPhrase(m).connect(y)).with({signer:g.P.any},({signer:m})=>m).otherwise(()=>{return}),a=$({provider:y,signer:l}),b=gt(y);return{...a,estimateGasPrices:Hn(y),estimateL1Gas:Ln(y),estimateL1GasCost:Ft(y),estimateL2GasCost:Ot(y),estimateTotalGasCost:Un(y),getBalance:S(T.Chain.Optimism).getBalance,getL1GasPrice:b,getNetworkParams:Gn}}var T,wt,g,Cn="0x420000000000000000000000000000000000000f";var qt=h(()=>{v();Pt();W();d();T=require("@swapkit/helpers"),wt=require("ethers"),g=require("ts-pattern")});var hn={};Nt(hn,{toChecksumAddress:()=>Et,isStateChangingCall:()=>Ut,isBrowserProvider:()=>Q,getTokenAddress:()=>E,getEvmToolbox:()=>dt,getEstimateGasPrices:()=>N,getEIP1193SendTransaction:()=>Z,getCreateContractTxObject:()=>k,getCreateContract:()=>Ct,getChecksumAddressFromAsset:()=>Vt,evmValidateAddress:()=>Dt,createContract:()=>A,XLayerToolbox:()=>xt,UNIToolbox:()=>st,SONICToolbox:()=>P,OPToolbox:()=>ct,MAX_APPROVAL:()=>j,MATICToolbox:()=>pt,HYPEREVMToolbox:()=>Tt,GNOToolbox:()=>bt,ETHToolbox:()=>r,ContractAddress:()=>Lt,CROToolbox:()=>mt,CORNToolbox:()=>at,COREToolbox:()=>lt,BotanixToolbox:()=>At,BaseEVMToolbox:()=>$,BSCToolbox:()=>et,BERAToolbox:()=>yt,BASEToolbox:()=>ut,AVAXToolbox:()=>ot,AURORAToolbox:()=>nt,ARBToolbox:()=>tt});async function dt(t,o){let n={...o,provider:o?.provider||await J(t)};return vt.match(t).returnType().with(M.Chain.Arbitrum,()=>tt(n)).with(M.Chain.Aurora,()=>nt(n)).with(M.Chain.Avalanche,()=>ot(n)).with(M.Chain.Base,()=>ut(n)).with(M.Chain.Berachain,()=>yt(n)).with(M.Chain.BinanceSmartChain,()=>et(n)).with(M.Chain.Botanix,()=>P(n)).with(M.Chain.Core,()=>lt(n)).with(M.Chain.Corn,()=>at(n)).with(M.Chain.Cronos,()=>mt(n)).with(M.Chain.Ethereum,()=>r(n)).with(M.Chain.Gnosis,()=>bt(n)).with(M.Chain.Hyperevm,()=>Tt(n)).with(M.Chain.Optimism,()=>ct(n)).with(M.Chain.Polygon,()=>pt(n)).with(M.Chain.Sonic,()=>P(n)).with(M.Chain.Unichain,()=>st(n)).with(M.Chain.XLayer,()=>xt(n)).exhaustive()}var M,vt;var rt=h(()=>{W();Ht();qt();M=require("@swapkit/helpers"),vt=require("ts-pattern");d();Ht();qt()});var tn;var nn=h(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(tn||={})});var qn={};Nt(qn,{toHexString:()=>_,toChecksumAddress:()=>Et,isStateChangingCall:()=>Ut,isBrowserProvider:()=>Q,getTokenAddress:()=>E,getProvider:()=>J,getNetworkParams:()=>ft,getIsEIP1559Compatible:()=>Rt,getEvmToolbox:()=>dt,getEvmApi:()=>S,getEstimateGasPrices:()=>N,getEIP1193SendTransaction:()=>Z,getCreateContractTxObject:()=>k,getCreateContract:()=>Ct,getChecksumAddressFromAsset:()=>Vt,evmValidateAddress:()=>Dt,createCustomEvmApi:()=>an,createContract:()=>A,XLayerToolbox:()=>xt,UNIToolbox:()=>st,SONICToolbox:()=>P,OPToolbox:()=>ct,MAX_APPROVAL:()=>j,MATICToolbox:()=>pt,HYPEREVMToolbox:()=>Tt,GNOToolbox:()=>bt,EthNetwork:()=>tn,ETHToolbox:()=>r,ContractAddress:()=>Lt,CROToolbox:()=>mt,CORNToolbox:()=>at,COREToolbox:()=>lt,BotanixToolbox:()=>At,BaseEVMToolbox:()=>$,BSCToolbox:()=>et,BERAToolbox:()=>yt,BASEToolbox:()=>ut,AVAXToolbox:()=>ot,AURORAToolbox:()=>nt,ARBToolbox:()=>tt});module.exports=en(qn);var zn=h(()=>{v();W();rt();nn()});zn();
|
|
1
|
+
var on=Object.create;var{getPrototypeOf:un,defineProperty:V,getOwnPropertyNames:Jt,getOwnPropertyDescriptor:yn}=Object,Nt=Object.prototype.hasOwnProperty;var k=(t,o,n)=>{n=t!=null?on(un(t)):{};let u=o||!t||!t.__esModule?V(n,"default",{value:t,enumerable:!0}):n;for(let y of Jt(t))if(!Nt.call(u,y))V(u,y,{get:()=>t[y],enumerable:!0});return u},zt=new WeakMap,en=(t)=>{var o=zt.get(t),n;if(o)return o;if(o=V({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")Jt(t).map((u)=>!Nt.call(o,u)&&V(o,u,{get:()=>t[u],enumerable:!(n=yn(t,u))||n.enumerable}));return zt.set(t,o),o};var Xt=(t,o)=>{for(var n in o)V(t,n,{get:o[n],enumerable:!0,configurable:!0,set:(u)=>o[n]=()=>u})};var H=(t,o)=>()=>(t&&(o=t(t=0)),o);function Nn(){function t(){let o=Date.now(),n=Mt||o;return Mt=n,o>Mt?o:n+1}return ln+t().toString(36)}function Wt(t){return async function(n,u=!0){let y=await kt.SwapKitApi.getChainBalance({address:n,chain:t,scamFilter:u}),{baseDecimal:l}=O.getChainConfig(t);return y.map(({identifier:a,value:b,decimal:m})=>{return new O.AssetValue({decimal:m||l,identifier:a,value:b})})}}var O,kt,ln,Mt=0;var Yt=H(()=>{O=require("@swapkit/helpers"),kt=require("@swapkit/helpers/api"),ln=typeof process<"u"&&process.pid?process.pid.toString(36):""});function S(t){let o=v.SKConfig.get("apis")[t];if(o)return v.warnOnce({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),o;return mn(t)}function an(t){return t}function mn(t){return{getBalance:Wt(t)}}var v;var F=H(()=>{Yt();v=require("@swapkit/helpers")});async function J(t,o){let{JsonRpcProvider:n}=await import("ethers");return new n(o||await s.getRPCUrl(t))}function _(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function ft(t){let{explorerUrl:o,chainId:n,rpcUrls:u}=s.getChainConfig(t);return()=>t===s.Chain.Ethereum?void 0:{...bn({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:u}}function Rt(t){return![s.Chain.Arbitrum,s.Chain.BinanceSmartChain].includes(t)}function bn({chain:t}){let{baseDecimal:o}=s.getChainConfig(t);switch(t){case s.Chain.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:t}};case s.Chain.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}};case s.Chain.XLayer:return{chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}};case s.Chain.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}};case s.Chain.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}};case s.Chain.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:s.Chain.Ethereum}};case s.Chain.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:s.Chain.Polygon}};default:throw new s.SwapKitError("toolbox_evm_not_supported",{chain:t})}}var s;var W=H(()=>{s=require("@swapkit/helpers")});var $t;var Qt=H(()=>{$t=[{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 $({chain:t=e.Chain.Ethereum,provider:o,signer:n,isEIP1559Compatible:u=!0}){return{approve:wn({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),approvedAmount:St({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:Gt({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),createApprovalTx:Rn({chain:t,provider:o,signer:n}),createContract:Ct({chain:t,provider:o}),createContractTxObject:N({chain:t,provider:o}),createTransaction:Bt({chain:t,provider:o,signer:n}),createTransferTx:Bt({chain:t,provider:o,signer:n}),EIP1193SendTransaction:Z(o),estimateCall:_t({provider:o,signer:n}),estimateGasLimit:Mn({chain:t,provider:o,signer:n}),estimateGasPrices:X({chain:t,isEIP1559Compatible:u,provider:o}),estimateTransactionFee:Bn({chain:t,isEIP1559Compatible:u,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},isApproved:xn({chain:t,provider:o}),sendTransaction:jt({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),signMessage:n?.signMessage,transfer:cn({chain:t,isEIP1559Compatible:u,provider:o,signer:n}),validateAddress:(y)=>Dt({address:y})}}function Dt({address:t}){try{return U.getAddress(t),!0}catch{return!1}}function Q(t){return t instanceof U.BrowserProvider}function A(t,o,n){return new U.Contract(t,U.Interface.from(o),n)}function Ct({provider:t}){return function(n,u){return new U.Contract(n,U.Interface.from(u),t)}}function Ut({abi:t,funcName:o}){let n=t.find((u)=>u.name===o);if(!n)throw new e.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&Tn.includes(n.stateMutability)}function Et(t){return U.getAddress(t)}function Z(t){return function({value:n,...u}){if(!Q(t))throw new e.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:y,gasPrice:l,maxFeePerGas:a,maxPriorityFeePerGas:b,...m}=u;return t.send("eth_sendTransaction",[{...m,value:_(BigInt(n||0))}])}}function Vt(t,o){let n=E(t,o);if(n)return U.getAddress(n.toLowerCase());throw new e.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function E({chain:t,symbol:o,ticker:n},u){try{let y=t===e.Chain.BinanceSmartChain&&o==="BNB"&&n==="BNB",l=t===u&&o===u&&n===u,a=sn.includes(t)&&o==="ETH"&&n==="ETH";if(l||y||a)return Lt[u];return U.getAddress(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:o,abi:n,funcName:u,funcParams:y=[],txOverrides:l})=>A(o,n,t).getFunction(u).populateTransaction(...y.concat(l).filter((a)=>typeof a<"u"))}function X({chain:t,provider:o,isEIP1559Compatible:n=!0}){return Zt.match(t).with(e.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:y,maxPriorityFeePerGas:l}=await o.getFeeData();if(!y||l===null)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Average),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Average)},[e.FeeOption.Fast]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fast),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fastest),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fastest)}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).with(e.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:y}=await o.getFeeData();if(!y)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{gasPrice:y},[e.FeeOption.Fast]:{gasPrice:y},[e.FeeOption.Fastest]:{gasPrice:y}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:l,gasPrice:a}=await o.getFeeData();if(n){if(y===null||l===null)throw new e.SwapKitError("toolbox_evm_no_fee_data");return{[e.FeeOption.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:l},[e.FeeOption.Fast]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fast),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{maxFeePerGas:e.applyFeeMultiplierToBigInt(y,e.FeeOption.Fastest),maxPriorityFeePerGas:e.applyFeeMultiplierToBigInt(l,e.FeeOption.Fastest)}}}if(!a)throw new e.SwapKitError("toolbox_evm_no_gas_price");return{[e.FeeOption.Average]:{gasPrice:a},[e.FeeOption.Fast]:{gasPrice:e.applyFeeMultiplierToBigInt(a,e.FeeOption.Fast)},[e.FeeOption.Fastest]:{gasPrice:e.applyFeeMultiplierToBigInt(a,e.FeeOption.Fastest)}}}catch(y){throw new e.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}})}function Gt({provider:t,isEIP1559Compatible:o,signer:n,chain:u}){return async function({callProvider:l,contractAddress:a,abi:b,funcName:m,funcParams:w=[],txOverrides:x={},feeOption:B=e.FeeOption.Fast}){let p=l||t;if(!a)throw new e.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let i=Ut({abi:b,funcName:m});if(i&&Q(p)&&n){let L=N({chain:u,provider:p}),G=x?.from||await n?.getAddress(),h=await L({abi:b,contractAddress:a,funcName:m,funcParams:w,txOverrides:{...x,from:G}});return Z(p)(h)}let f=A(a,b,p);if(i){if(!n)throw new e.SwapKitError("toolbox_evm_no_signer");let L=x?.from||await n.getAddress();if(!L)throw new e.SwapKitError("toolbox_evm_no_signer_address");let G=f.connect(n),h=X({chain:u,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:z,maxPriorityFeePerGas:C,gasPrice:q}=(await h())[B],I=await f.getFunction(m).estimateGas(...w,x),it=await G[m](...w,{...x,gasLimit:I,gasPrice:q,maxFeePerGas:z,maxPriorityFeePerGas:C,nonce:x?.nonce||await p.getTransactionCount(L)});return typeof it?.hash==="string"?it?.hash:it}let D=await f[m]?.(...w);return typeof D?.hash==="string"?D?.hash:D}}function St({provider:t,chain:o}){return function({assetAddress:u,spenderAddress:y,from:l}){return Gt({chain:o,isEIP1559Compatible:!0,provider:t})({abi:Y.erc20ABI,contractAddress:u,funcName:"allowance",funcParams:[l,y]})}}function xn({provider:t,chain:o}){return async function({assetAddress:u,spenderAddress:y,from:l,amount:a=j}){let b=await St({chain:o,provider:t})({assetAddress:u,from:l,spenderAddress:y});return e.SwapKitNumber.fromBigInt(b).gte(e.SwapKitNumber.fromBigInt(BigInt(a)))}}function wn({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:u}){return async function({assetAddress:l,spenderAddress:a,feeOptionKey:b=e.FeeOption.Fast,amount:m,gasLimitFallback:w,from:x,nonce:B}){let p=[a,BigInt(m||j)],i=await t?.getAddress()||x,f={abi:Y.erc20ABI,contractAddress:l,funcName:"approve",funcParams:p,signer:t,txOverrides:{from:i}};if(Q(n)){let L=N({chain:u,provider:n}),G=Z(n),h=await L(f);return G(h)}return Gt({chain:u,isEIP1559Compatible:o,provider:n,signer:t})({...f,feeOption:b,funcParams:p,txOverrides:{from:i,gasLimit:w?BigInt(w.toString()):void 0,nonce:B}})}}function cn({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:y,memo:l,recipient:a,feeOptionKey:b=e.FeeOption.Fast,sender:m,...w}){let{hexlify:x,toUtf8Bytes:B}=await import("ethers"),p=y.getBaseValue("bigint"),i=y.chain,f=m||await t?.getAddress(),D=jt({chain:i,isEIP1559Compatible:o,provider:n,signer:t});if(!f)throw new e.SwapKitError("toolbox_evm_no_from_address");if(y.isGasAsset){let q={...w,data:x(B(l||"")),feeOptionKey:b,from:f,to:a,value:p};return D(q)}if(!E(y,i))throw new e.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:G,maxPriorityFeePerGas:h,gasPrice:z}=(await X({chain:i,isEIP1559Compatible:o,provider:n})())[b],C=await Bt({chain:i,provider:n,signer:t})({assetValue:y,data:x(B(l||"")),gasPrice:z,maxFeePerGas:G,maxPriorityFeePerGas:h,memo:l,recipient:a,sender:f});return D(C)}}function _t({provider:t,signer:o}){return function({contractAddress:u,abi:y,funcName:l,funcParams:a=[],txOverrides:b}){if(!u)throw new e.SwapKitError("toolbox_evm_no_contract_address");let m=A(u,y,t);return o?m.connect(o).getFunction(l).estimateGas(...a,b):m.getFunction(l).estimateGas(...a,b)}}function Mn({provider:t,signer:o}){return async function({assetValue:u,recipient:y,memo:l,data:a,sender:b,funcName:m,funcParams:w,txOverrides:x}){let B=u.bigIntValue,p=u.isGasAsset?null:E(u,u.chain);if(p&&m)return _t({provider:t,signer:o})({abi:Y.erc20ABI,contractAddress:p,funcName:m,funcParams:w,txOverrides:x});let{hexlify:i,toUtf8Bytes:f}=await import("ethers");return t.estimateGas({data:a?a:l?i(f(l)):void 0,from:b,to:y,value:B})}}function jt({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:u}){return async function({feeOptionKey:l=e.FeeOption.Fast,...a}){let{from:b,to:m,data:w,value:x,...B}=a;if(!o)throw new e.SwapKitError("toolbox_evm_no_signer");if(!m)throw new e.SwapKitError("toolbox_evm_no_to_address");let p={...B,data:w||"0x",from:b,to:m,value:BigInt(x||0)};if(Q(t))return Z(t)(p);let i=b||await o.getAddress(),f=a.nonce||await t.getTransactionCount(i),D=(await t.getNetwork()).chainId,L=fn(p)||n,G=X({chain:u,isEIP1559Compatible:n,provider:t}),h=L&&!(p.maxFeePerGas&&p.maxPriorityFeePerGas)||!p.gasPrice?Object.entries((await G())[l]).reduce((C,[q,I])=>({...C,[q]:_(BigInt(I))}),{}):{},z;try{z=_(p.gasLimit||await t.estimateGas(p)*11n/10n)}catch(C){throw new e.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:C})}try{let C={...p,chainId:D,gasLimit:z,nonce:f,type:L?2:0,...h};try{return(await o.sendTransaction(C)).hash}catch{let q=await o.signTransaction({...C,from:i});return(await t.broadcastTransaction(q)).hash}}catch(C){throw new e.SwapKitError("toolbox_evm_error_sending_transaction",{error:C})}}}function Bt({provider:t,signer:o}){return async function({assetValue:u,memo:y,recipient:l,data:a,sender:b,maxFeePerGas:m,maxPriorityFeePerGas:w,gasPrice:x,...B}){let p=u.getBaseValue("bigint"),i=u.chain,f=b||await o?.getAddress();if(!f)throw new e.SwapKitError("toolbox_evm_no_from_address");if(e.isGasAsset(u)){let{hexlify:G,toUtf8Bytes:h}=await import("ethers");return{...B,data:a||G(h(y||"")),from:f,to:l,value:p}}let D=E(u,i);if(!D)throw new e.SwapKitError("toolbox_evm_no_contract_address");return N({chain:u.chain,provider:t})({abi:Y.erc20ABI,contractAddress:D,funcName:"transfer",funcParams:[l,p],txOverrides:{from:f,gasPrice:x,maxFeePerGas:m,maxPriorityFeePerGas:w}})}}function Rn({provider:t,signer:o,chain:n}){return async function({assetAddress:y,spenderAddress:l,amount:a,from:b}){let m=await o?.getAddress()||b,w=N({chain:n,provider:t}),x=["bigint","number"].includes(typeof a)?a:a||j;return await w({abi:Y.erc20ABI,contractAddress:y,funcName:"approve",funcParams:[l,BigInt(x)],txOverrides:{from:m}})}}function Bn({provider:t,isEIP1559Compatible:o=!0}){return async function({feeOption:u=e.FeeOption.Fast,chain:y,...l}){let b=await X({chain:y,isEIP1559Compatible:o,provider:t})(),m=await t.estimateGas(l),w=e.AssetValue.from({chain:y}),{gasPrice:x,maxFeePerGas:B,maxPriorityFeePerGas:p}=b[u];if(!o&&x)return w.set(e.SwapKitNumber.fromBigInt(x*m,w.decimal));if(B&&p){let i=(B+p)*m;return w.set(e.SwapKitNumber.fromBigInt(i,w.decimal))}throw new e.SwapKitError("toolbox_evm_no_gas_price")}}var e,Y,U,Zt,j,Tn,pn,Lt,sn,fn=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;var d=H(()=>{W();e=require("@swapkit/helpers"),Y=require("@swapkit/helpers/contracts"),U=require("ethers"),Zt=require("ts-pattern"),j=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Tn=["payable","nonpayable"];pn=e.EVMChains.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),Lt={...pn,[e.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[e.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},sn=[e.Chain.Arbitrum,e.Chain.Aurora,e.Chain.Base,e.Chain.Optimism]});async function r({provider:t,...o}){let n=await R(c.Chain.Ethereum)({provider:t,...o});async function u(y,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",a="aggregate",b=c.FeeOption.Fast){let m=await n.createContractTxObject({abi:$t,contractAddress:l,funcName:a,funcParams:[y]});return n.sendTransaction({...m,feeOptionKey:b})}return{...n,multicall:u}}function R(t){return async function({provider:n,...u}){let{HDNodeWallet:y}=await import("ethers"),l=await c.getRPCUrl(t),a=n||await J(t,l),b=Rt(t),m=K.match(u).with({phrase:K.P.string},({phrase:x})=>y.fromPhrase(x).connect(a)).with({signer:K.P.any},({signer:x})=>x).otherwise(()=>{return});return{...$({chain:t,isEIP1559Compatible:b,provider:a,signer:m}),getBalance:S(t).getBalance,getNetworkParams:ft(t)}}}var c,K,tt,nt,ot,ut,yt,et,At,lt,at,mt,bt,Tt,pt,P,st,xt;var ht=H(()=>{F();Qt();W();d();c=require("@swapkit/helpers"),K=require("ts-pattern");tt=R(c.Chain.Arbitrum),nt=R(c.Chain.Aurora),ot=R(c.Chain.Avalanche),ut=R(c.Chain.Base),yt=R(c.Chain.Berachain),et=R(c.Chain.BinanceSmartChain),At=R(c.Chain.Botanix),lt=R(c.Chain.Core),at=R(c.Chain.Corn),mt=R(c.Chain.Cronos),bt=R(c.Chain.Gnosis),Tt=R(c.Chain.Hyperevm),pt=R(c.Chain.Polygon),P=R(c.Chain.Sonic),st=R(c.Chain.Unichain),xt=R(c.Chain.XLayer)});var Kt;var Pt=H(()=>{Kt=[{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 Ht(t){return new wt.Contract(Cn,Kt,t)}function gt(t){return async function(){let n=Ht(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function It(t){return async function({from:n,to:u,nonce:y,...l}){let{Transaction:a}=await import("ethers");if(!u)throw new T.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return a.from({...l,authorizationList:l.authorizationList,nonce:y?y:n?await t.getTransactionCount(n):0,to:u}).serialized}}function Ot(t){return async function(n){let u=Ht(t),y=await It(t)(n);if(u&&"getL1Fee"in u)return u.getL1Fee(y)}}function vt(t){return async function(n){let u=await t.send("eth_gasPrice",[]),y=await t.estimateGas(n);return u.mul(y)}}function Un(t){return async function(n){let u=await Ot(t)(n),y=await vt(t)(n);return u.add(y)}}function Ln(t){return async function(n){let u=Ht(t),y=await It(t)(n);if(u&&"getL1GasUsed"in u)return u.getL1GasUsed(y)}}function Gn(){let{baseDecimal:t,chainId:o,explorerUrl:n,name:u,rpcUrls:y}=T.getChainConfig(T.Chain.Optimism);return{blockExplorerUrls:[n],chainId:o,chainName:u,nativeCurrency:{decimals:t,name:"Ethereum",symbol:T.Chain.Ethereum},rpcUrls:y}}async function hn(t){try{let{maxFeePerGas:o,maxPriorityFeePerGas:n,gasPrice:u}=await t.getFeeData(),y=await gt(t)(),l=u;if(!(o&&n))throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{gasPrice:l,l1GasPrice:y,maxFeePerGas:o,maxPriorityFeePerGas:n},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),l1GasPrice:T.applyFeeMultiplierToBigInt(y||0n,T.FeeOption.Fast),maxFeePerGas:o,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(n,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),l1GasPrice:T.applyFeeMultiplierToBigInt(y||0n,T.FeeOption.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(n,T.FeeOption.Fastest)}}}catch(o){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}async function ct({provider:t,...o}){let n=T.Chain.Optimism,u=await T.getRPCUrl(n),y=t||await J(n,u),l=g.match(o).with({phrase:g.P.string},({phrase:m})=>wt.HDNodeWallet.fromPhrase(m).connect(y)).with({signer:g.P.any},({signer:m})=>m).otherwise(()=>{return}),a=$({provider:y,signer:l}),b=gt(y);return{...a,estimateGasPrices:hn(y),estimateL1Gas:Ln(y),estimateL1GasCost:Ot(y),estimateL2GasCost:vt(y),estimateTotalGasCost:Un(y),getBalance:S(T.Chain.Optimism).getBalance,getL1GasPrice:b,getNetworkParams:Gn}}var T,wt,g,Cn="0x420000000000000000000000000000000000000f";var qt=H(()=>{F();Pt();W();d();T=require("@swapkit/helpers"),wt=require("ethers"),g=require("ts-pattern")});var Hn={};Xt(Hn,{toChecksumAddress:()=>Et,isStateChangingCall:()=>Ut,isBrowserProvider:()=>Q,getTokenAddress:()=>E,getEvmToolbox:()=>dt,getEstimateGasPrices:()=>X,getEIP1193SendTransaction:()=>Z,getCreateContractTxObject:()=>N,getCreateContract:()=>Ct,getChecksumAddressFromAsset:()=>Vt,evmValidateAddress:()=>Dt,createContract:()=>A,XLayerToolbox:()=>xt,UNIToolbox:()=>st,SONICToolbox:()=>P,OPToolbox:()=>ct,MAX_APPROVAL:()=>j,MATICToolbox:()=>pt,HYPEREVMToolbox:()=>Tt,GNOToolbox:()=>bt,ETHToolbox:()=>r,ContractAddress:()=>Lt,CROToolbox:()=>mt,CORNToolbox:()=>at,COREToolbox:()=>lt,BotanixToolbox:()=>At,BaseEVMToolbox:()=>$,BSCToolbox:()=>et,BERAToolbox:()=>yt,BASEToolbox:()=>ut,AVAXToolbox:()=>ot,AURORAToolbox:()=>nt,ARBToolbox:()=>tt});async function dt(t,o){let n={...o,provider:o?.provider||await J(t)};return Ft.match(t).returnType().with(M.Chain.Arbitrum,()=>tt(n)).with(M.Chain.Aurora,()=>nt(n)).with(M.Chain.Avalanche,()=>ot(n)).with(M.Chain.Base,()=>ut(n)).with(M.Chain.Berachain,()=>yt(n)).with(M.Chain.BinanceSmartChain,()=>et(n)).with(M.Chain.Botanix,()=>P(n)).with(M.Chain.Core,()=>lt(n)).with(M.Chain.Corn,()=>at(n)).with(M.Chain.Cronos,()=>mt(n)).with(M.Chain.Ethereum,()=>r(n)).with(M.Chain.Gnosis,()=>bt(n)).with(M.Chain.Hyperevm,()=>Tt(n)).with(M.Chain.Optimism,()=>ct(n)).with(M.Chain.Polygon,()=>pt(n)).with(M.Chain.Sonic,()=>P(n)).with(M.Chain.Unichain,()=>st(n)).with(M.Chain.XLayer,()=>xt(n)).exhaustive()}var M,Ft;var rt=H(()=>{W();ht();qt();M=require("@swapkit/helpers"),Ft=require("ts-pattern");d();ht();qt()});var tn;var nn=H(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(tn||={})});var qn={};Xt(qn,{toHexString:()=>_,toChecksumAddress:()=>Et,isStateChangingCall:()=>Ut,isBrowserProvider:()=>Q,getTokenAddress:()=>E,getProvider:()=>J,getNetworkParams:()=>ft,getIsEIP1559Compatible:()=>Rt,getEvmToolbox:()=>dt,getEvmApi:()=>S,getEstimateGasPrices:()=>X,getEIP1193SendTransaction:()=>Z,getCreateContractTxObject:()=>N,getCreateContract:()=>Ct,getChecksumAddressFromAsset:()=>Vt,evmValidateAddress:()=>Dt,createCustomEvmApi:()=>an,createContract:()=>A,XLayerToolbox:()=>xt,UNIToolbox:()=>st,SONICToolbox:()=>P,OPToolbox:()=>ct,MAX_APPROVAL:()=>j,MATICToolbox:()=>pt,HYPEREVMToolbox:()=>Tt,GNOToolbox:()=>bt,EthNetwork:()=>tn,ETHToolbox:()=>r,ContractAddress:()=>Lt,CROToolbox:()=>mt,CORNToolbox:()=>at,COREToolbox:()=>lt,BotanixToolbox:()=>At,BaseEVMToolbox:()=>$,BSCToolbox:()=>et,BERAToolbox:()=>yt,BASEToolbox:()=>ut,AVAXToolbox:()=>ot,AURORAToolbox:()=>nt,ARBToolbox:()=>tt});module.exports=en(qn);var zn=H(()=>{F();W();rt();nn()});zn();
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=1AE903F6E443E7AC64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { AssetValue, type Chain, getChainConfig } from \"@swapkit/helpers\";\nimport { SwapKitApi } from \"@swapkit/helpers/api\";\n\nconst pid = typeof process !== \"undefined\" && process.pid ? process.pid.toString(36) : \"\";\n\nlet last = 0;\nexport function uniqid() {\n function now() {\n const time = Date.now();\n const lastTime = last || time;\n last = lastTime;\n\n return time > last ? time : lastTime + 1;\n }\n\n return pid + now().toString(36);\n}\n\nexport function getBalance<T extends Chain>(chain: T) {\n return async function getBalance(address: string, scamFilter = true) {\n const balances = await SwapKitApi.getChainBalance({ address, chain, scamFilter });\n const { baseDecimal } = getChainConfig(chain);\n return balances.map(({ identifier, value, decimal }) => {\n return new AssetValue({ decimal: decimal || baseDecimal, identifier, value });\n });\n };\n}\n",
|
|
6
6
|
"import { type EVMChain, SKConfig, warnOnce } from \"@swapkit/helpers\";\nimport { getBalance } from \"../utils\";\n\nexport function getEvmApi(chain: EVMChain) {\n const customEvmApi = SKConfig.get(\"apis\")[chain];\n\n if (customEvmApi) {\n warnOnce({\n condition: true,\n id: \"custom_evm_api_warning\",\n warning: \"Using custom EVM API. Be sure to implement all methods to avoid issues.\",\n });\n return customEvmApi as ReturnType<typeof evmApi>;\n }\n\n return evmApi(chain);\n}\n\nexport function createCustomEvmApi(methods: ReturnType<typeof getEvmApi>) {\n return methods;\n}\n\nfunction evmApi(chain: EVMChain) {\n return { getBalance: getBalance(chain) };\n}\n",
|
|
7
|
-
"import { Chain, type EVMChain, getChainConfig, getRPCUrl, type NetworkParams, SwapKitError } from \"@swapkit/helpers\";\n\nexport async function getProvider(chain: EVMChain, customUrl?: string) {\n const { JsonRpcProvider } = await import(\"ethers\");\n\n return new JsonRpcProvider(customUrl || (await getRPCUrl(chain)));\n}\n\nexport function toHexString(value: bigint) {\n return value > 0n ? `0x${value.toString(16)}` : \"0x0\";\n}\n\nexport function getNetworkParams<C extends EVMChain>(chain: C) {\n const { explorerUrl, chainId, rpcUrls } = getChainConfig(chain);\n\n return () =>\n (chain === Chain.Ethereum\n ? undefined\n : {\n ...getNetworkInfo({ chain }),\n blockExplorerUrls: [explorerUrl],\n chainId,\n rpcUrls,\n }) as C extends typeof Chain.Ethereum ? undefined : NetworkParams;\n}\n\nexport function getIsEIP1559Compatible<C extends EVMChain>(chain: C) {\n const notCompatible = [Chain.Arbitrum, Chain.BinanceSmartChain] as EVMChain[];\n\n return !notCompatible.includes(chain);\n}\n\nfunction getNetworkInfo<C extends EVMChain>({ chain }: { chain: C }) {\n const { baseDecimal: decimals } = getChainConfig(chain);\n\n switch (chain) {\n case Chain.Arbitrum:\n return { chainName: \"Arbitrum One\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Aurora:\n return { chainName: \"Aurora Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Avalanche:\n return { chainName: \"Avalanche Network\", nativeCurrency: { decimals, name: \"Avalanche\", symbol: chain } };\n case Chain.Base:\n return { chainName: \"Base Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Berachain:\n return { chainName: \"Berachain\", nativeCurrency: { decimals, name: \"Berachain\", symbol: \"BERA\" } };\n case Chain.BinanceSmartChain:\n return {\n chainName: \"BNB Smart Chain Mainnet\",\n nativeCurrency: { decimals, name: \"Binance Coin\", symbol: \"BNB\" },\n };\n case Chain.Gnosis:\n return { chainName: \"Gnosis\", nativeCurrency: { decimals, name: \"xDAI\", symbol: \"XDAI\" } };\n case Chain.Optimism:\n return { chainName: \"OP Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Polygon:\n return { chainName: \"Polygon Mainnet\", nativeCurrency: { decimals, name: \"Polygon\", symbol: Chain.Polygon } };\n default:\n throw new SwapKitError(\"toolbox_evm_not_supported\", { chain });\n }\n}\n",
|
|
7
|
+
"import { Chain, type EVMChain, getChainConfig, getRPCUrl, type NetworkParams, SwapKitError } from \"@swapkit/helpers\";\n\nexport async function getProvider(chain: EVMChain, customUrl?: string) {\n const { JsonRpcProvider } = await import(\"ethers\");\n\n return new JsonRpcProvider(customUrl || (await getRPCUrl(chain)));\n}\n\nexport function toHexString(value: bigint) {\n return value > 0n ? `0x${value.toString(16)}` : \"0x0\";\n}\n\nexport function getNetworkParams<C extends EVMChain>(chain: C) {\n const { explorerUrl, chainId, rpcUrls } = getChainConfig(chain);\n\n return () =>\n (chain === Chain.Ethereum\n ? undefined\n : {\n ...getNetworkInfo({ chain }),\n blockExplorerUrls: [explorerUrl],\n chainId,\n rpcUrls,\n }) as C extends typeof Chain.Ethereum ? undefined : NetworkParams;\n}\n\nexport function getIsEIP1559Compatible<C extends EVMChain>(chain: C) {\n const notCompatible = [Chain.Arbitrum, Chain.BinanceSmartChain] as EVMChain[];\n\n return !notCompatible.includes(chain);\n}\n\nfunction getNetworkInfo<C extends EVMChain>({ chain }: { chain: C }) {\n const { baseDecimal: decimals } = getChainConfig(chain);\n\n switch (chain) {\n case Chain.Arbitrum:\n return { chainName: \"Arbitrum One\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Aurora:\n return { chainName: \"Aurora Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Avalanche:\n return { chainName: \"Avalanche Network\", nativeCurrency: { decimals, name: \"Avalanche\", symbol: chain } };\n case Chain.Base:\n return { chainName: \"Base Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Berachain:\n return { chainName: \"Berachain\", nativeCurrency: { decimals, name: \"Berachain\", symbol: \"BERA\" } };\n case Chain.XLayer:\n return { chainName: \"X Layer\", nativeCurrency: { decimals, name: \"OKB\", symbol: \"OKB\" } };\n case Chain.BinanceSmartChain:\n return {\n chainName: \"BNB Smart Chain Mainnet\",\n nativeCurrency: { decimals, name: \"Binance Coin\", symbol: \"BNB\" },\n };\n case Chain.Gnosis:\n return { chainName: \"Gnosis\", nativeCurrency: { decimals, name: \"xDAI\", symbol: \"XDAI\" } };\n case Chain.Optimism:\n return { chainName: \"OP Mainnet\", nativeCurrency: { decimals, name: \"Ethereum\", symbol: Chain.Ethereum } };\n case Chain.Polygon:\n return { chainName: \"Polygon Mainnet\", nativeCurrency: { decimals, name: \"Polygon\", symbol: Chain.Polygon } };\n default:\n throw new SwapKitError(\"toolbox_evm_not_supported\", { chain });\n }\n}\n",
|
|
8
8
|
"export const multicallAbi = [\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"aggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes[]\", name: \"returnData\", type: \"bytes[]\" },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"blockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" }],\n name: \"getBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getBlockNumber\",\n outputs: [{ internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockCoinbase\",\n outputs: [{ internalType: \"address\", name: \"coinbase\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockDifficulty\",\n outputs: [{ internalType: \"uint256\", name: \"difficulty\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockGasLimit\",\n outputs: [{ internalType: \"uint256\", name: \"gaslimit\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getCurrentBlockTimestamp\",\n outputs: [{ internalType: \"uint256\", name: \"timestamp\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"addr\", type: \"address\" }],\n name: \"getEthBalance\",\n outputs: [{ internalType: \"uint256\", name: \"balance\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"getLastBlockHash\",\n outputs: [{ internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryAggregate\",\n outputs: [\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { internalType: \"bool\", name: \"requireSuccess\", type: \"bool\" },\n {\n components: [\n { internalType: \"address\", name: \"target\", type: \"address\" },\n { internalType: \"bytes\", name: \"callData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Call[]\",\n name: \"calls\",\n type: \"tuple[]\",\n },\n ],\n name: \"tryBlockAndAggregate\",\n outputs: [\n { internalType: \"uint256\", name: \"blockNumber\", type: \"uint256\" },\n { internalType: \"bytes32\", name: \"blockHash\", type: \"bytes32\" },\n {\n components: [\n { internalType: \"bool\", name: \"success\", type: \"bool\" },\n { internalType: \"bytes\", name: \"returnData\", type: \"bytes\" },\n ],\n internalType: \"struct Multicall2.Result[]\",\n name: \"returnData\",\n type: \"tuple[]\",\n },\n ],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n",
|
|
9
9
|
"import {\n type Asset,\n AssetValue,\n applyFeeMultiplierToBigInt,\n Chain,\n type ChainSigner,\n type EVMChain,\n EVMChains,\n FeeOption,\n isGasAsset,\n SwapKitError,\n SwapKitNumber,\n} from \"@swapkit/helpers\";\nimport { erc20ABI } from \"@swapkit/helpers/contracts\";\nimport {\n BrowserProvider,\n Contract,\n type ContractTransaction,\n type Fragment,\n getAddress,\n type HDNodeWallet,\n Interface,\n type JsonFragment,\n type JsonRpcSigner,\n type Provider,\n type Signer,\n} from \"ethers\";\nimport { match } from \"ts-pattern\";\nimport { toHexString } from \"../helpers\";\nimport type {\n ApproveParams,\n CallParams,\n EIP1559TxParams,\n EstimateCallParams,\n EVMCreateTransactionParams,\n EVMTransferParams,\n EVMTxParams,\n IsApprovedParams,\n LegacyEVMTxParams,\n} from \"../types\";\n\ntype ToolboxWrapParams<P = Provider | BrowserProvider, T = {}> = T & {\n isEIP1559Compatible?: boolean;\n provider: P;\n signer?: Signer;\n chain: EVMChain;\n};\n\nexport const MAX_APPROVAL = BigInt(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\nexport function BaseEVMToolbox<\n P extends Provider | BrowserProvider,\n S extends (ChainSigner<EVMTransferParams, string> & Signer) | JsonRpcSigner | HDNodeWallet | undefined,\n>({\n chain = Chain.Ethereum,\n provider,\n signer,\n isEIP1559Compatible = true,\n}: {\n signer: S;\n provider: P;\n isEIP1559Compatible?: boolean;\n chain?: EVMChain;\n}) {\n return {\n approve: getApprove({ chain, isEIP1559Compatible, provider, signer }),\n approvedAmount: getApprovedAmount({ chain, provider }),\n broadcastTransaction: provider.broadcastTransaction,\n call: getCall({ chain, isEIP1559Compatible, provider, signer }),\n createApprovalTx: getCreateApprovalTx({ chain, provider, signer }),\n createContract: getCreateContract({ chain, provider }),\n createContractTxObject: getCreateContractTxObject({ chain, provider }),\n createTransaction: getCreateTransferTx({ chain, provider, signer }),\n createTransferTx: getCreateTransferTx({ chain, provider, signer }),\n EIP1193SendTransaction: getEIP1193SendTransaction(provider),\n estimateCall: getEstimateCall({ provider, signer }),\n estimateGasLimit: getEstimateGasLimit({ chain, provider, signer }),\n estimateGasPrices: getEstimateGasPrices({ chain, isEIP1559Compatible, provider }),\n estimateTransactionFee: getEstimateTransactionFee({ chain, isEIP1559Compatible, provider }),\n getAddress: () => {\n return signer ? signer.getAddress() : undefined;\n },\n isApproved: getIsApproved({ chain, provider }),\n sendTransaction: getSendTransaction({ chain, isEIP1559Compatible, provider, signer }),\n signMessage: signer?.signMessage,\n transfer: getTransfer({ chain, isEIP1559Compatible, provider, signer }),\n validateAddress: (address: string) => evmValidateAddress({ address }),\n };\n}\n\nexport function evmValidateAddress({ address }: { address: string }) {\n try {\n getAddress(address);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function isBrowserProvider(provider: any) {\n return provider instanceof BrowserProvider;\n}\n\nexport function createContract(address: string, abi: readonly (JsonFragment | Fragment)[], provider: Provider) {\n return new Contract(address, Interface.from(abi), provider);\n}\n\nexport function getCreateContract({ provider }: ToolboxWrapParams) {\n return function createContract(address: string, abi: readonly (JsonFragment | Fragment)[]) {\n return new Contract(address, Interface.from(abi), provider);\n };\n}\n\nconst stateMutable = [\"payable\", \"nonpayable\"];\n// const nonStateMutable = ['view', 'pure'];\nexport function isStateChangingCall({ abi, funcName }: { abi: readonly JsonFragment[]; funcName: string }) {\n const abiFragment = abi.find((fragment: any) => fragment.name === funcName) as any;\n if (!abiFragment) throw new SwapKitError(\"toolbox_evm_no_abi_fragment\", { funcName });\n return abiFragment.stateMutability && stateMutable.includes(abiFragment.stateMutability);\n}\n\nexport function toChecksumAddress(address: string) {\n return getAddress(address);\n}\n\nexport function getEIP1193SendTransaction(provider: Provider | BrowserProvider) {\n return function EIP1193SendTransaction({ value, ...params }: EVMTxParams | ContractTransaction): Promise<string> {\n if (!isBrowserProvider(provider)) {\n throw new SwapKitError(\"toolbox_evm_provider_not_eip1193_compatible\");\n }\n\n // Remove gas-related parameters to let the wallet estimate them\n // EIP-1193 providers (MetaMask, etc.) will estimate these automatically\n const {\n gasLimit: _gasLimit,\n gasPrice: _gasPrice,\n maxFeePerGas: _maxFeePerGas,\n maxPriorityFeePerGas: _maxPriorityFeePerGas,\n ...cleanParams\n } = params as any;\n\n return (provider as BrowserProvider).send(\"eth_sendTransaction\", [\n { ...cleanParams, value: toHexString(BigInt(value || 0)) } as any,\n ]);\n };\n}\n\nexport function getChecksumAddressFromAsset(asset: Asset, chain: EVMChain) {\n const assetAddress = getTokenAddress(asset, chain);\n\n if (assetAddress) {\n return getAddress(assetAddress.toLowerCase());\n }\n\n throw new SwapKitError(\"toolbox_evm_invalid_gas_asset_address\");\n}\n\nconst baseContractAddresses = EVMChains.reduce(\n (acc, chain) => {\n acc[chain] = \"0x0000000000000000000000000000000000000000\";\n return acc;\n },\n {} as Record<EVMChain, string>,\n);\n\nexport const ContractAddress: Record<EVMChain, string> = {\n ...baseContractAddresses,\n [Chain.Optimism]: \"0x4200000000000000000000000000000000000042\",\n [Chain.Polygon]: \"0x0000000000000000000000000000000000001010\",\n};\n\nconst ethGasChains = [Chain.Arbitrum, Chain.Aurora, Chain.Base, Chain.Optimism] as string[];\n\nexport function getTokenAddress({ chain, symbol, ticker }: Asset, baseAssetChain: EVMChain) {\n try {\n const isBSCBNB = chain === Chain.BinanceSmartChain && symbol === \"BNB\" && ticker === \"BNB\";\n const isBaseAsset = chain === baseAssetChain && symbol === baseAssetChain && ticker === baseAssetChain;\n const isEVMAsset = ethGasChains.includes(chain) && symbol === \"ETH\" && ticker === \"ETH\";\n\n if (isBaseAsset || isBSCBNB || isEVMAsset) {\n return ContractAddress[baseAssetChain];\n }\n\n // strip 0X only - 0x is still valid\n return getAddress(symbol.slice(ticker.length + 1).replace(/^0X/, \"\"));\n } catch {\n return null;\n }\n}\n\nexport function getCreateContractTxObject({ provider }: ToolboxWrapParams) {\n return async ({ contractAddress, abi, funcName, funcParams = [], txOverrides }: CallParams) =>\n createContract(contractAddress, abi, provider)\n .getFunction(funcName)\n .populateTransaction(...funcParams.concat(txOverrides).filter((p) => typeof p !== \"undefined\"));\n}\n\nexport function getEstimateGasPrices({\n chain,\n provider,\n isEIP1559Compatible = true,\n}: {\n provider: Provider;\n isEIP1559Compatible?: boolean;\n chain: EVMChain;\n}): () => Promise<{\n [key in FeeOption]: { l1GasPrice?: bigint; gasPrice?: bigint; maxFeePerGas?: bigint; maxPriorityFeePerGas?: bigint };\n}> {\n return match(chain)\n .with(Chain.Gnosis, () => {\n return async function estimateGasPrices() {\n try {\n const { gasPrice, maxPriorityFeePerGas } = await provider.getFeeData();\n if (!gasPrice || maxPriorityFeePerGas === null) throw new SwapKitError(\"toolbox_evm_no_fee_data\");\n\n return {\n [FeeOption.Average]: {\n maxFeePerGas: applyFeeMultiplierToBigInt(gasPrice, FeeOption.Average),\n maxPriorityFeePerGas: applyFeeMultiplierToBigInt(maxPriorityFeePerGas, FeeOption.Average),\n },\n [FeeOption.Fast]: {\n maxFeePerGas: applyFeeMultiplierToBigInt(gasPrice, FeeOption.Fast),\n maxPriorityFeePerGas: applyFeeMultiplierToBigInt(maxPriorityFeePerGas, FeeOption.Fast),\n },\n [FeeOption.Fastest]: {\n maxFeePerGas: applyFeeMultiplierToBigInt(gasPrice, FeeOption.Fastest),\n maxPriorityFeePerGas: applyFeeMultiplierToBigInt(maxPriorityFeePerGas, FeeOption.Fastest),\n },\n };\n } catch (error) {\n throw new SwapKitError(\"toolbox_evm_gas_estimation_error\", {\n error: (error as any).msg ?? (error as any).toString(),\n });\n }\n };\n })\n .with(Chain.Arbitrum, () => {\n return async function estimateGasPrices() {\n try {\n const { gasPrice } = await provider.getFeeData();\n if (!gasPrice) throw new SwapKitError(\"toolbox_evm_no_fee_data\");\n\n return {\n [FeeOption.Average]: { gasPrice },\n [FeeOption.Fast]: { gasPrice },\n [FeeOption.Fastest]: { gasPrice },\n };\n } catch (error) {\n throw new SwapKitError(\"toolbox_evm_gas_estimation_error\", {\n error: (error as any).msg ?? (error as any).toString(),\n });\n }\n };\n })\n .otherwise(() => {\n return async function estimateGasPrices() {\n try {\n const { maxFeePerGas, maxPriorityFeePerGas, gasPrice } = await provider.getFeeData();\n\n if (isEIP1559Compatible) {\n if (maxFeePerGas === null || maxPriorityFeePerGas === null)\n throw new SwapKitError(\"toolbox_evm_no_fee_data\");\n\n return {\n [FeeOption.Average]: { maxFeePerGas, maxPriorityFeePerGas },\n [FeeOption.Fast]: {\n maxFeePerGas: applyFeeMultiplierToBigInt(maxFeePerGas, FeeOption.Fast),\n maxPriorityFeePerGas: applyFeeMultiplierToBigInt(maxPriorityFeePerGas, FeeOption.Fast),\n },\n [FeeOption.Fastest]: {\n maxFeePerGas: applyFeeMultiplierToBigInt(maxFeePerGas, FeeOption.Fastest),\n maxPriorityFeePerGas: applyFeeMultiplierToBigInt(maxPriorityFeePerGas, FeeOption.Fastest),\n },\n };\n }\n if (!gasPrice) throw new SwapKitError(\"toolbox_evm_no_gas_price\");\n\n return {\n [FeeOption.Average]: { gasPrice },\n [FeeOption.Fast]: { gasPrice: applyFeeMultiplierToBigInt(gasPrice, FeeOption.Fast) },\n [FeeOption.Fastest]: { gasPrice: applyFeeMultiplierToBigInt(gasPrice, FeeOption.Fastest) },\n };\n } catch (error) {\n throw new SwapKitError(\"toolbox_evm_gas_estimation_error\", {\n error: (error as any).msg ?? (error as any).toString(),\n });\n }\n };\n });\n}\n\nfunction getCall({ provider, isEIP1559Compatible, signer, chain }: ToolboxWrapParams) {\n /**\n * @info call contract function\n * When using this method to make a non state changing call to the blockchain, like a isApproved call,\n * the signer needs to be set to undefined\n */\n return async function call<T>({\n callProvider,\n contractAddress,\n abi,\n funcName,\n funcParams = [],\n txOverrides = {},\n feeOption = FeeOption.Fast,\n }: CallParams): Promise<T> {\n const contractProvider = callProvider || provider;\n if (!contractAddress)\n throw new SwapKitError(\"toolbox_evm_invalid_params\", { error: \"contractAddress must be provided\" });\n\n const isStateChanging = isStateChangingCall({ abi, funcName });\n\n if (isStateChanging && isBrowserProvider(contractProvider) && signer) {\n const createTx = getCreateContractTxObject({ chain, provider: contractProvider });\n const from = txOverrides?.from || (await signer?.getAddress());\n const txObject = await createTx({\n abi,\n contractAddress,\n funcName,\n funcParams,\n txOverrides: { ...txOverrides, from },\n });\n const sendTx = getEIP1193SendTransaction(contractProvider);\n\n return sendTx(txObject) as Promise<T>;\n }\n const contract = createContract(contractAddress, abi, contractProvider);\n\n // only use signer if the contract function is state changing\n if (isStateChanging) {\n if (!signer) throw new SwapKitError(\"toolbox_evm_no_signer\");\n\n const from = txOverrides?.from || (await signer.getAddress());\n if (!from) throw new SwapKitError(\"toolbox_evm_no_signer_address\");\n\n const connectedContract = contract.connect(signer);\n const estimateGasPrices = getEstimateGasPrices({ chain, isEIP1559Compatible, provider });\n const { maxFeePerGas, maxPriorityFeePerGas, gasPrice } = (await estimateGasPrices())[feeOption];\n\n const gasLimit = await contract.getFunction(funcName).estimateGas(...funcParams, txOverrides);\n\n // @ts-expect-error\n const result = await connectedContract[funcName](...funcParams, {\n ...txOverrides,\n gasLimit,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n /**\n * nonce must be set due to a possible bug with ethers.js,\n * expecting a synchronous nonce while the JsonRpcProvider delivers Promise\n */\n nonce: txOverrides?.nonce || (await contractProvider.getTransactionCount(from)),\n });\n\n return typeof result?.hash === \"string\" ? result?.hash : result;\n }\n\n const result = await contract[funcName]?.(...funcParams);\n\n return typeof result?.hash === \"string\" ? result?.hash : result;\n };\n}\n\nfunction getApprovedAmount({ provider, chain }: ToolboxWrapParams) {\n return function approveAmount({ assetAddress, spenderAddress, from }: IsApprovedParams) {\n const call = getCall({ chain, isEIP1559Compatible: true, provider });\n\n return call<bigint>({\n abi: erc20ABI,\n contractAddress: assetAddress,\n funcName: \"allowance\",\n funcParams: [from, spenderAddress],\n });\n };\n}\n\nfunction getIsApproved({ provider, chain }: ToolboxWrapParams) {\n return async function isApproved({ assetAddress, spenderAddress, from, amount = MAX_APPROVAL }: IsApprovedParams) {\n const approvedAmount = await getApprovedAmount({ chain, provider })({ assetAddress, from, spenderAddress });\n\n return SwapKitNumber.fromBigInt(approvedAmount).gte(SwapKitNumber.fromBigInt(BigInt(amount)));\n };\n}\n\nfunction getApprove({ signer, isEIP1559Compatible = true, provider, chain }: ToolboxWrapParams) {\n return async function approve({\n assetAddress,\n spenderAddress,\n feeOptionKey = FeeOption.Fast,\n amount,\n gasLimitFallback,\n from: fromParam,\n nonce,\n }: ApproveParams) {\n const funcParams = [spenderAddress, BigInt(amount || MAX_APPROVAL)];\n const from = (await signer?.getAddress()) || fromParam;\n\n const functionCallParams = {\n abi: erc20ABI,\n contractAddress: assetAddress,\n funcName: \"approve\",\n funcParams,\n signer,\n txOverrides: { from },\n };\n\n if (isBrowserProvider(provider)) {\n const createTx = getCreateContractTxObject({ chain, provider });\n const sendTx = getEIP1193SendTransaction(provider);\n const txObject = await createTx(functionCallParams);\n\n return sendTx(txObject);\n }\n\n const call = getCall({ chain, isEIP1559Compatible, provider, signer });\n\n return call<string>({\n ...functionCallParams,\n feeOption: feeOptionKey,\n funcParams,\n txOverrides: { from, gasLimit: gasLimitFallback ? BigInt(gasLimitFallback.toString()) : undefined, nonce },\n });\n };\n}\n\nfunction getTransfer({ signer, isEIP1559Compatible = true, provider }: ToolboxWrapParams) {\n return async function transfer({\n assetValue,\n memo,\n recipient,\n feeOptionKey = FeeOption.Fast,\n sender,\n // data,\n // from: fromOverride,\n // maxFeePerGas,\n // maxPriorityFeePerGas,\n // gasPrice,\n ...tx\n }: EVMTransferParams) {\n const { hexlify, toUtf8Bytes } = await import(\"ethers\");\n const txAmount = assetValue.getBaseValue(\"bigint\");\n const chain = assetValue.chain as EVMChain;\n const from = sender || (await signer?.getAddress());\n const sendTx = getSendTransaction({ chain, isEIP1559Compatible, provider, signer });\n\n if (!from) throw new SwapKitError(\"toolbox_evm_no_from_address\");\n\n if (assetValue.isGasAsset) {\n const transaction = {\n ...tx,\n data: hexlify(toUtf8Bytes(memo || \"\")),\n feeOptionKey,\n from,\n to: recipient,\n value: txAmount,\n };\n\n return sendTx(transaction);\n }\n\n // const call = getCall({ signer, provider, isEIP1559Compatible });\n const contractAddress = getTokenAddress(assetValue, chain);\n if (!contractAddress) throw new SwapKitError(\"toolbox_evm_no_contract_address\");\n\n const { maxFeePerGas, maxPriorityFeePerGas, gasPrice } = (\n await getEstimateGasPrices({ chain, isEIP1559Compatible, provider })()\n )[feeOptionKey];\n\n const transaction = await getCreateTransferTx({ chain, provider, signer })({\n assetValue,\n data: hexlify(toUtf8Bytes(memo || \"\")),\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n memo,\n recipient,\n sender: from,\n });\n\n return sendTx(transaction);\n };\n}\n\nfunction getEstimateCall({ provider, signer }: { signer?: Signer; provider: Provider }) {\n return function estimateCall({ contractAddress, abi, funcName, funcParams = [], txOverrides }: EstimateCallParams) {\n if (!contractAddress) throw new SwapKitError(\"toolbox_evm_no_contract_address\");\n\n const contract = createContract(contractAddress, abi, provider);\n return signer\n ? contract\n .connect(signer)\n .getFunction(funcName)\n .estimateGas(...funcParams, txOverrides)\n : contract.getFunction(funcName).estimateGas(...funcParams, txOverrides);\n };\n}\n\nfunction getEstimateGasLimit({ provider, signer }: ToolboxWrapParams) {\n return async function estimateGasLimit({\n assetValue,\n recipient,\n memo,\n data,\n sender,\n funcName,\n funcParams,\n txOverrides,\n }: EVMTransferParams & {\n assetValue: AssetValue;\n funcName?: string;\n funcParams?: unknown[];\n txOverrides?: EVMTxParams;\n data?: string;\n }) {\n // const value = assetValue.getBaseValue(\"bigint\");\n const value = assetValue.bigIntValue;\n\n const assetAddress = assetValue.isGasAsset ? null : getTokenAddress(assetValue, assetValue.chain as EVMChain);\n\n if (assetAddress && funcName) {\n const estimateCall = getEstimateCall({ provider, signer });\n // ERC20 gas estimate\n return estimateCall({ abi: erc20ABI, contractAddress: assetAddress, funcName, funcParams, txOverrides });\n }\n\n const { hexlify, toUtf8Bytes } = await import(\"ethers\");\n\n return provider.estimateGas({\n data: data ? data : memo ? hexlify(toUtf8Bytes(memo)) : undefined,\n from: sender,\n to: recipient,\n value,\n });\n };\n}\n\nconst isEIP1559Transaction = (tx: EVMTxParams) =>\n (tx as EIP1559TxParams).type === 2 ||\n !!(tx as EIP1559TxParams).maxFeePerGas ||\n !!(tx as EIP1559TxParams).maxPriorityFeePerGas;\n\nfunction getSendTransaction({ provider, signer, isEIP1559Compatible = true, chain }: ToolboxWrapParams) {\n return async function sendTransaction({\n feeOptionKey = FeeOption.Fast,\n ...tx\n }: EVMTxParams & { feeOptionKey?: FeeOption }) {\n const { from, to, data, value, ...transaction } = tx;\n\n if (!signer) throw new SwapKitError(\"toolbox_evm_no_signer\");\n if (!to) throw new SwapKitError(\"toolbox_evm_no_to_address\");\n\n const parsedTxObject = { ...transaction, data: data || \"0x\", from, to, value: BigInt(value || 0) };\n\n // early return to skip gas estimation if provider is EIP-1193\n if (isBrowserProvider(provider)) {\n const sendTx = getEIP1193SendTransaction(provider);\n return sendTx(parsedTxObject);\n }\n\n const address = from || (await signer.getAddress());\n const nonce = tx.nonce || (await provider.getTransactionCount(address));\n const chainId = (await provider.getNetwork()).chainId;\n\n const isEIP1559 = isEIP1559Transaction(parsedTxObject) || isEIP1559Compatible;\n const estimateGasPrices = getEstimateGasPrices({ chain, isEIP1559Compatible, provider });\n\n const feeData =\n (isEIP1559 &&\n !(\n (parsedTxObject as EIP1559TxParams).maxFeePerGas && (parsedTxObject as EIP1559TxParams).maxPriorityFeePerGas\n )) ||\n !(parsedTxObject as LegacyEVMTxParams).gasPrice\n ? Object.entries((await estimateGasPrices())[feeOptionKey]).reduce(\n // biome-ignore lint/performance/noAccumulatingSpread: this is a small object\n (acc, [k, v]) => ({ ...acc, [k]: toHexString(BigInt(v)) }),\n {} as { maxFeePerGas?: string; maxPriorityFeePerGas?: string; gasPrice?: string },\n )\n : {};\n let gasLimit: string;\n try {\n gasLimit = toHexString(parsedTxObject.gasLimit || ((await provider.estimateGas(parsedTxObject)) * 11n) / 10n);\n } catch (error) {\n throw new SwapKitError(\"toolbox_evm_error_estimating_gas_limit\", { error });\n }\n\n try {\n const txObject = { ...parsedTxObject, chainId, gasLimit, nonce, type: isEIP1559 ? 2 : 0, ...feeData };\n\n try {\n const response = await signer.sendTransaction(txObject);\n return response.hash;\n } catch {\n const txHex = await signer.signTransaction({ ...txObject, from: address });\n const response = await provider.broadcastTransaction(txHex);\n return response.hash;\n }\n } catch (error) {\n throw new SwapKitError(\"toolbox_evm_error_sending_transaction\", { error });\n }\n };\n}\n\nfunction getCreateTransferTx({ provider, signer }: ToolboxWrapParams) {\n return async function createTransferTx({\n assetValue,\n memo,\n recipient,\n data,\n sender: fromOverride,\n maxFeePerGas,\n maxPriorityFeePerGas,\n gasPrice,\n ...tx\n }: EVMCreateTransactionParams) {\n const txAmount = assetValue.getBaseValue(\"bigint\");\n const chain = assetValue.chain as EVMChain;\n const from = fromOverride || (await signer?.getAddress());\n\n if (!from) throw new SwapKitError(\"toolbox_evm_no_from_address\");\n\n if (isGasAsset(assetValue)) {\n const { hexlify, toUtf8Bytes } = await import(\"ethers\");\n\n return { ...tx, data: data || hexlify(toUtf8Bytes(memo || \"\")), from, to: recipient, value: txAmount };\n }\n\n const contractAddress = getTokenAddress(assetValue, chain);\n if (!contractAddress) throw new SwapKitError(\"toolbox_evm_no_contract_address\");\n const createTx = getCreateContractTxObject({ chain: assetValue.chain as EVMChain, provider });\n\n return createTx({\n abi: erc20ABI,\n contractAddress,\n funcName: \"transfer\",\n funcParams: [recipient, txAmount],\n txOverrides: { from, gasPrice, maxFeePerGas, maxPriorityFeePerGas },\n });\n };\n}\n\nfunction getCreateApprovalTx({ provider, signer, chain }: ToolboxWrapParams) {\n return async function createApprovalTx({ assetAddress, spenderAddress, amount, from: fromParam }: ApproveParams) {\n const from = (await signer?.getAddress()) || fromParam;\n\n const createTx = getCreateContractTxObject({ chain, provider });\n const approvalAmount = [\"bigint\", \"number\"].includes(typeof amount)\n ? (amount as bigint | number)\n : amount || MAX_APPROVAL;\n\n const txObject = await createTx({\n abi: erc20ABI,\n contractAddress: assetAddress,\n funcName: \"approve\",\n funcParams: [spenderAddress, BigInt(approvalAmount)],\n txOverrides: { from },\n });\n\n return txObject;\n };\n}\n\nfunction getEstimateTransactionFee({\n provider,\n isEIP1559Compatible = true,\n}: {\n provider: Provider | BrowserProvider;\n isEIP1559Compatible?: boolean;\n chain: EVMChain;\n}) {\n return async function estimateTransactionFee({\n feeOption = FeeOption.Fast,\n chain,\n ...txObject\n }: EIP1559TxParams & { feeOption: FeeOption; chain: EVMChain }) {\n const estimateGasPrices = getEstimateGasPrices({ chain, isEIP1559Compatible, provider });\n const gasPrices = await estimateGasPrices();\n const gasLimit = await provider.estimateGas(txObject);\n\n const assetValue = AssetValue.from({ chain });\n const { gasPrice, maxFeePerGas, maxPriorityFeePerGas } = gasPrices[feeOption];\n\n if (!isEIP1559Compatible && gasPrice) {\n return assetValue.set(SwapKitNumber.fromBigInt(gasPrice * gasLimit, assetValue.decimal));\n }\n\n if (maxFeePerGas && maxPriorityFeePerGas) {\n const fee = (maxFeePerGas + maxPriorityFeePerGas) * gasLimit;\n\n return assetValue.set(SwapKitNumber.fromBigInt(fee, assetValue.decimal));\n }\n\n throw new SwapKitError(\"toolbox_evm_no_gas_price\");\n };\n}\n",
|
|
10
10
|
"import { Chain, type EVMChain, FeeOption, getRPCUrl } from \"@swapkit/helpers\";\nimport { match, P } from \"ts-pattern\";\n\nimport { getEvmApi } from \"../api\";\nimport { multicallAbi } from \"../contracts/eth/multicall\";\nimport { getIsEIP1559Compatible, getNetworkParams, getProvider } from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { BaseEVMToolbox } from \"./baseEVMToolbox\";\n\nexport async function ETHToolbox({ provider, ...signer }: EVMToolboxParams) {\n const evmToolbox = await createEvmToolbox(Chain.Ethereum)({ provider, ...signer });\n async function multicall(\n callTuples: { address: string; data: string }[],\n multicallAddress = \"0x5ba1e12693dc8f9c48aad8770482f4739beed696\",\n funcName = \"aggregate\",\n feeOptionKey: FeeOption = FeeOption.Fast,\n ) {\n const txObject = await evmToolbox.createContractTxObject({\n abi: multicallAbi,\n contractAddress: multicallAddress,\n funcName,\n funcParams: [callTuples],\n });\n\n return evmToolbox.sendTransaction({ ...txObject, feeOptionKey });\n }\n\n return { ...evmToolbox, multicall };\n}\n\nexport const ARBToolbox = createEvmToolbox(Chain.Arbitrum);\nexport const AURORAToolbox = createEvmToolbox(Chain.Aurora);\nexport const AVAXToolbox = createEvmToolbox(Chain.Avalanche);\nexport const BASEToolbox = createEvmToolbox(Chain.Base);\nexport const BERAToolbox = createEvmToolbox(Chain.Berachain);\nexport const BSCToolbox = createEvmToolbox(Chain.BinanceSmartChain);\nexport const BotanixToolbox = createEvmToolbox(Chain.Botanix);\nexport const COREToolbox = createEvmToolbox(Chain.Core);\nexport const CORNToolbox = createEvmToolbox(Chain.Corn);\nexport const CROToolbox = createEvmToolbox(Chain.Cronos);\nexport const GNOToolbox = createEvmToolbox(Chain.Gnosis);\nexport const HYPEREVMToolbox = createEvmToolbox(Chain.Hyperevm);\nexport const MATICToolbox = createEvmToolbox(Chain.Polygon);\nexport const SONICToolbox = createEvmToolbox(Chain.Sonic);\nexport const UNIToolbox = createEvmToolbox(Chain.Unichain);\nexport const XLayerToolbox = createEvmToolbox(Chain.XLayer);\n\nfunction createEvmToolbox<C extends EVMChain>(chain: C) {\n return async function createEvmToolbox({ provider: providerParam, ...toolboxSignerParams }: EVMToolboxParams) {\n const { HDNodeWallet } = await import(\"ethers\");\n const rpcUrl = await getRPCUrl(chain);\n\n const provider = providerParam || (await getProvider(chain, rpcUrl));\n\n const isEIP1559Compatible = getIsEIP1559Compatible(chain);\n const signer = match(toolboxSignerParams)\n .with({ phrase: P.string }, ({ phrase }) => HDNodeWallet.fromPhrase(phrase).connect(provider))\n .with({ signer: P.any }, ({ signer }) => signer)\n .otherwise(() => undefined);\n\n const evmToolbox = BaseEVMToolbox({ chain, isEIP1559Compatible, provider, signer });\n\n return { ...evmToolbox, getBalance: getEvmApi(chain).getBalance, getNetworkParams: getNetworkParams(chain) };\n };\n}\n",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"import type {\n AssetValue,\n ChainSigner,\n DerivationPathArray,\n FeeOption,\n GenericCreateTransactionParams,\n GenericTransferParams,\n} from \"@swapkit/helpers\";\nimport { Chain } from \"@swapkit/helpers\";\nimport type {\n BigNumberish,\n BrowserProvider,\n JsonFragment,\n JsonRpcProvider,\n JsonRpcSigner,\n Signer,\n Transaction,\n} from \"ethers\";\nimport type { getProvider } from \"./index\";\nimport type {\n ARBToolbox,\n AURORAToolbox,\n AVAXToolbox,\n BASEToolbox,\n BERAToolbox,\n BSCToolbox,\n COREToolbox,\n CORNToolbox,\n CROToolbox,\n ETHToolbox,\n GNOToolbox,\n HYPEREVMToolbox,\n MATICToolbox,\n OPToolbox,\n SONICToolbox,\n UNIToolbox,\n XLayerToolbox,\n} from \"./toolbox\";\n\nexport enum EthNetwork {\n Test = \"goerli\",\n Main = \"homestead\",\n}\n\nexport type ApproveParams = {\n assetAddress: string;\n spenderAddress: string;\n feeOptionKey?: FeeOption;\n amount?: BigNumberish;\n from?: string;\n // Optional fallback in case estimation for gas limit fails\n gasLimitFallback?: BigNumberish;\n nonce?: number;\n};\n\nexport type ApprovedParams = { assetAddress: string; spenderAddress: string; from: string };\n\nexport type IsApprovedParams = ApprovedParams & { amount?: BigNumberish };\n\nexport type CallParams = {\n callProvider?: Awaited<ReturnType<typeof getProvider>>;\n contractAddress: string;\n abi: readonly JsonFragment[];\n funcName: string;\n funcParams?: unknown[];\n txOverrides?: Partial<Transaction>;\n feeOption?: FeeOption;\n};\n\nexport type EstimateCallParams = Pick<\n CallParams,\n \"contractAddress\" | \"abi\" | \"funcName\" | \"funcParams\" | \"txOverrides\"\n>;\n\nexport type EVMTransferParams = GenericTransferParams & { sender?: string };\n\nexport type EVMCreateTransactionParams = Omit<GenericCreateTransactionParams, \"feeRate\"> & {\n gasLimit?: bigint;\n gasPrice?: bigint;\n maxFeePerGas?: bigint;\n maxPriorityFeePerGas?: bigint;\n data?: string;\n nonce?: number;\n};\n\nexport type EVMMaxSendableAmountsParams = {\n from: string;\n assetValue: AssetValue;\n feeOptionKey?: FeeOption;\n memo?: string;\n abi?: readonly JsonFragment[];\n funcName?: string;\n contractAddress?: string;\n funcParams?: unknown[];\n txOverrides?: Partial<Transaction>;\n};\n\nexport type EVMTxBaseParams<T = bigint> = {\n to?: string;\n from?: string;\n nonce?: number;\n gasLimit?: T;\n data?: string;\n value?: T;\n chainId?: T;\n};\n\nexport type EIP1559TxParams<T = bigint> = EVMTxBaseParams<T> & {\n type?: number;\n maxFeePerGas?: T;\n maxPriorityFeePerGas?: T;\n};\n\nexport type LegacyEVMTxParams<T = bigint> = EVMTxBaseParams<T> & { gasPrice?: T };\n\nexport type EVMTxParams = EIP1559TxParams | LegacyEVMTxParams;\n\nexport type EVMToolboxParams = { provider?: BrowserProvider | JsonRpcProvider } & (\n | { signer?: (ChainSigner<EVMTransferParams, string> & Signer) | JsonRpcSigner }\n | { phrase?: string; derivationPath?: DerivationPathArray; index?: number }\n);\n\nexport type EVMToolboxes = {\n [Chain.Arbitrum]: Awaited<ReturnType<typeof ARBToolbox>>;\n [Chain.Aurora]: Awaited<ReturnType<typeof AURORAToolbox>>;\n [Chain.Avalanche]: Awaited<ReturnType<typeof AVAXToolbox>>;\n [Chain.Base]: Awaited<ReturnType<typeof BASEToolbox>>;\n [Chain.Berachain]: Awaited<ReturnType<typeof BERAToolbox>>;\n [Chain.BinanceSmartChain]: Awaited<ReturnType<typeof BSCToolbox>>;\n [Chain.Botanix]: Awaited<ReturnType<typeof SONICToolbox>>;\n [Chain.Core]: Awaited<ReturnType<typeof COREToolbox>>;\n [Chain.Corn]: Awaited<ReturnType<typeof CORNToolbox>>;\n [Chain.Cronos]: Awaited<ReturnType<typeof CROToolbox>>;\n [Chain.Hyperevm]: Awaited<ReturnType<typeof HYPEREVMToolbox>>;\n [Chain.Ethereum]: Awaited<ReturnType<typeof ETHToolbox>>;\n [Chain.Gnosis]: Awaited<ReturnType<typeof GNOToolbox>>;\n [Chain.Optimism]: Awaited<ReturnType<typeof OPToolbox>>;\n [Chain.Polygon]: Awaited<ReturnType<typeof MATICToolbox>>;\n [Chain.Sonic]: Awaited<ReturnType<typeof SONICToolbox>>;\n [Chain.Unichain]: Awaited<ReturnType<typeof UNIToolbox>>;\n [Chain.XLayer]: Awaited<ReturnType<typeof XLayerToolbox>>;\n};\n",
|
|
15
15
|
"export * from \"./api\";\nexport * from \"./helpers\";\nexport * from \"./toolbox\";\nexport * from \"./types\";\n"
|
|
16
16
|
],
|
|
17
|
-
"mappings": "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",
|
|
18
|
-
"debugId": "
|
|
17
|
+
"mappings": "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",
|
|
18
|
+
"debugId": "1AE903F6E443E7AC64756E2164756E21",
|
|
19
19
|
"names": []
|
|
20
20
|
}
|
package/dist/src/evm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var yn=Object.create;var{getPrototypeOf:en,defineProperty:ft,getOwnPropertyNames:ln}=Object;var an=Object.prototype.hasOwnProperty;var Y=(t,o,n)=>{n=t!=null?yn(en(t)):{};let y=o||!t||!t.__esModule?ft(n,"default",{value:t,enumerable:!0}):n;for(let u of ln(t))if(!an.call(y,u))ft(y,u,{get:()=>t[u],enumerable:!0});return y};var Nt=(t,o)=>{for(var n in o)ft(t,n,{get:o[n],enumerable:!0,configurable:!0,set:(y)=>o[n]=()=>y})};var h=(t,o)=>()=>(t&&(o=t(t=0)),o);var $=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,n)=>(typeof require<"u"?require:o)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as mn,getChainConfig as bn}from"@swapkit/helpers";import{SwapKitApi as Tn}from"@swapkit/helpers/api";function oo(){function t(){let o=Date.now(),n=Rt||o;return Rt=n,o>Rt?o:n+1}return pn+t().toString(36)}function Xt(t){return async function(n,y=!0){let u=await Tn.getChainBalance({address:n,chain:t,scamFilter:y}),{baseDecimal:e}=bn(t);return u.map(({identifier:l,value:m,decimal:a})=>{return new mn({decimal:a||e,identifier:l,value:m})})}}var pn,Rt=0;var Wt=h(()=>{pn=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as sn,warnOnce as xn}from"@swapkit/helpers";function j(t){let o=sn.get("apis")[t];if(o)return xn({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),o;return cn(t)}function wn(t){return t}function cn(t){return{getBalance:Xt(t)}}var O=h(()=>{Wt()});import{Chain as c,getChainConfig as Yt,getRPCUrl as Mn,SwapKitError as fn}from"@swapkit/helpers";async function N(t,o){let{JsonRpcProvider:n}=await import("ethers");return new n(o||await Mn(t))}function A(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function Bt(t){let{explorerUrl:o,chainId:n,rpcUrls:y}=Yt(t);return()=>t===c.Ethereum?void 0:{...Rn({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:y}}function Dt(t){return![c.Arbitrum,c.BinanceSmartChain].includes(t)}function Rn({chain:t}){let{baseDecimal:o}=Yt(t);switch(t){case c.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:c.Ethereum}};case c.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:c.Ethereum}};case c.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:t}};case c.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:c.Ethereum}};case c.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}};case c.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}};case c.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}};case c.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:c.Ethereum}};case c.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:c.Polygon}};default:throw new fn("toolbox_evm_not_supported",{chain:t})}}var Q=()=>{};var $t;var Qt=h(()=>{$t=[{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 Bn,applyFeeMultiplierToBigInt as U,Chain as q,EVMChains as Dn,FeeOption as b,isGasAsset as Cn,SwapKitError as x,SwapKitNumber as v}from"@swapkit/helpers";import{erc20ABI as K}from"@swapkit/helpers/contracts";import{BrowserProvider as Un,Contract as Zt,getAddress as d,Interface as Et}from"ethers";import{match as Ln}from"ts-pattern";function Z({chain:t=q.Ethereum,provider:o,signer:n,isEIP1559Compatible:y=!0}){return{approve:zn({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),approvedAmount:_t({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:ht({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),createApprovalTx:Xn({chain:t,provider:o,signer:n}),createContract:Lt({chain:t,provider:o}),createContractTxObject:X({chain:t,provider:o}),createTransaction:Ct({chain:t,provider:o,signer:n}),createTransferTx:Ct({chain:t,provider:o,signer:n}),EIP1193SendTransaction:V(o),estimateCall:jt({provider:o,signer:n}),estimateGasLimit:kn({chain:t,provider:o,signer:n}),estimateGasPrices:W({chain:t,isEIP1559Compatible:y,provider:o}),estimateTransactionFee:Wn({chain:t,isEIP1559Compatible:y,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},isApproved:qn({chain:t,provider:o}),sendTransaction:At({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),signMessage:n?.signMessage,transfer:Jn({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),validateAddress:(u)=>Ut({address:u})}}function Ut({address:t}){try{return d(t),!0}catch{return!1}}function E(t){return t instanceof Un}function g(t,o,n){return new Zt(t,Et.from(o),n)}function Lt({provider:t}){return function(n,y){return new Zt(n,Et.from(y),t)}}function Gt({abi:t,funcName:o}){let n=t.find((y)=>y.name===o);if(!n)throw new x("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&Gn.includes(n.stateMutability)}function Vt(t){return d(t)}function V(t){return function({value:n,...y}){if(!E(t))throw new x("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:u,gasPrice:e,maxFeePerGas:l,maxPriorityFeePerGas:m,...a}=y;return t.send("eth_sendTransaction",[{...a,value:A(BigInt(n||0))}])}}function St(t,o){let n=S(t,o);if(n)return d(n.toLowerCase());throw new x("toolbox_evm_invalid_gas_asset_address")}function S({chain:t,symbol:o,ticker:n},y){try{let u=t===q.BinanceSmartChain&&o==="BNB"&&n==="BNB",e=t===y&&o===y&&n===y,l=hn.includes(t)&&o==="ETH"&&n==="ETH";if(e||u||l)return Ht[y];return d(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function X({provider:t}){return async({contractAddress:o,abi:n,funcName:y,funcParams:u=[],txOverrides:e})=>g(o,n,t).getFunction(y).populateTransaction(...u.concat(e).filter((l)=>typeof l<"u"))}function W({chain:t,provider:o,isEIP1559Compatible:n=!0}){return Ln(t).with(q.Gnosis,()=>{return async function(){try{let{gasPrice:u,maxPriorityFeePerGas:e}=await o.getFeeData();if(!u||e===null)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:U(u,b.Average),maxPriorityFeePerGas:U(e,b.Average)},[b.Fast]:{maxFeePerGas:U(u,b.Fast),maxPriorityFeePerGas:U(e,b.Fast)},[b.Fastest]:{maxFeePerGas:U(u,b.Fastest),maxPriorityFeePerGas:U(e,b.Fastest)}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).with(q.Arbitrum,()=>{return async function(){try{let{gasPrice:u}=await o.getFeeData();if(!u)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:u},[b.Fast]:{gasPrice:u},[b.Fastest]:{gasPrice:u}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:e,gasPrice:l}=await o.getFeeData();if(n){if(u===null||e===null)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:u,maxPriorityFeePerGas:e},[b.Fast]:{maxFeePerGas:U(u,b.Fast),maxPriorityFeePerGas:U(e,b.Fast)},[b.Fastest]:{maxFeePerGas:U(u,b.Fastest),maxPriorityFeePerGas:U(e,b.Fastest)}}}if(!l)throw new x("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:l},[b.Fast]:{gasPrice:U(l,b.Fast)},[b.Fastest]:{gasPrice:U(l,b.Fastest)}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}})}function ht({provider:t,isEIP1559Compatible:o,signer:n,chain:y}){return async function({callProvider:e,contractAddress:l,abi:m,funcName:a,funcParams:s=[],txOverrides:p={},feeOption:B=b.Fast}){let T=e||t;if(!l)throw new x("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let w=Gt({abi:m,funcName:a});if(w&&E(T)&&n){let L=X({chain:y,provider:T}),G=p?.from||await n?.getAddress(),H=await L({abi:m,contractAddress:l,funcName:a,funcParams:s,txOverrides:{...p,from:G}});return V(T)(H)}let i=g(l,m,T);if(w){if(!n)throw new x("toolbox_evm_no_signer");let L=p?.from||await n.getAddress();if(!L)throw new x("toolbox_evm_no_signer_address");let G=i.connect(n),H=W({chain:y,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:k,maxPriorityFeePerGas:C,gasPrice:J}=(await H())[B],F=await i.getFunction(a).estimateGas(...s,p),Mt=await G[a](...s,{...p,gasLimit:F,gasPrice:J,maxFeePerGas:k,maxPriorityFeePerGas:C,nonce:p?.nonce||await T.getTransactionCount(L)});return typeof Mt?.hash==="string"?Mt?.hash:Mt}let D=await i[a]?.(...s);return typeof D?.hash==="string"?D?.hash:D}}function _t({provider:t,chain:o}){return function({assetAddress:y,spenderAddress:u,from:e}){return ht({chain:o,isEIP1559Compatible:!0,provider:t})({abi:K,contractAddress:y,funcName:"allowance",funcParams:[e,u]})}}function qn({provider:t,chain:o}){return async function({assetAddress:y,spenderAddress:u,from:e,amount:l=P}){let m=await _t({chain:o,provider:t})({assetAddress:y,from:e,spenderAddress:u});return v.fromBigInt(m).gte(v.fromBigInt(BigInt(l)))}}function zn({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:y}){return async function({assetAddress:e,spenderAddress:l,feeOptionKey:m=b.Fast,amount:a,gasLimitFallback:s,from:p,nonce:B}){let T=[l,BigInt(a||P)],w=await t?.getAddress()||p,i={abi:K,contractAddress:e,funcName:"approve",funcParams:T,signer:t,txOverrides:{from:w}};if(E(n)){let L=X({chain:y,provider:n}),G=V(n),H=await L(i);return G(H)}return ht({chain:y,isEIP1559Compatible:o,provider:n,signer:t})({...i,feeOption:m,funcParams:T,txOverrides:{from:w,gasLimit:s?BigInt(s.toString()):void 0,nonce:B}})}}function Jn({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:u,memo:e,recipient:l,feeOptionKey:m=b.Fast,sender:a,...s}){let{hexlify:p,toUtf8Bytes:B}=await import("ethers"),T=u.getBaseValue("bigint"),w=u.chain,i=a||await t?.getAddress(),D=At({chain:w,isEIP1559Compatible:o,provider:n,signer:t});if(!i)throw new x("toolbox_evm_no_from_address");if(u.isGasAsset){let J={...s,data:p(B(e||"")),feeOptionKey:m,from:i,to:l,value:T};return D(J)}if(!S(u,w))throw new x("toolbox_evm_no_contract_address");let{maxFeePerGas:G,maxPriorityFeePerGas:H,gasPrice:k}=(await W({chain:w,isEIP1559Compatible:o,provider:n})())[m],C=await Ct({chain:w,provider:n,signer:t})({assetValue:u,data:p(B(e||"")),gasPrice:k,maxFeePerGas:G,maxPriorityFeePerGas:H,memo:e,recipient:l,sender:i});return D(C)}}function jt({provider:t,signer:o}){return function({contractAddress:y,abi:u,funcName:e,funcParams:l=[],txOverrides:m}){if(!y)throw new x("toolbox_evm_no_contract_address");let a=g(y,u,t);return o?a.connect(o).getFunction(e).estimateGas(...l,m):a.getFunction(e).estimateGas(...l,m)}}function kn({provider:t,signer:o}){return async function({assetValue:y,recipient:u,memo:e,data:l,sender:m,funcName:a,funcParams:s,txOverrides:p}){let B=y.bigIntValue,T=y.isGasAsset?null:S(y,y.chain);if(T&&a)return jt({provider:t,signer:o})({abi:K,contractAddress:T,funcName:a,funcParams:s,txOverrides:p});let{hexlify:w,toUtf8Bytes:i}=await import("ethers");return t.estimateGas({data:l?l:e?w(i(e)):void 0,from:m,to:u,value:B})}}function At({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:y}){return async function({feeOptionKey:e=b.Fast,...l}){let{from:m,to:a,data:s,value:p,...B}=l;if(!o)throw new x("toolbox_evm_no_signer");if(!a)throw new x("toolbox_evm_no_to_address");let T={...B,data:s||"0x",from:m,to:a,value:BigInt(p||0)};if(E(t))return V(t)(T);let w=m||await o.getAddress(),i=l.nonce||await t.getTransactionCount(w),D=(await t.getNetwork()).chainId,L=Nn(T)||n,G=W({chain:y,isEIP1559Compatible:n,provider:t}),H=L&&!(T.maxFeePerGas&&T.maxPriorityFeePerGas)||!T.gasPrice?Object.entries((await G())[e]).reduce((C,[J,F])=>({...C,[J]:A(BigInt(F))}),{}):{},k;try{k=A(T.gasLimit||await t.estimateGas(T)*11n/10n)}catch(C){throw new x("toolbox_evm_error_estimating_gas_limit",{error:C})}try{let C={...T,chainId:D,gasLimit:k,nonce:i,type:L?2:0,...H};try{return(await o.sendTransaction(C)).hash}catch{let J=await o.signTransaction({...C,from:w});return(await t.broadcastTransaction(J)).hash}}catch(C){throw new x("toolbox_evm_error_sending_transaction",{error:C})}}}function Ct({provider:t,signer:o}){return async function({assetValue:y,memo:u,recipient:e,data:l,sender:m,maxFeePerGas:a,maxPriorityFeePerGas:s,gasPrice:p,...B}){let T=y.getBaseValue("bigint"),w=y.chain,i=m||await o?.getAddress();if(!i)throw new x("toolbox_evm_no_from_address");if(Cn(y)){let{hexlify:G,toUtf8Bytes:H}=await import("ethers");return{...B,data:l||G(H(u||"")),from:i,to:e,value:T}}let D=S(y,w);if(!D)throw new x("toolbox_evm_no_contract_address");return X({chain:y.chain,provider:t})({abi:K,contractAddress:D,funcName:"transfer",funcParams:[e,T],txOverrides:{from:i,gasPrice:p,maxFeePerGas:a,maxPriorityFeePerGas:s}})}}function Xn({provider:t,signer:o,chain:n}){return async function({assetAddress:u,spenderAddress:e,amount:l,from:m}){let a=await o?.getAddress()||m,s=X({chain:n,provider:t}),p=["bigint","number"].includes(typeof l)?l:l||P;return await s({abi:K,contractAddress:u,funcName:"approve",funcParams:[e,BigInt(p)],txOverrides:{from:a}})}}function Wn({provider:t,isEIP1559Compatible:o=!0}){return async function({feeOption:y=b.Fast,chain:u,...e}){let m=await W({chain:u,isEIP1559Compatible:o,provider:t})(),a=await t.estimateGas(e),s=Bn.from({chain:u}),{gasPrice:p,maxFeePerGas:B,maxPriorityFeePerGas:T}=m[y];if(!o&&p)return s.set(v.fromBigInt(p*a,s.decimal));if(B&&T){let w=(B+T)*a;return s.set(v.fromBigInt(w,s.decimal))}throw new x("toolbox_evm_no_gas_price")}}var P,Gn,Hn,Ht,hn,Nn=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;var r=h(()=>{Q();P=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Gn=["payable","nonpayable"];Hn=Dn.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),Ht={...Hn,[q.Optimism]:"0x4200000000000000000000000000000000000042",[q.Polygon]:"0x0000000000000000000000000000000000001010"},hn=[q.Arbitrum,q.Aurora,q.Base,q.Optimism]});import{Chain as f,FeeOption as Yn,getRPCUrl as $n}from"@swapkit/helpers";import{match as Qn,P as Kt}from"ts-pattern";async function tt({provider:t,...o}){let n=await R(f.Ethereum)({provider:t,...o});async function y(u,e="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",m=Yn.Fast){let a=await n.createContractTxObject({abi:$t,contractAddress:e,funcName:l,funcParams:[u]});return n.sendTransaction({...a,feeOptionKey:m})}return{...n,multicall:y}}function R(t){return async function({provider:n,...y}){let{HDNodeWallet:u}=await import("ethers"),e=await $n(t),l=n||await N(t,e),m=Dt(t),a=Qn(y).with({phrase:Kt.string},({phrase:p})=>u.fromPhrase(p).connect(l)).with({signer:Kt.any},({signer:p})=>p).otherwise(()=>{return});return{...Z({chain:t,isEIP1559Compatible:m,provider:l,signer:a}),getBalance:j(t).getBalance,getNetworkParams:Bt(t)}}}var nt,ot,ut,yt,et,lt,Pt,at,mt,bt,Tt,pt,st,I,xt,wt;var qt=h(()=>{O();Qt();Q();r();nt=R(f.Arbitrum),ot=R(f.Aurora),ut=R(f.Avalanche),yt=R(f.Base),et=R(f.Berachain),lt=R(f.BinanceSmartChain),Pt=R(f.Botanix),at=R(f.Core),mt=R(f.Corn),bt=R(f.Cronos),Tt=R(f.Gnosis),pt=R(f.Hyperevm),st=R(f.Polygon),I=R(f.Sonic),xt=R(f.Unichain),wt=R(f.XLayer)});var gt;var It=h(()=>{gt=[{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 _,Chain as ct,FeeOption as z,getChainConfig as En,getRPCUrl as Vn,SwapKitError as zt}from"@swapkit/helpers";import{Contract as Sn,HDNodeWallet as _n}from"ethers";import{match as jn,P as Ft}from"ts-pattern";function Jt(t){return new Sn(An,gt,t)}function Ot(t){return async function(){let n=Jt(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function vt(t){return async function({from:n,to:y,nonce:u,...e}){let{Transaction:l}=await import("ethers");if(!y)throw new zt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return l.from({...e,authorizationList:e.authorizationList,nonce:u?u:n?await t.getTransactionCount(n):0,to:y}).serialized}}function dt(t){return async function(n){let y=Jt(t),u=await vt(t)(n);if(y&&"getL1Fee"in y)return y.getL1Fee(u)}}function rt(t){return async function(n){let y=await t.send("eth_gasPrice",[]),u=await t.estimateGas(n);return y.mul(u)}}function Kn(t){return async function(n){let y=await dt(t)(n),u=await rt(t)(n);return y.add(u)}}function Pn(t){return async function(n){let y=Jt(t),u=await vt(t)(n);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(u)}}function gn(){let{baseDecimal:t,chainId:o,explorerUrl:n,name:y,rpcUrls:u}=En(ct.Optimism);return{blockExplorerUrls:[n],chainId:o,chainName:y,nativeCurrency:{decimals:t,name:"Ethereum",symbol:ct.Ethereum},rpcUrls:u}}async function In(t){try{let{maxFeePerGas:o,maxPriorityFeePerGas:n,gasPrice:y}=await t.getFeeData(),u=await Ot(t)(),e=y;if(!(o&&n))throw new zt("toolbox_evm_no_fee_data");return{[z.Average]:{gasPrice:e,l1GasPrice:u,maxFeePerGas:o,maxPriorityFeePerGas:n},[z.Fast]:{gasPrice:_(e,z.Fast),l1GasPrice:_(u||0n,z.Fast),maxFeePerGas:o,maxPriorityFeePerGas:_(n,z.Fast)},[z.Fastest]:{gasPrice:_(e,z.Fastest),l1GasPrice:_(u||0n,z.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:_(n,z.Fastest)}}}catch(o){throw new zt("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}async function it({provider:t,...o}){let n=ct.Optimism,y=await Vn(n),u=t||await N(n,y),e=jn(o).with({phrase:Ft.string},({phrase:a})=>_n.fromPhrase(a).connect(u)).with({signer:Ft.any},({signer:a})=>a).otherwise(()=>{return}),l=Z({provider:u,signer:e}),m=Ot(u);return{...l,estimateGasPrices:In(u),estimateL1Gas:Pn(u),estimateL1GasCost:dt(u),estimateL2GasCost:rt(u),estimateTotalGasCost:Kn(u),getBalance:j(ct.Optimism).getBalance,getL1GasPrice:m,getNetworkParams:gn}}var An="0x420000000000000000000000000000000000000f";var kt=h(()=>{O();It();Q();r()});var On={};Nt(On,{toChecksumAddress:()=>Vt,isStateChangingCall:()=>Gt,isBrowserProvider:()=>E,getTokenAddress:()=>S,getEvmToolbox:()=>tn,getEstimateGasPrices:()=>W,getEIP1193SendTransaction:()=>V,getCreateContractTxObject:()=>X,getCreateContract:()=>Lt,getChecksumAddressFromAsset:()=>St,evmValidateAddress:()=>Ut,createContract:()=>g,XLayerToolbox:()=>wt,UNIToolbox:()=>xt,SONICToolbox:()=>I,OPToolbox:()=>it,MAX_APPROVAL:()=>P,MATICToolbox:()=>st,HYPEREVMToolbox:()=>pt,GNOToolbox:()=>Tt,ETHToolbox:()=>tt,ContractAddress:()=>Ht,CROToolbox:()=>bt,CORNToolbox:()=>mt,COREToolbox:()=>at,BotanixToolbox:()=>Pt,BaseEVMToolbox:()=>Z,BSCToolbox:()=>lt,BERAToolbox:()=>et,BASEToolbox:()=>yt,AVAXToolbox:()=>ut,AURORAToolbox:()=>ot,ARBToolbox:()=>nt});import{Chain as M}from"@swapkit/helpers";import{match as Fn}from"ts-pattern";async function tn(t,o){let n={...o,provider:o?.provider||await N(t)};return Fn(t).returnType().with(M.Arbitrum,()=>nt(n)).with(M.Aurora,()=>ot(n)).with(M.Avalanche,()=>ut(n)).with(M.Base,()=>yt(n)).with(M.Berachain,()=>et(n)).with(M.BinanceSmartChain,()=>lt(n)).with(M.Botanix,()=>I(n)).with(M.Core,()=>at(n)).with(M.Corn,()=>mt(n)).with(M.Cronos,()=>bt(n)).with(M.Ethereum,()=>tt(n)).with(M.Gnosis,()=>Tt(n)).with(M.Hyperevm,()=>pt(n)).with(M.Optimism,()=>it(n)).with(M.Polygon,()=>st(n)).with(M.Sonic,()=>I(n)).with(M.Unichain,()=>xt(n)).with(M.XLayer,()=>wt(n)).exhaustive()}var nn=h(()=>{Q();qt();kt();r();qt();kt()});var on;var un=h(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(on||={})});var vn={};Nt(vn,{toHexString:()=>A,toChecksumAddress:()=>Vt,isStateChangingCall:()=>Gt,isBrowserProvider:()=>E,getTokenAddress:()=>S,getProvider:()=>N,getNetworkParams:()=>Bt,getIsEIP1559Compatible:()=>Dt,getEvmToolbox:()=>tn,getEvmApi:()=>j,getEstimateGasPrices:()=>W,getEIP1193SendTransaction:()=>V,getCreateContractTxObject:()=>X,getCreateContract:()=>Lt,getChecksumAddressFromAsset:()=>St,evmValidateAddress:()=>Ut,createCustomEvmApi:()=>wn,createContract:()=>g,XLayerToolbox:()=>wt,UNIToolbox:()=>xt,SONICToolbox:()=>I,OPToolbox:()=>it,MAX_APPROVAL:()=>P,MATICToolbox:()=>st,HYPEREVMToolbox:()=>pt,GNOToolbox:()=>Tt,EthNetwork:()=>on,ETHToolbox:()=>tt,ContractAddress:()=>Ht,CROToolbox:()=>bt,CORNToolbox:()=>mt,COREToolbox:()=>at,BotanixToolbox:()=>Pt,BaseEVMToolbox:()=>Z,BSCToolbox:()=>lt,BERAToolbox:()=>et,BASEToolbox:()=>yt,AVAXToolbox:()=>ut,AURORAToolbox:()=>ot,ARBToolbox:()=>nt});var dn=h(()=>{O();Q();nn();un()});dn();export{A as toHexString,Vt as toChecksumAddress,Gt as isStateChangingCall,E as isBrowserProvider,S as getTokenAddress,N as getProvider,Bt as getNetworkParams,Dt as getIsEIP1559Compatible,tn as getEvmToolbox,j as getEvmApi,W as getEstimateGasPrices,V as getEIP1193SendTransaction,X as getCreateContractTxObject,Lt as getCreateContract,St as getChecksumAddressFromAsset,Ut as evmValidateAddress,wn as createCustomEvmApi,g as createContract,wt as XLayerToolbox,xt as UNIToolbox,I as SONICToolbox,it as OPToolbox,P as MAX_APPROVAL,st as MATICToolbox,pt as HYPEREVMToolbox,Tt as GNOToolbox,on as EthNetwork,tt as ETHToolbox,Ht as ContractAddress,bt as CROToolbox,mt as CORNToolbox,at as COREToolbox,Pt as BotanixToolbox,Z as BaseEVMToolbox,lt as BSCToolbox,et as BERAToolbox,yt as BASEToolbox,ut as AVAXToolbox,ot as AURORAToolbox,nt as ARBToolbox};
|
|
1
|
+
var yn=Object.create;var{getPrototypeOf:en,defineProperty:ft,getOwnPropertyNames:ln}=Object;var an=Object.prototype.hasOwnProperty;var Y=(t,o,n)=>{n=t!=null?yn(en(t)):{};let y=o||!t||!t.__esModule?ft(n,"default",{value:t,enumerable:!0}):n;for(let u of ln(t))if(!an.call(y,u))ft(y,u,{get:()=>t[u],enumerable:!0});return y};var Xt=(t,o)=>{for(var n in o)ft(t,n,{get:o[n],enumerable:!0,configurable:!0,set:(y)=>o[n]=()=>y})};var H=(t,o)=>()=>(t&&(o=t(t=0)),o);var $=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,n)=>(typeof require<"u"?require:o)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as mn,getChainConfig as bn}from"@swapkit/helpers";import{SwapKitApi as Tn}from"@swapkit/helpers/api";function oo(){function t(){let o=Date.now(),n=Rt||o;return Rt=n,o>Rt?o:n+1}return pn+t().toString(36)}function kt(t){return async function(n,y=!0){let u=await Tn.getChainBalance({address:n,chain:t,scamFilter:y}),{baseDecimal:e}=bn(t);return u.map(({identifier:l,value:m,decimal:a})=>{return new mn({decimal:a||e,identifier:l,value:m})})}}var pn,Rt=0;var Wt=H(()=>{pn=typeof process<"u"&&process.pid?process.pid.toString(36):""});import{SKConfig as sn,warnOnce as xn}from"@swapkit/helpers";function j(t){let o=sn.get("apis")[t];if(o)return xn({condition:!0,id:"custom_evm_api_warning",warning:"Using custom EVM API. Be sure to implement all methods to avoid issues."}),o;return cn(t)}function wn(t){return t}function cn(t){return{getBalance:kt(t)}}var v=H(()=>{Wt()});import{Chain as w,getChainConfig as Yt,getRPCUrl as Mn,SwapKitError as fn}from"@swapkit/helpers";async function X(t,o){let{JsonRpcProvider:n}=await import("ethers");return new n(o||await Mn(t))}function A(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function Bt(t){let{explorerUrl:o,chainId:n,rpcUrls:y}=Yt(t);return()=>t===w.Ethereum?void 0:{...Rn({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:y}}function Dt(t){return![w.Arbitrum,w.BinanceSmartChain].includes(t)}function Rn({chain:t}){let{baseDecimal:o}=Yt(t);switch(t){case w.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:w.Ethereum}};case w.Aurora:return{chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:w.Ethereum}};case w.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:t}};case w.Base:return{chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:w.Ethereum}};case w.Berachain:return{chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}};case w.XLayer:return{chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}};case w.BinanceSmartChain:return{chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}};case w.Gnosis:return{chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}};case w.Optimism:return{chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:w.Ethereum}};case w.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:w.Polygon}};default:throw new fn("toolbox_evm_not_supported",{chain:t})}}var Q=()=>{};var $t;var Qt=H(()=>{$t=[{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 Bn,applyFeeMultiplierToBigInt as U,Chain as q,EVMChains as Dn,FeeOption as b,isGasAsset as Cn,SwapKitError as x,SwapKitNumber as F}from"@swapkit/helpers";import{erc20ABI as K}from"@swapkit/helpers/contracts";import{BrowserProvider as Un,Contract as Zt,getAddress as d,Interface as Et}from"ethers";import{match as Ln}from"ts-pattern";function Z({chain:t=q.Ethereum,provider:o,signer:n,isEIP1559Compatible:y=!0}){return{approve:zn({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),approvedAmount:_t({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:Ht({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),createApprovalTx:kn({chain:t,provider:o,signer:n}),createContract:Lt({chain:t,provider:o}),createContractTxObject:k({chain:t,provider:o}),createTransaction:Ct({chain:t,provider:o,signer:n}),createTransferTx:Ct({chain:t,provider:o,signer:n}),EIP1193SendTransaction:V(o),estimateCall:jt({provider:o,signer:n}),estimateGasLimit:Nn({chain:t,provider:o,signer:n}),estimateGasPrices:W({chain:t,isEIP1559Compatible:y,provider:o}),estimateTransactionFee:Wn({chain:t,isEIP1559Compatible:y,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},isApproved:qn({chain:t,provider:o}),sendTransaction:At({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),signMessage:n?.signMessage,transfer:Jn({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),validateAddress:(u)=>Ut({address:u})}}function Ut({address:t}){try{return d(t),!0}catch{return!1}}function E(t){return t instanceof Un}function g(t,o,n){return new Zt(t,Et.from(o),n)}function Lt({provider:t}){return function(n,y){return new Zt(n,Et.from(y),t)}}function Gt({abi:t,funcName:o}){let n=t.find((y)=>y.name===o);if(!n)throw new x("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&Gn.includes(n.stateMutability)}function Vt(t){return d(t)}function V(t){return function({value:n,...y}){if(!E(t))throw new x("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:u,gasPrice:e,maxFeePerGas:l,maxPriorityFeePerGas:m,...a}=y;return t.send("eth_sendTransaction",[{...a,value:A(BigInt(n||0))}])}}function St(t,o){let n=S(t,o);if(n)return d(n.toLowerCase());throw new x("toolbox_evm_invalid_gas_asset_address")}function S({chain:t,symbol:o,ticker:n},y){try{let u=t===q.BinanceSmartChain&&o==="BNB"&&n==="BNB",e=t===y&&o===y&&n===y,l=Hn.includes(t)&&o==="ETH"&&n==="ETH";if(e||u||l)return ht[y];return d(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function k({provider:t}){return async({contractAddress:o,abi:n,funcName:y,funcParams:u=[],txOverrides:e})=>g(o,n,t).getFunction(y).populateTransaction(...u.concat(e).filter((l)=>typeof l<"u"))}function W({chain:t,provider:o,isEIP1559Compatible:n=!0}){return Ln(t).with(q.Gnosis,()=>{return async function(){try{let{gasPrice:u,maxPriorityFeePerGas:e}=await o.getFeeData();if(!u||e===null)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:U(u,b.Average),maxPriorityFeePerGas:U(e,b.Average)},[b.Fast]:{maxFeePerGas:U(u,b.Fast),maxPriorityFeePerGas:U(e,b.Fast)},[b.Fastest]:{maxFeePerGas:U(u,b.Fastest),maxPriorityFeePerGas:U(e,b.Fastest)}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).with(q.Arbitrum,()=>{return async function(){try{let{gasPrice:u}=await o.getFeeData();if(!u)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:u},[b.Fast]:{gasPrice:u},[b.Fastest]:{gasPrice:u}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:e,gasPrice:l}=await o.getFeeData();if(n){if(u===null||e===null)throw new x("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:u,maxPriorityFeePerGas:e},[b.Fast]:{maxFeePerGas:U(u,b.Fast),maxPriorityFeePerGas:U(e,b.Fast)},[b.Fastest]:{maxFeePerGas:U(u,b.Fastest),maxPriorityFeePerGas:U(e,b.Fastest)}}}if(!l)throw new x("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:l},[b.Fast]:{gasPrice:U(l,b.Fast)},[b.Fastest]:{gasPrice:U(l,b.Fastest)}}}catch(u){throw new x("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}})}function Ht({provider:t,isEIP1559Compatible:o,signer:n,chain:y}){return async function({callProvider:e,contractAddress:l,abi:m,funcName:a,funcParams:s=[],txOverrides:p={},feeOption:B=b.Fast}){let T=e||t;if(!l)throw new x("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let c=Gt({abi:m,funcName:a});if(c&&E(T)&&n){let L=k({chain:y,provider:T}),G=p?.from||await n?.getAddress(),h=await L({abi:m,contractAddress:l,funcName:a,funcParams:s,txOverrides:{...p,from:G}});return V(T)(h)}let i=g(l,m,T);if(c){if(!n)throw new x("toolbox_evm_no_signer");let L=p?.from||await n.getAddress();if(!L)throw new x("toolbox_evm_no_signer_address");let G=i.connect(n),h=W({chain:y,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:N,maxPriorityFeePerGas:C,gasPrice:J}=(await h())[B],O=await i.getFunction(a).estimateGas(...s,p),Mt=await G[a](...s,{...p,gasLimit:O,gasPrice:J,maxFeePerGas:N,maxPriorityFeePerGas:C,nonce:p?.nonce||await T.getTransactionCount(L)});return typeof Mt?.hash==="string"?Mt?.hash:Mt}let D=await i[a]?.(...s);return typeof D?.hash==="string"?D?.hash:D}}function _t({provider:t,chain:o}){return function({assetAddress:y,spenderAddress:u,from:e}){return Ht({chain:o,isEIP1559Compatible:!0,provider:t})({abi:K,contractAddress:y,funcName:"allowance",funcParams:[e,u]})}}function qn({provider:t,chain:o}){return async function({assetAddress:y,spenderAddress:u,from:e,amount:l=P}){let m=await _t({chain:o,provider:t})({assetAddress:y,from:e,spenderAddress:u});return F.fromBigInt(m).gte(F.fromBigInt(BigInt(l)))}}function zn({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:y}){return async function({assetAddress:e,spenderAddress:l,feeOptionKey:m=b.Fast,amount:a,gasLimitFallback:s,from:p,nonce:B}){let T=[l,BigInt(a||P)],c=await t?.getAddress()||p,i={abi:K,contractAddress:e,funcName:"approve",funcParams:T,signer:t,txOverrides:{from:c}};if(E(n)){let L=k({chain:y,provider:n}),G=V(n),h=await L(i);return G(h)}return Ht({chain:y,isEIP1559Compatible:o,provider:n,signer:t})({...i,feeOption:m,funcParams:T,txOverrides:{from:c,gasLimit:s?BigInt(s.toString()):void 0,nonce:B}})}}function Jn({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:u,memo:e,recipient:l,feeOptionKey:m=b.Fast,sender:a,...s}){let{hexlify:p,toUtf8Bytes:B}=await import("ethers"),T=u.getBaseValue("bigint"),c=u.chain,i=a||await t?.getAddress(),D=At({chain:c,isEIP1559Compatible:o,provider:n,signer:t});if(!i)throw new x("toolbox_evm_no_from_address");if(u.isGasAsset){let J={...s,data:p(B(e||"")),feeOptionKey:m,from:i,to:l,value:T};return D(J)}if(!S(u,c))throw new x("toolbox_evm_no_contract_address");let{maxFeePerGas:G,maxPriorityFeePerGas:h,gasPrice:N}=(await W({chain:c,isEIP1559Compatible:o,provider:n})())[m],C=await Ct({chain:c,provider:n,signer:t})({assetValue:u,data:p(B(e||"")),gasPrice:N,maxFeePerGas:G,maxPriorityFeePerGas:h,memo:e,recipient:l,sender:i});return D(C)}}function jt({provider:t,signer:o}){return function({contractAddress:y,abi:u,funcName:e,funcParams:l=[],txOverrides:m}){if(!y)throw new x("toolbox_evm_no_contract_address");let a=g(y,u,t);return o?a.connect(o).getFunction(e).estimateGas(...l,m):a.getFunction(e).estimateGas(...l,m)}}function Nn({provider:t,signer:o}){return async function({assetValue:y,recipient:u,memo:e,data:l,sender:m,funcName:a,funcParams:s,txOverrides:p}){let B=y.bigIntValue,T=y.isGasAsset?null:S(y,y.chain);if(T&&a)return jt({provider:t,signer:o})({abi:K,contractAddress:T,funcName:a,funcParams:s,txOverrides:p});let{hexlify:c,toUtf8Bytes:i}=await import("ethers");return t.estimateGas({data:l?l:e?c(i(e)):void 0,from:m,to:u,value:B})}}function At({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:y}){return async function({feeOptionKey:e=b.Fast,...l}){let{from:m,to:a,data:s,value:p,...B}=l;if(!o)throw new x("toolbox_evm_no_signer");if(!a)throw new x("toolbox_evm_no_to_address");let T={...B,data:s||"0x",from:m,to:a,value:BigInt(p||0)};if(E(t))return V(t)(T);let c=m||await o.getAddress(),i=l.nonce||await t.getTransactionCount(c),D=(await t.getNetwork()).chainId,L=Xn(T)||n,G=W({chain:y,isEIP1559Compatible:n,provider:t}),h=L&&!(T.maxFeePerGas&&T.maxPriorityFeePerGas)||!T.gasPrice?Object.entries((await G())[e]).reduce((C,[J,O])=>({...C,[J]:A(BigInt(O))}),{}):{},N;try{N=A(T.gasLimit||await t.estimateGas(T)*11n/10n)}catch(C){throw new x("toolbox_evm_error_estimating_gas_limit",{error:C})}try{let C={...T,chainId:D,gasLimit:N,nonce:i,type:L?2:0,...h};try{return(await o.sendTransaction(C)).hash}catch{let J=await o.signTransaction({...C,from:c});return(await t.broadcastTransaction(J)).hash}}catch(C){throw new x("toolbox_evm_error_sending_transaction",{error:C})}}}function Ct({provider:t,signer:o}){return async function({assetValue:y,memo:u,recipient:e,data:l,sender:m,maxFeePerGas:a,maxPriorityFeePerGas:s,gasPrice:p,...B}){let T=y.getBaseValue("bigint"),c=y.chain,i=m||await o?.getAddress();if(!i)throw new x("toolbox_evm_no_from_address");if(Cn(y)){let{hexlify:G,toUtf8Bytes:h}=await import("ethers");return{...B,data:l||G(h(u||"")),from:i,to:e,value:T}}let D=S(y,c);if(!D)throw new x("toolbox_evm_no_contract_address");return k({chain:y.chain,provider:t})({abi:K,contractAddress:D,funcName:"transfer",funcParams:[e,T],txOverrides:{from:i,gasPrice:p,maxFeePerGas:a,maxPriorityFeePerGas:s}})}}function kn({provider:t,signer:o,chain:n}){return async function({assetAddress:u,spenderAddress:e,amount:l,from:m}){let a=await o?.getAddress()||m,s=k({chain:n,provider:t}),p=["bigint","number"].includes(typeof l)?l:l||P;return await s({abi:K,contractAddress:u,funcName:"approve",funcParams:[e,BigInt(p)],txOverrides:{from:a}})}}function Wn({provider:t,isEIP1559Compatible:o=!0}){return async function({feeOption:y=b.Fast,chain:u,...e}){let m=await W({chain:u,isEIP1559Compatible:o,provider:t})(),a=await t.estimateGas(e),s=Bn.from({chain:u}),{gasPrice:p,maxFeePerGas:B,maxPriorityFeePerGas:T}=m[y];if(!o&&p)return s.set(F.fromBigInt(p*a,s.decimal));if(B&&T){let c=(B+T)*a;return s.set(F.fromBigInt(c,s.decimal))}throw new x("toolbox_evm_no_gas_price")}}var P,Gn,hn,ht,Hn,Xn=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;var r=H(()=>{Q();P=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Gn=["payable","nonpayable"];hn=Dn.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),ht={...hn,[q.Optimism]:"0x4200000000000000000000000000000000000042",[q.Polygon]:"0x0000000000000000000000000000000000001010"},Hn=[q.Arbitrum,q.Aurora,q.Base,q.Optimism]});import{Chain as f,FeeOption as Yn,getRPCUrl as $n}from"@swapkit/helpers";import{match as Qn,P as Kt}from"ts-pattern";async function tt({provider:t,...o}){let n=await R(f.Ethereum)({provider:t,...o});async function y(u,e="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",m=Yn.Fast){let a=await n.createContractTxObject({abi:$t,contractAddress:e,funcName:l,funcParams:[u]});return n.sendTransaction({...a,feeOptionKey:m})}return{...n,multicall:y}}function R(t){return async function({provider:n,...y}){let{HDNodeWallet:u}=await import("ethers"),e=await $n(t),l=n||await X(t,e),m=Dt(t),a=Qn(y).with({phrase:Kt.string},({phrase:p})=>u.fromPhrase(p).connect(l)).with({signer:Kt.any},({signer:p})=>p).otherwise(()=>{return});return{...Z({chain:t,isEIP1559Compatible:m,provider:l,signer:a}),getBalance:j(t).getBalance,getNetworkParams:Bt(t)}}}var nt,ot,ut,yt,et,lt,Pt,at,mt,bt,Tt,pt,st,I,xt,wt;var qt=H(()=>{v();Qt();Q();r();nt=R(f.Arbitrum),ot=R(f.Aurora),ut=R(f.Avalanche),yt=R(f.Base),et=R(f.Berachain),lt=R(f.BinanceSmartChain),Pt=R(f.Botanix),at=R(f.Core),mt=R(f.Corn),bt=R(f.Cronos),Tt=R(f.Gnosis),pt=R(f.Hyperevm),st=R(f.Polygon),I=R(f.Sonic),xt=R(f.Unichain),wt=R(f.XLayer)});var gt;var It=H(()=>{gt=[{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 _,Chain as ct,FeeOption as z,getChainConfig as En,getRPCUrl as Vn,SwapKitError as zt}from"@swapkit/helpers";import{Contract as Sn,HDNodeWallet as _n}from"ethers";import{match as jn,P as Ot}from"ts-pattern";function Jt(t){return new Sn(An,gt,t)}function vt(t){return async function(){let n=Jt(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function Ft(t){return async function({from:n,to:y,nonce:u,...e}){let{Transaction:l}=await import("ethers");if(!y)throw new zt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return l.from({...e,authorizationList:e.authorizationList,nonce:u?u:n?await t.getTransactionCount(n):0,to:y}).serialized}}function dt(t){return async function(n){let y=Jt(t),u=await Ft(t)(n);if(y&&"getL1Fee"in y)return y.getL1Fee(u)}}function rt(t){return async function(n){let y=await t.send("eth_gasPrice",[]),u=await t.estimateGas(n);return y.mul(u)}}function Kn(t){return async function(n){let y=await dt(t)(n),u=await rt(t)(n);return y.add(u)}}function Pn(t){return async function(n){let y=Jt(t),u=await Ft(t)(n);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(u)}}function gn(){let{baseDecimal:t,chainId:o,explorerUrl:n,name:y,rpcUrls:u}=En(ct.Optimism);return{blockExplorerUrls:[n],chainId:o,chainName:y,nativeCurrency:{decimals:t,name:"Ethereum",symbol:ct.Ethereum},rpcUrls:u}}async function In(t){try{let{maxFeePerGas:o,maxPriorityFeePerGas:n,gasPrice:y}=await t.getFeeData(),u=await vt(t)(),e=y;if(!(o&&n))throw new zt("toolbox_evm_no_fee_data");return{[z.Average]:{gasPrice:e,l1GasPrice:u,maxFeePerGas:o,maxPriorityFeePerGas:n},[z.Fast]:{gasPrice:_(e,z.Fast),l1GasPrice:_(u||0n,z.Fast),maxFeePerGas:o,maxPriorityFeePerGas:_(n,z.Fast)},[z.Fastest]:{gasPrice:_(e,z.Fastest),l1GasPrice:_(u||0n,z.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:_(n,z.Fastest)}}}catch(o){throw new zt("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}async function it({provider:t,...o}){let n=ct.Optimism,y=await Vn(n),u=t||await X(n,y),e=jn(o).with({phrase:Ot.string},({phrase:a})=>_n.fromPhrase(a).connect(u)).with({signer:Ot.any},({signer:a})=>a).otherwise(()=>{return}),l=Z({provider:u,signer:e}),m=vt(u);return{...l,estimateGasPrices:In(u),estimateL1Gas:Pn(u),estimateL1GasCost:dt(u),estimateL2GasCost:rt(u),estimateTotalGasCost:Kn(u),getBalance:j(ct.Optimism).getBalance,getL1GasPrice:m,getNetworkParams:gn}}var An="0x420000000000000000000000000000000000000f";var Nt=H(()=>{v();It();Q();r()});var vn={};Xt(vn,{toChecksumAddress:()=>Vt,isStateChangingCall:()=>Gt,isBrowserProvider:()=>E,getTokenAddress:()=>S,getEvmToolbox:()=>tn,getEstimateGasPrices:()=>W,getEIP1193SendTransaction:()=>V,getCreateContractTxObject:()=>k,getCreateContract:()=>Lt,getChecksumAddressFromAsset:()=>St,evmValidateAddress:()=>Ut,createContract:()=>g,XLayerToolbox:()=>wt,UNIToolbox:()=>xt,SONICToolbox:()=>I,OPToolbox:()=>it,MAX_APPROVAL:()=>P,MATICToolbox:()=>st,HYPEREVMToolbox:()=>pt,GNOToolbox:()=>Tt,ETHToolbox:()=>tt,ContractAddress:()=>ht,CROToolbox:()=>bt,CORNToolbox:()=>mt,COREToolbox:()=>at,BotanixToolbox:()=>Pt,BaseEVMToolbox:()=>Z,BSCToolbox:()=>lt,BERAToolbox:()=>et,BASEToolbox:()=>yt,AVAXToolbox:()=>ut,AURORAToolbox:()=>ot,ARBToolbox:()=>nt});import{Chain as M}from"@swapkit/helpers";import{match as On}from"ts-pattern";async function tn(t,o){let n={...o,provider:o?.provider||await X(t)};return On(t).returnType().with(M.Arbitrum,()=>nt(n)).with(M.Aurora,()=>ot(n)).with(M.Avalanche,()=>ut(n)).with(M.Base,()=>yt(n)).with(M.Berachain,()=>et(n)).with(M.BinanceSmartChain,()=>lt(n)).with(M.Botanix,()=>I(n)).with(M.Core,()=>at(n)).with(M.Corn,()=>mt(n)).with(M.Cronos,()=>bt(n)).with(M.Ethereum,()=>tt(n)).with(M.Gnosis,()=>Tt(n)).with(M.Hyperevm,()=>pt(n)).with(M.Optimism,()=>it(n)).with(M.Polygon,()=>st(n)).with(M.Sonic,()=>I(n)).with(M.Unichain,()=>xt(n)).with(M.XLayer,()=>wt(n)).exhaustive()}var nn=H(()=>{Q();qt();Nt();r();qt();Nt()});var on;var un=H(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(on||={})});var Fn={};Xt(Fn,{toHexString:()=>A,toChecksumAddress:()=>Vt,isStateChangingCall:()=>Gt,isBrowserProvider:()=>E,getTokenAddress:()=>S,getProvider:()=>X,getNetworkParams:()=>Bt,getIsEIP1559Compatible:()=>Dt,getEvmToolbox:()=>tn,getEvmApi:()=>j,getEstimateGasPrices:()=>W,getEIP1193SendTransaction:()=>V,getCreateContractTxObject:()=>k,getCreateContract:()=>Lt,getChecksumAddressFromAsset:()=>St,evmValidateAddress:()=>Ut,createCustomEvmApi:()=>wn,createContract:()=>g,XLayerToolbox:()=>wt,UNIToolbox:()=>xt,SONICToolbox:()=>I,OPToolbox:()=>it,MAX_APPROVAL:()=>P,MATICToolbox:()=>st,HYPEREVMToolbox:()=>pt,GNOToolbox:()=>Tt,EthNetwork:()=>on,ETHToolbox:()=>tt,ContractAddress:()=>ht,CROToolbox:()=>bt,CORNToolbox:()=>mt,COREToolbox:()=>at,BotanixToolbox:()=>Pt,BaseEVMToolbox:()=>Z,BSCToolbox:()=>lt,BERAToolbox:()=>et,BASEToolbox:()=>yt,AVAXToolbox:()=>ut,AURORAToolbox:()=>ot,ARBToolbox:()=>nt});var dn=H(()=>{v();Q();nn();un()});dn();export{A as toHexString,Vt as toChecksumAddress,Gt as isStateChangingCall,E as isBrowserProvider,S as getTokenAddress,X as getProvider,Bt as getNetworkParams,Dt as getIsEIP1559Compatible,tn as getEvmToolbox,j as getEvmApi,W as getEstimateGasPrices,V as getEIP1193SendTransaction,k as getCreateContractTxObject,Lt as getCreateContract,St as getChecksumAddressFromAsset,Ut as evmValidateAddress,wn as createCustomEvmApi,g as createContract,wt as XLayerToolbox,xt as UNIToolbox,I as SONICToolbox,it as OPToolbox,P as MAX_APPROVAL,st as MATICToolbox,pt as HYPEREVMToolbox,Tt as GNOToolbox,on as EthNetwork,tt as ETHToolbox,ht as ContractAddress,bt as CROToolbox,mt as CORNToolbox,at as COREToolbox,Pt as BotanixToolbox,Z as BaseEVMToolbox,lt as BSCToolbox,et as BERAToolbox,yt as BASEToolbox,ut as AVAXToolbox,ot as AURORAToolbox,nt as ARBToolbox};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=4C5592A9C1F4B4CE64756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|