@swapkit/toolboxes 4.17.6 → 4.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/src/aptos/index.cjs +1 -1
- package/dist/src/aptos/index.js +1 -1
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/evm/index.js +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/hypercore/index.js +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/substrate/index.cjs +1 -1
- package/dist/src/substrate/index.js +1 -1
- package/dist/src/sui/index.cjs +1 -1
- package/dist/src/sui/index.js +1 -1
- package/dist/src/tron/index.cjs +1 -1
- package/dist/src/tron/index.js +1 -1
- package/dist/types/evm/toolbox/evm.d.ts +95 -5
- package/dist/types/evm/types.d.ts +3 -1
- package/package.json +16 -16
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @swapkit/toolboxes
|
|
2
2
|
|
|
3
|
+
## 4.18.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#288](https://github.com/swapkit/sdk/pull/288) [`3172029`](https://github.com/swapkit/sdk/commit/3172029e6349e82b128719a640604ef89e4645ab) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Add Linea (`59144`) and Plasma (`9745`) EVM chains: chain/chainId enums, chain configs, and EVM toolbox wiring.
|
|
8
|
+
|
|
9
|
+
- [#247](https://github.com/swapkit/sdk/pull/247) [`f3888bf`](https://github.com/swapkit/sdk/commit/f3888bf4695cdef3353557f2494034acc178c67d) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Bump `@aptos-labs/ts-sdk` from 1.34.0 to 7.0.1. v7 is ESM-only and requires Node 22+. Adds two `AptosConfig` parameters required by v7: `network: Network.MAINNET` (custom endpoints now require an explicit network) and `clientConfig: { http2: false }` (Bun's HTTP/2 client isn't mature; v7 warns at construction otherwise). No public API change in our usage.
|
|
10
|
+
|
|
11
|
+
- [#247](https://github.com/swapkit/sdk/pull/247) [`f3888bf`](https://github.com/swapkit/sdk/commit/f3888bf4695cdef3353557f2494034acc178c67d) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Bump `@polkadot/api`, `@polkadot/rpc-provider`, `@polkadot/types` from 15.10.2 to 16.5.6. Also moves `@polkadot/types` from a hard-pin in `toolboxes/package.json` to the root catalog. Public API unchanged in our usage. v16's Metadata v16 surface-renames (`signedExtensions` → `transactionExtensions`) live inside `api.runtimeMetadata.asV*` which we do not touch.
|
|
12
|
+
|
|
13
|
+
- [#247](https://github.com/swapkit/sdk/pull/247) [`f3888bf`](https://github.com/swapkit/sdk/commit/f3888bf4695cdef3353557f2494034acc178c67d) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Bump `@polkadot/keyring`, `@polkadot/util`, `@polkadot/util-crypto` from 13.5.7 to 14.0.3. sr25519 implementation now uses pure-JS `micro-sr25519` instead of WASM, shrinking the substrate bundle. Public API unchanged; `cryptoWaitReady()` remains required for ed25519/secp256k1 paths.
|
|
14
|
+
|
|
15
|
+
- [#247](https://github.com/swapkit/sdk/pull/247) [`f3888bf`](https://github.com/swapkit/sdk/commit/f3888bf4695cdef3353557f2494034acc178c67d) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Bump `@mysten/sui` from 1.44.0 to 2.17.0. The JSON-RPC entry moved from `@mysten/sui/client` to `@mysten/sui/jsonRpc` and `SuiClient` was renamed to `SuiJsonRpcClient` (aliased locally so no public type changes). `network` is now a mandatory `SuiJsonRpcClient` option. Adds a regression test asserting that built transactions carry a non-empty expiration, guarding against silent reversion of v2's epoch+1 default.
|
|
16
|
+
|
|
17
|
+
- [#287](https://github.com/swapkit/sdk/pull/287) [`19133e3`](https://github.com/swapkit/sdk/commit/19133e3c212cb0a8854698dc041b5487b9790175) Thanks [@ochhii1337](https://github.com/ochhii1337)! - Allow handling for hex strings in Tron toolbox memos
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- Updated dependencies []:
|
|
22
|
+
- @swapkit/helpers@4.15.1
|
|
23
|
+
|
|
3
24
|
## 4.17.6
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/dist/src/aptos/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var k=Object.create;var{getPrototypeOf:$,defineProperty:b,getOwnPropertyNames:R,getOwnPropertyDescriptor:K}=Object,N=Object.prototype.hasOwnProperty;function v(n){return this[n]}var j,q,Z=(n,s,e)=>{var r=n!=null&&typeof n==="object";if(r){var _=s?j??=new WeakMap:q??=new WeakMap,f=_.get(n);if(f)return f}e=n!=null?k($(n)):{};let d=s||!n||!n.__esModule?b(e,"default",{value:n,enumerable:!0}):e;for(let m of R(n))if(!N.call(d,m))b(d,m,{get:v.bind(n,m),enumerable:!0});if(r)_.set(n,d);return d},W=(n)=>{var s=(B??=new WeakMap).get(n),e;if(s)return s;if(s=b({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var r of R(n))if(!N.call(s,r))b(s,r,{get:v.bind(n,r),enumerable:!(e=K(n,r))||e.enumerable})}return B.set(n,s),s},B;var Y=(n)=>n;function H(n,s){this[n]=Y.bind(null,s)}var Q=(n,s)=>{for(var e in s)b(n,e,{get:s[e],enumerable:!0,configurable:!0,set:H.bind(s,e)})};var C=(n,s)=>()=>(n&&(s=n(n=0)),s);function y(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let s=n.slice(2);if(s.length===0||s.length>64)return!1;return z.test(s)}function F({derivationPath:n,provider:s,...e}={}){let r,_=t.derivationPathToString(n||t.NetworkDerivationPath[t.Chain.Aptos],{allHardened:!0});async function f(){if(r)return r;return r=await T.match(e).with({phrase:T.P.string},async({phrase:o})=>{let{Ed25519Account:a}=await import("@aptos-labs/ts-sdk");return a.fromDerivationPath({mnemonic:o,path:_})}).with({signer:T.P.any},({signer:o})=>o).otherwise(()=>{return}),r}async function d(){let{Aptos:o,AptosConfig:a,Network:i}=await import("@aptos-labs/ts-sdk"),u=new a({clientConfig:{http2:!1},fullnode:s||t.getRPCUrlSync(t.Chain.Aptos),network:i.MAINNET});return new o(u)}async function m(){return(await f())?.accountAddress.toString()||""}async function I(o){let a=o||await m();if(!a)throw new t.SwapKitError("toolbox_aptos_address_required");let{baseDecimal:i,chain:u}=t.getChainConfig(t.Chain.Aptos);try{let p=await d(),A=await p.getAccountAPTAmount({accountAddress:a}),g=[t.AssetValue.from({chain:u,fromBaseDecimal:i,value:A.toString()})],h=await p.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:a}}}});for(let c of h){if(c.asset_type===w.COIN_TYPE||Number(c.amount)<=0)continue;let l=c.asset_type;if(l){let O=("metadata"in c&&typeof c.metadata==="object"&&c.metadata!==null?c.metadata:void 0)?.decimals??i;g.push(t.AssetValue.from({asset:`${t.Chain.Aptos}.APT-${l}`,fromBaseDecimal:O,value:String(c.amount)}))}}return g}catch{return[t.AssetValue.from({chain:u})]}}async function U(o){if(!o){let{baseDecimal:h}=t.getChainConfig(t.Chain.Aptos),c=s||t.getRPCUrlSync(t.Chain.Aptos),l=await fetch(`${c}/estimate_gas_price`),{gas_estimate:x}=await l.json();return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:h,value:String(x)})}let a=await f();if(!a)throw new t.SwapKitError("toolbox_aptos_no_signer");let i=await E(o),u=await d(),[p]=await u.transaction.simulate.simple({signerPublicKey:a.publicKey,transaction:i});if(!p)throw new t.SwapKitError("toolbox_aptos_transaction_creation_error");let A=BigInt(p.gas_used)*BigInt(p.gas_unit_price),{baseDecimal:g}=t.getChainConfig(t.Chain.Aptos);return t.AssetValue.from({chain:t.Chain.Aptos,fromBaseDecimal:g,value:A.toString()})}async function E({recipient:o,assetValue:a,maxGasAmount:i,sender:u}){if(!y(o))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let p=u||await m();if(!p)throw new t.SwapKitError("toolbox_aptos_no_sender");let{AccountAddress:A}=await import("@aptos-labs/ts-sdk"),g=await d(),h=A.from(p);try{let c=a.isGasAsset?w.TRANSFER:w.FUNGIBLE_STORE_TRANSFER,l=T.match({address:a?.address,isGasAsset:a.isGasAsset}).with({isGasAsset:!0},()=>[A.from(o),a.getBaseValue("bigint")]).with({address:T.P.string},({address:x})=>[A.from(x),A.from(o),a.getBaseValue("bigint")]).otherwise(()=>null);if(!l)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return g.transaction.build.simple({data:{function:c,functionArguments:l,typeArguments:a.isGasAsset?[]:[w.FUNGIBLE_ASSET_METADATA]},options:i?{maxGasAmount:i}:void 0,sender:h})}catch(c){if(c instanceof t.SwapKitError)throw c;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",c)}}async function S(o){let a=await f();if(!a)throw new t.SwapKitError("toolbox_aptos_no_signer");return(await d()).transaction.sign({signer:a,transaction:o})}async function L({assetValue:o,maxGasAmount:a,recipient:i}){let u=await f();if(!u)throw new t.SwapKitError("toolbox_aptos_no_signer");if(!y(i))throw new t.SwapKitError("core_transaction_invalid_recipient_address");try{let p=u.accountAddress.toString(),A=await E({assetValue:o,maxGasAmount:a,recipient:i,sender:p});return(await(await d()).signAndSubmitTransaction({signer:u,transaction:A})).hash}catch(p){if(p instanceof t.SwapKitError)throw p;throw new t.SwapKitError("toolbox_aptos_transaction_creation_error",p)}}async function P({senderAuthenticator:o,transaction:a}){try{return(await(await d()).transaction.submit.simple({senderAuthenticator:o,transaction:a})).hash}catch(i){throw new t.SwapKitError("toolbox_aptos_broadcast_error",i)}}async function M(o){let a=await S(o);return P({senderAuthenticator:a,transaction:o})}return{broadcastTransaction:P,createTransaction:E,estimateTransactionFee:U,getAddress:m,getBalance:I,signAndBroadcastTransaction:M,signTransaction:S,transfer:L,validateAddress:y}}function D({provider:n}){return async function({assetValue:e,recipient:r}){if(!y(r))throw new t.SwapKitError("core_transaction_invalid_recipient_address");let{AccountAddress:_}=await import("@aptos-labs/ts-sdk");if(e.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[_.from(r).toString(),e.getBaseValue("string")],function:w.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let f=e.address;if(!f)throw new t.SwapKitError("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[f,_.from(r).toString(),e.getBaseValue("string")],function:w.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[w.FUNGIBLE_ASSET_METADATA]})).hash}}var t,T,w,z;var G=C(()=>{t=require("@swapkit/helpers"),T=require("ts-pattern"),w={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},z=/^[0-9a-fA-F]+$/});var J={};Q(J,{validateAptosAddress:()=>y,getAptosToolbox:()=>F,createAptosExtensionTransfer:()=>D});module.exports=W(J);var X=C(()=>{G()});X();
|
package/dist/src/aptos/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var $=Object.defineProperty;var K=(n)=>n;function j(n,a){this[n]=K.bind(null,a)}var q=(n,a)=>{for(var p in a)$(n,p,{get:a[p],enumerable:!0,configurable:!0,set:j.bind(a,p)})};var v=(n,a)=>()=>(n&&(a=n(n=0)),a);var E=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(a,p)=>(typeof require<"u"?require:a)[p]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as h,Chain as d,derivationPathToString as W,getChainConfig as P,getRPCUrlSync as C,NetworkDerivationPath as Y,SwapKitError as r}from"@swapkit/helpers";import{match as F,P as B}from"ts-pattern";function T(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let a=n.slice(2);if(a.length===0||a.length>64)return!1;return H.test(a)}function D({derivationPath:n,provider:a,...p}={}){let f,y=W(n||Y[d.Aptos],{allHardened:!0});async function A(){if(f)return f;return f=await F(p).with({phrase:B.string},async({phrase:s})=>{let{Ed25519Account:t}=await import("@aptos-labs/ts-sdk");return t.fromDerivationPath({mnemonic:s,path:y})}).with({signer:B.any},({signer:s})=>s).otherwise(()=>{return}),f}async function m(){let{Aptos:s,AptosConfig:t,Network:o}=await import("@aptos-labs/ts-sdk"),c=new t({clientConfig:{http2:!1},fullnode:a||C(d.Aptos),network:o.MAINNET});return new s(c)}async function b(){return(await A())?.accountAddress.toString()||""}async function U(s){let t=s||await b();if(!t)throw new r("toolbox_aptos_address_required");let{baseDecimal:o,chain:c}=P(d.Aptos);try{let i=await m(),u=await i.getAccountAPTAmount({accountAddress:t}),_=[h.from({chain:c,fromBaseDecimal:o,value:u.toString()})],w=await i.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:t}}}});for(let e of w){if(e.asset_type===l.COIN_TYPE||Number(e.amount)<=0)continue;let g=e.asset_type;if(g){let k=("metadata"in e&&typeof e.metadata==="object"&&e.metadata!==null?e.metadata:void 0)?.decimals??o;_.push(h.from({asset:`${d.Aptos}.APT-${g}`,fromBaseDecimal:k,value:String(e.amount)}))}}return _}catch{return[h.from({chain:c})]}}async function L(s){if(!s){let{baseDecimal:w}=P(d.Aptos),e=a||C(d.Aptos),g=await fetch(`${e}/estimate_gas_price`),{gas_estimate:x}=await g.json();return h.from({chain:d.Aptos,fromBaseDecimal:w,value:String(x)})}let t=await A();if(!t)throw new r("toolbox_aptos_no_signer");let o=await S(s),c=await m(),[i]=await c.transaction.simulate.simple({signerPublicKey:t.publicKey,transaction:o});if(!i)throw new r("toolbox_aptos_transaction_creation_error");let u=BigInt(i.gas_used)*BigInt(i.gas_unit_price),{baseDecimal:_}=P(d.Aptos);return h.from({chain:d.Aptos,fromBaseDecimal:_,value:u.toString()})}async function S({recipient:s,assetValue:t,maxGasAmount:o,sender:c}){if(!T(s))throw new r("core_transaction_invalid_recipient_address");let i=c||await b();if(!i)throw new r("toolbox_aptos_no_sender");let{AccountAddress:u}=await import("@aptos-labs/ts-sdk"),_=await m(),w=u.from(i);try{let e=t.isGasAsset?l.TRANSFER:l.FUNGIBLE_STORE_TRANSFER,g=F({address:t?.address,isGasAsset:t.isGasAsset}).with({isGasAsset:!0},()=>[u.from(s),t.getBaseValue("bigint")]).with({address:B.string},({address:x})=>[u.from(x),u.from(s),t.getBaseValue("bigint")]).otherwise(()=>null);if(!g)throw new r("toolbox_aptos_missing_asset_type");return _.transaction.build.simple({data:{function:e,functionArguments:g,typeArguments:t.isGasAsset?[]:[l.FUNGIBLE_ASSET_METADATA]},options:o?{maxGasAmount:o}:void 0,sender:w})}catch(e){if(e instanceof r)throw e;throw new r("toolbox_aptos_transaction_creation_error",e)}}async function R(s){let t=await A();if(!t)throw new r("toolbox_aptos_no_signer");return(await m()).transaction.sign({signer:t,transaction:s})}async function M({assetValue:s,maxGasAmount:t,recipient:o}){let c=await A();if(!c)throw new r("toolbox_aptos_no_signer");if(!T(o))throw new r("core_transaction_invalid_recipient_address");try{let i=c.accountAddress.toString(),u=await S({assetValue:s,maxGasAmount:t,recipient:o,sender:i});return(await(await m()).signAndSubmitTransaction({signer:c,transaction:u})).hash}catch(i){if(i instanceof r)throw i;throw new r("toolbox_aptos_transaction_creation_error",i)}}async function N({senderAuthenticator:s,transaction:t}){try{return(await(await m()).transaction.submit.simple({senderAuthenticator:s,transaction:t})).hash}catch(o){throw new r("toolbox_aptos_broadcast_error",o)}}async function O(s){let t=await R(s);return N({senderAuthenticator:t,transaction:s})}return{broadcastTransaction:N,createTransaction:S,estimateTransactionFee:L,getAddress:b,getBalance:U,signAndBroadcastTransaction:O,signTransaction:R,transfer:M,validateAddress:T}}function G({provider:n}){return async function({assetValue:p,recipient:f}){if(!T(f))throw new r("core_transaction_invalid_recipient_address");let{AccountAddress:y}=await import("@aptos-labs/ts-sdk");if(p.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[y.from(f).toString(),p.getBaseValue("string")],function:l.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let A=p.address;if(!A)throw new r("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[A,y.from(f).toString(),p.getBaseValue("string")],function:l.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[l.FUNGIBLE_ASSET_METADATA]})).hash}}var l,H;var I=v(()=>{l={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},H=/^[0-9a-fA-F]+$/});var Q={};q(Q,{validateAptosAddress:()=>T,getAptosToolbox:()=>D,createAptosExtensionTransfer:()=>G});var z=v(()=>{I()});z();export{T as validateAptosAddress,D as getAptosToolbox,G as createAptosExtensionTransfer};
|
package/dist/src/evm/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var $y=Object.create;var{getPrototypeOf:fy,defineProperty:O,getOwnPropertyNames:ct,getOwnPropertyDescriptor:Jy}=Object,vt=Object.prototype.hasOwnProperty;function ht(t){return this[t]}var zy,oy,ry=(t,y,u)=>{var n=t!=null&&typeof t==="object";if(n){var l=y?zy??=new WeakMap:oy??=new WeakMap,b=l.get(t);if(b)return b}u=t!=null?$y(fy(t)):{};let M=y||!t||!t.__esModule?O(u,"default",{value:t,enumerable:!0}):u;for(let D of ct(t))if(!vt.call(M,D))O(M,D,{get:ht.bind(t,D),enumerable:!0});if(n)l.set(t,M);return M},ky=(t)=>{var y=(gt??=new WeakMap).get(t),u;if(y)return y;if(y=O({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var n of ct(t))if(!vt.call(y,n))O(y,n,{get:ht.bind(t,n),enumerable:!(u=Jy(t,n))||u.enumerable})}return gt.set(t,y),y},gt;var _y=(t)=>t;function jy(t,y){this[t]=_y.bind(null,y)}var st=(t,y)=>{for(var u in y)O(t,u,{get:y[u],enumerable:!0,configurable:!0,set:jy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);function yu(){function t(){let y=Date.now(),u=Yt||y;return Yt=u,y>Yt?y:u+1}return Ny+t().toString(36)}function dt(t){return async function(u,n=!0){let l=await et.SwapKitApi.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:b}=I.getChainConfig(t),M=l.map(({identifier:R,value:G,decimal:q})=>{return new I.AssetValue({decimal:q||b,identifier:R,value:G})});if(!M.some((R)=>R.isGasAsset))return[I.AssetValue.from({chain:t}),...M];return M}}var I,et,Ny,Yt=0;var it=k(()=>{I=require("@swapkit/helpers"),et=require("@swapkit/helpers/api"),Ny=typeof process<"u"&&process.pid?process.pid.toString(36):""});function P(t){return{getBalance:dt(t)}}function Sy(t){return t}var i=k(()=>{it()});function rt(t){return new _.JsonRpcProvider(t)}async function zt(t,y){return rt(y||await w.getRPCUrl(t))}function C(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function ot(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=w.getChainConfig(t);return function(){return t!==w.Chain.Ethereum?{...Vy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function kt(t){return![w.Chain.Adi,w.Chain.Arbitrum,w.Chain.BinanceSmartChain].includes(t)}function Vy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=w.getChainConfig(t);return Jt.match(t).with(w.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(w.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(w.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(w.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(w.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(w.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:w.Chain.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function _t(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}function ty(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,b)=>{throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${b}`}})};Jt.match(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Ky(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!at(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!at(l?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function yy(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function Zt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function $t(t,y){if(t.isTuple()&&t.components){let u=Zt(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:$t(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=Zt(t.name.replace(/s$/,""));return y[n]=u.components.map((l)=>({name:l.name,type:$t(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function ft(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,b]of(y.components??[]).entries())n[b.name]=ft(u[b.name]??t[l],b);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>ft(n,u??void 0))}return t}function xy({chain:t,abi:y,data:u,to:n}){let b=new _.Interface(y).parseTransaction({data:u});if(!b)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let M={},D=Zt(b.name);M[D]=b.fragment.inputs.map((L)=>({name:L.name,type:$t(L,M)}));let R={};for(let[L,U]of b.fragment.inputs.entries())R[U.name]=ft(b.args[L],U);let{chainId:G}=w.getChainConfig(t),q={chainId:Number(G),verifyingContract:_.getAddress(n)},X=yy(q);return{domain:q,message:R,primaryType:D,types:{EIP712Domain:X,...M}}}function jt(t,y){if(!Array.isArray(t)||t.length===0)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(ty(n,u),y!==void 0&&n.chainId!==y)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var w,_,Jt,at=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ky=(t)=>{try{return typeof t==="string"&&!!_.getAddress(t)}catch{return!1}};var m=k(()=>{w=require("@swapkit/helpers"),_=require("ethers"),Jt=require("ts-pattern")});var uy;var ny=k(()=>{uy=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function K({chain:t=T.Chain.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:Iy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:by({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:py({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:j({chain:t,provider:y}),createTransaction:Nt({chain:t,provider:y,signer:u}),createTransferTx:Nt({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:My({provider:y,signer:u}),estimateGasLimit:Cy({chain:t,provider:y,signer:u}),estimateGasPrices:N({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:gy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:P(t).getBalance,getNetworkParams:ot(t),isApproved:Oy({chain:t,provider:y}),sendTransaction:Dy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:my({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:b,value:M})=>u.signTypedData(l,b,M):void 0,transfer:Py({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return J.getAddress(t),!0}catch{return!1}}function x(t){return t instanceof J.BrowserProvider}function g(t,y,u){return new J.Contract(t,J.Interface.from(y),u)}function Kt({provider:t}){return function(u,n){return new J.Contract(u,J.Interface.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new T.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Fy.includes(u.stateMutability)}function ly(t){return J.getAddress(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new T.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:b,maxFeePerGas:M,maxPriorityFeePerGas:D,...R}=n;return t.send("eth_sendTransaction",[{...R,value:C(BigInt(u||0))}])}}function Ty(t,y){let u=A(t,y);if(u)return J.getAddress(u.toLowerCase());throw new T.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===T.Chain.BinanceSmartChain&&y==="BNB"&&u==="BNB",b=t===T.Chain.Hyperevm&&y==="HYPE"&&u==="HYPE",M=t===n&&y===n&&u===n,D=Ey.includes(t)&&y==="ETH"&&u==="ETH";if(M||l||b||D)return Ft[n];return J.getAddress(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function j({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:b})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(b).filter((M)=>typeof M<"u"))}function N({chain:t,provider:y,isEIP1559Compatible:u=!0}){return St.match(t).with(T.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:b}=await y.getFeeData();if(!l||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Average),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Average)},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(T.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new T.SwapKitError("toolbox_evm_no_fee_data");let b=l*12n/10n;return{[T.FeeOption.Average]:{gasPrice:b},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:b,gasPrice:M}=await y.getFeeData();if(u){if(l===null||b===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:b},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}if(!M)throw new T.SwapKitError("toolbox_evm_no_gas_price");return{[T.FeeOption.Average]:{gasPrice:M},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(M,T.FeeOption.Fastest)}}}catch(l){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:b,contractAddress:M,abi:D,funcName:R,funcParams:G=[],txOverrides:q={},feeOption:X=T.FeeOption.Fast}){let L=b||t;if(!M)throw new T.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let U=xt({abi:D,funcName:R});if(U&&x(L)&&u){let $=j({chain:n,provider:L}),o=q?.from||await u?.getAddress(),z=await $({abi:D,contractAddress:M,funcName:R,funcParams:G,txOverrides:{...q,from:o}});return F(L)(z)}let Y=g(M,D,L);if(U){if(!u)throw new T.SwapKitError("toolbox_evm_no_signer");let $=q?.from||await u.getAddress();if(!$)throw new T.SwapKitError("toolbox_evm_no_signer_address");let o=Y.connect(u),z=N({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:S,maxPriorityFeePerGas:s,gasPrice:E}=(await z())[X],e=await Y.getFunction(R).estimateGas(...G,q),f=await o[R](...G,{...q,gasLimit:e,gasPrice:E,maxFeePerGas:S,maxPriorityFeePerGas:s,nonce:q?.nonce||await L.getTransactionCount($)});return typeof f?.hash==="string"?f?.hash:f}let Z=await Y[R]?.(...G);return typeof Z?.hash==="string"?Z?.hash:Z}}function by({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:b}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:V.erc20ABI,contractAddress:n,funcName:"allowance",funcParams:[b,l]})}}function Oy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:b,amount:M=p}){let D=await by({chain:y,provider:t})({assetAddress:n,from:b,spenderAddress:l});return T.SwapKitNumber.fromBigInt(D).gte(T.SwapKitNumber.fromBigInt(BigInt(M)))}}function Iy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:b,spenderAddress:M,feeOptionKey:D=T.FeeOption.Fast,amount:R,gasLimitFallback:G,from:q,nonce:X}){let L=[M,BigInt(R||p)],U=await t?.getAddress()||q,Y={abi:V.erc20ABI,contractAddress:b,funcName:"approve",funcParams:L,signer:t,txOverrides:{from:U}};if(x(u)){let $=j({chain:n,provider:u}),o=F(u),z=await $(Y);return o(z)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:D,funcParams:L,txOverrides:{from:U,gasLimit:G?BigInt(G.toString()):void 0,nonce:X}})}}function Py({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:b,recipient:M,feeOptionKey:D=T.FeeOption.Fast,sender:R,...G}){let{hexlify:q,toUtf8Bytes:X}=await import("ethers"),L=l.getBaseValue("bigint"),U=l.chain,Y=R||await t?.getAddress(),Z=Dy({chain:U,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new T.SwapKitError("toolbox_evm_no_from_address");if(l.isGasAsset){let E={...G,data:q(X(b||"")),feeOptionKey:D,from:Y,to:M,value:L};return Z(E)}if(!A(l,U))throw new T.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:o,maxPriorityFeePerGas:z,gasPrice:S}=(await N({chain:U,isEIP1559Compatible:y,provider:u})())[D],s=await Nt({chain:U,provider:u,signer:t})({assetValue:l,data:q(X(b||"")),gasPrice:S,maxFeePerGas:o,maxPriorityFeePerGas:z,memo:b,recipient:M,sender:Y});return Z(s)}}function My({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:b,funcParams:M=[],txOverrides:D}){if(!n)throw new T.SwapKitError("toolbox_evm_no_contract_address");let R=g(n,l,t);return y?R.connect(y).getFunction(b).estimateGas(...M,D):R.getFunction(b).estimateGas(...M,D)}}function Cy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:b,data:M,sender:D,funcName:R,funcParams:G,txOverrides:q}){let X=n.bigIntValue,L=n.isGasAsset?null:A(n,n.chain);if(L&&R)return My({provider:t,signer:y})({abi:V.erc20ABI,contractAddress:L,funcName:R,funcParams:G,txOverrides:q});let{hexlify:U,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:M?M:b?U(Y(b)):void 0,from:D,to:l,value:X})}}function my({signer:t}){if(!t)return;return(y)=>_t(t,y)}function Dy({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:b=T.FeeOption.Fast,...M}){let{from:D,to:R,data:G,value:q,...X}=M;if(!y)throw new T.SwapKitError("toolbox_evm_no_signer");if(!R)throw new T.SwapKitError("toolbox_evm_no_to_address");let L={...X,data:G||"0x",from:D,to:R,value:BigInt(q||0)};if(x(t))return F(t)(L);let U=D||await y.getAddress(),Y=M.nonce||await t.getTransactionCount(U),Z=(await t.getNetwork()).chainId,$=Ot(L,u);if($==="eip7702")jt(L.authorizations||[],Z);let o=St.match($).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),z={...L,chainId:Z,nonce:Y,type:o,...$==="eip7702"&&{authorizationList:L.authorizations}},S=N({chain:n,isEIP1559Compatible:u,provider:t}),E=$!=="legacy"&&!(L.maxFeePerGas&&L.maxPriorityFeePerGas)||!L.gasPrice?Object.entries((await S())[b]).reduce((f,[d,pt])=>({...f,[d]:C(BigInt(pt))}),{}):{},e;try{e=C(L.gasLimit||await t.estimateGas(z)*11n/10n)}catch(f){throw new T.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:f})}try{let f={...z,gasLimit:e,...E};try{return(await y.sendTransaction(f)).hash}catch{let d=await y.signTransaction({...f,from:U});return(await t.broadcastTransaction(d)).hash}}catch(f){throw new T.SwapKitError("toolbox_evm_error_sending_transaction",{error:f})}}}function Nt({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:b,data:M,sender:D,maxFeePerGas:R,maxPriorityFeePerGas:G,gasPrice:q,...X}){let L=n.getBaseValue("bigint"),U=n.chain,Y=D||await y?.getAddress();if(!Y)throw new T.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset(n)){let{hexlify:o,toUtf8Bytes:z}=await import("ethers");return{...X,data:M||o(z(l||"")),from:Y,to:b,value:L}}let Z=A(n,U);if(!Z)throw new T.SwapKitError("toolbox_evm_no_contract_address");return j({chain:n.chain,provider:t})({abi:V.erc20ABI,contractAddress:Z,funcName:"transfer",funcParams:[b,L],txOverrides:{from:Y,gasPrice:q,maxFeePerGas:R,maxPriorityFeePerGas:G}})}}function py({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:b,amount:M,from:D}){let R=await y?.getAddress()||D,G=j({chain:u,provider:t}),q=["bigint","number"].includes(typeof M)?M:M||p;return await G({abi:V.erc20ABI,contractAddress:l,funcName:"approve",funcParams:[b,BigInt(q)],txOverrides:{from:R}})}}function gy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=T.FeeOption.Fast,...b}){let D=await N({chain:u,isEIP1559Compatible:y,provider:t})(),R=await t.estimateGas(b),G=T.AssetValue.from({chain:u}),{gasPrice:q,maxFeePerGas:X,maxPriorityFeePerGas:L}=D[l];if(!y&&q)return G.set(T.SwapKitNumber.fromBigInt(q*R,G.decimal));if(X&&L){let U=(X+L)*R;return G.set(T.SwapKitNumber.fromBigInt(U,G.decimal))}throw new T.SwapKitError("toolbox_evm_no_gas_price")}}var T,V,J,St,p,Fy,Ay,Ft,Ey,a=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!a(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(a(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var r=k(()=>{i();m();T=require("@swapkit/helpers"),V=require("@swapkit/helpers/contracts"),J=require("ethers"),St=require("ts-pattern"),p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Fy=["payable","nonpayable"];Ay=T.EVMChains.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...Ay,[T.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[T.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Ey=[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Base,T.Chain.Optimism]});function tt(t){let y=Q(B.Chain.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",b="aggregate",M=B.FeeOption.Fast){let D=await y.createContractTxObject({abi:uy,contractAddress:l,funcName:b,funcParams:[n]});return y.sendTransaction({...D,feeOptionKey:M})}return{...y,multicall:u}}function Q(t){return function({provider:u,...n}){let l=kt(t),b=c.match(n).with({phrase:c.P.string},({phrase:D})=>Ry.HDNodeWallet.fromPhrase(D).connect(u)).with({signer:c.P.any},({signer:D})=>D).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:b})}}var B,Ry,c,yt,ut,nt,lt,Tt,bt,Mt,Ly,Dt,Rt,Lt,wt,qt,Gt,v,Bt,Ht,Ut,Wt;var It=k(()=>{ny();m();r();B=require("@swapkit/helpers"),Ry=require("ethers"),c=require("ts-pattern");yt=Q(B.Chain.Adi),ut=Q(B.Chain.Arbitrum),nt=Q(B.Chain.Aurora),lt=Q(B.Chain.Avalanche),Tt=Q(B.Chain.Base),bt=Q(B.Chain.Berachain),Mt=Q(B.Chain.BinanceSmartChain),Ly=Q(B.Chain.Botanix),Dt=Q(B.Chain.Core),Rt=Q(B.Chain.Corn),Lt=Q(B.Chain.Cronos),wt=Q(B.Chain.Gnosis),qt=Q(B.Chain.Hyperevm),Gt=Q(B.Chain.Polygon),v=Q(B.Chain.Sonic),Bt=Q(B.Chain.Unichain),Ht=Q(B.Chain.XLayer),Ut=Q(B.Chain.Monad),Wt=Q(B.Chain.MegaETH)});var wy;var qy=k(()=>{wy=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function Pt(t){return new Qt.Contract(vy,wy,t)}function Gy(t){return async function(){let u=Pt(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function By(t){return async function({from:u,to:n,nonce:l,...b}){let{Transaction:M}=await import("ethers");if(!n)throw new H.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return M.from({...b,authorizationList:b.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Hy(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function Uy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,b=await t.estimateGas(u);return l*b}}function hy(t){return async function(u){let n=await Hy(t)(u)??0n,l=await Uy(t)(u);return n+l}}function sy(t){return async function(u){let n=Pt(t),l=await By(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function ey(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),b=await Gy(t)(),M=l;if(!(u&&n))throw new H.SwapKitError("toolbox_evm_no_fee_data");return{[H.FeeOption.Average]:{gasPrice:M,l1GasPrice:b,maxFeePerGas:u,maxPriorityFeePerGas:n},[H.FeeOption.Fast]:{gasPrice:H.applyFeeMultiplierToBigInt(M,H.FeeOption.Fast),l1GasPrice:H.applyFeeMultiplierToBigInt(b||0n,H.FeeOption.Fast),maxFeePerGas:u,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(n,H.FeeOption.Fast)},[H.FeeOption.Fastest]:{gasPrice:H.applyFeeMultiplierToBigInt(M,H.FeeOption.Fastest),l1GasPrice:H.applyFeeMultiplierToBigInt(b||0n,H.FeeOption.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(n,H.FeeOption.Fastest)}}}catch(u){throw new H.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function Xt({provider:t,...y}){let u=h.match(y).with({phrase:h.P.string},({phrase:b})=>Qt.HDNodeWallet.fromPhrase(b).connect(t)).with({signer:h.P.any},({signer:b})=>b).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=Gy(t);return{...n,estimateGasPrices:ey(t),estimateL1Gas:sy(t),estimateL1GasCost:Hy(t),estimateL2GasCost:Uy(t),estimateTotalGasCost:hy(t),getBalance:P(H.Chain.Optimism).getBalance,getL1GasPrice:l}}var H,Qt,h,vy="0x420000000000000000000000000000000000000f";var Ct=k(()=>{i();qy();r();H=require("@swapkit/helpers"),Qt=require("ethers"),h=require("ts-pattern")});var dy={};st(dy,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>ly,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createContract:()=>g,XLayerToolbox:()=>Ht,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>Xt,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,HYPEREVMToolbox:()=>qt,GNOToolbox:()=>wt,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});function mt(t,y){return Wy.match(t).with(W.Chain.Adi,()=>yt(y)).with(W.Chain.Arbitrum,()=>ut(y)).with(W.Chain.Aurora,()=>nt(y)).with(W.Chain.Avalanche,()=>lt(y)).with(W.Chain.Base,()=>Tt(y)).with(W.Chain.Berachain,()=>bt(y)).with(W.Chain.BinanceSmartChain,()=>Mt(y)).with(W.Chain.Botanix,()=>v(y)).with(W.Chain.Core,()=>Dt(y)).with(W.Chain.Corn,()=>Rt(y)).with(W.Chain.Cronos,()=>Lt(y)).with(W.Chain.Ethereum,()=>tt(y)).with(W.Chain.Gnosis,()=>wt(y)).with(W.Chain.Hyperevm,()=>qt(y)).with(W.Chain.Optimism,()=>Xt(y)).with(W.Chain.Polygon,()=>Gt(y)).with(W.Chain.Sonic,()=>v(y)).with(W.Chain.Unichain,()=>Bt(y)).with(W.Chain.XLayer,()=>Ht(y)).with(W.Chain.Monad,()=>Ut(y)).with(W.Chain.MegaETH,()=>Wt(y)).exhaustive()}async function Qy(t,y){let u={...y,provider:y?.provider||await zt(t)};return mt(t,u)}var W,Wy;var Xy=k(()=>{m();It();Ct();W=require("@swapkit/helpers"),Wy=require("ts-pattern");r();It();Ct()});var Yy;var Zy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})(Yy||={})});var iy={};st(iy,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>jt,validateAuthorization:()=>ty,toHexString:()=>C,toChecksumAddress:()=>ly,signAuthorization:()=>_t,parseEIP712FromEVMTx:()=>xy,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>a,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>rt,getProvider:()=>zt,getNetworkParams:()=>ot,getIsEIP1559Compatible:()=>kt,getEvmToolboxAsync:()=>Qy,getEvmToolbox:()=>mt,getEvmApi:()=>P,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>j,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>Ty,createCustomEvmApi:()=>Sy,createContract:()=>g,buildEIP712DomainType:()=>yy,XLayerToolbox:()=>Ht,UNIToolbox:()=>Bt,SONICToolbox:()=>v,OPToolbox:()=>Xt,MONADToolbox:()=>Ut,MEGAETHToolbox:()=>Wt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,HYPEREVMToolbox:()=>qt,GNOToolbox:()=>wt,EthNetwork:()=>Yy,ETHToolbox:()=>tt,ContractAddress:()=>Ft,CROToolbox:()=>Lt,CORNToolbox:()=>Rt,COREToolbox:()=>Dt,BotanixToolbox:()=>Ly,BaseEVMToolbox:()=>K,BSCToolbox:()=>Mt,BERAToolbox:()=>bt,BASEToolbox:()=>Tt,AVAXToolbox:()=>lt,AURORAToolbox:()=>nt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});module.exports=ky(iy);var ay=k(()=>{i();m();Xy();Zy()});ay();
|
|
1
|
+
var Qo=Object.create;var{getPrototypeOf:Zo,defineProperty:F,getOwnPropertyNames:gt,getOwnPropertyDescriptor:$o}=Object,ht=Object.prototype.hasOwnProperty;function vt(t){return this[t]}var Jo,zo,nn=(t,o,n)=>{var y=t!=null&&typeof t==="object";if(y){var u=o?Jo??=new WeakMap:zo??=new WeakMap,l=u.get(t);if(l)return l}n=t!=null?Qo(Zo(t)):{};let b=o||!t||!t.__esModule?F(n,"default",{value:t,enumerable:!0}):n;for(let M of gt(t))if(!ht.call(b,M))F(b,M,{get:vt.bind(t,M),enumerable:!0});if(y)u.set(t,b);return b},ko=(t)=>{var o=(et??=new WeakMap).get(t),n;if(o)return o;if(o=F({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var y of gt(t))if(!ht.call(o,y))F(o,y,{get:vt.bind(t,y),enumerable:!(n=$o(t,y))||n.enumerable})}return et.set(t,o),o},et;var Eo=(t)=>t;function No(t,o){this[t]=Eo.bind(null,o)}var at=(t,o)=>{for(var n in o)F(t,n,{get:o[n],enumerable:!0,configurable:!0,set:No.bind(o,n)})};var J=(t,o)=>()=>(t&&(o=t(t=0)),o);function un(){function t(){let o=Date.now(),n=Wt||o;return Wt=n,o>Wt?o:n+1}return _o+t().toString(36)}function it(t){return async function(n,y=!0){let u=await dt.SwapKitApi.getChainBalance({address:n,chain:t,scamFilter:y}),{baseDecimal:l}=O.getChainConfig(t),b=u.map(({identifier:x,value:L,decimal:R})=>{return new O.AssetValue({decimal:R||l,identifier:x,value:L})});if(!b.some((x)=>x.isGasAsset))return[O.AssetValue.from({chain:t}),...b];return b}}var O,dt,_o,Wt=0;var rt=J(()=>{O=require("@swapkit/helpers"),dt=require("@swapkit/helpers/api"),_o=typeof process<"u"&&process.pid?process.pid.toString(36):""});function C(t){return{getBalance:it(t)}}function jo(t){return t}var d=J(()=>{rt()});function oo(t){return new z.JsonRpcProvider(t)}async function Jt(t,o){return oo(o||await D.getRPCUrl(t))}function I(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function zt(t){let{explorerUrl:o,chainIdHex:n,rpcUrls:y}=D.getChainConfig(t);return function(){return t!==D.Chain.Ethereum?{...So({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:y}:void 0}}function kt(t){return![D.Chain.Adi,D.Chain.Arbitrum,D.Chain.BinanceSmartChain].includes(t)}function So({chain:t}){let{name:o,nativeCurrency:n,baseDecimal:y}=D.getChainConfig(t);return $t.match(t).with(D.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:D.Chain.Ethereum}})).with(D.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:D.Chain.Ethereum}})).with(D.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:t}})).with(D.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:D.Chain.Ethereum}})).with(D.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(D.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(D.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(D.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(D.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:D.Chain.Ethereum}})).with(D.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:D.Chain.Polygon}})).otherwise(()=>({chainName:o,nativeCurrency:{decimals:y,name:n,symbol:n}}))}async function Et(t,o){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let n={...o,nonce:o.nonce!==void 0?BigInt(o.nonce):void 0};return await t.authorize(n)}function no(t,o){let n=o!==void 0?`index ${o}: `:"",y=(u,l)=>{throw new D.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:u,message:`${n}${l}`}})};$t.match(t).when(({chainId:u})=>typeof u!=="bigint",()=>y("chainId","chainId must be a bigint")).when(({address:u})=>!Ao(u),()=>y("address","address must be a valid checksummed address")).when(({nonce:u})=>typeof u!=="bigint"||u<0n,()=>y("nonce","nonce must be a non-negative bigint")).when(({signature:u})=>!u,()=>y("signature","signature is required")).when(({signature:u})=>typeof u?.yParity!=="number"||![0,1].includes(u.yParity),()=>y("signature.yParity","yParity must be 0 or 1")).when(({signature:u})=>!to(u?.r),()=>y("signature.r","r must be a 32-byte hex string")).when(({signature:u})=>!to(u?.s),()=>y("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function yo(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:o})=>t[o]!=null).map(({key:o,type:n})=>({name:o,type:n}))}function Yt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Qt(t,o){if(t.isTuple()&&t.components){let n=Yt(t.name);return o[n]=t.components.map((y)=>({name:y.name,type:Qt(y,o)})),n}if(t.isArray()){let n=t.arrayChildren;if(n?.isTuple()&&n.components){let y=Yt(t.name.replace(/s$/,""));return o[y]=n.components.map((u)=>({name:u.name,type:Qt(u,o)})),`${y}[]`}return`${n?.type??"bytes"}[]`}return t.type}function Zt(t,o){if(typeof t==="bigint")return t;if(o?.isTuple()&&typeof t?.toObject==="function"){let n=t.toObject(),y={};for(let[u,l]of(o.components??[]).entries())y[l.name]=Zt(n[l.name]??t[u],l);return y}if(Array.isArray(t)){let n=o?.arrayChildren;return t.map((y)=>Zt(y,n??void 0))}return t}function mo({chain:t,abi:o,data:n,to:y}){let l=new z.Interface(o).parseTransaction({data:n});if(!l)throw new D.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=Yt(l.name);b[M]=l.fragment.inputs.map((w)=>({name:w.name,type:Qt(w,b)}));let x={};for(let[w,q]of l.fragment.inputs.entries())x[q.name]=Zt(l.args[w],q);let{chainId:L}=D.getChainConfig(t),R={chainId:Number(L),verifyingContract:z.getAddress(y)},U=yo(R);return{domain:R,message:x,primaryType:M,types:{EIP712Domain:U,...b}}}function Nt(t,o){if(!Array.isArray(t)||t.length===0)throw new D.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,y]of t.entries())if(no(y,n),o!==void 0&&y.chainId!==o)throw new D.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${y.chainId}) does not match transaction chainId (${o})`}})}var D,z,$t,to=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ao=(t)=>{try{return typeof t==="string"&&!!z.getAddress(t)}catch{return!1}};var P=J(()=>{D=require("@swapkit/helpers"),z=require("ethers"),$t=require("ts-pattern")});var uo;var To=J(()=>{uo=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function j({chain:t=T.Chain.Ethereum,provider:o,signer:n,isEIP1559Compatible:y=!0}){return{approve:Io({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),approvedAmount:Mo({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:Ft({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),createApprovalTx:co({chain:t,provider:o,signer:n}),createContract:At({chain:t,provider:o}),createContractTxObject:k({chain:t,provider:o}),createTransaction:_t({chain:t,provider:o,signer:n}),createTransferTx:_t({chain:t,provider:o,signer:n}),EIP1193SendTransaction:A(o),estimateCall:xo({provider:o,signer:n}),estimateGasLimit:po({chain:t,provider:o,signer:n}),estimateGasPrices:E({chain:t,isEIP1559Compatible:y,provider:o}),estimateTransactionFee:eo({chain:t,isEIP1559Compatible:y,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:C(t).getBalance,getNetworkParams:zt(t),isApproved:Co({chain:t,provider:o}),sendTransaction:wo({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),signAuthorization:so({signer:n}),signMessage:n?(u)=>n.signMessage(u):void 0,signTypedData:n?({domain:u,types:l,value:b})=>n.signTypedData(u,l,b):void 0,transfer:Po({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),validateAddress:St}}function St(t){try{return Q.getAddress(t),!0}catch{return!1}}function S(t){return t instanceof Q.BrowserProvider}function s(t,o,n){return new Q.Contract(t,Q.Interface.from(o),n)}function At({provider:t}){return function(n,y){return new Q.Contract(n,Q.Interface.from(y),t)}}function mt({abi:t,funcName:o}){let n=t.find((y)=>y.name===o);if(!n)throw new T.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&Ko.includes(n.stateMutability)}function lo(t){return Q.getAddress(t)}function A(t){return function({value:n,...y}){if(!S(t))throw new T.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:u,gasPrice:l,maxFeePerGas:b,maxPriorityFeePerGas:M,...x}=y;return t.send("eth_sendTransaction",[{...x,value:I(BigInt(n||0))}])}}function bo(t,o){let n=m(t,o);if(n)return Q.getAddress(n.toLowerCase());throw new T.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function m({chain:t,symbol:o,ticker:n},y){try{let u=t===T.Chain.BinanceSmartChain&&o==="BNB"&&n==="BNB",l=t===T.Chain.Hyperevm&&o==="HYPE"&&n==="HYPE",b=t===y&&o===y&&n===y,M=Oo.includes(t)&&o==="ETH"&&n==="ETH";if(b||u||l||M)return Kt[y];return Q.getAddress(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function k({provider:t}){return async({contractAddress:o,abi:n,funcName:y,funcParams:u=[],txOverrides:l})=>s(o,n,t).getFunction(y).populateTransaction(...u.concat(l).filter((b)=>typeof b<"u"))}function E({chain:t,provider:o,isEIP1559Compatible:n=!0}){return jt.match(t).with(T.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:u,maxPriorityFeePerGas:l}=await o.getFeeData();if(!u||l===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(u,T.FeeOption.Average),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Average)},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(u,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(u,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest)}}}catch(u){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).with(T.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:u}=await o.getFeeData();if(!u)throw new T.SwapKitError("toolbox_evm_no_fee_data");let l=u*12n/10n;return{[T.FeeOption.Average]:{gasPrice:l},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest)}}}catch(u){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:l,gasPrice:b}=await o.getFeeData();if(n){if(u===null||l===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:u,maxPriorityFeePerGas:l},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(u,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(u,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(l,T.FeeOption.Fastest)}}}if(!b)throw new T.SwapKitError("toolbox_evm_no_gas_price");return{[T.FeeOption.Average]:{gasPrice:b},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(b,T.FeeOption.Fastest)}}}catch(u){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}})}function Ft({provider:t,isEIP1559Compatible:o,signer:n,chain:y}){return async function({callProvider:l,contractAddress:b,abi:M,funcName:x,funcParams:L=[],txOverrides:R={},feeOption:U=T.FeeOption.Fast}){let w=l||t;if(!b)throw new T.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=mt({abi:M,funcName:x});if(q&&S(w)&&n){let W=k({chain:y,provider:w}),$=R?.from||await n?.getAddress(),Z=await W({abi:M,contractAddress:b,funcName:x,funcParams:L,txOverrides:{...R,from:$}});return A(w)(Z)}let V=s(b,M,w);if(q){if(!n)throw new T.SwapKitError("toolbox_evm_no_signer");let W=R?.from||await n.getAddress();if(!W)throw new T.SwapKitError("toolbox_evm_no_signer_address");let $=V.connect(n),Z=E({chain:y,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:N,maxPriorityFeePerGas:h,gasPrice:K}=(await Z())[U],v=await V.getFunction(x).estimateGas(...L,R),Y=await $[x](...L,{...R,gasLimit:v,gasPrice:K,maxFeePerGas:N,maxPriorityFeePerGas:h,nonce:R?.nonce||await w.getTransactionCount(W)});return typeof Y?.hash==="string"?Y?.hash:Y}let X=await V[x]?.(...L);return typeof X?.hash==="string"?X?.hash:X}}function Mo({provider:t,chain:o}){return function({assetAddress:y,spenderAddress:u,from:l}){return Ft({chain:o,isEIP1559Compatible:!0,provider:t})({abi:_.erc20ABI,contractAddress:y,funcName:"allowance",funcParams:[l,u]})}}function Co({provider:t,chain:o}){return async function({assetAddress:y,spenderAddress:u,from:l,amount:b=p}){let M=await Mo({chain:o,provider:t})({assetAddress:y,from:l,spenderAddress:u});return T.SwapKitNumber.fromBigInt(M).gte(T.SwapKitNumber.fromBigInt(BigInt(b)))}}function Io({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:y}){return async function({assetAddress:l,spenderAddress:b,feeOptionKey:M=T.FeeOption.Fast,amount:x,gasLimitFallback:L,from:R,nonce:U}){let w=[b,BigInt(x||p)],q=await t?.getAddress()||R,V={abi:_.erc20ABI,contractAddress:l,funcName:"approve",funcParams:w,signer:t,txOverrides:{from:q}};if(S(n)){let W=k({chain:y,provider:n}),$=A(n),Z=await W(V);return $(Z)}return Ft({chain:y,isEIP1559Compatible:o,provider:n,signer:t})({...V,feeOption:M,funcParams:w,txOverrides:{from:q,gasLimit:L?BigInt(L.toString()):void 0,nonce:U}})}}function Po({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:u,memo:l,recipient:b,feeOptionKey:M=T.FeeOption.Fast,sender:x,...L}){let{hexlify:R,toUtf8Bytes:U}=await import("ethers"),w=u.getBaseValue("bigint"),q=u.chain,V=x||await t?.getAddress(),X=wo({chain:q,isEIP1559Compatible:o,provider:n,signer:t});if(!V)throw new T.SwapKitError("toolbox_evm_no_from_address");if(u.isGasAsset){let K={...L,data:R(U(l||"")),feeOptionKey:M,from:V,to:b,value:w};return X(K)}if(!m(u,q))throw new T.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:$,maxPriorityFeePerGas:Z,gasPrice:N}=(await E({chain:q,isEIP1559Compatible:o,provider:n})())[M],h=await _t({chain:q,provider:n,signer:t})({assetValue:u,data:R(U(l||"")),gasPrice:N,maxFeePerGas:$,maxPriorityFeePerGas:Z,memo:l,recipient:b,sender:V});return X(h)}}function xo({provider:t,signer:o}){return function({contractAddress:y,abi:u,funcName:l,funcParams:b=[],txOverrides:M}){if(!y)throw new T.SwapKitError("toolbox_evm_no_contract_address");let x=s(y,u,t);return o?x.connect(o).getFunction(l).estimateGas(...b,M):x.getFunction(l).estimateGas(...b,M)}}function po({provider:t,signer:o}){return async function({assetValue:y,recipient:u,memo:l,data:b,sender:M,funcName:x,funcParams:L,txOverrides:R}){let U=y.bigIntValue,w=y.isGasAsset?null:m(y,y.chain);if(w&&x)return xo({provider:t,signer:o})({abi:_.erc20ABI,contractAddress:w,funcName:x,funcParams:L,txOverrides:R});let{hexlify:q,toUtf8Bytes:V}=await import("ethers");return t.estimateGas({data:b?b:l?q(V(l)):void 0,from:M,to:u,value:U})}}function so({signer:t}){if(!t)return;return(o)=>Et(t,o)}function wo({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:y}){return async function({feeOptionKey:l=T.FeeOption.Fast,...b}){let{from:M,to:x,data:L,value:R,...U}=b;if(!o)throw new T.SwapKitError("toolbox_evm_no_signer");if(!x)throw new T.SwapKitError("toolbox_evm_no_to_address");let w={...U,data:L||"0x",from:M,to:x,value:BigInt(R||0)};if(S(t))return A(t)(w);let q=M||await o.getAddress(),V=b.nonce||await t.getTransactionCount(q),X=(await t.getNetwork()).chainId,W=Ct(w,n);if(W==="eip7702")Nt(w.authorizations||[],X);let $=jt.match(W).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Z={...w,chainId:X,nonce:V,type:$,...W==="eip7702"&&{authorizationList:w.authorizations}},N=E({chain:y,isEIP1559Compatible:n,provider:t}),K=W!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await N())[l]).reduce((Y,[a,ct])=>({...Y,[a]:I(BigInt(ct))}),{}):{},v;try{v=I(w.gasLimit||await t.estimateGas(Z)*11n/10n)}catch(Y){throw new T.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:Y})}try{let Y={...Z,gasLimit:v,...K};try{return(await o.sendTransaction(Y)).hash}catch{let a=await o.signTransaction({...Y,from:q});return(await t.broadcastTransaction(a)).hash}}catch(Y){throw new T.SwapKitError("toolbox_evm_error_sending_transaction",{error:Y})}}}function _t({provider:t,signer:o}){return async function({assetValue:y,memo:u,recipient:l,data:b,sender:M,maxFeePerGas:x,maxPriorityFeePerGas:L,gasPrice:R,...U}){let w=y.getBaseValue("bigint"),q=y.chain,V=M||await o?.getAddress();if(!V)throw new T.SwapKitError("toolbox_evm_no_from_address");if(T.isGasAsset(y)){let{hexlify:$,toUtf8Bytes:Z}=await import("ethers");return{...U,data:b||$(Z(u||"")),from:V,to:l,value:w}}let X=m(y,q);if(!X)throw new T.SwapKitError("toolbox_evm_no_contract_address");return k({chain:y.chain,provider:t})({abi:_.erc20ABI,contractAddress:X,funcName:"transfer",funcParams:[l,w],txOverrides:{from:V,gasPrice:R,maxFeePerGas:x,maxPriorityFeePerGas:L}})}}function co({provider:t,signer:o,chain:n}){return async function({assetAddress:u,spenderAddress:l,amount:b,from:M}){let x=await o?.getAddress()||M,L=k({chain:n,provider:t}),R=["bigint","number"].includes(typeof b)?b:b||p;return await L({abi:_.erc20ABI,contractAddress:u,funcName:"approve",funcParams:[l,BigInt(R)],txOverrides:{from:x}})}}function eo({provider:t,isEIP1559Compatible:o=!0,chain:n}){return async function({feeOption:u=T.FeeOption.Fast,...l}){let M=await E({chain:n,isEIP1559Compatible:o,provider:t})(),x=await t.estimateGas(l),L=T.AssetValue.from({chain:n}),{gasPrice:R,maxFeePerGas:U,maxPriorityFeePerGas:w}=M[u];if(!o&&R)return L.set(T.SwapKitNumber.fromBigInt(R*x,L.decimal));if(U&&w){let q=(U+w)*x;return L.set(T.SwapKitNumber.fromBigInt(q,L.decimal))}throw new T.SwapKitError("toolbox_evm_no_gas_price")}}var T,_,Q,jt,p,Ko,Fo,Kt,Oo,i=(t)=>t.type===4||(t.authorizations?.length??0)>0,Ot=(t)=>!i(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ct=(t,o=!0)=>{if(i(t))return"eip7702";if(Ot(t)||o)return"eip1559";return"legacy"};var r=J(()=>{d();P();T=require("@swapkit/helpers"),_=require("@swapkit/helpers/contracts"),Q=require("ethers"),jt=require("ts-pattern"),p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Ko=["payable","nonpayable"];Fo=T.EVMChains.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),Kt={...Fo,[T.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[T.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Oo=[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Base,T.Chain.Optimism]});function tt(t){let o=H(B.Chain.Ethereum)(t);async function n(y,u="0x5ba1e12693dc8f9c48aad8770482f4739beed696",l="aggregate",b=B.FeeOption.Fast){let M=await o.createContractTxObject({abi:uo,contractAddress:u,funcName:l,funcParams:[y]});return o.sendTransaction({...M,feeOptionKey:b})}return{...o,multicall:n}}function H(t){return function({provider:n,...y}){let u=kt(t),l=c.match(y).with({phrase:c.P.string},({phrase:M})=>Do.HDNodeWallet.fromPhrase(M).connect(n)).with({signer:c.P.any},({signer:M})=>M).otherwise(()=>{return});return j({chain:t,isEIP1559Compatible:u,provider:n,signer:l})}}var B,Do,c,ot,nt,yt,ut,Tt,lt,bt,Ro,Mt,xt,wt,Dt,Rt,Lt,Bt,ft,Gt,qt,e,Ht,Ut;var It=J(()=>{To();P();r();B=require("@swapkit/helpers"),Do=require("ethers"),c=require("ts-pattern");ot=H(B.Chain.Adi),nt=H(B.Chain.Arbitrum),yt=H(B.Chain.Aurora),ut=H(B.Chain.Avalanche),Tt=H(B.Chain.Base),lt=H(B.Chain.Berachain),bt=H(B.Chain.BinanceSmartChain),Ro=H(B.Chain.Botanix),Mt=H(B.Chain.Core),xt=H(B.Chain.Corn),wt=H(B.Chain.Cronos),Dt=H(B.Chain.Gnosis),Rt=H(B.Chain.Hyperevm),Lt=H(B.Chain.Linea),Bt=H(B.Chain.Polygon),ft=H(B.Chain.MegaETH),Gt=H(B.Chain.Monad),qt=H(B.Chain.Plasma),e=H(B.Chain.Sonic),Ht=H(B.Chain.Unichain),Ut=H(B.Chain.XLayer)});var Lo;var Bo=J(()=>{Lo=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});function Pt(t){return new Vt.Contract(ho,Lo,t)}function fo(t){return async function(){let n=Pt(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function Go(t){return async function({from:n,to:y,nonce:u,...l}){let{Transaction:b}=await import("ethers");if(!y)throw new G.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...l,authorizationList:l.authorizationList,nonce:u?u:n?await t.getTransactionCount(n):0,to:y}).serialized}}function qo(t){return async function(n){let y=Pt(t),u=await Go(t)(n);if(y&&"getL1Fee"in y)return y.getL1Fee(u)}}function Ho(t){return async function(n){let u=(await t.getFeeData()).gasPrice??0n,l=await t.estimateGas(n);return u*l}}function vo(t){return async function(n){let y=await qo(t)(n)??0n,u=await Ho(t)(n);return y+u}}function ao(t){return async function(n){let y=Pt(t),u=await Go(t)(n);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(u)}}function io(t){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:y,gasPrice:u}=await t.getFeeData(),l=await fo(t)(),b=u;if(!(n&&y))throw new G.SwapKitError("toolbox_evm_no_fee_data");return{[G.FeeOption.Average]:{gasPrice:b,l1GasPrice:l,maxFeePerGas:n,maxPriorityFeePerGas:y},[G.FeeOption.Fast]:{gasPrice:G.applyFeeMultiplierToBigInt(b,G.FeeOption.Fast),l1GasPrice:G.applyFeeMultiplierToBigInt(l||0n,G.FeeOption.Fast),maxFeePerGas:n,maxPriorityFeePerGas:G.applyFeeMultiplierToBigInt(y,G.FeeOption.Fast)},[G.FeeOption.Fastest]:{gasPrice:G.applyFeeMultiplierToBigInt(b,G.FeeOption.Fastest),l1GasPrice:G.applyFeeMultiplierToBigInt(l||0n,G.FeeOption.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:G.applyFeeMultiplierToBigInt(y,G.FeeOption.Fastest)}}}catch(n){throw new G.SwapKitError("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Xt({provider:t,...o}){let n=g.match(o).with({phrase:g.P.string},({phrase:l})=>Vt.HDNodeWallet.fromPhrase(l).connect(t)).with({signer:g.P.any},({signer:l})=>l).otherwise(()=>{return}),y=j({provider:t,signer:n}),u=fo(t);return{...y,estimateGasPrices:io(t),estimateL1Gas:ao(t),estimateL1GasCost:qo(t),estimateL2GasCost:Ho(t),estimateTotalGasCost:vo(t),getBalance:C(G.Chain.Optimism).getBalance,getL1GasPrice:u}}var G,Vt,g,ho="0x420000000000000000000000000000000000000f";var pt=J(()=>{d();Bo();r();G=require("@swapkit/helpers"),Vt=require("ethers"),g=require("ts-pattern")});var ro={};at(ro,{validateEVMAddress:()=>St,toChecksumAddress:()=>lo,isStateChangingCall:()=>mt,isEIP7702Transaction:()=>i,isEIP1559Transaction:()=>Ot,isBrowserProvider:()=>S,getTokenAddress:()=>m,getEvmToolboxAsync:()=>Vo,getEvmToolbox:()=>st,getEstimateGasPrices:()=>E,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>k,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>bo,createContract:()=>s,XLayerToolbox:()=>Ut,UNIToolbox:()=>Ht,SONICToolbox:()=>e,PLASMAToolbox:()=>qt,OPToolbox:()=>Xt,MONADToolbox:()=>Gt,MEGAETHToolbox:()=>ft,MAX_APPROVAL:()=>p,MATICToolbox:()=>Bt,LINEAToolbox:()=>Lt,HYPEREVMToolbox:()=>Rt,GNOToolbox:()=>Dt,ETHToolbox:()=>tt,ContractAddress:()=>Kt,CROToolbox:()=>wt,CORNToolbox:()=>xt,COREToolbox:()=>Mt,BotanixToolbox:()=>Ro,BaseEVMToolbox:()=>j,BSCToolbox:()=>bt,BERAToolbox:()=>lt,BASEToolbox:()=>Tt,AVAXToolbox:()=>ut,AURORAToolbox:()=>yt,ARBToolbox:()=>nt,ADIToolbox:()=>ot});function st(t,o){return Uo.match(t).with(f.Chain.Adi,()=>ot(o)).with(f.Chain.Arbitrum,()=>nt(o)).with(f.Chain.Aurora,()=>yt(o)).with(f.Chain.Avalanche,()=>ut(o)).with(f.Chain.Base,()=>Tt(o)).with(f.Chain.Berachain,()=>lt(o)).with(f.Chain.BinanceSmartChain,()=>bt(o)).with(f.Chain.Botanix,()=>e(o)).with(f.Chain.Core,()=>Mt(o)).with(f.Chain.Corn,()=>xt(o)).with(f.Chain.Cronos,()=>wt(o)).with(f.Chain.Ethereum,()=>tt(o)).with(f.Chain.Gnosis,()=>Dt(o)).with(f.Chain.Hyperevm,()=>Rt(o)).with(f.Chain.Linea,()=>Lt(o)).with(f.Chain.MegaETH,()=>ft(o)).with(f.Chain.Monad,()=>Gt(o)).with(f.Chain.Optimism,()=>Xt(o)).with(f.Chain.Plasma,()=>qt(o)).with(f.Chain.Polygon,()=>Bt(o)).with(f.Chain.Sonic,()=>e(o)).with(f.Chain.Unichain,()=>Ht(o)).with(f.Chain.XLayer,()=>Ut(o)).exhaustive()}async function Vo(t,o){let n={...o,provider:o?.provider||await Jt(t)};return st(t,n)}var f,Uo;var Xo=J(()=>{P();It();pt();f=require("@swapkit/helpers"),Uo=require("ts-pattern");r();It();pt()});var Wo;var Yo=J(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Wo||={})});var tn={};at(tn,{validateEVMAddress:()=>St,validateAuthorizations:()=>Nt,validateAuthorization:()=>no,toHexString:()=>I,toChecksumAddress:()=>lo,signAuthorization:()=>Et,parseEIP712FromEVMTx:()=>mo,isStateChangingCall:()=>mt,isEIP7702Transaction:()=>i,isEIP1559Transaction:()=>Ot,isBrowserProvider:()=>S,getTokenAddress:()=>m,getProviderSync:()=>oo,getProvider:()=>Jt,getNetworkParams:()=>zt,getIsEIP1559Compatible:()=>kt,getEvmToolboxAsync:()=>Vo,getEvmToolbox:()=>st,getEvmApi:()=>C,getEstimateGasPrices:()=>E,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>k,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>bo,createCustomEvmApi:()=>jo,createContract:()=>s,buildEIP712DomainType:()=>yo,XLayerToolbox:()=>Ut,UNIToolbox:()=>Ht,SONICToolbox:()=>e,PLASMAToolbox:()=>qt,OPToolbox:()=>Xt,MONADToolbox:()=>Gt,MEGAETHToolbox:()=>ft,MAX_APPROVAL:()=>p,MATICToolbox:()=>Bt,LINEAToolbox:()=>Lt,HYPEREVMToolbox:()=>Rt,GNOToolbox:()=>Dt,EthNetwork:()=>Wo,ETHToolbox:()=>tt,ContractAddress:()=>Kt,CROToolbox:()=>wt,CORNToolbox:()=>xt,COREToolbox:()=>Mt,BotanixToolbox:()=>Ro,BaseEVMToolbox:()=>j,BSCToolbox:()=>bt,BERAToolbox:()=>lt,BASEToolbox:()=>Tt,AVAXToolbox:()=>ut,AURORAToolbox:()=>yt,ARBToolbox:()=>nt,ADIToolbox:()=>ot});module.exports=ko(tn);var on=J(()=>{d();P();Xo();Yo()});on();
|
package/dist/src/evm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Jy=Object.defineProperty;var zy=(t)=>t;function oy(t,y){this[t]=zy.bind(null,y)}var ct=(t,y)=>{for(var u in y)Jy(t,u,{get:y[u],enumerable:!0,configurable:!0,set:oy.bind(y,u)})};var k=(t,y)=>()=>(t&&(y=t(t=0)),y);var e=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(y,u)=>(typeof require<"u"?require:y)[u]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as vt,getChainConfig as ky}from"@swapkit/helpers";import{SwapKitApi as _y}from"@swapkit/helpers/api";function Uu(){function t(){let y=Date.now(),u=Zt||y;return Zt=u,y>Zt?y:u+1}return jy+t().toString(36)}function ht(t){return async function(u,n=!0){let l=await _y.getChainBalance({address:u,chain:t,scamFilter:n}),{baseDecimal:T}=ky(t),b=l.map(({identifier:D,value:q,decimal:w})=>{return new vt({decimal:w||T,identifier:D,value:q})});if(!b.some((D)=>D.isGasAsset))return[vt.from({chain:t}),...b];return b}}var jy,Zt=0;var st=k(()=>{jy=typeof process<"u"&&process.pid?process.pid.toString(36):""});function I(t){return{getBalance:ht(t)}}function Ny(t){return t}var d=k(()=>{st()});import{Chain as H,getChainConfig as zt,getRPCUrl as Sy,SwapKitError as i}from"@swapkit/helpers";import{getAddress as dt,Interface as Vy,JsonRpcProvider as Ky}from"ethers";import{match as it}from"ts-pattern";function at(t){return new Ky(t)}async function ot(t,y){return at(y||await Sy(t))}function P(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:y,chainIdHex:u,rpcUrls:n}=zt(t);return function(){return t!==H.Ethereum?{...xy({chain:t}),blockExplorerUrls:[y],chainId:u,rpcUrls:n}:void 0}}function _t(t){return![H.Adi,H.Arbitrum,H.BinanceSmartChain].includes(t)}function xy({chain:t}){let{name:y,nativeCurrency:u,baseDecimal:n}=zt(t);return it(t).with(H.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:n,name:"Avalanche",symbol:t}})).with(H.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:n,name:"Berachain",symbol:"BERA"}})).with(H.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:n,name:"OKB",symbol:"OKB"}})).with(H.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:n,name:"Binance Coin",symbol:"BNB"}})).with(H.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:n,name:"xDAI",symbol:"XDAI"}})).with(H.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:n,name:"Ethereum",symbol:H.Ethereum}})).with(H.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:n,name:"Polygon",symbol:H.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:n,name:u,symbol:u}}))}async function jt(t,y){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let u={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await t.authorize(u)}function rt(t,y){let u=y!==void 0?`index ${y}: `:"",n=(l,T)=>{throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:l,message:`${u}${T}`}})};it(t).when(({chainId:l})=>typeof l!=="bigint",()=>n("chainId","chainId must be a bigint")).when(({address:l})=>!Fy(l),()=>n("address","address must be a valid checksummed address")).when(({nonce:l})=>typeof l!=="bigint"||l<0n,()=>n("nonce","nonce must be a non-negative bigint")).when(({signature:l})=>!l,()=>n("signature","signature is required")).when(({signature:l})=>typeof l?.yParity!=="number"||![0,1].includes(l.yParity),()=>n("signature.yParity","yParity must be 0 or 1")).when(({signature:l})=>!et(l?.r),()=>n("signature.r","r must be a 32-byte hex string")).when(({signature:l})=>!et(l?.s),()=>n("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function ty(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>t[y]!=null).map(({key:y,type:u})=>({name:y,type:u}))}function $t(t){return t.charAt(0).toUpperCase()+t.slice(1)}function ft(t,y){if(t.isTuple()&&t.components){let u=$t(t.name);return y[u]=t.components.map((n)=>({name:n.name,type:ft(n,y)})),u}if(t.isArray()){let u=t.arrayChildren;if(u?.isTuple()&&u.components){let n=$t(t.name.replace(/s$/,""));return y[n]=u.components.map((l)=>({name:l.name,type:ft(l,y)})),`${n}[]`}return`${u?.type??"bytes"}[]`}return t.type}function Jt(t,y){if(typeof t==="bigint")return t;if(y?.isTuple()&&typeof t?.toObject==="function"){let u=t.toObject(),n={};for(let[l,T]of(y.components??[]).entries())n[T.name]=Jt(u[T.name]??t[l],T);return n}if(Array.isArray(t)){let u=y?.arrayChildren;return t.map((n)=>Jt(n,u??void 0))}return t}function Ay({chain:t,abi:y,data:u,to:n}){let T=new Vy(y).parseTransaction({data:u});if(!T)throw new i({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let b={},M=$t(T.name);b[M]=T.fragment.inputs.map((R)=>({name:R.name,type:ft(R,b)}));let D={};for(let[R,B]of T.fragment.inputs.entries())D[B.name]=Jt(T.args[R],B);let{chainId:q}=zt(t),w={chainId:Number(q),verifyingContract:dt(n)},X=ty(w);return{domain:w,message:D,primaryType:M,types:{EIP712Domain:X,...b}}}function Nt(t,y){if(!Array.isArray(t)||t.length===0)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[u,n]of t.entries())if(rt(n,u),y!==void 0&&n.chainId!==y)throw new i({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${u}: authorization chainId (${n.chainId}) does not match transaction chainId (${y})`}})}var et=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Fy=(t)=>{try{return typeof t==="string"&&!!dt(t)}catch{return!1}};var C=()=>{};var yy;var uy=k(()=>{yy=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as Ey,applyFeeMultiplierToBigInt as $,Chain as _,EVMChains as Oy,FeeOption as L,isGasAsset as Iy,SwapKitError as G,SwapKitNumber as a}from"@swapkit/helpers";import{erc20ABI as m}from"@swapkit/helpers/contracts";import{BrowserProvider as Py,Contract as ny,getAddress as r,Interface as ly}from"ethers";import{match as Ty}from"ts-pattern";function K({chain:t=_.Ethereum,provider:y,signer:u,isEIP1559Compatible:n=!0}){return{approve:cy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),approvedAmount:Dy({chain:t,provider:y}),broadcastTransaction:y.broadcastTransaction,call:At({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),createApprovalTx:ey({chain:t,provider:y,signer:u}),createContract:Kt({chain:t,provider:y}),createContractTxObject:N({chain:t,provider:y}),createTransaction:St({chain:t,provider:y,signer:u}),createTransferTx:St({chain:t,provider:y,signer:u}),EIP1193SendTransaction:F(y),estimateCall:Ry({provider:y,signer:u}),estimateGasLimit:hy({chain:t,provider:y,signer:u}),estimateGasPrices:S({chain:t,isEIP1559Compatible:n,provider:y}),estimateTransactionFee:dy({chain:t,isEIP1559Compatible:n,provider:y}),getAddress:()=>{return u?u.getAddress():void 0},getBalance:I(t).getBalance,getNetworkParams:kt(t),isApproved:gy({chain:t,provider:y}),sendTransaction:Ly({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),signAuthorization:sy({signer:u}),signMessage:u?(l)=>u.signMessage(l):void 0,signTypedData:u?({domain:l,types:T,value:b})=>u.signTypedData(l,T,b):void 0,transfer:vy({chain:t,isEIP1559Compatible:n,provider:y,signer:u}),validateAddress:Vt}}function Vt(t){try{return r(t),!0}catch{return!1}}function x(t){return t instanceof Py}function g(t,y,u){return new ny(t,ly.from(y),u)}function Kt({provider:t}){return function(u,n){return new ny(u,ly.from(n),t)}}function xt({abi:t,funcName:y}){let u=t.find((n)=>n.name===y);if(!u)throw new G("toolbox_evm_no_abi_fragment",{funcName:y});return u.stateMutability&&Cy.includes(u.stateMutability)}function by(t){return r(t)}function F(t){return function({value:u,...n}){if(!x(t))throw new G("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:l,gasPrice:T,maxFeePerGas:b,maxPriorityFeePerGas:M,...D}=n;return t.send("eth_sendTransaction",[{...D,value:P(BigInt(u||0))}])}}function My(t,y){let u=A(t,y);if(u)return r(u.toLowerCase());throw new G("toolbox_evm_invalid_gas_asset_address")}function A({chain:t,symbol:y,ticker:u},n){try{let l=t===_.BinanceSmartChain&&y==="BNB"&&u==="BNB",T=t===_.Hyperevm&&y==="HYPE"&&u==="HYPE",b=t===n&&y===n&&u===n,M=py.includes(t)&&y==="ETH"&&u==="ETH";if(b||l||T||M)return Ft[n];return r(y.slice(u.length+1).replace(/^0X/,""))}catch{return null}}function N({provider:t}){return async({contractAddress:y,abi:u,funcName:n,funcParams:l=[],txOverrides:T})=>g(y,u,t).getFunction(n).populateTransaction(...l.concat(T).filter((b)=>typeof b<"u"))}function S({chain:t,provider:y,isEIP1559Compatible:u=!0}){return Ty(t).with(_.Gnosis,()=>{return async function(){try{let{gasPrice:l,maxPriorityFeePerGas:T}=await y.getFeeData();if(!l||T===null)throw new G("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:$(l,L.Average),maxPriorityFeePerGas:$(T,L.Average)},[L.Fast]:{maxFeePerGas:$(l,L.Fast),maxPriorityFeePerGas:$(T,L.Fast)},[L.Fastest]:{maxFeePerGas:$(l,L.Fastest),maxPriorityFeePerGas:$(T,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).with(_.Arbitrum,()=>{return async function(){try{let{gasPrice:l}=await y.getFeeData();if(!l)throw new G("toolbox_evm_no_fee_data");let T=l*12n/10n;return{[L.Average]:{gasPrice:T},[L.Fast]:{gasPrice:$(T,L.Fast)},[L.Fastest]:{gasPrice:$(T,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:l,maxPriorityFeePerGas:T,gasPrice:b}=await y.getFeeData();if(u){if(l===null||T===null)throw new G("toolbox_evm_no_fee_data");return{[L.Average]:{maxFeePerGas:l,maxPriorityFeePerGas:T},[L.Fast]:{maxFeePerGas:$(l,L.Fast),maxPriorityFeePerGas:$(T,L.Fast)},[L.Fastest]:{maxFeePerGas:$(l,L.Fastest),maxPriorityFeePerGas:$(T,L.Fastest)}}}if(!b)throw new G("toolbox_evm_no_gas_price");return{[L.Average]:{gasPrice:b},[L.Fast]:{gasPrice:$(b,L.Fast)},[L.Fastest]:{gasPrice:$(b,L.Fastest)}}}catch(l){throw new G("toolbox_evm_gas_estimation_error",{error:l.msg??l.toString()})}}})}function At({provider:t,isEIP1559Compatible:y,signer:u,chain:n}){return async function({callProvider:T,contractAddress:b,abi:M,funcName:D,funcParams:q=[],txOverrides:w={},feeOption:X=L.Fast}){let R=T||t;if(!b)throw new G("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=xt({abi:M,funcName:D});if(B&&x(R)&&u){let f=N({chain:n,provider:R}),o=w?.from||await u?.getAddress(),z=await f({abi:M,contractAddress:b,funcName:D,funcParams:q,txOverrides:{...w,from:o}});return F(R)(z)}let Y=g(b,M,R);if(B){if(!u)throw new G("toolbox_evm_no_signer");let f=w?.from||await u.getAddress();if(!f)throw new G("toolbox_evm_no_signer_address");let o=Y.connect(u),z=S({chain:n,isEIP1559Compatible:y,provider:t}),{maxFeePerGas:V,maxPriorityFeePerGas:v,gasPrice:O}=(await z())[X],h=await Y.getFunction(D).estimateGas(...q,w),J=await o[D](...q,{...w,gasLimit:h,gasPrice:O,maxFeePerGas:V,maxPriorityFeePerGas:v,nonce:w?.nonce||await R.getTransactionCount(f)});return typeof J?.hash==="string"?J?.hash:J}let Z=await Y[D]?.(...q);return typeof Z?.hash==="string"?Z?.hash:Z}}function Dy({provider:t,chain:y}){return function({assetAddress:n,spenderAddress:l,from:T}){return At({chain:y,isEIP1559Compatible:!0,provider:t})({abi:m,contractAddress:n,funcName:"allowance",funcParams:[T,l]})}}function gy({provider:t,chain:y}){return async function({assetAddress:n,spenderAddress:l,from:T,amount:b=p}){let M=await Dy({chain:y,provider:t})({assetAddress:n,from:T,spenderAddress:l});return a.fromBigInt(M).gte(a.fromBigInt(BigInt(b)))}}function cy({signer:t,isEIP1559Compatible:y=!0,provider:u,chain:n}){return async function({assetAddress:T,spenderAddress:b,feeOptionKey:M=L.Fast,amount:D,gasLimitFallback:q,from:w,nonce:X}){let R=[b,BigInt(D||p)],B=await t?.getAddress()||w,Y={abi:m,contractAddress:T,funcName:"approve",funcParams:R,signer:t,txOverrides:{from:B}};if(x(u)){let f=N({chain:n,provider:u}),o=F(u),z=await f(Y);return o(z)}return At({chain:n,isEIP1559Compatible:y,provider:u,signer:t})({...Y,feeOption:M,funcParams:R,txOverrides:{from:B,gasLimit:q?BigInt(q.toString()):void 0,nonce:X}})}}function vy({signer:t,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:l,memo:T,recipient:b,feeOptionKey:M=L.Fast,sender:D,...q}){let{hexlify:w,toUtf8Bytes:X}=await import("ethers"),R=l.getBaseValue("bigint"),B=l.chain,Y=D||await t?.getAddress(),Z=Ly({chain:B,isEIP1559Compatible:y,provider:u,signer:t});if(!Y)throw new G("toolbox_evm_no_from_address");if(l.isGasAsset){let O={...q,data:w(X(T||"")),feeOptionKey:M,from:Y,to:b,value:R};return Z(O)}if(!A(l,B))throw new G("toolbox_evm_no_contract_address");let{maxFeePerGas:o,maxPriorityFeePerGas:z,gasPrice:V}=(await S({chain:B,isEIP1559Compatible:y,provider:u})())[M],v=await St({chain:B,provider:u,signer:t})({assetValue:l,data:w(X(T||"")),gasPrice:V,maxFeePerGas:o,maxPriorityFeePerGas:z,memo:T,recipient:b,sender:Y});return Z(v)}}function Ry({provider:t,signer:y}){return function({contractAddress:n,abi:l,funcName:T,funcParams:b=[],txOverrides:M}){if(!n)throw new G("toolbox_evm_no_contract_address");let D=g(n,l,t);return y?D.connect(y).getFunction(T).estimateGas(...b,M):D.getFunction(T).estimateGas(...b,M)}}function hy({provider:t,signer:y}){return async function({assetValue:n,recipient:l,memo:T,data:b,sender:M,funcName:D,funcParams:q,txOverrides:w}){let X=n.bigIntValue,R=n.isGasAsset?null:A(n,n.chain);if(R&&D)return Ry({provider:t,signer:y})({abi:m,contractAddress:R,funcName:D,funcParams:q,txOverrides:w});let{hexlify:B,toUtf8Bytes:Y}=await import("ethers");return t.estimateGas({data:b?b:T?B(Y(T)):void 0,from:M,to:l,value:X})}}function sy({signer:t}){if(!t)return;return(y)=>jt(t,y)}function Ly({provider:t,signer:y,isEIP1559Compatible:u=!0,chain:n}){return async function({feeOptionKey:T=L.Fast,...b}){let{from:M,to:D,data:q,value:w,...X}=b;if(!y)throw new G("toolbox_evm_no_signer");if(!D)throw new G("toolbox_evm_no_to_address");let R={...X,data:q||"0x",from:M,to:D,value:BigInt(w||0)};if(x(t))return F(t)(R);let B=M||await y.getAddress(),Y=b.nonce||await t.getTransactionCount(B),Z=(await t.getNetwork()).chainId,f=Ot(R,u);if(f==="eip7702")Nt(R.authorizations||[],Z);let o=Ty(f).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),z={...R,chainId:Z,nonce:Y,type:o,...f==="eip7702"&&{authorizationList:R.authorizations}},V=S({chain:n,isEIP1559Compatible:u,provider:t}),O=f!=="legacy"&&!(R.maxFeePerGas&&R.maxPriorityFeePerGas)||!R.gasPrice?Object.entries((await V())[T]).reduce((J,[s,gt])=>({...J,[s]:P(BigInt(gt))}),{}):{},h;try{h=P(R.gasLimit||await t.estimateGas(z)*11n/10n)}catch(J){throw new G("toolbox_evm_error_estimating_gas_limit",{error:J})}try{let J={...z,gasLimit:h,...O};try{return(await y.sendTransaction(J)).hash}catch{let s=await y.signTransaction({...J,from:B});return(await t.broadcastTransaction(s)).hash}}catch(J){throw new G("toolbox_evm_error_sending_transaction",{error:J})}}}function St({provider:t,signer:y}){return async function({assetValue:n,memo:l,recipient:T,data:b,sender:M,maxFeePerGas:D,maxPriorityFeePerGas:q,gasPrice:w,...X}){let R=n.getBaseValue("bigint"),B=n.chain,Y=M||await y?.getAddress();if(!Y)throw new G("toolbox_evm_no_from_address");if(Iy(n)){let{hexlify:o,toUtf8Bytes:z}=await import("ethers");return{...X,data:b||o(z(l||"")),from:Y,to:T,value:R}}let Z=A(n,B);if(!Z)throw new G("toolbox_evm_no_contract_address");return N({chain:n.chain,provider:t})({abi:m,contractAddress:Z,funcName:"transfer",funcParams:[T,R],txOverrides:{from:Y,gasPrice:w,maxFeePerGas:D,maxPriorityFeePerGas:q}})}}function ey({provider:t,signer:y,chain:u}){return async function({assetAddress:l,spenderAddress:T,amount:b,from:M}){let D=await y?.getAddress()||M,q=N({chain:u,provider:t}),w=["bigint","number"].includes(typeof b)?b:b||p;return await q({abi:m,contractAddress:l,funcName:"approve",funcParams:[T,BigInt(w)],txOverrides:{from:D}})}}function dy({provider:t,isEIP1559Compatible:y=!0,chain:u}){return async function({feeOption:l=L.Fast,...T}){let M=await S({chain:u,isEIP1559Compatible:y,provider:t})(),D=await t.estimateGas(T),q=Ey.from({chain:u}),{gasPrice:w,maxFeePerGas:X,maxPriorityFeePerGas:R}=M[l];if(!y&&w)return q.set(a.fromBigInt(w*D,q.decimal));if(X&&R){let B=(X+R)*D;return q.set(a.fromBigInt(B,q.decimal))}throw new G("toolbox_evm_no_gas_price")}}var p,Cy,my,Ft,py,tt=(t)=>t.type===4||(t.authorizations?.length??0)>0,Et=(t)=>!tt(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ot=(t,y=!0)=>{if(tt(t))return"eip7702";if(Et(t)||y)return"eip1559";return"legacy"};var yt=k(()=>{d();C();p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Cy=["payable","nonpayable"];my=Oy.reduce((t,y)=>{return t[y]="0x0000000000000000000000000000000000000000",t},{}),Ft={...my,[_.Optimism]:"0x4200000000000000000000000000000000000042",[_.Polygon]:"0x0000000000000000000000000000000000001010"},py=[_.Arbitrum,_.Aurora,_.Base,_.Optimism]});import{Chain as W,FeeOption as iy}from"@swapkit/helpers";import{HDNodeWallet as ay}from"ethers";import{match as ry,P as wy}from"ts-pattern";function ut(t){let y=Q(W.Ethereum)(t);async function u(n,l="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",b=iy.Fast){let M=await y.createContractTxObject({abi:yy,contractAddress:l,funcName:T,funcParams:[n]});return y.sendTransaction({...M,feeOptionKey:b})}return{...y,multicall:u}}function Q(t){return function({provider:u,...n}){let l=_t(t),T=ry(n).with({phrase:wy.string},({phrase:M})=>ay.fromPhrase(M).connect(u)).with({signer:wy.any},({signer:M})=>M).otherwise(()=>{return});return K({chain:t,isEIP1559Compatible:l,provider:u,signer:T})}}var nt,lt,Tt,bt,Mt,Dt,Rt,qy,Lt,wt,qt,Gt,Bt,Ht,c,Ut,Wt,Qt,Xt;var It=k(()=>{uy();C();yt();nt=Q(W.Adi),lt=Q(W.Arbitrum),Tt=Q(W.Aurora),bt=Q(W.Avalanche),Mt=Q(W.Base),Dt=Q(W.Berachain),Rt=Q(W.BinanceSmartChain),qy=Q(W.Botanix),Lt=Q(W.Core),wt=Q(W.Corn),qt=Q(W.Cronos),Gt=Q(W.Gnosis),Bt=Q(W.Hyperevm),Ht=Q(W.Polygon),c=Q(W.Sonic),Ut=Q(W.Unichain),Wt=Q(W.XLayer),Qt=Q(W.Monad),Xt=Q(W.MegaETH)});var Gy;var By=k(()=>{Gy=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as E,Chain as yu,FeeOption as j,SwapKitError as Pt}from"@swapkit/helpers";import{Contract as uu,HDNodeWallet as nu}from"ethers";import{match as lu,P as Hy}from"ts-pattern";function Ct(t){return new uu(Tu,Gy,t)}function Uy(t){return async function(){let u=Ct(t);if(u&&"l1BaseFee"in u)return await u?.l1BaseFee();return}}function Wy(t){return async function({from:u,to:n,nonce:l,...T}){let{Transaction:b}=await import("ethers");if(!n)throw new Pt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return b.from({...T,authorizationList:T.authorizationList,nonce:l?l:u?await t.getTransactionCount(u):0,to:n}).serialized}}function Qy(t){return async function(u){let n=Ct(t),l=await Wy(t)(u);if(n&&"getL1Fee"in n)return n.getL1Fee(l)}}function Xy(t){return async function(u){let l=(await t.getFeeData()).gasPrice??0n,T=await t.estimateGas(u);return l*T}}function bu(t){return async function(u){let n=await Qy(t)(u)??0n,l=await Xy(t)(u);return n+l}}function Mu(t){return async function(u){let n=Ct(t),l=await Wy(t)(u);if(n&&"getL1GasUsed"in n)return n.getL1GasUsed(l)}}function Du(t){return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:n,gasPrice:l}=await t.getFeeData(),T=await Uy(t)(),b=l;if(!(u&&n))throw new Pt("toolbox_evm_no_fee_data");return{[j.Average]:{gasPrice:b,l1GasPrice:T,maxFeePerGas:u,maxPriorityFeePerGas:n},[j.Fast]:{gasPrice:E(b,j.Fast),l1GasPrice:E(T||0n,j.Fast),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fast)},[j.Fastest]:{gasPrice:E(b,j.Fastest),l1GasPrice:E(T||0n,j.Fastest),maxFeePerGas:u,maxPriorityFeePerGas:E(n,j.Fastest)}}}catch(u){throw new Pt("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}function Yt({provider:t,...y}){let u=lu(y).with({phrase:Hy.string},({phrase:T})=>nu.fromPhrase(T).connect(t)).with({signer:Hy.any},({signer:T})=>T).otherwise(()=>{return}),n=K({provider:t,signer:u}),l=Uy(t);return{...n,estimateGasPrices:Du(t),estimateL1Gas:Mu(t),estimateL1GasCost:Qy(t),estimateL2GasCost:Xy(t),estimateTotalGasCost:bu(t),getBalance:I(yu.Optimism).getBalance,getL1GasPrice:l}}var Tu="0x420000000000000000000000000000000000000f";var mt=k(()=>{d();By();yt()});var Lu={};ct(Lu,{validateEVMAddress:()=>Vt,toChecksumAddress:()=>by,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getEvmToolboxAsync:()=>Yy,getEvmToolbox:()=>pt,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createContract:()=>g,XLayerToolbox:()=>Wt,UNIToolbox:()=>Ut,SONICToolbox:()=>c,OPToolbox:()=>Yt,MONADToolbox:()=>Qt,MEGAETHToolbox:()=>Xt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Gt,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>qt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>qy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});import{Chain as U}from"@swapkit/helpers";import{match as Ru}from"ts-pattern";function pt(t,y){return Ru(t).with(U.Adi,()=>nt(y)).with(U.Arbitrum,()=>lt(y)).with(U.Aurora,()=>Tt(y)).with(U.Avalanche,()=>bt(y)).with(U.Base,()=>Mt(y)).with(U.Berachain,()=>Dt(y)).with(U.BinanceSmartChain,()=>Rt(y)).with(U.Botanix,()=>c(y)).with(U.Core,()=>Lt(y)).with(U.Corn,()=>wt(y)).with(U.Cronos,()=>qt(y)).with(U.Ethereum,()=>ut(y)).with(U.Gnosis,()=>Gt(y)).with(U.Hyperevm,()=>Bt(y)).with(U.Optimism,()=>Yt(y)).with(U.Polygon,()=>Ht(y)).with(U.Sonic,()=>c(y)).with(U.Unichain,()=>Ut(y)).with(U.XLayer,()=>Wt(y)).with(U.Monad,()=>Qt(y)).with(U.MegaETH,()=>Xt(y)).exhaustive()}async function Yy(t,y){let u={...y,provider:y?.provider||await ot(t)};return pt(t,u)}var Zy=k(()=>{C();It();mt();yt();It();mt()});var $y;var fy=k(()=>{((u)=>{u.Test="goerli";u.Main="homestead"})($y||={})});var wu={};ct(wu,{validateEVMAddress:()=>Vt,validateAuthorizations:()=>Nt,validateAuthorization:()=>rt,toHexString:()=>P,toChecksumAddress:()=>by,signAuthorization:()=>jt,parseEIP712FromEVMTx:()=>Ay,isStateChangingCall:()=>xt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Et,isBrowserProvider:()=>x,getTokenAddress:()=>A,getProviderSync:()=>at,getProvider:()=>ot,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>Yy,getEvmToolbox:()=>pt,getEvmApi:()=>I,getEstimateGasPrices:()=>S,getEVMTxType:()=>Ot,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>N,getCreateContract:()=>Kt,getChecksumAddressFromAsset:()=>My,createCustomEvmApi:()=>Ny,createContract:()=>g,buildEIP712DomainType:()=>ty,XLayerToolbox:()=>Wt,UNIToolbox:()=>Ut,SONICToolbox:()=>c,OPToolbox:()=>Yt,MONADToolbox:()=>Qt,MEGAETHToolbox:()=>Xt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Ht,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Gt,EthNetwork:()=>$y,ETHToolbox:()=>ut,ContractAddress:()=>Ft,CROToolbox:()=>qt,CORNToolbox:()=>wt,COREToolbox:()=>Lt,BotanixToolbox:()=>qy,BaseEVMToolbox:()=>K,BSCToolbox:()=>Rt,BERAToolbox:()=>Dt,BASEToolbox:()=>Mt,AVAXToolbox:()=>bt,AURORAToolbox:()=>Tt,ARBToolbox:()=>lt,ADIToolbox:()=>nt});var qu=k(()=>{d();C();Zy();fy()});qu();export{Vt as validateEVMAddress,Nt as validateAuthorizations,rt as validateAuthorization,P as toHexString,by as toChecksumAddress,jt as signAuthorization,Ay as parseEIP712FromEVMTx,xt as isStateChangingCall,tt as isEIP7702Transaction,Et as isEIP1559Transaction,x as isBrowserProvider,A as getTokenAddress,at as getProviderSync,ot as getProvider,kt as getNetworkParams,_t as getIsEIP1559Compatible,Yy as getEvmToolboxAsync,pt as getEvmToolbox,I as getEvmApi,S as getEstimateGasPrices,Ot as getEVMTxType,F as getEIP1193SendTransaction,N as getCreateContractTxObject,Kt as getCreateContract,My as getChecksumAddressFromAsset,Ny as createCustomEvmApi,g as createContract,ty as buildEIP712DomainType,Wt as XLayerToolbox,Ut as UNIToolbox,c as SONICToolbox,Yt as OPToolbox,Qt as MONADToolbox,Xt as MEGAETHToolbox,p as MAX_APPROVAL,Ht as MATICToolbox,Bt as HYPEREVMToolbox,Gt as GNOToolbox,$y as EthNetwork,ut as ETHToolbox,Ft as ContractAddress,qt as CROToolbox,wt as CORNToolbox,Lt as COREToolbox,qy as BotanixToolbox,K as BaseEVMToolbox,Rt as BSCToolbox,Dt as BERAToolbox,Mt as BASEToolbox,bt as AVAXToolbox,Tt as AURORAToolbox,lt as ARBToolbox,nt as ADIToolbox};
|
|
1
|
+
var $o=Object.defineProperty;var Jo=(t)=>t;function zo(t,o){this[t]=Jo.bind(null,o)}var gt=(t,o)=>{for(var n in o)$o(t,n,{get:o[n],enumerable:!0,configurable:!0,set:zo.bind(o,n)})};var J=(t,o)=>()=>(t&&(o=t(t=0)),o);var v=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,n)=>(typeof require<"u"?require:o)[n]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});import{AssetValue as ht,getChainConfig as ko}from"@swapkit/helpers";import{SwapKitApi as Eo}from"@swapkit/helpers/api";function Un(){function t(){let o=Date.now(),n=Yt||o;return Yt=n,o>Yt?o:n+1}return No+t().toString(36)}function vt(t){return async function(n,y=!0){let u=await Eo.getChainBalance({address:n,chain:t,scamFilter:y}),{baseDecimal:T}=ko(t),l=u.map(({identifier:M,value:R,decimal:D})=>{return new ht({decimal:D||T,identifier:M,value:R})});if(!l.some((M)=>M.isGasAsset))return[ht.from({chain:t}),...l];return l}}var No,Yt=0;var at=J(()=>{No=typeof process<"u"&&process.pid?process.pid.toString(36):""});function O(t){return{getBalance:vt(t)}}function _o(t){return t}var a=J(()=>{at()});import{Chain as G,getChainConfig as Jt,getRPCUrl as jo,SwapKitError as d}from"@swapkit/helpers";import{getAddress as it,Interface as So,JsonRpcProvider as Ao}from"ethers";import{match as rt}from"ts-pattern";function to(t){return new Ao(t)}async function zt(t,o){return to(o||await jo(t))}function C(t){return t>0n?`0x${t.toString(16)}`:"0x0"}function kt(t){let{explorerUrl:o,chainIdHex:n,rpcUrls:y}=Jt(t);return function(){return t!==G.Ethereum?{...mo({chain:t}),blockExplorerUrls:[o],chainId:n,rpcUrls:y}:void 0}}function Et(t){return![G.Adi,G.Arbitrum,G.BinanceSmartChain].includes(t)}function mo({chain:t}){let{name:o,nativeCurrency:n,baseDecimal:y}=Jt(t);return rt(t).with(G.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:y,name:"Ethereum",symbol:G.Ethereum}})).with(G.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:G.Ethereum}})).with(G.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:y,name:"Avalanche",symbol:t}})).with(G.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:G.Ethereum}})).with(G.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:y,name:"Berachain",symbol:"BERA"}})).with(G.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:y,name:"OKB",symbol:"OKB"}})).with(G.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:y,name:"Binance Coin",symbol:"BNB"}})).with(G.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:y,name:"xDAI",symbol:"XDAI"}})).with(G.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:y,name:"Ethereum",symbol:G.Ethereum}})).with(G.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:y,name:"Polygon",symbol:G.Polygon}})).otherwise(()=>({chainName:o,nativeCurrency:{decimals:y,name:n,symbol:n}}))}async function Nt(t,o){if(!("authorize"in t))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let n={...o,nonce:o.nonce!==void 0?BigInt(o.nonce):void 0};return await t.authorize(n)}function oo(t,o){let n=o!==void 0?`index ${o}: `:"",y=(u,T)=>{throw new d({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:u,message:`${n}${T}`}})};rt(t).when(({chainId:u})=>typeof u!=="bigint",()=>y("chainId","chainId must be a bigint")).when(({address:u})=>!Ko(u),()=>y("address","address must be a valid checksummed address")).when(({nonce:u})=>typeof u!=="bigint"||u<0n,()=>y("nonce","nonce must be a non-negative bigint")).when(({signature:u})=>!u,()=>y("signature","signature is required")).when(({signature:u})=>typeof u?.yParity!=="number"||![0,1].includes(u.yParity),()=>y("signature.yParity","yParity must be 0 or 1")).when(({signature:u})=>!dt(u?.r),()=>y("signature.r","r must be a 32-byte hex string")).when(({signature:u})=>!dt(u?.s),()=>y("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function no(t){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:o})=>t[o]!=null).map(({key:o,type:n})=>({name:o,type:n}))}function Qt(t){return t.charAt(0).toUpperCase()+t.slice(1)}function Zt(t,o){if(t.isTuple()&&t.components){let n=Qt(t.name);return o[n]=t.components.map((y)=>({name:y.name,type:Zt(y,o)})),n}if(t.isArray()){let n=t.arrayChildren;if(n?.isTuple()&&n.components){let y=Qt(t.name.replace(/s$/,""));return o[y]=n.components.map((u)=>({name:u.name,type:Zt(u,o)})),`${y}[]`}return`${n?.type??"bytes"}[]`}return t.type}function $t(t,o){if(typeof t==="bigint")return t;if(o?.isTuple()&&typeof t?.toObject==="function"){let n=t.toObject(),y={};for(let[u,T]of(o.components??[]).entries())y[T.name]=$t(n[T.name]??t[u],T);return y}if(Array.isArray(t)){let n=o?.arrayChildren;return t.map((y)=>$t(y,n??void 0))}return t}function Fo({chain:t,abi:o,data:n,to:y}){let T=new So(o).parseTransaction({data:n});if(!T)throw new d({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let l={},b=Qt(T.name);l[b]=T.fragment.inputs.map((x)=>({name:x.name,type:Zt(x,l)}));let M={};for(let[x,f]of T.fragment.inputs.entries())M[f.name]=$t(T.args[x],f);let{chainId:R}=Jt(t),D={chainId:Number(R),verifyingContract:it(y)},U=no(D);return{domain:D,message:M,primaryType:b,types:{EIP712Domain:U,...l}}}function _t(t,o){if(!Array.isArray(t)||t.length===0)throw new d({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,y]of t.entries())if(oo(y,n),o!==void 0&&y.chainId!==o)throw new d({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${y.chainId}) does not match transaction chainId (${o})`}})}var dt=(t)=>typeof t==="string"&&/^0x[a-fA-F0-9]{64}$/.test(t),Ko=(t)=>{try{return typeof t==="string"&&!!it(t)}catch{return!1}};var I=()=>{};var yo;var uo=J(()=>{yo=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as Oo,applyFeeMultiplierToBigInt as W,Chain as z,EVMChains as Co,FeeOption as w,isGasAsset as Io,SwapKitError as L,SwapKitNumber as i}from"@swapkit/helpers";import{erc20ABI as P}from"@swapkit/helpers/contracts";import{BrowserProvider as Po,Contract as To,getAddress as r,Interface as lo}from"ethers";import{match as bo}from"ts-pattern";function j({chain:t=z.Ethereum,provider:o,signer:n,isEIP1559Compatible:y=!0}){return{approve:go({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),approvedAmount:wo({chain:t,provider:o}),broadcastTransaction:o.broadcastTransaction,call:Ft({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),createApprovalTx:io({chain:t,provider:o,signer:n}),createContract:At({chain:t,provider:o}),createContractTxObject:E({chain:t,provider:o}),createTransaction:jt({chain:t,provider:o,signer:n}),createTransferTx:jt({chain:t,provider:o,signer:n}),EIP1193SendTransaction:A(o),estimateCall:Do({provider:o,signer:n}),estimateGasLimit:vo({chain:t,provider:o,signer:n}),estimateGasPrices:N({chain:t,isEIP1559Compatible:y,provider:o}),estimateTransactionFee:ro({chain:t,isEIP1559Compatible:y,provider:o}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:O(t).getBalance,getNetworkParams:kt(t),isApproved:eo({chain:t,provider:o}),sendTransaction:Ro({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),signAuthorization:ao({signer:n}),signMessage:n?(u)=>n.signMessage(u):void 0,signTypedData:n?({domain:u,types:T,value:l})=>n.signTypedData(u,T,l):void 0,transfer:ho({chain:t,isEIP1559Compatible:y,provider:o,signer:n}),validateAddress:St}}function St(t){try{return r(t),!0}catch{return!1}}function S(t){return t instanceof Po}function s(t,o,n){return new To(t,lo.from(o),n)}function At({provider:t}){return function(n,y){return new To(n,lo.from(y),t)}}function mt({abi:t,funcName:o}){let n=t.find((y)=>y.name===o);if(!n)throw new L("toolbox_evm_no_abi_fragment",{funcName:o});return n.stateMutability&&po.includes(n.stateMutability)}function Mo(t){return r(t)}function A(t){return function({value:n,...y}){if(!S(t))throw new L("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:u,gasPrice:T,maxFeePerGas:l,maxPriorityFeePerGas:b,...M}=y;return t.send("eth_sendTransaction",[{...M,value:C(BigInt(n||0))}])}}function xo(t,o){let n=m(t,o);if(n)return r(n.toLowerCase());throw new L("toolbox_evm_invalid_gas_asset_address")}function m({chain:t,symbol:o,ticker:n},y){try{let u=t===z.BinanceSmartChain&&o==="BNB"&&n==="BNB",T=t===z.Hyperevm&&o==="HYPE"&&n==="HYPE",l=t===y&&o===y&&n===y,b=co.includes(t)&&o==="ETH"&&n==="ETH";if(l||u||T||b)return Kt[y];return r(o.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function E({provider:t}){return async({contractAddress:o,abi:n,funcName:y,funcParams:u=[],txOverrides:T})=>s(o,n,t).getFunction(y).populateTransaction(...u.concat(T).filter((l)=>typeof l<"u"))}function N({chain:t,provider:o,isEIP1559Compatible:n=!0}){return bo(t).with(z.Gnosis,()=>{return async function(){try{let{gasPrice:u,maxPriorityFeePerGas:T}=await o.getFeeData();if(!u||T===null)throw new L("toolbox_evm_no_fee_data");return{[w.Average]:{maxFeePerGas:W(u,w.Average),maxPriorityFeePerGas:W(T,w.Average)},[w.Fast]:{maxFeePerGas:W(u,w.Fast),maxPriorityFeePerGas:W(T,w.Fast)},[w.Fastest]:{maxFeePerGas:W(u,w.Fastest),maxPriorityFeePerGas:W(T,w.Fastest)}}}catch(u){throw new L("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).with(z.Arbitrum,()=>{return async function(){try{let{gasPrice:u}=await o.getFeeData();if(!u)throw new L("toolbox_evm_no_fee_data");let T=u*12n/10n;return{[w.Average]:{gasPrice:T},[w.Fast]:{gasPrice:W(T,w.Fast)},[w.Fastest]:{gasPrice:W(T,w.Fastest)}}}catch(u){throw new L("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:u,maxPriorityFeePerGas:T,gasPrice:l}=await o.getFeeData();if(n){if(u===null||T===null)throw new L("toolbox_evm_no_fee_data");return{[w.Average]:{maxFeePerGas:u,maxPriorityFeePerGas:T},[w.Fast]:{maxFeePerGas:W(u,w.Fast),maxPriorityFeePerGas:W(T,w.Fast)},[w.Fastest]:{maxFeePerGas:W(u,w.Fastest),maxPriorityFeePerGas:W(T,w.Fastest)}}}if(!l)throw new L("toolbox_evm_no_gas_price");return{[w.Average]:{gasPrice:l},[w.Fast]:{gasPrice:W(l,w.Fast)},[w.Fastest]:{gasPrice:W(l,w.Fastest)}}}catch(u){throw new L("toolbox_evm_gas_estimation_error",{error:u.msg??u.toString()})}}})}function Ft({provider:t,isEIP1559Compatible:o,signer:n,chain:y}){return async function({callProvider:T,contractAddress:l,abi:b,funcName:M,funcParams:R=[],txOverrides:D={},feeOption:U=w.Fast}){let x=T||t;if(!l)throw new L("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let f=mt({abi:b,funcName:M});if(f&&S(x)&&n){let Y=E({chain:y,provider:x}),$=D?.from||await n?.getAddress(),Z=await Y({abi:b,contractAddress:l,funcName:M,funcParams:R,txOverrides:{...D,from:$}});return A(x)(Z)}let V=s(l,b,x);if(f){if(!n)throw new L("toolbox_evm_no_signer");let Y=D?.from||await n.getAddress();if(!Y)throw new L("toolbox_evm_no_signer_address");let $=V.connect(n),Z=N({chain:y,isEIP1559Compatible:o,provider:t}),{maxFeePerGas:_,maxPriorityFeePerGas:e,gasPrice:F}=(await Z())[U],g=await V.getFunction(M).estimateGas(...R,D),Q=await $[M](...R,{...D,gasLimit:g,gasPrice:F,maxFeePerGas:_,maxPriorityFeePerGas:e,nonce:D?.nonce||await x.getTransactionCount(Y)});return typeof Q?.hash==="string"?Q?.hash:Q}let X=await V[M]?.(...R);return typeof X?.hash==="string"?X?.hash:X}}function wo({provider:t,chain:o}){return function({assetAddress:y,spenderAddress:u,from:T}){return Ft({chain:o,isEIP1559Compatible:!0,provider:t})({abi:P,contractAddress:y,funcName:"allowance",funcParams:[T,u]})}}function eo({provider:t,chain:o}){return async function({assetAddress:y,spenderAddress:u,from:T,amount:l=p}){let b=await wo({chain:o,provider:t})({assetAddress:y,from:T,spenderAddress:u});return i.fromBigInt(b).gte(i.fromBigInt(BigInt(l)))}}function go({signer:t,isEIP1559Compatible:o=!0,provider:n,chain:y}){return async function({assetAddress:T,spenderAddress:l,feeOptionKey:b=w.Fast,amount:M,gasLimitFallback:R,from:D,nonce:U}){let x=[l,BigInt(M||p)],f=await t?.getAddress()||D,V={abi:P,contractAddress:T,funcName:"approve",funcParams:x,signer:t,txOverrides:{from:f}};if(S(n)){let Y=E({chain:y,provider:n}),$=A(n),Z=await Y(V);return $(Z)}return Ft({chain:y,isEIP1559Compatible:o,provider:n,signer:t})({...V,feeOption:b,funcParams:x,txOverrides:{from:f,gasLimit:R?BigInt(R.toString()):void 0,nonce:U}})}}function ho({signer:t,isEIP1559Compatible:o=!0,provider:n}){return async function({assetValue:u,memo:T,recipient:l,feeOptionKey:b=w.Fast,sender:M,...R}){let{hexlify:D,toUtf8Bytes:U}=await import("ethers"),x=u.getBaseValue("bigint"),f=u.chain,V=M||await t?.getAddress(),X=Ro({chain:f,isEIP1559Compatible:o,provider:n,signer:t});if(!V)throw new L("toolbox_evm_no_from_address");if(u.isGasAsset){let F={...R,data:D(U(T||"")),feeOptionKey:b,from:V,to:l,value:x};return X(F)}if(!m(u,f))throw new L("toolbox_evm_no_contract_address");let{maxFeePerGas:$,maxPriorityFeePerGas:Z,gasPrice:_}=(await N({chain:f,isEIP1559Compatible:o,provider:n})())[b],e=await jt({chain:f,provider:n,signer:t})({assetValue:u,data:D(U(T||"")),gasPrice:_,maxFeePerGas:$,maxPriorityFeePerGas:Z,memo:T,recipient:l,sender:V});return X(e)}}function Do({provider:t,signer:o}){return function({contractAddress:y,abi:u,funcName:T,funcParams:l=[],txOverrides:b}){if(!y)throw new L("toolbox_evm_no_contract_address");let M=s(y,u,t);return o?M.connect(o).getFunction(T).estimateGas(...l,b):M.getFunction(T).estimateGas(...l,b)}}function vo({provider:t,signer:o}){return async function({assetValue:y,recipient:u,memo:T,data:l,sender:b,funcName:M,funcParams:R,txOverrides:D}){let U=y.bigIntValue,x=y.isGasAsset?null:m(y,y.chain);if(x&&M)return Do({provider:t,signer:o})({abi:P,contractAddress:x,funcName:M,funcParams:R,txOverrides:D});let{hexlify:f,toUtf8Bytes:V}=await import("ethers");return t.estimateGas({data:l?l:T?f(V(T)):void 0,from:b,to:u,value:U})}}function ao({signer:t}){if(!t)return;return(o)=>Nt(t,o)}function Ro({provider:t,signer:o,isEIP1559Compatible:n=!0,chain:y}){return async function({feeOptionKey:T=w.Fast,...l}){let{from:b,to:M,data:R,value:D,...U}=l;if(!o)throw new L("toolbox_evm_no_signer");if(!M)throw new L("toolbox_evm_no_to_address");let x={...U,data:R||"0x",from:b,to:M,value:BigInt(D||0)};if(S(t))return A(t)(x);let f=b||await o.getAddress(),V=l.nonce||await t.getTransactionCount(f),X=(await t.getNetwork()).chainId,Y=Ct(x,n);if(Y==="eip7702")_t(x.authorizations||[],X);let $=bo(Y).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Z={...x,chainId:X,nonce:V,type:$,...Y==="eip7702"&&{authorizationList:x.authorizations}},_=N({chain:y,isEIP1559Compatible:n,provider:t}),F=Y!=="legacy"&&!(x.maxFeePerGas&&x.maxPriorityFeePerGas)||!x.gasPrice?Object.entries((await _())[T]).reduce((Q,[h,et])=>({...Q,[h]:C(BigInt(et))}),{}):{},g;try{g=C(x.gasLimit||await t.estimateGas(Z)*11n/10n)}catch(Q){throw new L("toolbox_evm_error_estimating_gas_limit",{error:Q})}try{let Q={...Z,gasLimit:g,...F};try{return(await o.sendTransaction(Q)).hash}catch{let h=await o.signTransaction({...Q,from:f});return(await t.broadcastTransaction(h)).hash}}catch(Q){throw new L("toolbox_evm_error_sending_transaction",{error:Q})}}}function jt({provider:t,signer:o}){return async function({assetValue:y,memo:u,recipient:T,data:l,sender:b,maxFeePerGas:M,maxPriorityFeePerGas:R,gasPrice:D,...U}){let x=y.getBaseValue("bigint"),f=y.chain,V=b||await o?.getAddress();if(!V)throw new L("toolbox_evm_no_from_address");if(Io(y)){let{hexlify:$,toUtf8Bytes:Z}=await import("ethers");return{...U,data:l||$(Z(u||"")),from:V,to:T,value:x}}let X=m(y,f);if(!X)throw new L("toolbox_evm_no_contract_address");return E({chain:y.chain,provider:t})({abi:P,contractAddress:X,funcName:"transfer",funcParams:[T,x],txOverrides:{from:V,gasPrice:D,maxFeePerGas:M,maxPriorityFeePerGas:R}})}}function io({provider:t,signer:o,chain:n}){return async function({assetAddress:u,spenderAddress:T,amount:l,from:b}){let M=await o?.getAddress()||b,R=E({chain:n,provider:t}),D=["bigint","number"].includes(typeof l)?l:l||p;return await R({abi:P,contractAddress:u,funcName:"approve",funcParams:[T,BigInt(D)],txOverrides:{from:M}})}}function ro({provider:t,isEIP1559Compatible:o=!0,chain:n}){return async function({feeOption:u=w.Fast,...T}){let b=await N({chain:n,isEIP1559Compatible:o,provider:t})(),M=await t.estimateGas(T),R=Oo.from({chain:n}),{gasPrice:D,maxFeePerGas:U,maxPriorityFeePerGas:x}=b[u];if(!o&&D)return R.set(i.fromBigInt(D*M,R.decimal));if(U&&x){let f=(U+x)*M;return R.set(i.fromBigInt(f,R.decimal))}throw new L("toolbox_evm_no_gas_price")}}var p,po,so,Kt,co,tt=(t)=>t.type===4||(t.authorizations?.length??0)>0,Ot=(t)=>!tt(t)&&(t.type===2||!!t.maxFeePerGas||!!t.maxPriorityFeePerGas),Ct=(t,o=!0)=>{if(tt(t))return"eip7702";if(Ot(t)||o)return"eip1559";return"legacy"};var ot=J(()=>{a();I();p=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");po=["payable","nonpayable"];so=Co.reduce((t,o)=>{return t[o]="0x0000000000000000000000000000000000000000",t},{}),Kt={...so,[z.Optimism]:"0x4200000000000000000000000000000000000042",[z.Polygon]:"0x0000000000000000000000000000000000001010"},co=[z.Arbitrum,z.Aurora,z.Base,z.Optimism]});import{Chain as q,FeeOption as tn}from"@swapkit/helpers";import{HDNodeWallet as on}from"ethers";import{match as nn,P as Lo}from"ts-pattern";function nt(t){let o=H(q.Ethereum)(t);async function n(y,u="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",l=tn.Fast){let b=await o.createContractTxObject({abi:yo,contractAddress:u,funcName:T,funcParams:[y]});return o.sendTransaction({...b,feeOptionKey:l})}return{...o,multicall:n}}function H(t){return function({provider:n,...y}){let u=Et(t),T=nn(y).with({phrase:Lo.string},({phrase:b})=>on.fromPhrase(b).connect(n)).with({signer:Lo.any},({signer:b})=>b).otherwise(()=>{return});return j({chain:t,isEIP1559Compatible:u,provider:n,signer:T})}}var yt,ut,Tt,lt,bt,Mt,xt,Bo,wt,Dt,Rt,Lt,Bt,ft,Gt,qt,Ht,Ut,c,Vt,Xt;var It=J(()=>{uo();I();ot();yt=H(q.Adi),ut=H(q.Arbitrum),Tt=H(q.Aurora),lt=H(q.Avalanche),bt=H(q.Base),Mt=H(q.Berachain),xt=H(q.BinanceSmartChain),Bo=H(q.Botanix),wt=H(q.Core),Dt=H(q.Corn),Rt=H(q.Cronos),Lt=H(q.Gnosis),Bt=H(q.Hyperevm),ft=H(q.Linea),Gt=H(q.Polygon),qt=H(q.MegaETH),Ht=H(q.Monad),Ut=H(q.Plasma),c=H(q.Sonic),Vt=H(q.Unichain),Xt=H(q.XLayer)});var fo;var Go=J(()=>{fo=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as K,Chain as un,FeeOption as k,SwapKitError as Pt}from"@swapkit/helpers";import{Contract as Tn,HDNodeWallet as ln}from"ethers";import{match as bn,P as qo}from"ts-pattern";function pt(t){return new Tn(Mn,fo,t)}function Ho(t){return async function(){let n=pt(t);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function Uo(t){return async function({from:n,to:y,nonce:u,...T}){let{Transaction:l}=await import("ethers");if(!y)throw new Pt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return l.from({...T,authorizationList:T.authorizationList,nonce:u?u:n?await t.getTransactionCount(n):0,to:y}).serialized}}function Vo(t){return async function(n){let y=pt(t),u=await Uo(t)(n);if(y&&"getL1Fee"in y)return y.getL1Fee(u)}}function Xo(t){return async function(n){let u=(await t.getFeeData()).gasPrice??0n,T=await t.estimateGas(n);return u*T}}function xn(t){return async function(n){let y=await Vo(t)(n)??0n,u=await Xo(t)(n);return y+u}}function wn(t){return async function(n){let y=pt(t),u=await Uo(t)(n);if(y&&"getL1GasUsed"in y)return y.getL1GasUsed(u)}}function Dn(t){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:y,gasPrice:u}=await t.getFeeData(),T=await Ho(t)(),l=u;if(!(n&&y))throw new Pt("toolbox_evm_no_fee_data");return{[k.Average]:{gasPrice:l,l1GasPrice:T,maxFeePerGas:n,maxPriorityFeePerGas:y},[k.Fast]:{gasPrice:K(l,k.Fast),l1GasPrice:K(T||0n,k.Fast),maxFeePerGas:n,maxPriorityFeePerGas:K(y,k.Fast)},[k.Fastest]:{gasPrice:K(l,k.Fastest),l1GasPrice:K(T||0n,k.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:K(y,k.Fastest)}}}catch(n){throw new Pt("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Wt({provider:t,...o}){let n=bn(o).with({phrase:qo.string},({phrase:T})=>ln.fromPhrase(T).connect(t)).with({signer:qo.any},({signer:T})=>T).otherwise(()=>{return}),y=j({provider:t,signer:n}),u=Ho(t);return{...y,estimateGasPrices:Dn(t),estimateL1Gas:wn(t),estimateL1GasCost:Vo(t),estimateL2GasCost:Xo(t),estimateTotalGasCost:xn(t),getBalance:O(un.Optimism).getBalance,getL1GasPrice:u}}var Mn="0x420000000000000000000000000000000000000f";var st=J(()=>{a();Go();ot()});var Ln={};gt(Ln,{validateEVMAddress:()=>St,toChecksumAddress:()=>Mo,isStateChangingCall:()=>mt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Ot,isBrowserProvider:()=>S,getTokenAddress:()=>m,getEvmToolboxAsync:()=>Wo,getEvmToolbox:()=>ct,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>E,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>xo,createContract:()=>s,XLayerToolbox:()=>Xt,UNIToolbox:()=>Vt,SONICToolbox:()=>c,PLASMAToolbox:()=>Ut,OPToolbox:()=>Wt,MONADToolbox:()=>Ht,MEGAETHToolbox:()=>qt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,LINEAToolbox:()=>ft,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Lt,ETHToolbox:()=>nt,ContractAddress:()=>Kt,CROToolbox:()=>Rt,CORNToolbox:()=>Dt,COREToolbox:()=>wt,BotanixToolbox:()=>Bo,BaseEVMToolbox:()=>j,BSCToolbox:()=>xt,BERAToolbox:()=>Mt,BASEToolbox:()=>bt,AVAXToolbox:()=>lt,AURORAToolbox:()=>Tt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});import{Chain as B}from"@swapkit/helpers";import{match as Rn}from"ts-pattern";function ct(t,o){return Rn(t).with(B.Adi,()=>yt(o)).with(B.Arbitrum,()=>ut(o)).with(B.Aurora,()=>Tt(o)).with(B.Avalanche,()=>lt(o)).with(B.Base,()=>bt(o)).with(B.Berachain,()=>Mt(o)).with(B.BinanceSmartChain,()=>xt(o)).with(B.Botanix,()=>c(o)).with(B.Core,()=>wt(o)).with(B.Corn,()=>Dt(o)).with(B.Cronos,()=>Rt(o)).with(B.Ethereum,()=>nt(o)).with(B.Gnosis,()=>Lt(o)).with(B.Hyperevm,()=>Bt(o)).with(B.Linea,()=>ft(o)).with(B.MegaETH,()=>qt(o)).with(B.Monad,()=>Ht(o)).with(B.Optimism,()=>Wt(o)).with(B.Plasma,()=>Ut(o)).with(B.Polygon,()=>Gt(o)).with(B.Sonic,()=>c(o)).with(B.Unichain,()=>Vt(o)).with(B.XLayer,()=>Xt(o)).exhaustive()}async function Wo(t,o){let n={...o,provider:o?.provider||await zt(t)};return ct(t,n)}var Yo=J(()=>{I();It();st();ot();It();st()});var Qo;var Zo=J(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Qo||={})});var Bn={};gt(Bn,{validateEVMAddress:()=>St,validateAuthorizations:()=>_t,validateAuthorization:()=>oo,toHexString:()=>C,toChecksumAddress:()=>Mo,signAuthorization:()=>Nt,parseEIP712FromEVMTx:()=>Fo,isStateChangingCall:()=>mt,isEIP7702Transaction:()=>tt,isEIP1559Transaction:()=>Ot,isBrowserProvider:()=>S,getTokenAddress:()=>m,getProviderSync:()=>to,getProvider:()=>zt,getNetworkParams:()=>kt,getIsEIP1559Compatible:()=>Et,getEvmToolboxAsync:()=>Wo,getEvmToolbox:()=>ct,getEvmApi:()=>O,getEstimateGasPrices:()=>N,getEVMTxType:()=>Ct,getEIP1193SendTransaction:()=>A,getCreateContractTxObject:()=>E,getCreateContract:()=>At,getChecksumAddressFromAsset:()=>xo,createCustomEvmApi:()=>_o,createContract:()=>s,buildEIP712DomainType:()=>no,XLayerToolbox:()=>Xt,UNIToolbox:()=>Vt,SONICToolbox:()=>c,PLASMAToolbox:()=>Ut,OPToolbox:()=>Wt,MONADToolbox:()=>Ht,MEGAETHToolbox:()=>qt,MAX_APPROVAL:()=>p,MATICToolbox:()=>Gt,LINEAToolbox:()=>ft,HYPEREVMToolbox:()=>Bt,GNOToolbox:()=>Lt,EthNetwork:()=>Qo,ETHToolbox:()=>nt,ContractAddress:()=>Kt,CROToolbox:()=>Rt,CORNToolbox:()=>Dt,COREToolbox:()=>wt,BotanixToolbox:()=>Bo,BaseEVMToolbox:()=>j,BSCToolbox:()=>xt,BERAToolbox:()=>Mt,BASEToolbox:()=>bt,AVAXToolbox:()=>lt,AURORAToolbox:()=>Tt,ARBToolbox:()=>ut,ADIToolbox:()=>yt});var fn=J(()=>{a();I();Yo();Zo()});fn();export{St as validateEVMAddress,_t as validateAuthorizations,oo as validateAuthorization,C as toHexString,Mo as toChecksumAddress,Nt as signAuthorization,Fo as parseEIP712FromEVMTx,mt as isStateChangingCall,tt as isEIP7702Transaction,Ot as isEIP1559Transaction,S as isBrowserProvider,m as getTokenAddress,to as getProviderSync,zt as getProvider,kt as getNetworkParams,Et as getIsEIP1559Compatible,Wo as getEvmToolboxAsync,ct as getEvmToolbox,O as getEvmApi,N as getEstimateGasPrices,Ct as getEVMTxType,A as getEIP1193SendTransaction,E as getCreateContractTxObject,At as getCreateContract,xo as getChecksumAddressFromAsset,_o as createCustomEvmApi,s as createContract,no as buildEIP712DomainType,Xt as XLayerToolbox,Vt as UNIToolbox,c as SONICToolbox,Ut as PLASMAToolbox,Wt as OPToolbox,Ht as MONADToolbox,qt as MEGAETHToolbox,p as MAX_APPROVAL,Gt as MATICToolbox,ft as LINEAToolbox,Bt as HYPEREVMToolbox,Lt as GNOToolbox,Qo as EthNetwork,nt as ETHToolbox,Kt as ContractAddress,Rt as CROToolbox,Dt as CORNToolbox,wt as COREToolbox,Bo as BotanixToolbox,j as BaseEVMToolbox,xt as BSCToolbox,Mt as BERAToolbox,bt as BASEToolbox,lt as AVAXToolbox,Tt as AURORAToolbox,ut as ARBToolbox,yt as ADIToolbox};
|