@swapkit/toolboxes 1.0.0-beta.14 → 1.0.0-beta.16
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/evm/index.cjs +2 -2
- package/dist/evm/index.cjs.map +3 -3
- package/dist/evm/index.js +2 -2
- package/dist/evm/index.js.map +3 -3
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +3 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +3 -3
- package/dist/ripple/index.cjs +2 -2
- package/dist/ripple/index.cjs.map +3 -3
- package/dist/ripple/index.js +2 -2
- package/dist/ripple/index.js.map +3 -3
- package/dist/solana/index.cjs +2 -2
- package/dist/solana/index.cjs.map +3 -3
- package/dist/solana/index.js +2 -2
- package/dist/solana/index.js.map +3 -3
- package/package.json +16 -16
- package/src/evm/__tests__/ethereum.test.ts +1 -1
- package/src/evm/toolbox/op.ts +11 -5
- package/src/index.ts +5 -0
- package/src/ripple/index.ts +14 -21
- package/src/solana/toolbox.ts +75 -2
package/dist/evm/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var Ft={};gt(Ft,{toHexString:()=>Z,toChecksumAddress:()=>Jt,isStateChangingCall:()=>Tt,isBrowserProvider:()=>N,getTokenAddress:()=>V,getProvider:()=>z,getNetworkParams:()=>v,getL1GasPriceFetcher:()=>K,getIsEIP1559Compatible:()=>r,getEvmToolbox:()=>ht,getEvmApi:()=>Y,getEstimateTransactionFee:()=>A,getEstimateGasPrices:()=>C,getEIP1193SendTransaction:()=>S,getCreateContractTxObject:()=>$,getCreateContract:()=>it,getChecksumAddressFromAsset:()=>Ct,evmValidateAddress:()=>mt,estimateMaxSendableAmount:()=>Zt,estimateL1Gas:()=>Lt,createCustomEvmApi:()=>xt,createContract:()=>I,OPToolbox:()=>at,MAX_APPROVAL:()=>F,MATICToolbox:()=>yt,EthNetwork:()=>wt,ETHToolbox:()=>d,BaseEVMToolbox:()=>X,BSCToolbox:()=>et,BASEToolbox:()=>ut,AVAXToolbox:()=>nt,ARBToolbox:()=>tt});module.exports=jt(Ft);var g=require("@swapkit/helpers");function Y(t){let u=g.SKConfig.get("apis")[t];if(u)return g.warnOnce(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return Ht(t)}function xt(t){return t}function Ht(t){return{getBalance:pt(t)}}var T=require("@swapkit/helpers");var o=require("@swapkit/helpers"),G=require("@swapkit/helpers/contracts"),L=require("ethers");var F=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function X({chain:t=o.Chain.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:O({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:Mt({provider:u,signer:n}),EIP1193SendTransaction:S(u),approve:Gt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:bt({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:Yt({provider:u,signer:n,chain:t}),createContract:it({provider:u,chain:t}),createContractTxObject:$({provider:u,chain:t}),createTransferTx:_({provider:u,signer:n,chain:t}),createTransaction:_({provider:u,signer:n,chain:t}),estimateGasLimit:Wt({provider:u,signer:n,chain:t}),estimateGasPrices:C({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:kt({provider:u,chain:t}),sendTransaction:st({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:$t({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(y)=>mt({address:y})}}function mt({address:t}){try{return L.getAddress(t),!0}catch(u){return!1}}function N(t){return t instanceof L.BrowserProvider}function I(t,u,n){return new L.Contract(t,L.Interface.from(u),n)}function it({provider:t}){return function u(n,e){return new L.Contract(n,L.Interface.from(e),t)}}var qt=["payable","nonpayable"];function Tt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new o.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&qt.includes(n.stateMutability)}function Jt(t){return L.getAddress(t)}function S(t){return function u({value:n,...e}){if(!N(t))throw new o.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:Z(BigInt(n||0)),...e}])}}function Ct(t,u){let n=V(t,u);if(n)return L.getAddress(n.toLowerCase());throw new o.SwapKitError("toolbox_evm_invalid_gas_asset_address")}var zt={[o.Chain.Arbitrum]:o.ContractAddress.ARB,[o.Chain.Avalanche]:o.ContractAddress.AVAX,[o.Chain.Base]:o.ContractAddress.BASE,[o.Chain.BinanceSmartChain]:o.ContractAddress.BSC,[o.Chain.Ethereum]:o.ContractAddress.ETH,[o.Chain.Optimism]:o.ContractAddress.OP,[o.Chain.Polygon]:o.ContractAddress.MATIC};function V({chain:t,symbol:u,ticker:n},e){try{let y=t===o.Chain.BinanceSmartChain&&u==="BNB"&&n==="BNB",l=t===e&&u===e&&n===e,a=[o.Chain.Arbitrum,o.Chain.Base].includes(t)&&u==="ETH"&&n==="ETH";if(l||y||a)return zt[e];return L.getAddress(u.slice(n.length+1).replace(/^0X/,""))}catch(y){return null}}function $({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:y=[],txOverrides:l})=>I(u,n,t).getFunction(e).populateTransaction(...y.concat(l).filter((a)=>typeof a!=="undefined"))}function C({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===o.Chain.Arbitrum)return async function e(){try{let{gasPrice:y}=await u.getFeeData();if(!y)throw new Error("No fee data available");return{[o.FeeOption.Average]:{gasPrice:y},[o.FeeOption.Fast]:{gasPrice:y},[o.FeeOption.Fastest]:{gasPrice:y}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};if(t===o.Chain.Optimism)return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:l,gasPrice:a}=await u.getFeeData(),p=K(u)(),m=a;if(!(y&&l))throw new Error("No fee data available");return{[o.FeeOption.Average]:{l1GasPrice:p,gasPrice:m,maxFeePerGas:y,maxPriorityFeePerGas:l},[o.FeeOption.Fast]:{l1GasPrice:(p||0n)*15n/10n,gasPrice:m*15n/10n,maxFeePerGas:y,maxPriorityFeePerGas:l*15n/10n},[o.FeeOption.Fastest]:{l1GasPrice:(p||0n)*2n,gasPrice:m*2n,maxFeePerGas:y,maxPriorityFeePerGas:l*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:l,gasPrice:a}=await u.getFeeData();if(n){if(y===null||l===null)throw new o.SwapKitError("toolbox_evm_no_fee_data");return{[o.FeeOption.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:l},[o.FeeOption.Fast]:{maxFeePerGas:y*15n/10n,maxPriorityFeePerGas:l*15n/10n},[o.FeeOption.Fastest]:{maxFeePerGas:y*2n,maxPriorityFeePerGas:l*2n}}}if(!a)throw new o.SwapKitError("toolbox_evm_no_gas_price");return{[o.FeeOption.Average]:{gasPrice:a},[o.FeeOption.Fast]:{gasPrice:a*15n/10n},[o.FeeOption.Fastest]:{gasPrice:a*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}}}function O({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function y({callProvider:l,contractAddress:a,abi:p,funcName:m,funcParams:b=[],txOverrides:M={},feeOption:c=o.FeeOption.Fast}){let i=l||t;if(!a)throw new Error("contractAddress must be provided");let s=Tt({abi:p,funcName:m});if(s&&N(i)&&n){let D=$({provider:i,chain:e}),U=M?.from||await n?.getAddress(),E=await D({contractAddress:a,abi:p,funcName:m,funcParams:b,txOverrides:{...M,from:U}});return S(i)(E)}let w=I(a,p,i);if(s){if(!n)throw new o.SwapKitError("toolbox_evm_no_signer");let D=M?.from||await n.getAddress();if(!D)throw new o.SwapKitError("toolbox_evm_no_signer_address");let U=w.connect(n),E=C({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:H,maxPriorityFeePerGas:B,gasPrice:q}=(await E())[c],Q=await w.getFunction(m).estimateGas(...b,M),j=await U[m](...b,{...M,gasLimit:Q,maxFeePerGas:H,maxPriorityFeePerGas:B,gasPrice:q,nonce:M?.nonce||await i.getTransactionCount(D)});return typeof j?.hash==="string"?j?.hash:j}let f=await w[m]?.(...b);return typeof f?.hash==="string"?f?.hash:f}}function bt({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:y,from:l}){return O({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:G.erc20ABI,funcName:"allowance",funcParams:[l,y]})}}function kt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:y,from:l,amount:a=F}){let p=await bt({provider:t,chain:u})({assetAddress:e,spenderAddress:y,from:l});return o.SwapKitNumber.fromBigInt(p).gte(o.SwapKitNumber.fromBigInt(BigInt(a)))}}function Gt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function y({assetAddress:l,spenderAddress:a,feeOptionKey:p=o.FeeOption.Fast,amount:m,gasLimitFallback:b,from:M,nonce:c}){let i=[a,BigInt(m||F)],s=await t?.getAddress()||M,w={contractAddress:l,abi:G.erc20ABI,funcName:"approve",funcParams:i,signer:t,txOverrides:{from:s}};if(N(n)){let D=$({provider:n,chain:e}),U=S(n),E=await D(w);return U(E)}return O({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...w,funcParams:i,txOverrides:{from:s,nonce:c,gasLimit:b?BigInt(b.toString()):void 0},feeOption:p})}}function $t({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:y,memo:l,recipient:a,feeOptionKey:p=o.FeeOption.Fast,sender:m,...b}){let{hexlify:M,toUtf8Bytes:c}=await import("ethers"),i=y.getBaseValue("bigint"),s=y.chain,w=m||await t?.getAddress(),f=st({provider:n,signer:t,isEIP1559Compatible:u,chain:s});if(!w)throw new o.SwapKitError("toolbox_evm_no_from_address");if(y.isGasAsset){let q={...b,from:w,to:a,value:i,data:M(c(l||"")),feeOptionKey:p};return f(q)}if(!V(y,s))throw new o.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:U,maxPriorityFeePerGas:E,gasPrice:H}=(await C({provider:n,isEIP1559Compatible:u,chain:s})())[p],B=await _({provider:n,signer:t,chain:s})({assetValue:y,memo:l,recipient:a,data:M(c(l||"")),sender:w,maxFeePerGas:U,maxPriorityFeePerGas:E,gasPrice:H});return f(B)}}function Mt({provider:t,signer:u}){return function n({contractAddress:e,abi:y,funcName:l,funcParams:a=[],txOverrides:p}){if(!e)throw new o.SwapKitError("toolbox_evm_no_contract_address");let m=I(e,y,t);return u?m.connect(u).getFunction(l).estimateGas(...a,p):m.getFunction(l).estimateGas(...a,p)}}function Wt({provider:t,signer:u}){return async function n({assetValue:e,recipient:y,memo:l,data:a,sender:p,funcName:m,funcParams:b,txOverrides:M}){let c=e.bigIntValue,i=e.isGasAsset?null:V(e,e.chain);if(i&&m)return Mt({provider:t,signer:u})({contractAddress:i,abi:G.erc20ABI,funcName:m,funcParams:b,txOverrides:M});let{hexlify:s,toUtf8Bytes:w}=await import("ethers");return t.estimateGas({from:p,to:y,value:c,data:a?a:l?s(w(l)):void 0})}}var Qt=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function st({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function y({feeOptionKey:l=o.FeeOption.Fast,...a}){let{from:p,to:m,data:b,value:M,...c}=a;if(!u)throw new o.SwapKitError("toolbox_evm_no_signer");if(!m)throw new o.SwapKitError("toolbox_evm_no_to_address");let i={...c,data:b||"0x",to:m,from:p,value:BigInt(M||0)};if(N(t))return S(t)(i);let s=p||await u.getAddress(),w=a.nonce||await t.getTransactionCount(s),f=(await t.getNetwork()).chainId,D=Qt(i)||n,U=C({provider:t,isEIP1559Compatible:n,chain:e}),E=D&&!(i.maxFeePerGas&&i.maxPriorityFeePerGas)||!i.gasPrice?Object.entries((await U())[l]).reduce((B,[q,Q])=>({...B,[q]:Z(BigInt(Q))}),{}):{},H;try{H=Z(i.gasLimit||await t.estimateGas(i)*11n/10n)}catch(B){throw new o.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:B})}try{let B={...i,chainId:f,type:D?2:0,gasLimit:H,nonce:w,...E};try{return(await u.sendTransaction(B)).hash}catch(q){let Q=await u.signTransaction({...B,from:s});return(await t.broadcastTransaction(Q)).hash}}catch(B){throw new o.SwapKitError("toolbox_evm_error_sending_transaction",{error:B})}}}function _({provider:t,signer:u}){return async function n({assetValue:e,memo:y,recipient:l,data:a,sender:p,maxFeePerGas:m,maxPriorityFeePerGas:b,gasPrice:M,...c}){let i=e.getBaseValue("bigint"),s=e.chain,w=p||await u?.getAddress();if(!w)throw new o.SwapKitError("toolbox_evm_no_from_address");if(o.isGasAsset(e)){let{hexlify:U,toUtf8Bytes:E}=await import("ethers");return{...c,from:w,to:l,value:i,data:a||U(E(y||""))}}let f=V(e,s);if(!f)throw new o.SwapKitError("toolbox_evm_no_contract_address");return $({provider:t,chain:e.chain})({contractAddress:f,abi:G.erc20ABI,funcName:"transfer",funcParams:[l,i],txOverrides:{from:w,maxFeePerGas:m,maxPriorityFeePerGas:b,gasPrice:M}})}}function Yt({provider:t,signer:u,chain:n}){return async function e({assetAddress:y,spenderAddress:l,amount:a,from:p}){let m=await u?.getAddress()||p,b=$({provider:t,chain:n}),M=[l,BigInt(a||F)];return await b({contractAddress:y,abi:G.erc20ABI,funcName:"approve",funcParams:M,txOverrides:{from:m}})}}async function z(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||T.SKConfig.get("rpcUrls")[t])}var Zt=async({from:t,memo:u="",feeOptionKey:n=T.FeeOption.Fastest,assetValue:e,abi:y,funcName:l,funcParams:a,contractAddress:p,txOverrides:m})=>{let{getEvmToolbox:b}=await import("@swapkit/toolboxes/evm"),M=await b(e.chain),i=(await M.getBalance(t)).find(({symbol:B,chain:q})=>e?B===e.symbol:B===T.AssetValue.from({chain:q})?.symbol),s=(await M.estimateGasPrices())[n];if(!i)return T.AssetValue.from({chain:e.chain});if(e&&(i.chain!==e.chain||i.symbol!==e?.symbol))return i;let w=y&&l&&a&&p?await M.estimateCall({contractAddress:p,abi:y,funcName:l,funcParams:a,txOverrides:m}):await M.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),f="maxFeePerGas"in s,D="gasPrice"in s&&s.gasPrice!==void 0;if(!(s&&(D||f)))throw new Error("Could not fetch fee data");let U=f?(s.maxFeePerGas||1n)+(s.maxPriorityFeePerGas||1n):s.gasPrice||1n,E=w*U,H=T.SwapKitNumber.fromBigInt(i.getBaseValue("bigint")).sub(E.toString());return T.AssetValue.from({chain:i.chain,value:H.getValue("string")})};function Z(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function A({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=T.FeeOption.Fast,chain:y,...l}){let p=await C({provider:t,isEIP1559Compatible:u,chain:y})(),m=await t.estimateGas(l),b=T.AssetValue.from({chain:y}),{gasPrice:M,maxFeePerGas:c,maxPriorityFeePerGas:i}=p[e];if(!u&&M)return b.set(T.SwapKitNumber.fromBigInt(M*m,b.decimal));if(c&&i){let s=(c+i)*m;return b.set(T.SwapKitNumber.fromBigInt(s,b.decimal))}throw new Error("No gas price found")}}function v(t){return()=>T.Chain.Ethereum===t?void 0:{...Xt({chain:t}),chainId:T.ChainToHexChainId[t],rpcUrls:[T.SKConfig.get("rpcUrls")[t]],blockExplorerUrls:[T.ChainToExplorerUrl[t]]}}function r(t){return![T.Chain.Arbitrum,T.Chain.BinanceSmartChain].includes(t)}function Xt({chain:t}){let u=T.BaseDecimal[t];switch(t){case T.Chain.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:T.Chain.Ethereum,decimals:u}};case T.Chain.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case T.Chain.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:T.Chain.Ethereum,decimals:u}};case T.Chain.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case T.Chain.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:T.Chain.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var wt;((n)=>{n.Test="goerli";n.Main="homestead"})(wt||={});var J=require("@swapkit/helpers");var x=require("@swapkit/helpers"),ft=require("ethers"),h=require("ts-pattern");var ct=[{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"}];async function d({provider:t,...u}){let n=await W(x.Chain.Ethereum)({provider:t,...u});async function e(y,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",a="aggregate",p=x.FeeOption.Fast){let m=await n.createContractTxObject({contractAddress:l,abi:ct,funcName:a,funcParams:[y]});return n.sendTransaction({...m,feeOptionKey:p})}return{...n,multicall:e}}var tt=W(x.Chain.Arbitrum),nt=W(x.Chain.Avalanche),ut=W(x.Chain.Base),et=W(x.Chain.BinanceSmartChain),yt=W(x.Chain.Polygon);function W(t){return async function u({provider:n,...e}){let y=x.SKConfig.get("rpcUrls")[t],l=n||await z(t,y),a=r(t),p=h.match(e).with({phrase:h.P.string},({phrase:b})=>ft.HDNodeWallet.fromPhrase(b).connect(l)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return});return{...X({provider:l,signer:p,isEIP1559Compatible:a,chain:t}),estimateTransactionFee:A({provider:l,isEIP1559Compatible:a,chain:t}),getNetworkParams:v(t),getBalance:Y(t).getBalance}}}var R=require("@swapkit/helpers"),P=require("ethers"),ot=require("ts-pattern"),Rt=require("ts-pattern");var Bt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var Nt="0x420000000000000000000000000000000000000f";function lt(t){return new P.Contract(Nt,Bt,t)}function K(t){return function u(){let n=lt(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Dt(t){return async function u({from:n,to:e,nonce:y,...l}){let{Transaction:a}=await import("ethers");if(!e)throw new Error("Missing to address");let p={...l,to:e,nonce:y?y:n?await t.getTransactionCount(n):0};return a.from(p).serialized}}function Ut(t){return async function u(n){let e=lt(t),y=await Dt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(y)}}function Et(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),y=await t.estimateGas(n);return e.mul(y)}}function St(t){return async function u(n){let e=await Ut(t)(n),y=await Et(t)(n);return e.add(y)}}function Lt(t){return async function u(n){let e=lt(t),y=await Dt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(y)}}var Vt=()=>({chainId:R.ChainId.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:R.Chain.Ethereum,decimals:R.BaseDecimal.ETH},rpcUrls:[R.SKConfig.get("rpcUrls")[R.Chain.Optimism]],blockExplorerUrls:[R.ChainToExplorerUrl[R.Chain.Optimism]]});async function at({provider:t,...u}){let n=R.Chain.Optimism,e=R.SKConfig.get("rpcUrls")[n],y=t||await z(n,e),l=Rt.match(u).with({phrase:ot.P.string},({phrase:m})=>P.HDNodeWallet.fromPhrase(m).connect(y)).with({signer:ot.P.any},({signer:m})=>m).otherwise(()=>{return}),a=X({provider:y,signer:l}),p=K(y);return{...a,estimateL1Gas:Lt(y),estimateL1GasCost:Ut(y),estimateL2GasCost:Et(y),estimateTotalGasCost:St(y),getBalance:Y(R.Chain.Optimism).getBalance,getL1GasPrice:p,getNetworkParams:Vt}}async function ht(t,u){let n={...u,provider:u?.provider||await z(t)};switch(t){case J.Chain.Avalanche:return nt(n);case J.Chain.Arbitrum:return tt(n);case J.Chain.Base:return ut(n);case J.Chain.Optimism:return at(n);case J.Chain.Polygon:return yt(n);case J.Chain.BinanceSmartChain:return et(n);case J.Chain.Ethereum:return d(n);default:throw new Error(`Chain ${t} is not supported`)}}
|
|
1
|
+
var Ft={};gt(Ft,{toHexString:()=>Z,toChecksumAddress:()=>xt,isStateChangingCall:()=>Tt,isBrowserProvider:()=>N,getTokenAddress:()=>V,getProvider:()=>C,getNetworkParams:()=>v,getL1GasPriceFetcher:()=>K,getIsEIP1559Compatible:()=>r,getEvmToolbox:()=>ht,getEvmApi:()=>Y,getEstimateTransactionFee:()=>A,getEstimateGasPrices:()=>J,getEIP1193SendTransaction:()=>S,getCreateContractTxObject:()=>$,getCreateContract:()=>it,getChecksumAddressFromAsset:()=>Jt,evmValidateAddress:()=>mt,estimateMaxSendableAmount:()=>Zt,estimateL1Gas:()=>Lt,createCustomEvmApi:()=>Ht,createContract:()=>I,OPToolbox:()=>at,MAX_APPROVAL:()=>F,MATICToolbox:()=>ot,EthNetwork:()=>wt,ETHToolbox:()=>d,BaseEVMToolbox:()=>X,BSCToolbox:()=>et,BASEToolbox:()=>ut,AVAXToolbox:()=>nt,ARBToolbox:()=>tt});module.exports=jt(Ft);var g=require("@swapkit/helpers");function Y(t){let u=g.SKConfig.get("apis")[t];if(u)return g.warnOnce(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return zt(t)}function Ht(t){return t}function zt(t){return{getBalance:pt(t)}}var T=require("@swapkit/helpers");var y=require("@swapkit/helpers"),G=require("@swapkit/helpers/contracts"),L=require("ethers");var F=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function X({chain:t=y.Chain.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:O({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:Mt({provider:u,signer:n}),EIP1193SendTransaction:S(u),approve:Gt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:bt({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:Yt({provider:u,signer:n,chain:t}),createContract:it({provider:u,chain:t}),createContractTxObject:$({provider:u,chain:t}),createTransferTx:_({provider:u,signer:n,chain:t}),createTransaction:_({provider:u,signer:n,chain:t}),estimateGasLimit:Wt({provider:u,signer:n,chain:t}),estimateGasPrices:J({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:kt({provider:u,chain:t}),sendTransaction:st({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:$t({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(o)=>mt({address:o})}}function mt({address:t}){try{return L.getAddress(t),!0}catch(u){return!1}}function N(t){return t instanceof L.BrowserProvider}function I(t,u,n){return new L.Contract(t,L.Interface.from(u),n)}function it({provider:t}){return function u(n,e){return new L.Contract(n,L.Interface.from(e),t)}}var qt=["payable","nonpayable"];function Tt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new y.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&qt.includes(n.stateMutability)}function xt(t){return L.getAddress(t)}function S(t){return function u({value:n,...e}){if(!N(t))throw new y.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:Z(BigInt(n||0)),...e}])}}function Jt(t,u){let n=V(t,u);if(n)return L.getAddress(n.toLowerCase());throw new y.SwapKitError("toolbox_evm_invalid_gas_asset_address")}var Ct={[y.Chain.Arbitrum]:y.ContractAddress.ARB,[y.Chain.Avalanche]:y.ContractAddress.AVAX,[y.Chain.Base]:y.ContractAddress.BASE,[y.Chain.BinanceSmartChain]:y.ContractAddress.BSC,[y.Chain.Ethereum]:y.ContractAddress.ETH,[y.Chain.Optimism]:y.ContractAddress.OP,[y.Chain.Polygon]:y.ContractAddress.MATIC};function V({chain:t,symbol:u,ticker:n},e){try{let o=t===y.Chain.BinanceSmartChain&&u==="BNB"&&n==="BNB",l=t===e&&u===e&&n===e,a=[y.Chain.Arbitrum,y.Chain.Base].includes(t)&&u==="ETH"&&n==="ETH";if(l||o||a)return Ct[e];return L.getAddress(u.slice(n.length+1).replace(/^0X/,""))}catch(o){return null}}function $({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:o=[],txOverrides:l})=>I(u,n,t).getFunction(e).populateTransaction(...o.concat(l).filter((a)=>typeof a!=="undefined"))}function J({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===y.Chain.Arbitrum)return async function e(){try{let{gasPrice:o}=await u.getFeeData();if(!o)throw new Error("No fee data available");return{[y.FeeOption.Average]:{gasPrice:o},[y.FeeOption.Fast]:{gasPrice:o},[y.FeeOption.Fastest]:{gasPrice:o}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};if(t===y.Chain.Optimism)return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:l,gasPrice:a}=await u.getFeeData(),m=K(u)(),p=a;if(!(o&&l))throw new Error("No fee data available");return{[y.FeeOption.Average]:{l1GasPrice:m,gasPrice:p,maxFeePerGas:o,maxPriorityFeePerGas:l},[y.FeeOption.Fast]:{l1GasPrice:(m||0n)*15n/10n,gasPrice:p*15n/10n,maxFeePerGas:o,maxPriorityFeePerGas:l*15n/10n},[y.FeeOption.Fastest]:{l1GasPrice:(m||0n)*2n,gasPrice:p*2n,maxFeePerGas:o,maxPriorityFeePerGas:l*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:l,gasPrice:a}=await u.getFeeData();if(n){if(o===null||l===null)throw new y.SwapKitError("toolbox_evm_no_fee_data");return{[y.FeeOption.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:l},[y.FeeOption.Fast]:{maxFeePerGas:o*15n/10n,maxPriorityFeePerGas:l*15n/10n},[y.FeeOption.Fastest]:{maxFeePerGas:o*2n,maxPriorityFeePerGas:l*2n}}}if(!a)throw new y.SwapKitError("toolbox_evm_no_gas_price");return{[y.FeeOption.Average]:{gasPrice:a},[y.FeeOption.Fast]:{gasPrice:a*15n/10n},[y.FeeOption.Fastest]:{gasPrice:a*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}}}function O({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function o({callProvider:l,contractAddress:a,abi:m,funcName:p,funcParams:b=[],txOverrides:M={},feeOption:c=y.FeeOption.Fast}){let i=l||t;if(!a)throw new Error("contractAddress must be provided");let s=Tt({abi:m,funcName:p});if(s&&N(i)&&n){let D=$({provider:i,chain:e}),U=M?.from||await n?.getAddress(),E=await D({contractAddress:a,abi:m,funcName:p,funcParams:b,txOverrides:{...M,from:U}});return S(i)(E)}let w=I(a,m,i);if(s){if(!n)throw new y.SwapKitError("toolbox_evm_no_signer");let D=M?.from||await n.getAddress();if(!D)throw new y.SwapKitError("toolbox_evm_no_signer_address");let U=w.connect(n),E=J({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:z,maxPriorityFeePerGas:B,gasPrice:q}=(await E())[c],Q=await w.getFunction(p).estimateGas(...b,M),j=await U[p](...b,{...M,gasLimit:Q,maxFeePerGas:z,maxPriorityFeePerGas:B,gasPrice:q,nonce:M?.nonce||await i.getTransactionCount(D)});return typeof j?.hash==="string"?j?.hash:j}let f=await w[p]?.(...b);return typeof f?.hash==="string"?f?.hash:f}}function bt({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:o,from:l}){return O({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:G.erc20ABI,funcName:"allowance",funcParams:[l,o]})}}function kt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:o,from:l,amount:a=F}){let m=await bt({provider:t,chain:u})({assetAddress:e,spenderAddress:o,from:l});return y.SwapKitNumber.fromBigInt(m).gte(y.SwapKitNumber.fromBigInt(BigInt(a)))}}function Gt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function o({assetAddress:l,spenderAddress:a,feeOptionKey:m=y.FeeOption.Fast,amount:p,gasLimitFallback:b,from:M,nonce:c}){let i=[a,BigInt(p||F)],s=await t?.getAddress()||M,w={contractAddress:l,abi:G.erc20ABI,funcName:"approve",funcParams:i,signer:t,txOverrides:{from:s}};if(N(n)){let D=$({provider:n,chain:e}),U=S(n),E=await D(w);return U(E)}return O({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...w,funcParams:i,txOverrides:{from:s,nonce:c,gasLimit:b?BigInt(b.toString()):void 0},feeOption:m})}}function $t({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:o,memo:l,recipient:a,feeOptionKey:m=y.FeeOption.Fast,sender:p,...b}){let{hexlify:M,toUtf8Bytes:c}=await import("ethers"),i=o.getBaseValue("bigint"),s=o.chain,w=p||await t?.getAddress(),f=st({provider:n,signer:t,isEIP1559Compatible:u,chain:s});if(!w)throw new y.SwapKitError("toolbox_evm_no_from_address");if(o.isGasAsset){let q={...b,from:w,to:a,value:i,data:M(c(l||"")),feeOptionKey:m};return f(q)}if(!V(o,s))throw new y.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:U,maxPriorityFeePerGas:E,gasPrice:z}=(await J({provider:n,isEIP1559Compatible:u,chain:s})())[m],B=await _({provider:n,signer:t,chain:s})({assetValue:o,memo:l,recipient:a,data:M(c(l||"")),sender:w,maxFeePerGas:U,maxPriorityFeePerGas:E,gasPrice:z});return f(B)}}function Mt({provider:t,signer:u}){return function n({contractAddress:e,abi:o,funcName:l,funcParams:a=[],txOverrides:m}){if(!e)throw new y.SwapKitError("toolbox_evm_no_contract_address");let p=I(e,o,t);return u?p.connect(u).getFunction(l).estimateGas(...a,m):p.getFunction(l).estimateGas(...a,m)}}function Wt({provider:t,signer:u}){return async function n({assetValue:e,recipient:o,memo:l,data:a,sender:m,funcName:p,funcParams:b,txOverrides:M}){let c=e.bigIntValue,i=e.isGasAsset?null:V(e,e.chain);if(i&&p)return Mt({provider:t,signer:u})({contractAddress:i,abi:G.erc20ABI,funcName:p,funcParams:b,txOverrides:M});let{hexlify:s,toUtf8Bytes:w}=await import("ethers");return t.estimateGas({from:m,to:o,value:c,data:a?a:l?s(w(l)):void 0})}}var Qt=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function st({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function o({feeOptionKey:l=y.FeeOption.Fast,...a}){let{from:m,to:p,data:b,value:M,...c}=a;if(!u)throw new y.SwapKitError("toolbox_evm_no_signer");if(!p)throw new y.SwapKitError("toolbox_evm_no_to_address");let i={...c,data:b||"0x",to:p,from:m,value:BigInt(M||0)};if(N(t))return S(t)(i);let s=m||await u.getAddress(),w=a.nonce||await t.getTransactionCount(s),f=(await t.getNetwork()).chainId,D=Qt(i)||n,U=J({provider:t,isEIP1559Compatible:n,chain:e}),E=D&&!(i.maxFeePerGas&&i.maxPriorityFeePerGas)||!i.gasPrice?Object.entries((await U())[l]).reduce((B,[q,Q])=>({...B,[q]:Z(BigInt(Q))}),{}):{},z;try{z=Z(i.gasLimit||await t.estimateGas(i)*11n/10n)}catch(B){throw new y.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:B})}try{let B={...i,chainId:f,type:D?2:0,gasLimit:z,nonce:w,...E};try{return(await u.sendTransaction(B)).hash}catch(q){let Q=await u.signTransaction({...B,from:s});return(await t.broadcastTransaction(Q)).hash}}catch(B){throw new y.SwapKitError("toolbox_evm_error_sending_transaction",{error:B})}}}function _({provider:t,signer:u}){return async function n({assetValue:e,memo:o,recipient:l,data:a,sender:m,maxFeePerGas:p,maxPriorityFeePerGas:b,gasPrice:M,...c}){let i=e.getBaseValue("bigint"),s=e.chain,w=m||await u?.getAddress();if(!w)throw new y.SwapKitError("toolbox_evm_no_from_address");if(y.isGasAsset(e)){let{hexlify:U,toUtf8Bytes:E}=await import("ethers");return{...c,from:w,to:l,value:i,data:a||U(E(o||""))}}let f=V(e,s);if(!f)throw new y.SwapKitError("toolbox_evm_no_contract_address");return $({provider:t,chain:e.chain})({contractAddress:f,abi:G.erc20ABI,funcName:"transfer",funcParams:[l,i],txOverrides:{from:w,maxFeePerGas:p,maxPriorityFeePerGas:b,gasPrice:M}})}}function Yt({provider:t,signer:u,chain:n}){return async function e({assetAddress:o,spenderAddress:l,amount:a,from:m}){let p=await u?.getAddress()||m,b=$({provider:t,chain:n}),M=[l,BigInt(a||F)];return await b({contractAddress:o,abi:G.erc20ABI,funcName:"approve",funcParams:M,txOverrides:{from:p}})}}async function C(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||T.SKConfig.get("rpcUrls")[t])}var Zt=async({from:t,memo:u="",feeOptionKey:n=T.FeeOption.Fastest,assetValue:e,abi:o,funcName:l,funcParams:a,contractAddress:m,txOverrides:p})=>{let{getEvmToolbox:b}=await import("@swapkit/toolboxes/evm"),M=await b(e.chain),i=(await M.getBalance(t)).find(({symbol:B,chain:q})=>e?B===e.symbol:B===T.AssetValue.from({chain:q})?.symbol),s=(await M.estimateGasPrices())[n];if(!i)return T.AssetValue.from({chain:e.chain});if(e&&(i.chain!==e.chain||i.symbol!==e?.symbol))return i;let w=o&&l&&a&&m?await M.estimateCall({contractAddress:m,abi:o,funcName:l,funcParams:a,txOverrides:p}):await M.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),f="maxFeePerGas"in s,D="gasPrice"in s&&s.gasPrice!==void 0;if(!(s&&(D||f)))throw new Error("Could not fetch fee data");let U=f?(s.maxFeePerGas||1n)+(s.maxPriorityFeePerGas||1n):s.gasPrice||1n,E=w*U,z=T.SwapKitNumber.fromBigInt(i.getBaseValue("bigint")).sub(E.toString());return T.AssetValue.from({chain:i.chain,value:z.getValue("string")})};function Z(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function A({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=T.FeeOption.Fast,chain:o,...l}){let m=await J({provider:t,isEIP1559Compatible:u,chain:o})(),p=await t.estimateGas(l),b=T.AssetValue.from({chain:o}),{gasPrice:M,maxFeePerGas:c,maxPriorityFeePerGas:i}=m[e];if(!u&&M)return b.set(T.SwapKitNumber.fromBigInt(M*p,b.decimal));if(c&&i){let s=(c+i)*p;return b.set(T.SwapKitNumber.fromBigInt(s,b.decimal))}throw new Error("No gas price found")}}function v(t){return()=>T.Chain.Ethereum===t?void 0:{...Xt({chain:t}),chainId:T.ChainToHexChainId[t],rpcUrls:[T.SKConfig.get("rpcUrls")[t]],blockExplorerUrls:[T.ChainToExplorerUrl[t]]}}function r(t){return![T.Chain.Arbitrum,T.Chain.BinanceSmartChain].includes(t)}function Xt({chain:t}){let u=T.BaseDecimal[t];switch(t){case T.Chain.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:T.Chain.Ethereum,decimals:u}};case T.Chain.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case T.Chain.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:T.Chain.Ethereum,decimals:u}};case T.Chain.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case T.Chain.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:T.Chain.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var wt;((n)=>{n.Test="goerli";n.Main="homestead"})(wt||={});var x=require("@swapkit/helpers");var H=require("@swapkit/helpers"),ft=require("ethers"),h=require("ts-pattern");var ct=[{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"}];async function d({provider:t,...u}){let n=await W(H.Chain.Ethereum)({provider:t,...u});async function e(o,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",a="aggregate",m=H.FeeOption.Fast){let p=await n.createContractTxObject({contractAddress:l,abi:ct,funcName:a,funcParams:[o]});return n.sendTransaction({...p,feeOptionKey:m})}return{...n,multicall:e}}var tt=W(H.Chain.Arbitrum),nt=W(H.Chain.Avalanche),ut=W(H.Chain.Base),et=W(H.Chain.BinanceSmartChain),ot=W(H.Chain.Polygon);function W(t){return async function u({provider:n,...e}){let o=H.SKConfig.get("rpcUrls")[t],l=n||await C(t,o),a=r(t),m=h.match(e).with({phrase:h.P.string},({phrase:b})=>ft.HDNodeWallet.fromPhrase(b).connect(l)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return});return{...X({provider:l,signer:m,isEIP1559Compatible:a,chain:t}),estimateTransactionFee:A({provider:l,isEIP1559Compatible:a,chain:t}),getNetworkParams:v(t),getBalance:Y(t).getBalance}}}var R=require("@swapkit/helpers"),P=require("ethers"),yt=require("ts-pattern"),Rt=require("ts-pattern");var Bt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var Nt="0x420000000000000000000000000000000000000f";function lt(t){return new P.Contract(Nt,Bt,t)}function K(t){return function u(){let n=lt(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Dt(t){return async function u({from:n,to:e,nonce:o,...l}){let{Transaction:a}=await import("ethers");if(!e)throw new Error("Missing to address");return a.from({...l,authorizationList:l.authorizationList,to:e,nonce:o?o:n?await t.getTransactionCount(n):0}).serialized}}function Ut(t){return async function u(n){let e=lt(t),o=await Dt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(o)}}function Et(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),o=await t.estimateGas(n);return e.mul(o)}}function St(t){return async function u(n){let e=await Ut(t)(n),o=await Et(t)(n);return e.add(o)}}function Lt(t){return async function u(n){let e=lt(t),o=await Dt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(o)}}var Vt=()=>({chainId:R.ChainId.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:R.Chain.Ethereum,decimals:R.BaseDecimal.ETH},rpcUrls:[R.SKConfig.get("rpcUrls")[R.Chain.Optimism]],blockExplorerUrls:[R.ChainToExplorerUrl[R.Chain.Optimism]]});async function at({provider:t,...u}){let n=R.Chain.Optimism,e=R.SKConfig.get("rpcUrls")[n],o=t||await C(n,e),l=Rt.match(u).with({phrase:yt.P.string},({phrase:p})=>P.HDNodeWallet.fromPhrase(p).connect(o)).with({signer:yt.P.any},({signer:p})=>p).otherwise(()=>{return}),a=X({provider:o,signer:l}),m=K(o);return{...a,estimateL1Gas:Lt(o),estimateL1GasCost:Ut(o),estimateL2GasCost:Et(o),estimateTotalGasCost:St(o),getBalance:Y(R.Chain.Optimism).getBalance,getL1GasPrice:m,getNetworkParams:Vt}}async function ht(t,u){let n={...u,provider:u?.provider||await C(t)};switch(t){case x.Chain.Avalanche:return nt(n);case x.Chain.Arbitrum:return tt(n);case x.Chain.Base:return ut(n);case x.Chain.Optimism:return at(n);case x.Chain.Polygon:return ot(n);case x.Chain.BinanceSmartChain:return et(n);case x.Chain.Ethereum:return d(n);default:throw new Error(`Chain ${t} is not supported`)}}
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=813703ED8162F75964756E2164756E21
|
package/dist/evm/index.cjs.map
CHANGED
|
@@ -9,10 +9,10 @@
|
|
|
9
9
|
"import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport { getProvider } from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { ARBToolbox, AVAXToolbox, BASEToolbox, BSCToolbox, ETHToolbox, MATICToolbox } from \"./evm\";\nimport { OPToolbox } from \"./op\";\n\nexport async function getEvmToolbox<T extends EVMChain>(chain: T, params?: EVMToolboxParams) {\n const toolboxParams = {\n ...params,\n provider: params?.provider || (await getProvider(chain)),\n };\n\n switch (chain) {\n case Chain.Avalanche:\n return AVAXToolbox(toolboxParams);\n case Chain.Arbitrum:\n return ARBToolbox(toolboxParams);\n case Chain.Base:\n return BASEToolbox(toolboxParams);\n case Chain.Optimism:\n return OPToolbox(toolboxParams);\n case Chain.Polygon:\n return MATICToolbox(toolboxParams);\n case Chain.BinanceSmartChain:\n return BSCToolbox(toolboxParams);\n case Chain.Ethereum:\n return ETHToolbox(toolboxParams);\n default:\n throw new Error(`Chain ${chain} is not supported`);\n }\n}\n\nexport * from \"./baseEVMToolbox\";\nexport * from \"./evm\";\nexport * from \"./op\";\n",
|
|
10
10
|
"import { Chain, type EVMChain, FeeOption, SKConfig } from \"@swapkit/helpers\";\nimport { HDNodeWallet } from \"ethers\";\nimport { P, match } from \"ts-pattern\";\nimport { getEvmApi } from \"../api\";\nimport { multicallAbi } from \"../contracts/eth/multicall\";\nimport {\n getEstimateTransactionFee,\n getIsEIP1559Compatible,\n getNetworkParams,\n getProvider,\n} 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)({\n provider,\n ...signer,\n });\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 contractAddress: multicallAddress,\n abi: multicallAbi,\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 AVAXToolbox = createEvmToolbox(Chain.Avalanche);\nexport const BASEToolbox = createEvmToolbox(Chain.Base);\nexport const BSCToolbox = createEvmToolbox(Chain.BinanceSmartChain);\nexport const MATICToolbox = createEvmToolbox(Chain.Polygon);\n\nfunction createEvmToolbox<C extends EVMChain>(chain: C) {\n return async function createEvmToolbox({\n provider: providerParam,\n ...toolboxSignerParams\n }: EVMToolboxParams) {\n const rpcUrl = SKConfig.get(\"rpcUrls\")[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({ provider, signer, isEIP1559Compatible, chain });\n\n return {\n ...evmToolbox,\n estimateTransactionFee: getEstimateTransactionFee({ provider, isEIP1559Compatible, chain }),\n getNetworkParams: getNetworkParams(chain),\n getBalance: getEvmApi(chain).getBalance,\n };\n };\n}\n",
|
|
11
11
|
"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",
|
|
12
|
-
"import { BaseDecimal, Chain, ChainId, ChainToExplorerUrl, SKConfig } from \"@swapkit/helpers\";\nimport type {
|
|
12
|
+
"import { BaseDecimal, Chain, ChainId, ChainToExplorerUrl, SKConfig } from \"@swapkit/helpers\";\nimport type {\n Authorization,\n BrowserProvider,\n JsonRpcProvider,\n Provider,\n TransactionRequest,\n} from \"ethers\";\nimport { Contract, HDNodeWallet } from \"ethers\";\n\nimport { P } from \"ts-pattern\";\nimport { match } from \"ts-pattern\";\nimport { getEvmApi } from \"../api\";\nimport { gasOracleAbi } from \"../contracts/op/gasOracle\";\nimport { getProvider } from \"../helpers\";\nimport type { EVMToolboxParams } from \"../types\";\nimport { BaseEVMToolbox } from \"./baseEVMToolbox\";\n\nconst GAS_PRICE_ORACLE_ADDRESS = \"0x420000000000000000000000000000000000000f\";\n\nfunction connectGasPriceOracle<P extends Provider>(provider: P) {\n return new Contract(GAS_PRICE_ORACLE_ADDRESS, gasOracleAbi, provider);\n}\n\nexport function getL1GasPriceFetcher<P extends Provider>(provider: P) {\n return function getL1GasPrice() {\n const gasPriceOracle = connectGasPriceOracle(provider);\n\n if (gasPriceOracle && \"l1BaseFee\" in gasPriceOracle) {\n return gasPriceOracle?.l1BaseFee() as unknown as bigint;\n }\n\n return undefined;\n };\n}\n\nfunction serializeTx<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function serializeTx({ from, to, nonce, ...tx }: TransactionRequest) {\n const { Transaction } = await import(\"ethers\");\n\n if (!to) throw new Error(\"Missing to address\");\n\n return Transaction.from({\n ...tx,\n authorizationList: tx.authorizationList as Authorization[],\n to: to as string,\n nonce: nonce ? nonce : from ? await provider.getTransactionCount(from) : 0,\n }).serialized;\n };\n}\n\nfunction estimateL1GasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL1GasCost(tx: TransactionRequest) {\n const gasPriceOracle = connectGasPriceOracle(provider);\n const serializedTx = await serializeTx(provider)(tx);\n\n if (gasPriceOracle && \"getL1Fee\" in gasPriceOracle) {\n return gasPriceOracle.getL1Fee(serializedTx);\n }\n };\n}\n\nfunction estimateL2GasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL2GasCost(tx: TransactionRequest) {\n const l2GasPrice = await provider.send(\"eth_gasPrice\", []);\n const l2GasCost = await provider.estimateGas(tx);\n return l2GasPrice.mul(l2GasCost);\n };\n}\n\nfunction estimateTotalGasCost<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateTotalGasCost(tx: TransactionRequest) {\n const l1GasCost = await estimateL1GasCost(provider)(tx);\n const l2GasCost = await estimateL2GasCost(provider)(tx);\n return l1GasCost.add(l2GasCost);\n };\n}\n\nexport function estimateL1Gas<P extends JsonRpcProvider | BrowserProvider>(provider: P) {\n return async function estimateL1Gas(tx: TransactionRequest) {\n const gasPriceOracle = connectGasPriceOracle(provider);\n const serializedTx = await serializeTx(provider)(tx);\n\n if (gasPriceOracle && \"getL1GasUsed\" in gasPriceOracle) {\n return gasPriceOracle.getL1GasUsed(serializedTx);\n }\n };\n}\n\nconst getNetworkParams = () => ({\n chainId: ChainId.OptimismHex,\n chainName: \"Optimism\",\n nativeCurrency: { name: \"Ethereum\", symbol: Chain.Ethereum, decimals: BaseDecimal.ETH },\n rpcUrls: [SKConfig.get(\"rpcUrls\")[Chain.Optimism]],\n blockExplorerUrls: [ChainToExplorerUrl[Chain.Optimism]],\n});\n\nexport async function OPToolbox({\n provider: providerParam,\n ...toolboxSignerParams\n}: EVMToolboxParams) {\n const chain = Chain.Optimism;\n const rpcUrl = SKConfig.get(\"rpcUrls\")[chain];\n const provider = providerParam || (await getProvider(chain, rpcUrl));\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({ provider, signer });\n const getL1GasPrice = getL1GasPriceFetcher(provider);\n\n return {\n ...evmToolbox,\n estimateL1Gas: estimateL1Gas(provider),\n estimateL1GasCost: estimateL1GasCost(provider),\n estimateL2GasCost: estimateL2GasCost(provider),\n estimateTotalGasCost: estimateTotalGasCost(provider),\n getBalance: getEvmApi(Chain.Optimism).getBalance,\n getL1GasPrice,\n getNetworkParams,\n };\n}\n",
|
|
13
13
|
"export const gasOracleAbi = [\n {\n inputs: [{ internalType: \"address\", name: \"_owner\", type: \"address\" }],\n stateMutability: \"nonpayable\",\n type: \"constructor\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"DecimalsUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"GasPriceUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"L1BaseFeeUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"OverheadUpdated\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: \"address\", name: \"previousOwner\", type: \"address\" },\n { indexed: true, internalType: \"address\", name: \"newOwner\", type: \"address\" },\n ],\n name: \"OwnershipTransferred\",\n type: \"event\",\n },\n {\n anonymous: false,\n inputs: [{ indexed: false, internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n name: \"ScalarUpdated\",\n type: \"event\",\n },\n {\n inputs: [],\n name: \"decimals\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"gasPrice\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes\", name: \"_data\", type: \"bytes\" }],\n name: \"getL1Fee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"bytes\", name: \"_data\", type: \"bytes\" }],\n name: \"getL1GasUsed\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"l1BaseFee\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"overhead\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"owner\",\n outputs: [{ internalType: \"address\", name: \"\", type: \"address\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"renounceOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"scalar\",\n outputs: [{ internalType: \"uint256\", name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_decimals\", type: \"uint256\" }],\n name: \"setDecimals\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_gasPrice\", type: \"uint256\" }],\n name: \"setGasPrice\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_baseFee\", type: \"uint256\" }],\n name: \"setL1BaseFee\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_overhead\", type: \"uint256\" }],\n name: \"setOverhead\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"uint256\", name: \"_scalar\", type: \"uint256\" }],\n name: \"setScalar\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ internalType: \"address\", name: \"newOwner\", type: \"address\" }],\n name: \"transferOwnership\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n];\n"
|
|
14
14
|
],
|
|
15
|
-
"mappings": "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",
|
|
16
|
-
"debugId": "
|
|
15
|
+
"mappings": "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",
|
|
16
|
+
"debugId": "813703ED8162F75964756E2164756E21",
|
|
17
17
|
"names": []
|
|
18
18
|
}
|
package/dist/evm/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{b as tt}from"../chunk-0h4xdrwz.js";import{c as C,d as z}from"../chunk-p1kdg37m.js";import{SKConfig as Jt,warnOnce as Ct}from"@swapkit/helpers";function S(t){let u=Jt.get("apis")[t];if(u)return Ct(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return zt(t)}function Tn(t){return t}function zt(t){return{getBalance:tt(t)}}import{AssetValue as K,BaseDecimal as gt,Chain as L,ChainToExplorerUrl as Ft,ChainToHexChainId as It,FeeOption as at,SKConfig as pt,SwapKitNumber as r}from"@swapkit/helpers";import{Chain as E,ContractAddress as q,FeeOption as f,SwapKitError as B,SwapKitNumber as nt,isGasAsset as kt}from"@swapkit/helpers";import{erc20ABI as Y}from"@swapkit/helpers/contracts";import{BrowserProvider as Gt,Contract as ut,Interface as et,getAddress as h}from"ethers";var _=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function j({chain:t=E.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:A({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:ot({provider:u,signer:n}),EIP1193SendTransaction:F(u),approve:Nt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:yt({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:jt({provider:u,signer:n,chain:t}),createContract:Wt({provider:u,chain:t}),createContractTxObject:Z({provider:u,chain:t}),createTransferTx:P({provider:u,signer:n,chain:t}),createTransaction:P({provider:u,signer:n,chain:t}),estimateGasLimit:Vt({provider:u,signer:n,chain:t}),estimateGasPrices:k({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:Xt({provider:u,chain:t}),sendTransaction:lt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:St({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(y)=>$t({address:y})}}function $t({address:t}){try{return h(t),!0}catch(u){return!1}}function g(t){return t instanceof Gt}function O(t,u,n){return new ut(t,et.from(u),n)}function Wt({provider:t}){return function u(n,e){return new ut(n,et.from(e),t)}}var Qt=["payable","nonpayable"];function Yt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new B("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&Qt.includes(n.stateMutability)}function fn(t){return h(t)}function F(t){return function u({value:n,...e}){if(!g(t))throw new B("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:V(BigInt(n||0)),...e}])}}function Bn(t,u){let n=I(t,u);if(n)return h(n.toLowerCase());throw new B("toolbox_evm_invalid_gas_asset_address")}var Zt={[E.Arbitrum]:q.ARB,[E.Avalanche]:q.AVAX,[E.Base]:q.BASE,[E.BinanceSmartChain]:q.BSC,[E.Ethereum]:q.ETH,[E.Optimism]:q.OP,[E.Polygon]:q.MATIC};function I({chain:t,symbol:u,ticker:n},e){try{let y=t===E.BinanceSmartChain&&u==="BNB"&&n==="BNB",o=t===e&&u===e&&n===e,l=[E.Arbitrum,E.Base].includes(t)&&u==="ETH"&&n==="ETH";if(o||y||l)return Zt[e];return h(u.slice(n.length+1).replace(/^0X/,""))}catch(y){return null}}function Z({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:y=[],txOverrides:o})=>O(u,n,t).getFunction(e).populateTransaction(...y.concat(o).filter((l)=>typeof l!=="undefined"))}function k({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===E.Arbitrum)return async function e(){try{let{gasPrice:y}=await u.getFeeData();if(!y)throw new Error("No fee data available");return{[f.Average]:{gasPrice:y},[f.Fast]:{gasPrice:y},[f.Fastest]:{gasPrice:y}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};if(t===E.Optimism)return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:o,gasPrice:l}=await u.getFeeData(),a=v(u)(),p=l;if(!(y&&o))throw new Error("No fee data available");return{[f.Average]:{l1GasPrice:a,gasPrice:p,maxFeePerGas:y,maxPriorityFeePerGas:o},[f.Fast]:{l1GasPrice:(a||0n)*15n/10n,gasPrice:p*15n/10n,maxFeePerGas:y,maxPriorityFeePerGas:o*15n/10n},[f.Fastest]:{l1GasPrice:(a||0n)*2n,gasPrice:p*2n,maxFeePerGas:y,maxPriorityFeePerGas:o*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}};return async function e(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:o,gasPrice:l}=await u.getFeeData();if(n){if(y===null||o===null)throw new B("toolbox_evm_no_fee_data");return{[f.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:o},[f.Fast]:{maxFeePerGas:y*15n/10n,maxPriorityFeePerGas:o*15n/10n},[f.Fastest]:{maxFeePerGas:y*2n,maxPriorityFeePerGas:o*2n}}}if(!l)throw new B("toolbox_evm_no_gas_price");return{[f.Average]:{gasPrice:l},[f.Fast]:{gasPrice:l*15n/10n},[f.Fastest]:{gasPrice:l*2n}}}catch(y){throw new Error(`Failed to estimate gas price: ${y.msg??y.toString()}`)}}}function A({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function y({callProvider:o,contractAddress:l,abi:a,funcName:p,funcParams:i=[],txOverrides:T={},feeOption:s=f.Fast}){let m=o||t;if(!l)throw new Error("contractAddress must be provided");let b=Yt({abi:a,funcName:p});if(b&&g(m)&&n){let R=Z({provider:m,chain:e}),D=T?.from||await n?.getAddress(),U=await R({contractAddress:l,abi:a,funcName:p,funcParams:i,txOverrides:{...T,from:D}});return F(m)(U)}let M=O(l,a,m);if(b){if(!n)throw new B("toolbox_evm_no_signer");let R=T?.from||await n.getAddress();if(!R)throw new B("toolbox_evm_no_signer_address");let D=M.connect(n),U=k({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:x,maxPriorityFeePerGas:c,gasPrice:H}=(await U())[s],Q=await M.getFunction(p).estimateGas(...i,T),N=await D[p](...i,{...T,gasLimit:Q,maxFeePerGas:x,maxPriorityFeePerGas:c,gasPrice:H,nonce:T?.nonce||await m.getTransactionCount(R)});return typeof N?.hash==="string"?N?.hash:N}let w=await M[p]?.(...i);return typeof w?.hash==="string"?w?.hash:w}}function yt({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:y,from:o}){return A({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:Y,funcName:"allowance",funcParams:[o,y]})}}function Xt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:y,from:o,amount:l=_}){let a=await yt({provider:t,chain:u})({assetAddress:e,spenderAddress:y,from:o});return nt.fromBigInt(a).gte(nt.fromBigInt(BigInt(l)))}}function Nt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function y({assetAddress:o,spenderAddress:l,feeOptionKey:a=f.Fast,amount:p,gasLimitFallback:i,from:T,nonce:s}){let m=[l,BigInt(p||_)],b=await t?.getAddress()||T,M={contractAddress:o,abi:Y,funcName:"approve",funcParams:m,signer:t,txOverrides:{from:b}};if(g(n)){let R=Z({provider:n,chain:e}),D=F(n),U=await R(M);return D(U)}return A({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...M,funcParams:m,txOverrides:{from:b,nonce:s,gasLimit:i?BigInt(i.toString()):void 0},feeOption:a})}}function St({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:y,memo:o,recipient:l,feeOptionKey:a=f.Fast,sender:p,...i}){let{hexlify:T,toUtf8Bytes:s}=await import("ethers"),m=y.getBaseValue("bigint"),b=y.chain,M=p||await t?.getAddress(),w=lt({provider:n,signer:t,isEIP1559Compatible:u,chain:b});if(!M)throw new B("toolbox_evm_no_from_address");if(y.isGasAsset){let H={...i,from:M,to:l,value:m,data:T(s(o||"")),feeOptionKey:a};return w(H)}if(!I(y,b))throw new B("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:x}=(await k({provider:n,isEIP1559Compatible:u,chain:b})())[a],c=await P({provider:n,signer:t,chain:b})({assetValue:y,memo:o,recipient:l,data:T(s(o||"")),sender:M,maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:x});return w(c)}}function ot({provider:t,signer:u}){return function n({contractAddress:e,abi:y,funcName:o,funcParams:l=[],txOverrides:a}){if(!e)throw new B("toolbox_evm_no_contract_address");let p=O(e,y,t);return u?p.connect(u).getFunction(o).estimateGas(...l,a):p.getFunction(o).estimateGas(...l,a)}}function Vt({provider:t,signer:u}){return async function n({assetValue:e,recipient:y,memo:o,data:l,sender:a,funcName:p,funcParams:i,txOverrides:T}){let s=e.bigIntValue,m=e.isGasAsset?null:I(e,e.chain);if(m&&p)return ot({provider:t,signer:u})({contractAddress:m,abi:Y,funcName:p,funcParams:i,txOverrides:T});let{hexlify:b,toUtf8Bytes:M}=await import("ethers");return t.estimateGas({from:a,to:y,value:s,data:l?l:o?b(M(o)):void 0})}}var ht=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function lt({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function y({feeOptionKey:o=f.Fast,...l}){let{from:a,to:p,data:i,value:T,...s}=l;if(!u)throw new B("toolbox_evm_no_signer");if(!p)throw new B("toolbox_evm_no_to_address");let m={...s,data:i||"0x",to:p,from:a,value:BigInt(T||0)};if(g(t))return F(t)(m);let b=a||await u.getAddress(),M=l.nonce||await t.getTransactionCount(b),w=(await t.getNetwork()).chainId,R=ht(m)||n,D=k({provider:t,isEIP1559Compatible:n,chain:e}),U=R&&!(m.maxFeePerGas&&m.maxPriorityFeePerGas)||!m.gasPrice?Object.entries((await D())[o]).reduce((c,[H,Q])=>({...c,[H]:V(BigInt(Q))}),{}):{},x;try{x=V(m.gasLimit||await t.estimateGas(m)*11n/10n)}catch(c){throw new B("toolbox_evm_error_estimating_gas_limit",{error:c})}try{let c={...m,chainId:w,type:R?2:0,gasLimit:x,nonce:M,...U};try{return(await u.sendTransaction(c)).hash}catch(H){let Q=await u.signTransaction({...c,from:b});return(await t.broadcastTransaction(Q)).hash}}catch(c){throw new B("toolbox_evm_error_sending_transaction",{error:c})}}}function P({provider:t,signer:u}){return async function n({assetValue:e,memo:y,recipient:o,data:l,sender:a,maxFeePerGas:p,maxPriorityFeePerGas:i,gasPrice:T,...s}){let m=e.getBaseValue("bigint"),b=e.chain,M=a||await u?.getAddress();if(!M)throw new B("toolbox_evm_no_from_address");if(kt(e)){let{hexlify:D,toUtf8Bytes:U}=await import("ethers");return{...s,from:M,to:o,value:m,data:l||D(U(y||""))}}let w=I(e,b);if(!w)throw new B("toolbox_evm_no_contract_address");return Z({provider:t,chain:e.chain})({contractAddress:w,abi:Y,funcName:"transfer",funcParams:[o,m],txOverrides:{from:M,maxFeePerGas:p,maxPriorityFeePerGas:i,gasPrice:T}})}}function jt({provider:t,signer:u,chain:n}){return async function e({assetAddress:y,spenderAddress:o,amount:l,from:a}){let p=await u?.getAddress()||a,i=Z({provider:t,chain:n}),T=[o,BigInt(l||_)];return await i({contractAddress:y,abi:Y,funcName:"approve",funcParams:T,txOverrides:{from:p}})}}async function G(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||pt.get("rpcUrls")[t])}var En=async({from:t,memo:u="",feeOptionKey:n=at.Fastest,assetValue:e,abi:y,funcName:o,funcParams:l,contractAddress:a,txOverrides:p})=>{let{getEvmToolbox:i}=await import("@swapkit/toolboxes/evm"),T=await i(e.chain),m=(await T.getBalance(t)).find(({symbol:c,chain:H})=>e?c===e.symbol:c===K.from({chain:H})?.symbol),b=(await T.estimateGasPrices())[n];if(!m)return K.from({chain:e.chain});if(e&&(m.chain!==e.chain||m.symbol!==e?.symbol))return m;let M=y&&o&&l&&a?await T.estimateCall({contractAddress:a,abi:y,funcName:o,funcParams:l,txOverrides:p}):await T.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),w="maxFeePerGas"in b,R="gasPrice"in b&&b.gasPrice!==void 0;if(!(b&&(R||w)))throw new Error("Could not fetch fee data");let D=w?(b.maxFeePerGas||1n)+(b.maxPriorityFeePerGas||1n):b.gasPrice||1n,U=M*D,x=r.fromBigInt(m.getBaseValue("bigint")).sub(U.toString());return K.from({chain:m.chain,value:x.getValue("string")})};function V(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function mt({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=at.Fast,chain:y,...o}){let a=await k({provider:t,isEIP1559Compatible:u,chain:y})(),p=await t.estimateGas(o),i=K.from({chain:y}),{gasPrice:T,maxFeePerGas:s,maxPriorityFeePerGas:m}=a[e];if(!u&&T)return i.set(r.fromBigInt(T*p,i.decimal));if(s&&m){let b=(s+m)*p;return i.set(r.fromBigInt(b,i.decimal))}throw new Error("No gas price found")}}function it(t){return()=>L.Ethereum===t?void 0:{...Kt({chain:t}),chainId:It[t],rpcUrls:[pt.get("rpcUrls")[t]],blockExplorerUrls:[Ft[t]]}}function Tt(t){return![L.Arbitrum,L.BinanceSmartChain].includes(t)}function Kt({chain:t}){let u=gt[t];switch(t){case L.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case L.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case L.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:L.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var Pt;((n)=>{n.Test="goerli";n.Main="homestead"})(Pt||={});import{Chain as J}from"@swapkit/helpers";import{Chain as $,FeeOption as _t,SKConfig as Ot}from"@swapkit/helpers";import{HDNodeWallet as At}from"ethers";import{P as Mt,match as vt}from"ts-pattern";var bt=[{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"}];async function st({provider:t,...u}){let n=await W($.Ethereum)({provider:t,...u});async function e(y,o="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",a=_t.Fast){let p=await n.createContractTxObject({contractAddress:o,abi:bt,funcName:l,funcParams:[y]});return n.sendTransaction({...p,feeOptionKey:a})}return{...n,multicall:e}}var wt=W($.Arbitrum),ct=W($.Avalanche),ft=W($.Base),Bt=W($.BinanceSmartChain),Rt=W($.Polygon);function W(t){return async function u({provider:n,...e}){let y=Ot.get("rpcUrls")[t],o=n||await G(t,y),l=Tt(t),a=vt(e).with({phrase:Mt.string},({phrase:i})=>At.fromPhrase(i).connect(o)).with({signer:Mt.any},({signer:i})=>i).otherwise(()=>{return});return{...j({provider:o,signer:a,isEIP1559Compatible:l,chain:t}),estimateTransactionFee:mt({provider:o,isEIP1559Compatible:l,chain:t}),getNetworkParams:it(t),getBalance:S(t).getBalance}}}import{BaseDecimal as rt,Chain as X,ChainId as dt,ChainToExplorerUrl as tn,SKConfig as Et}from"@swapkit/helpers";import{Contract as nn,HDNodeWallet as un}from"ethers";import{P as Ut}from"ts-pattern";import{match as en}from"ts-pattern";var Dt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var yn="0x420000000000000000000000000000000000000f";function d(t){return new nn(yn,Dt,t)}function v(t){return function u(){let n=d(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Lt(t){return async function u({from:n,to:e,nonce:y,...o}){let{Transaction:l}=await import("ethers");if(!e)throw new Error("Missing to address");let a={...o,to:e,nonce:y?y:n?await t.getTransactionCount(n):0};return l.from(a).serialized}}function xt(t){return async function u(n){let e=d(t),y=await Lt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(y)}}function Ht(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),y=await t.estimateGas(n);return e.mul(y)}}function on(t){return async function u(n){let e=await xt(t)(n),y=await Ht(t)(n);return e.add(y)}}function ln(t){return async function u(n){let e=d(t),y=await Lt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(y)}}var an=()=>({chainId:dt.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:X.Ethereum,decimals:rt.ETH},rpcUrls:[Et.get("rpcUrls")[X.Optimism]],blockExplorerUrls:[tn[X.Optimism]]});async function qt({provider:t,...u}){let n=X.Optimism,e=Et.get("rpcUrls")[n],y=t||await G(n,e),o=en(u).with({phrase:Ut.string},({phrase:p})=>un.fromPhrase(p).connect(y)).with({signer:Ut.any},({signer:p})=>p).otherwise(()=>{return}),l=j({provider:y,signer:o}),a=v(y);return{...l,estimateL1Gas:ln(y),estimateL1GasCost:xt(y),estimateL2GasCost:Ht(y),estimateTotalGasCost:on(y),getBalance:S(X.Optimism).getBalance,getL1GasPrice:a,getNetworkParams:an}}async function _n(t,u){let n={...u,provider:u?.provider||await G(t)};switch(t){case J.Avalanche:return ct(n);case J.Arbitrum:return wt(n);case J.Base:return ft(n);case J.Optimism:return qt(n);case J.Polygon:return Rt(n);case J.BinanceSmartChain:return Bt(n);case J.Ethereum:return st(n);default:throw new Error(`Chain ${t} is not supported`)}}export{V as toHexString,fn as toChecksumAddress,Yt as isStateChangingCall,g as isBrowserProvider,I as getTokenAddress,G as getProvider,it as getNetworkParams,v as getL1GasPriceFetcher,Tt as getIsEIP1559Compatible,_n as getEvmToolbox,S as getEvmApi,mt as getEstimateTransactionFee,k as getEstimateGasPrices,F as getEIP1193SendTransaction,Z as getCreateContractTxObject,Wt as getCreateContract,Bn as getChecksumAddressFromAsset,$t as evmValidateAddress,En as estimateMaxSendableAmount,ln as estimateL1Gas,Tn as createCustomEvmApi,O as createContract,qt as OPToolbox,_ as MAX_APPROVAL,Rt as MATICToolbox,Pt as EthNetwork,st as ETHToolbox,j as BaseEVMToolbox,Bt as BSCToolbox,ft as BASEToolbox,ct as AVAXToolbox,wt as ARBToolbox};
|
|
1
|
+
import{b as tt}from"../chunk-0h4xdrwz.js";import{c as J,d as C}from"../chunk-p1kdg37m.js";import{SKConfig as xt,warnOnce as Jt}from"@swapkit/helpers";function S(t){let u=xt.get("apis")[t];if(u)return Jt(!0,"Using custom EVM API. Be sure to implement all methods to avoid issues."),u;return Ct(t)}function Tn(t){return t}function Ct(t){return{getBalance:tt(t)}}import{AssetValue as K,BaseDecimal as gt,Chain as L,ChainToExplorerUrl as Ft,ChainToHexChainId as It,FeeOption as at,SKConfig as pt,SwapKitNumber as r}from"@swapkit/helpers";import{Chain as E,ContractAddress as q,FeeOption as f,SwapKitError as B,SwapKitNumber as nt,isGasAsset as kt}from"@swapkit/helpers";import{erc20ABI as Y}from"@swapkit/helpers/contracts";import{BrowserProvider as Gt,Contract as ut,Interface as et,getAddress as h}from"ethers";var _=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");function j({chain:t=E.Ethereum,provider:u,signer:n,isEIP1559Compatible:e=!0}){return{getAddress:()=>{return n?n.getAddress():void 0},call:A({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),estimateCall:yt({provider:u,signer:n}),EIP1193SendTransaction:F(u),approve:Nt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),approvedAmount:ot({provider:u,chain:t}),broadcastTransaction:u.broadcastTransaction,createApprovalTx:jt({provider:u,signer:n,chain:t}),createContract:Wt({provider:u,chain:t}),createContractTxObject:Z({provider:u,chain:t}),createTransferTx:P({provider:u,signer:n,chain:t}),createTransaction:P({provider:u,signer:n,chain:t}),estimateGasLimit:Vt({provider:u,signer:n,chain:t}),estimateGasPrices:k({chain:t,provider:u,isEIP1559Compatible:e}),isApproved:Xt({provider:u,chain:t}),sendTransaction:lt({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),signMessage:n?.signMessage,transfer:St({provider:u,signer:n,isEIP1559Compatible:e,chain:t}),validateAddress:(o)=>$t({address:o})}}function $t({address:t}){try{return h(t),!0}catch(u){return!1}}function g(t){return t instanceof Gt}function O(t,u,n){return new ut(t,et.from(u),n)}function Wt({provider:t}){return function u(n,e){return new ut(n,et.from(e),t)}}var Qt=["payable","nonpayable"];function Yt({abi:t,funcName:u}){let n=t.find((e)=>e.name===u);if(!n)throw new B("toolbox_evm_no_abi_fragment",{funcName:u});return n.stateMutability&&Qt.includes(n.stateMutability)}function fn(t){return h(t)}function F(t){return function u({value:n,...e}){if(!g(t))throw new B("toolbox_evm_provider_not_eip1193_compatible");return t.send("eth_sendTransaction",[{value:V(BigInt(n||0)),...e}])}}function Bn(t,u){let n=I(t,u);if(n)return h(n.toLowerCase());throw new B("toolbox_evm_invalid_gas_asset_address")}var Zt={[E.Arbitrum]:q.ARB,[E.Avalanche]:q.AVAX,[E.Base]:q.BASE,[E.BinanceSmartChain]:q.BSC,[E.Ethereum]:q.ETH,[E.Optimism]:q.OP,[E.Polygon]:q.MATIC};function I({chain:t,symbol:u,ticker:n},e){try{let o=t===E.BinanceSmartChain&&u==="BNB"&&n==="BNB",y=t===e&&u===e&&n===e,l=[E.Arbitrum,E.Base].includes(t)&&u==="ETH"&&n==="ETH";if(y||o||l)return Zt[e];return h(u.slice(n.length+1).replace(/^0X/,""))}catch(o){return null}}function Z({provider:t}){return async({contractAddress:u,abi:n,funcName:e,funcParams:o=[],txOverrides:y})=>O(u,n,t).getFunction(e).populateTransaction(...o.concat(y).filter((l)=>typeof l!=="undefined"))}function k({chain:t,provider:u,isEIP1559Compatible:n=!0}){if(t===E.Arbitrum)return async function e(){try{let{gasPrice:o}=await u.getFeeData();if(!o)throw new Error("No fee data available");return{[f.Average]:{gasPrice:o},[f.Fast]:{gasPrice:o},[f.Fastest]:{gasPrice:o}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};if(t===E.Optimism)return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:y,gasPrice:l}=await u.getFeeData(),p=v(u)(),a=l;if(!(o&&y))throw new Error("No fee data available");return{[f.Average]:{l1GasPrice:p,gasPrice:a,maxFeePerGas:o,maxPriorityFeePerGas:y},[f.Fast]:{l1GasPrice:(p||0n)*15n/10n,gasPrice:a*15n/10n,maxFeePerGas:o,maxPriorityFeePerGas:y*15n/10n},[f.Fastest]:{l1GasPrice:(p||0n)*2n,gasPrice:a*2n,maxFeePerGas:o,maxPriorityFeePerGas:y*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}};return async function e(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:y,gasPrice:l}=await u.getFeeData();if(n){if(o===null||y===null)throw new B("toolbox_evm_no_fee_data");return{[f.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:y},[f.Fast]:{maxFeePerGas:o*15n/10n,maxPriorityFeePerGas:y*15n/10n},[f.Fastest]:{maxFeePerGas:o*2n,maxPriorityFeePerGas:y*2n}}}if(!l)throw new B("toolbox_evm_no_gas_price");return{[f.Average]:{gasPrice:l},[f.Fast]:{gasPrice:l*15n/10n},[f.Fastest]:{gasPrice:l*2n}}}catch(o){throw new Error(`Failed to estimate gas price: ${o.msg??o.toString()}`)}}}function A({provider:t,isEIP1559Compatible:u,signer:n,chain:e}){return async function o({callProvider:y,contractAddress:l,abi:p,funcName:a,funcParams:i=[],txOverrides:T={},feeOption:s=f.Fast}){let m=y||t;if(!l)throw new Error("contractAddress must be provided");let b=Yt({abi:p,funcName:a});if(b&&g(m)&&n){let R=Z({provider:m,chain:e}),D=T?.from||await n?.getAddress(),U=await R({contractAddress:l,abi:p,funcName:a,funcParams:i,txOverrides:{...T,from:D}});return F(m)(U)}let M=O(l,p,m);if(b){if(!n)throw new B("toolbox_evm_no_signer");let R=T?.from||await n.getAddress();if(!R)throw new B("toolbox_evm_no_signer_address");let D=M.connect(n),U=k({provider:t,isEIP1559Compatible:u,chain:e}),{maxFeePerGas:H,maxPriorityFeePerGas:c,gasPrice:z}=(await U())[s],Q=await M.getFunction(a).estimateGas(...i,T),N=await D[a](...i,{...T,gasLimit:Q,maxFeePerGas:H,maxPriorityFeePerGas:c,gasPrice:z,nonce:T?.nonce||await m.getTransactionCount(R)});return typeof N?.hash==="string"?N?.hash:N}let w=await M[a]?.(...i);return typeof w?.hash==="string"?w?.hash:w}}function ot({provider:t,chain:u}){return function n({assetAddress:e,spenderAddress:o,from:y}){return A({provider:t,isEIP1559Compatible:!0,chain:u})({contractAddress:e,abi:Y,funcName:"allowance",funcParams:[y,o]})}}function Xt({provider:t,chain:u}){return async function n({assetAddress:e,spenderAddress:o,from:y,amount:l=_}){let p=await ot({provider:t,chain:u})({assetAddress:e,spenderAddress:o,from:y});return nt.fromBigInt(p).gte(nt.fromBigInt(BigInt(l)))}}function Nt({signer:t,isEIP1559Compatible:u=!0,provider:n,chain:e}){return async function o({assetAddress:y,spenderAddress:l,feeOptionKey:p=f.Fast,amount:a,gasLimitFallback:i,from:T,nonce:s}){let m=[l,BigInt(a||_)],b=await t?.getAddress()||T,M={contractAddress:y,abi:Y,funcName:"approve",funcParams:m,signer:t,txOverrides:{from:b}};if(g(n)){let R=Z({provider:n,chain:e}),D=F(n),U=await R(M);return D(U)}return A({provider:n,isEIP1559Compatible:u,signer:t,chain:e})({...M,funcParams:m,txOverrides:{from:b,nonce:s,gasLimit:i?BigInt(i.toString()):void 0},feeOption:p})}}function St({signer:t,isEIP1559Compatible:u=!0,provider:n}){return async function e({assetValue:o,memo:y,recipient:l,feeOptionKey:p=f.Fast,sender:a,...i}){let{hexlify:T,toUtf8Bytes:s}=await import("ethers"),m=o.getBaseValue("bigint"),b=o.chain,M=a||await t?.getAddress(),w=lt({provider:n,signer:t,isEIP1559Compatible:u,chain:b});if(!M)throw new B("toolbox_evm_no_from_address");if(o.isGasAsset){let z={...i,from:M,to:l,value:m,data:T(s(y||"")),feeOptionKey:p};return w(z)}if(!I(o,b))throw new B("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:H}=(await k({provider:n,isEIP1559Compatible:u,chain:b})())[p],c=await P({provider:n,signer:t,chain:b})({assetValue:o,memo:y,recipient:l,data:T(s(y||"")),sender:M,maxFeePerGas:D,maxPriorityFeePerGas:U,gasPrice:H});return w(c)}}function yt({provider:t,signer:u}){return function n({contractAddress:e,abi:o,funcName:y,funcParams:l=[],txOverrides:p}){if(!e)throw new B("toolbox_evm_no_contract_address");let a=O(e,o,t);return u?a.connect(u).getFunction(y).estimateGas(...l,p):a.getFunction(y).estimateGas(...l,p)}}function Vt({provider:t,signer:u}){return async function n({assetValue:e,recipient:o,memo:y,data:l,sender:p,funcName:a,funcParams:i,txOverrides:T}){let s=e.bigIntValue,m=e.isGasAsset?null:I(e,e.chain);if(m&&a)return yt({provider:t,signer:u})({contractAddress:m,abi:Y,funcName:a,funcParams:i,txOverrides:T});let{hexlify:b,toUtf8Bytes:M}=await import("ethers");return t.estimateGas({from:p,to:o,value:s,data:l?l:y?b(M(y)):void 0})}}var ht=(t)=>t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas;function lt({provider:t,signer:u,isEIP1559Compatible:n=!0,chain:e}){return async function o({feeOptionKey:y=f.Fast,...l}){let{from:p,to:a,data:i,value:T,...s}=l;if(!u)throw new B("toolbox_evm_no_signer");if(!a)throw new B("toolbox_evm_no_to_address");let m={...s,data:i||"0x",to:a,from:p,value:BigInt(T||0)};if(g(t))return F(t)(m);let b=p||await u.getAddress(),M=l.nonce||await t.getTransactionCount(b),w=(await t.getNetwork()).chainId,R=ht(m)||n,D=k({provider:t,isEIP1559Compatible:n,chain:e}),U=R&&!(m.maxFeePerGas&&m.maxPriorityFeePerGas)||!m.gasPrice?Object.entries((await D())[y]).reduce((c,[z,Q])=>({...c,[z]:V(BigInt(Q))}),{}):{},H;try{H=V(m.gasLimit||await t.estimateGas(m)*11n/10n)}catch(c){throw new B("toolbox_evm_error_estimating_gas_limit",{error:c})}try{let c={...m,chainId:w,type:R?2:0,gasLimit:H,nonce:M,...U};try{return(await u.sendTransaction(c)).hash}catch(z){let Q=await u.signTransaction({...c,from:b});return(await t.broadcastTransaction(Q)).hash}}catch(c){throw new B("toolbox_evm_error_sending_transaction",{error:c})}}}function P({provider:t,signer:u}){return async function n({assetValue:e,memo:o,recipient:y,data:l,sender:p,maxFeePerGas:a,maxPriorityFeePerGas:i,gasPrice:T,...s}){let m=e.getBaseValue("bigint"),b=e.chain,M=p||await u?.getAddress();if(!M)throw new B("toolbox_evm_no_from_address");if(kt(e)){let{hexlify:D,toUtf8Bytes:U}=await import("ethers");return{...s,from:M,to:y,value:m,data:l||D(U(o||""))}}let w=I(e,b);if(!w)throw new B("toolbox_evm_no_contract_address");return Z({provider:t,chain:e.chain})({contractAddress:w,abi:Y,funcName:"transfer",funcParams:[y,m],txOverrides:{from:M,maxFeePerGas:a,maxPriorityFeePerGas:i,gasPrice:T}})}}function jt({provider:t,signer:u,chain:n}){return async function e({assetAddress:o,spenderAddress:y,amount:l,from:p}){let a=await u?.getAddress()||p,i=Z({provider:t,chain:n}),T=[y,BigInt(l||_)];return await i({contractAddress:o,abi:Y,funcName:"approve",funcParams:T,txOverrides:{from:a}})}}async function G(t,u){let{JsonRpcProvider:n}=await import("ethers");return new n(u||pt.get("rpcUrls")[t])}var En=async({from:t,memo:u="",feeOptionKey:n=at.Fastest,assetValue:e,abi:o,funcName:y,funcParams:l,contractAddress:p,txOverrides:a})=>{let{getEvmToolbox:i}=await import("@swapkit/toolboxes/evm"),T=await i(e.chain),m=(await T.getBalance(t)).find(({symbol:c,chain:z})=>e?c===e.symbol:c===K.from({chain:z})?.symbol),b=(await T.estimateGasPrices())[n];if(!m)return K.from({chain:e.chain});if(e&&(m.chain!==e.chain||m.symbol!==e?.symbol))return m;let M=o&&y&&l&&p?await T.estimateCall({contractAddress:p,abi:o,funcName:y,funcParams:l,txOverrides:a}):await T.estimateGasLimit({sender:t,recipient:t,memo:u,assetValue:e}),w="maxFeePerGas"in b,R="gasPrice"in b&&b.gasPrice!==void 0;if(!(b&&(R||w)))throw new Error("Could not fetch fee data");let D=w?(b.maxFeePerGas||1n)+(b.maxPriorityFeePerGas||1n):b.gasPrice||1n,U=M*D,H=r.fromBigInt(m.getBaseValue("bigint")).sub(U.toString());return K.from({chain:m.chain,value:H.getValue("string")})};function V(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function mt({provider:t,isEIP1559Compatible:u=!0}){return async function n({feeOption:e=at.Fast,chain:o,...y}){let p=await k({provider:t,isEIP1559Compatible:u,chain:o})(),a=await t.estimateGas(y),i=K.from({chain:o}),{gasPrice:T,maxFeePerGas:s,maxPriorityFeePerGas:m}=p[e];if(!u&&T)return i.set(r.fromBigInt(T*a,i.decimal));if(s&&m){let b=(s+m)*a;return i.set(r.fromBigInt(b,i.decimal))}throw new Error("No gas price found")}}function it(t){return()=>L.Ethereum===t?void 0:{...Kt({chain:t}),chainId:It[t],rpcUrls:[pt.get("rpcUrls")[t]],blockExplorerUrls:[Ft[t]]}}function Tt(t){return![L.Arbitrum,L.BinanceSmartChain].includes(t)}function Kt({chain:t}){let u=gt[t];switch(t){case L.Arbitrum:return{chainName:"Arbitrum One",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.Avalanche:return{chainName:"Avalanche Network",nativeCurrency:{name:"Avalanche",symbol:t,decimals:u}};case L.Base:return{chainName:"Base Mainnet",nativeCurrency:{name:"Ethereum",symbol:L.Ethereum,decimals:u}};case L.BinanceSmartChain:return{chainName:"BNB Chain",nativeCurrency:{name:"Binance Coin",symbol:"BNB",decimals:u}};case L.Polygon:return{chainName:"Polygon Mainnet",nativeCurrency:{name:"Polygon",symbol:L.Polygon,decimals:u}};default:throw new Error(`Chain ${t} is not supported`)}}var Pt;((n)=>{n.Test="goerli";n.Main="homestead"})(Pt||={});import{Chain as x}from"@swapkit/helpers";import{Chain as $,FeeOption as _t,SKConfig as Ot}from"@swapkit/helpers";import{HDNodeWallet as At}from"ethers";import{P as Mt,match as vt}from"ts-pattern";var bt=[{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"}];async function st({provider:t,...u}){let n=await W($.Ethereum)({provider:t,...u});async function e(o,y="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",p=_t.Fast){let a=await n.createContractTxObject({contractAddress:y,abi:bt,funcName:l,funcParams:[o]});return n.sendTransaction({...a,feeOptionKey:p})}return{...n,multicall:e}}var wt=W($.Arbitrum),ct=W($.Avalanche),ft=W($.Base),Bt=W($.BinanceSmartChain),Rt=W($.Polygon);function W(t){return async function u({provider:n,...e}){let o=Ot.get("rpcUrls")[t],y=n||await G(t,o),l=Tt(t),p=vt(e).with({phrase:Mt.string},({phrase:i})=>At.fromPhrase(i).connect(y)).with({signer:Mt.any},({signer:i})=>i).otherwise(()=>{return});return{...j({provider:y,signer:p,isEIP1559Compatible:l,chain:t}),estimateTransactionFee:mt({provider:y,isEIP1559Compatible:l,chain:t}),getNetworkParams:it(t),getBalance:S(t).getBalance}}}import{BaseDecimal as rt,Chain as X,ChainId as dt,ChainToExplorerUrl as tn,SKConfig as Et}from"@swapkit/helpers";import{Contract as nn,HDNodeWallet as un}from"ethers";import{P as Ut}from"ts-pattern";import{match as en}from"ts-pattern";var Dt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}];var on="0x420000000000000000000000000000000000000f";function d(t){return new nn(on,Dt,t)}function v(t){return function u(){let n=d(t);if(n&&"l1BaseFee"in n)return n?.l1BaseFee();return}}function Lt(t){return async function u({from:n,to:e,nonce:o,...y}){let{Transaction:l}=await import("ethers");if(!e)throw new Error("Missing to address");return l.from({...y,authorizationList:y.authorizationList,to:e,nonce:o?o:n?await t.getTransactionCount(n):0}).serialized}}function Ht(t){return async function u(n){let e=d(t),o=await Lt(t)(n);if(e&&"getL1Fee"in e)return e.getL1Fee(o)}}function zt(t){return async function u(n){let e=await t.send("eth_gasPrice",[]),o=await t.estimateGas(n);return e.mul(o)}}function yn(t){return async function u(n){let e=await Ht(t)(n),o=await zt(t)(n);return e.add(o)}}function ln(t){return async function u(n){let e=d(t),o=await Lt(t)(n);if(e&&"getL1GasUsed"in e)return e.getL1GasUsed(o)}}var an=()=>({chainId:dt.OptimismHex,chainName:"Optimism",nativeCurrency:{name:"Ethereum",symbol:X.Ethereum,decimals:rt.ETH},rpcUrls:[Et.get("rpcUrls")[X.Optimism]],blockExplorerUrls:[tn[X.Optimism]]});async function qt({provider:t,...u}){let n=X.Optimism,e=Et.get("rpcUrls")[n],o=t||await G(n,e),y=en(u).with({phrase:Ut.string},({phrase:a})=>un.fromPhrase(a).connect(o)).with({signer:Ut.any},({signer:a})=>a).otherwise(()=>{return}),l=j({provider:o,signer:y}),p=v(o);return{...l,estimateL1Gas:ln(o),estimateL1GasCost:Ht(o),estimateL2GasCost:zt(o),estimateTotalGasCost:yn(o),getBalance:S(X.Optimism).getBalance,getL1GasPrice:p,getNetworkParams:an}}async function _n(t,u){let n={...u,provider:u?.provider||await G(t)};switch(t){case x.Avalanche:return ct(n);case x.Arbitrum:return wt(n);case x.Base:return ft(n);case x.Optimism:return qt(n);case x.Polygon:return Rt(n);case x.BinanceSmartChain:return Bt(n);case x.Ethereum:return st(n);default:throw new Error(`Chain ${t} is not supported`)}}export{V as toHexString,fn as toChecksumAddress,Yt as isStateChangingCall,g as isBrowserProvider,I as getTokenAddress,G as getProvider,it as getNetworkParams,v as getL1GasPriceFetcher,Tt as getIsEIP1559Compatible,_n as getEvmToolbox,S as getEvmApi,mt as getEstimateTransactionFee,k as getEstimateGasPrices,F as getEIP1193SendTransaction,Z as getCreateContractTxObject,Wt as getCreateContract,Bn as getChecksumAddressFromAsset,$t as evmValidateAddress,En as estimateMaxSendableAmount,ln as estimateL1Gas,Tn as createCustomEvmApi,O as createContract,qt as OPToolbox,_ as MAX_APPROVAL,Rt as MATICToolbox,Pt as EthNetwork,st as ETHToolbox,j as BaseEVMToolbox,Bt as BSCToolbox,ft as BASEToolbox,ct as AVAXToolbox,wt as ARBToolbox};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=F518B549C1B7915464756E2164756E21
|