@swapkit/toolboxes 4.15.4 → 4.15.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/aptos/index.cjs +1 -1
- package/dist/src/cardano/index.cjs +1 -1
- package/dist/src/cosmos/index.cjs +1 -1
- package/dist/src/evm/index.cjs +1 -1
- package/dist/src/hypercore/index.cjs +1 -1
- package/dist/src/index.cjs +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/near/index.cjs +1 -1
- package/dist/src/near/index.js +1 -1
- package/dist/src/radix/index.cjs +1 -1
- package/dist/src/ripple/index.cjs +1 -1
- package/dist/src/solana/index.cjs +1 -1
- package/dist/src/starknet/index.cjs +1 -1
- package/dist/src/stellar/index.cjs +1 -1
- package/dist/src/substrate/index.cjs +1 -1
- package/dist/src/sui/index.cjs +1 -1
- package/dist/src/ton/index.cjs +1 -1
- package/dist/src/tron/index.cjs +1 -1
- package/dist/src/utxo/index.cjs +1 -1
- package/dist/types/near/helpers/core.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/src/evm/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function uniqid(){function now(){let time=Date.now(),lastTime=last||time;return last=lastTime,time>last?time:lastTime+1}return pid+now().toString(36)}function getBalance(chain){return async function(address,scamFilter=!0){let balances=await import_api.SwapKitApi.getChainBalance({address,chain,scamFilter}),{baseDecimal}=import_helpers.getChainConfig(chain),assetValues=balances.map(({identifier,value,decimal})=>{return new import_helpers.AssetValue({decimal:decimal||baseDecimal,identifier,value})});if(!assetValues.some((asset)=>asset.isGasAsset))return[import_helpers.AssetValue.from({chain}),...assetValues];return assetValues}}var import_helpers,import_api,pid,last=0;var init_utils=__esm(()=>{import_helpers=require("@swapkit/helpers"),import_api=require("@swapkit/helpers/api"),pid=typeof process<"u"&&process.pid?process.pid.toString(36):""});function getEvmApi(chain){return{getBalance:getBalance(chain)}}function createCustomEvmApi(methods){return methods}var init_api=__esm(()=>{init_utils()});function getProviderSync(url){return new import_ethers.JsonRpcProvider(url)}async function getProvider(chain,customUrl){return getProviderSync(customUrl||await import_helpers2.getRPCUrl(chain))}function toHexString(value){return value>0n?`0x${value.toString(16)}`:"0x0"}function getNetworkParams(chain){let{explorerUrl,chainIdHex,rpcUrls}=import_helpers2.getChainConfig(chain);return function(){return chain!==import_helpers2.Chain.Ethereum?{...getNetworkInfo({chain}),blockExplorerUrls:[explorerUrl],chainId:chainIdHex,rpcUrls}:void 0}}function getIsEIP1559Compatible(chain){return![import_helpers2.Chain.Adi,import_helpers2.Chain.Arbitrum,import_helpers2.Chain.BinanceSmartChain].includes(chain)}function getNetworkInfo({chain}){let{name,nativeCurrency,baseDecimal:decimals}=import_helpers2.getChainConfig(chain);return import_ts_pattern.match(chain).with(import_helpers2.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals,name:"Avalanche",symbol:chain}})).with(import_helpers2.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals,name:"Berachain",symbol:"BERA"}})).with(import_helpers2.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals,name:"OKB",symbol:"OKB"}})).with(import_helpers2.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals,name:"Binance Coin",symbol:"BNB"}})).with(import_helpers2.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals,name:"xDAI",symbol:"XDAI"}})).with(import_helpers2.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals,name:"Polygon",symbol:import_helpers2.Chain.Polygon}})).otherwise(()=>({chainName:name,nativeCurrency:{decimals,name:nativeCurrency,symbol:nativeCurrency}}))}async function signAuthorization(signer,params){if(!("authorize"in signer))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let normalizedParams={...params,nonce:params.nonce!==void 0?BigInt(params.nonce):void 0};return await signer.authorize(normalizedParams)}function validateAuthorization(auth,index){let prefix=index!==void 0?`index ${index}: `:"",throwError=(field,message)=>{throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field,message:`${prefix}${message}`}})};import_ts_pattern.match(auth).when(({chainId})=>typeof chainId!=="bigint",()=>throwError("chainId","chainId must be a bigint")).when(({address})=>!isValidAddress(address),()=>throwError("address","address must be a valid checksummed address")).when(({nonce})=>typeof nonce!=="bigint"||nonce<0n,()=>throwError("nonce","nonce must be a non-negative bigint")).when(({signature})=>!signature,()=>throwError("signature","signature is required")).when(({signature})=>typeof signature?.yParity!=="number"||![0,1].includes(signature.yParity),()=>throwError("signature.yParity","yParity must be 0 or 1")).when(({signature})=>!isValidHex32(signature?.r),()=>throwError("signature.r","r must be a 32-byte hex string")).when(({signature})=>!isValidHex32(signature?.s),()=>throwError("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function buildEIP712DomainType(domain){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key})=>domain[key]!=null).map(({key,type})=>({name:key,type}))}function toPascalCase(str){return str.charAt(0).toUpperCase()+str.slice(1)}function resolveEIP712Type(param,types){if(param.isTuple()&¶m.components){let typeName=toPascalCase(param.name);return types[typeName]=param.components.map((c)=>({name:c.name,type:resolveEIP712Type(c,types)})),typeName}if(param.isArray()){let child=param.arrayChildren;if(child?.isTuple()&&child.components){let typeName=toPascalCase(param.name.replace(/s$/,""));return types[typeName]=child.components.map((c)=>({name:c.name,type:resolveEIP712Type(c,types)})),`${typeName}[]`}return`${child?.type??"bytes"}[]`}return param.type}function resolveMessageValue(val,param){if(typeof val==="bigint")return val;if(param?.isTuple()&&typeof val?.toObject==="function"){let obj=val.toObject(),resolved={};for(let[i,comp]of(param.components??[]).entries())resolved[comp.name]=resolveMessageValue(obj[comp.name]??val[i],comp);return resolved}if(Array.isArray(val)){let child=param?.arrayChildren;return val.map((v)=>resolveMessageValue(v,child??void 0))}return val}function parseEIP712FromEVMTx({chain,abi,data,to}){let parsed=new import_ethers.Interface(abi).parseTransaction({data});if(!parsed)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let customTypes={},primaryType=toPascalCase(parsed.name);customTypes[primaryType]=parsed.fragment.inputs.map((input)=>({name:input.name,type:resolveEIP712Type(input,customTypes)}));let message={};for(let[i,input]of parsed.fragment.inputs.entries())message[input.name]=resolveMessageValue(parsed.args[i],input);let{chainId}=import_helpers2.getChainConfig(chain),domain={chainId:Number(chainId),verifyingContract:import_ethers.getAddress(to)},domainTypes=buildEIP712DomainType(domain);return{domain,message,primaryType,types:{EIP712Domain:domainTypes,...customTypes}}}function validateAuthorizations(authorizations,expectedChainId){if(!Array.isArray(authorizations)||authorizations.length===0)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[i,auth]of authorizations.entries())if(validateAuthorization(auth,i),expectedChainId!==void 0&&auth.chainId!==expectedChainId)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${i}: authorization chainId (${auth.chainId}) does not match transaction chainId (${expectedChainId})`}})}var import_helpers2,import_ethers,import_ts_pattern,isValidHex32=(v)=>typeof v==="string"&&/^0x[a-fA-F0-9]{64}$/.test(v),isValidAddress=(v)=>{try{return typeof v==="string"&&!!import_ethers.getAddress(v)}catch{return!1}};var init_helpers=__esm(()=>{import_helpers2=require("@swapkit/helpers"),import_ethers=require("ethers"),import_ts_pattern=require("ts-pattern")});var multicallAbi;var init_multicall=__esm(()=>{multicallAbi=[{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 BaseEVMToolbox({chain=import_helpers3.Chain.Ethereum,provider,signer,isEIP1559Compatible=!0}){return{approve:getApprove({chain,isEIP1559Compatible,provider,signer}),approvedAmount:getApprovedAmount({chain,provider}),broadcastTransaction:provider.broadcastTransaction,call:getCall({chain,isEIP1559Compatible,provider,signer}),createApprovalTx:getCreateApprovalTx({chain,provider,signer}),createContract:getCreateContract({chain,provider}),createContractTxObject:getCreateContractTxObject({chain,provider}),createTransaction:getCreateTransferTx({chain,provider,signer}),createTransferTx:getCreateTransferTx({chain,provider,signer}),EIP1193SendTransaction:getEIP1193SendTransaction(provider),estimateCall:getEstimateCall({provider,signer}),estimateGasLimit:getEstimateGasLimit({chain,provider,signer}),estimateGasPrices:getEstimateGasPrices({chain,isEIP1559Compatible,provider}),estimateTransactionFee:getEstimateTransactionFee({chain,isEIP1559Compatible,provider}),getAddress:()=>{return signer?signer.getAddress():void 0},getBalance:getEvmApi(chain).getBalance,getNetworkParams:getNetworkParams(chain),isApproved:getIsApproved({chain,provider}),sendTransaction:getSendTransaction({chain,isEIP1559Compatible,provider,signer}),signAuthorization:getSignAuthorization({signer}),signMessage:signer?(message)=>signer.signMessage(message):void 0,signTypedData:signer?({domain,types,value})=>signer.signTypedData(domain,types,value):void 0,transfer:getTransfer({chain,isEIP1559Compatible,provider,signer}),validateAddress:validateEVMAddress}}function validateEVMAddress(address){try{return import_ethers2.getAddress(address),!0}catch{return!1}}function isBrowserProvider(provider){return provider instanceof import_ethers2.BrowserProvider}function createContract(address,abi,provider){return new import_ethers2.Contract(address,import_ethers2.Interface.from(abi),provider)}function getCreateContract({provider}){return function(address,abi){return new import_ethers2.Contract(address,import_ethers2.Interface.from(abi),provider)}}function isStateChangingCall({abi,funcName}){let abiFragment=abi.find((fragment)=>fragment.name===funcName);if(!abiFragment)throw new import_helpers3.SwapKitError("toolbox_evm_no_abi_fragment",{funcName});return abiFragment.stateMutability&&stateMutable.includes(abiFragment.stateMutability)}function toChecksumAddress(address){return import_ethers2.getAddress(address)}function getEIP1193SendTransaction(provider){return function({value,...params}){if(!isBrowserProvider(provider))throw new import_helpers3.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_gasLimit,gasPrice:_gasPrice,maxFeePerGas:_maxFeePerGas,maxPriorityFeePerGas:_maxPriorityFeePerGas,...cleanParams}=params;return provider.send("eth_sendTransaction",[{...cleanParams,value:toHexString(BigInt(value||0))}])}}function getChecksumAddressFromAsset(asset,chain){let assetAddress=getTokenAddress(asset,chain);if(assetAddress)return import_ethers2.getAddress(assetAddress.toLowerCase());throw new import_helpers3.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function getTokenAddress({chain,symbol,ticker},baseAssetChain){try{let isBSCBNB=chain===import_helpers3.Chain.BinanceSmartChain&&symbol==="BNB"&&ticker==="BNB",isHyperevmHYPE=chain===import_helpers3.Chain.Hyperevm&&symbol==="HYPE"&&ticker==="HYPE",isBaseAsset=chain===baseAssetChain&&symbol===baseAssetChain&&ticker===baseAssetChain,isEVMAsset=ethGasChains.includes(chain)&&symbol==="ETH"&&ticker==="ETH";if(isBaseAsset||isBSCBNB||isHyperevmHYPE||isEVMAsset)return ContractAddress[baseAssetChain];return import_ethers2.getAddress(symbol.slice(ticker.length+1).replace(/^0X/,""))}catch{return null}}function getCreateContractTxObject({provider}){return async({contractAddress,abi,funcName,funcParams=[],txOverrides})=>createContract(contractAddress,abi,provider).getFunction(funcName).populateTransaction(...funcParams.concat(txOverrides).filter((p)=>typeof p<"u"))}function getEstimateGasPrices({chain,provider,isEIP1559Compatible=!0}){return import_ts_pattern2.match(chain).with(import_helpers3.Chain.Gnosis,()=>{return async function(){try{let{gasPrice,maxPriorityFeePerGas}=await provider.getFeeData();if(!gasPrice||maxPriorityFeePerGas===null)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers3.FeeOption.Average]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Average),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Average)},[import_helpers3.FeeOption.Fast]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fast),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fastest),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}).with(import_helpers3.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice}=await provider.getFeeData();if(!gasPrice)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");let bufferedGasPrice=gasPrice*12n/10n;return{[import_helpers3.FeeOption.Average]:{gasPrice:bufferedGasPrice},[import_helpers3.FeeOption.Fast]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(bufferedGasPrice,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(bufferedGasPrice,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=await provider.getFeeData();if(isEIP1559Compatible){if(maxFeePerGas===null||maxPriorityFeePerGas===null)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers3.FeeOption.Average]:{maxFeePerGas,maxPriorityFeePerGas},[import_helpers3.FeeOption.Fast]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxFeePerGas,import_helpers3.FeeOption.Fast),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxFeePerGas,import_helpers3.FeeOption.Fastest),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fastest)}}}if(!gasPrice)throw new import_helpers3.SwapKitError("toolbox_evm_no_gas_price");return{[import_helpers3.FeeOption.Average]:{gasPrice},[import_helpers3.FeeOption.Fast]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}})}function getCall({provider,isEIP1559Compatible,signer,chain}){return async function({callProvider,contractAddress,abi,funcName,funcParams=[],txOverrides={},feeOption=import_helpers3.FeeOption.Fast}){let contractProvider=callProvider||provider;if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let isStateChanging=isStateChangingCall({abi,funcName});if(isStateChanging&&isBrowserProvider(contractProvider)&&signer){let createTx=getCreateContractTxObject({chain,provider:contractProvider}),from=txOverrides?.from||await signer?.getAddress(),txObject=await createTx({abi,contractAddress,funcName,funcParams,txOverrides:{...txOverrides,from}});return getEIP1193SendTransaction(contractProvider)(txObject)}let contract=createContract(contractAddress,abi,contractProvider);if(isStateChanging){if(!signer)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer");let from=txOverrides?.from||await signer.getAddress();if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer_address");let connectedContract=contract.connect(signer),estimateGasPrices=getEstimateGasPrices({chain,isEIP1559Compatible,provider}),{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=(await estimateGasPrices())[feeOption],gasLimit=await contract.getFunction(funcName).estimateGas(...funcParams,txOverrides),result2=await connectedContract[funcName](...funcParams,{...txOverrides,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,nonce:txOverrides?.nonce||await contractProvider.getTransactionCount(from)});return typeof result2?.hash==="string"?result2?.hash:result2}let result=await contract[funcName]?.(...funcParams);return typeof result?.hash==="string"?result?.hash:result}}function getApprovedAmount({provider,chain}){return function({assetAddress,spenderAddress,from}){return getCall({chain,isEIP1559Compatible:!0,provider})({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"allowance",funcParams:[from,spenderAddress]})}}function getIsApproved({provider,chain}){return async function({assetAddress,spenderAddress,from,amount=MAX_APPROVAL}){let approvedAmount=await getApprovedAmount({chain,provider})({assetAddress,from,spenderAddress});return import_helpers3.SwapKitNumber.fromBigInt(approvedAmount).gte(import_helpers3.SwapKitNumber.fromBigInt(BigInt(amount)))}}function getApprove({signer,isEIP1559Compatible=!0,provider,chain}){return async function({assetAddress,spenderAddress,feeOptionKey=import_helpers3.FeeOption.Fast,amount,gasLimitFallback,from:fromParam,nonce}){let funcParams=[spenderAddress,BigInt(amount||MAX_APPROVAL)],from=await signer?.getAddress()||fromParam,functionCallParams={abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"approve",funcParams,signer,txOverrides:{from}};if(isBrowserProvider(provider)){let createTx=getCreateContractTxObject({chain,provider}),sendTx=getEIP1193SendTransaction(provider),txObject=await createTx(functionCallParams);return sendTx(txObject)}return getCall({chain,isEIP1559Compatible,provider,signer})({...functionCallParams,feeOption:feeOptionKey,funcParams,txOverrides:{from,gasLimit:gasLimitFallback?BigInt(gasLimitFallback.toString()):void 0,nonce}})}}function getTransfer({signer,isEIP1559Compatible=!0,provider}){return async function({assetValue,memo,recipient,feeOptionKey=import_helpers3.FeeOption.Fast,sender,...tx}){let{hexlify,toUtf8Bytes}=await import("ethers"),txAmount=assetValue.getBaseValue("bigint"),chain=assetValue.chain,from=sender||await signer?.getAddress(),sendTx=getSendTransaction({chain,isEIP1559Compatible,provider,signer});if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_from_address");if(assetValue.isGasAsset){let transaction2={...tx,data:hexlify(toUtf8Bytes(memo||"")),feeOptionKey,from,to:recipient,value:txAmount};return sendTx(transaction2)}if(!getTokenAddress(assetValue,chain))throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=(await getEstimateGasPrices({chain,isEIP1559Compatible,provider})())[feeOptionKey],transaction=await getCreateTransferTx({chain,provider,signer})({assetValue,data:hexlify(toUtf8Bytes(memo||"")),gasPrice,maxFeePerGas,maxPriorityFeePerGas,memo,recipient,sender:from});return sendTx(transaction)}}function getEstimateCall({provider,signer}){return function({contractAddress,abi,funcName,funcParams=[],txOverrides}){if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");let contract=createContract(contractAddress,abi,provider);return signer?contract.connect(signer).getFunction(funcName).estimateGas(...funcParams,txOverrides):contract.getFunction(funcName).estimateGas(...funcParams,txOverrides)}}function getEstimateGasLimit({provider,signer}){return async function({assetValue,recipient,memo,data,sender,funcName,funcParams,txOverrides}){let value=assetValue.bigIntValue,assetAddress=assetValue.isGasAsset?null:getTokenAddress(assetValue,assetValue.chain);if(assetAddress&&funcName)return getEstimateCall({provider,signer})({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName,funcParams,txOverrides});let{hexlify,toUtf8Bytes}=await import("ethers");return provider.estimateGas({data:data?data:memo?hexlify(toUtf8Bytes(memo)):void 0,from:sender,to:recipient,value})}}function getSignAuthorization({signer}){if(!signer)return;return(params)=>signAuthorization(signer,params)}function getSendTransaction({provider,signer,isEIP1559Compatible=!0,chain}){return async function({feeOptionKey=import_helpers3.FeeOption.Fast,...tx}){let{from,to,data,value,...transaction}=tx;if(!signer)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer");if(!to)throw new import_helpers3.SwapKitError("toolbox_evm_no_to_address");let parsedTxObject={...transaction,data:data||"0x",from,to,value:BigInt(value||0)};if(isBrowserProvider(provider))return getEIP1193SendTransaction(provider)(parsedTxObject);let address=from||await signer.getAddress(),nonce=tx.nonce||await provider.getTransactionCount(address),chainId=(await provider.getNetwork()).chainId,txType=getEVMTxType(parsedTxObject,isEIP1559Compatible);if(txType==="eip7702")validateAuthorizations(parsedTxObject.authorizations||[],chainId);let txTypeNum=import_ts_pattern2.match(txType).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),baseTxObject={...parsedTxObject,chainId,nonce,type:txTypeNum,...txType==="eip7702"&&{authorizationList:parsedTxObject.authorizations}},estimateGasPrices=getEstimateGasPrices({chain,isEIP1559Compatible,provider}),feeData=txType!=="legacy"&&!(parsedTxObject.maxFeePerGas&&parsedTxObject.maxPriorityFeePerGas)||!parsedTxObject.gasPrice?Object.entries((await estimateGasPrices())[feeOptionKey]).reduce((acc,[k,v])=>({...acc,[k]:toHexString(BigInt(v))}),{}):{},gasLimit;try{gasLimit=toHexString(parsedTxObject.gasLimit||await provider.estimateGas(baseTxObject)*11n/10n)}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error})}try{let txObject={...baseTxObject,gasLimit,...feeData};try{return(await signer.sendTransaction(txObject)).hash}catch{let txHex=await signer.signTransaction({...txObject,from:address});return(await provider.broadcastTransaction(txHex)).hash}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_error_sending_transaction",{error})}}}function getCreateTransferTx({provider,signer}){return async function({assetValue,memo,recipient,data,sender:fromOverride,maxFeePerGas,maxPriorityFeePerGas,gasPrice,...tx}){let txAmount=assetValue.getBaseValue("bigint"),chain=assetValue.chain,from=fromOverride||await signer?.getAddress();if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_from_address");if(import_helpers3.isGasAsset(assetValue)){let{hexlify,toUtf8Bytes}=await import("ethers");return{...tx,data:data||hexlify(toUtf8Bytes(memo||"")),from,to:recipient,value:txAmount}}let contractAddress=getTokenAddress(assetValue,chain);if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");return getCreateContractTxObject({chain:assetValue.chain,provider})({abi:import_contracts.erc20ABI,contractAddress,funcName:"transfer",funcParams:[recipient,txAmount],txOverrides:{from,gasPrice,maxFeePerGas,maxPriorityFeePerGas}})}}function getCreateApprovalTx({provider,signer,chain}){return async function({assetAddress,spenderAddress,amount,from:fromParam}){let from=await signer?.getAddress()||fromParam,createTx=getCreateContractTxObject({chain,provider}),approvalAmount=["bigint","number"].includes(typeof amount)?amount:amount||MAX_APPROVAL;return await createTx({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"approve",funcParams:[spenderAddress,BigInt(approvalAmount)],txOverrides:{from}})}}function getEstimateTransactionFee({provider,isEIP1559Compatible=!0,chain}){return async function({feeOption=import_helpers3.FeeOption.Fast,...txObject}){let gasPrices=await getEstimateGasPrices({chain,isEIP1559Compatible,provider})(),gasLimit=await provider.estimateGas(txObject),assetValue=import_helpers3.AssetValue.from({chain}),{gasPrice,maxFeePerGas,maxPriorityFeePerGas}=gasPrices[feeOption];if(!isEIP1559Compatible&&gasPrice)return assetValue.set(import_helpers3.SwapKitNumber.fromBigInt(gasPrice*gasLimit,assetValue.decimal));if(maxFeePerGas&&maxPriorityFeePerGas){let fee=(maxFeePerGas+maxPriorityFeePerGas)*gasLimit;return assetValue.set(import_helpers3.SwapKitNumber.fromBigInt(fee,assetValue.decimal))}throw new import_helpers3.SwapKitError("toolbox_evm_no_gas_price")}}var import_helpers3,import_contracts,import_ethers2,import_ts_pattern2,MAX_APPROVAL,stateMutable,baseContractAddresses,ContractAddress,ethGasChains,isEIP7702Transaction=(tx)=>tx.type===4||(tx.authorizations?.length??0)>0,isEIP1559Transaction=(tx)=>!isEIP7702Transaction(tx)&&(tx.type===2||!!tx.maxFeePerGas||!!tx.maxPriorityFeePerGas),getEVMTxType=(tx,isEIP1559Compatible=!0)=>{if(isEIP7702Transaction(tx))return"eip7702";if(isEIP1559Transaction(tx)||isEIP1559Compatible)return"eip1559";return"legacy"};var init_baseEVMToolbox=__esm(()=>{init_api();init_helpers();import_helpers3=require("@swapkit/helpers"),import_contracts=require("@swapkit/helpers/contracts"),import_ethers2=require("ethers"),import_ts_pattern2=require("ts-pattern"),MAX_APPROVAL=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");stateMutable=["payable","nonpayable"];baseContractAddresses=import_helpers3.EVMChains.reduce((acc,chain)=>{return acc[chain]="0x0000000000000000000000000000000000000000",acc},{}),ContractAddress={...baseContractAddresses,[import_helpers3.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[import_helpers3.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},ethGasChains=[import_helpers3.Chain.Arbitrum,import_helpers3.Chain.Aurora,import_helpers3.Chain.Base,import_helpers3.Chain.Optimism]});function ETHToolbox(params){let evmToolbox=createEvmToolbox(import_helpers5.Chain.Ethereum)(params);async function multicall(callTuples,multicallAddress="0x5ba1e12693dc8f9c48aad8770482f4739beed696",funcName="aggregate",feeOptionKey=import_helpers5.FeeOption.Fast){let txObject=await evmToolbox.createContractTxObject({abi:multicallAbi,contractAddress:multicallAddress,funcName,funcParams:[callTuples]});return evmToolbox.sendTransaction({...txObject,feeOptionKey})}return{...evmToolbox,multicall}}function createEvmToolbox(chain){return function({provider,...toolboxParams}){let isEIP1559Compatible=getIsEIP1559Compatible(chain),signer=import_ts_pattern3.match(toolboxParams).with({phrase:import_ts_pattern3.P.string},({phrase})=>import_ethers3.HDNodeWallet.fromPhrase(phrase).connect(provider)).with({signer:import_ts_pattern3.P.any},({signer:signer2})=>signer2).otherwise(()=>{return});return BaseEVMToolbox({chain,isEIP1559Compatible,provider,signer})}}var import_helpers5,import_ethers3,import_ts_pattern3,ADIToolbox,ARBToolbox,AURORAToolbox,AVAXToolbox,BASEToolbox,BERAToolbox,BSCToolbox,BotanixToolbox,COREToolbox,CORNToolbox,CROToolbox,GNOToolbox,HYPEREVMToolbox,MATICToolbox,SONICToolbox,UNIToolbox,XLayerToolbox,MONADToolbox,MEGAETHToolbox;var init_evm=__esm(()=>{init_multicall();init_helpers();init_baseEVMToolbox();import_helpers5=require("@swapkit/helpers"),import_ethers3=require("ethers"),import_ts_pattern3=require("ts-pattern");ADIToolbox=createEvmToolbox(import_helpers5.Chain.Adi),ARBToolbox=createEvmToolbox(import_helpers5.Chain.Arbitrum),AURORAToolbox=createEvmToolbox(import_helpers5.Chain.Aurora),AVAXToolbox=createEvmToolbox(import_helpers5.Chain.Avalanche),BASEToolbox=createEvmToolbox(import_helpers5.Chain.Base),BERAToolbox=createEvmToolbox(import_helpers5.Chain.Berachain),BSCToolbox=createEvmToolbox(import_helpers5.Chain.BinanceSmartChain),BotanixToolbox=createEvmToolbox(import_helpers5.Chain.Botanix),COREToolbox=createEvmToolbox(import_helpers5.Chain.Core),CORNToolbox=createEvmToolbox(import_helpers5.Chain.Corn),CROToolbox=createEvmToolbox(import_helpers5.Chain.Cronos),GNOToolbox=createEvmToolbox(import_helpers5.Chain.Gnosis),HYPEREVMToolbox=createEvmToolbox(import_helpers5.Chain.Hyperevm),MATICToolbox=createEvmToolbox(import_helpers5.Chain.Polygon),SONICToolbox=createEvmToolbox(import_helpers5.Chain.Sonic),UNIToolbox=createEvmToolbox(import_helpers5.Chain.Unichain),XLayerToolbox=createEvmToolbox(import_helpers5.Chain.XLayer),MONADToolbox=createEvmToolbox(import_helpers5.Chain.Monad),MEGAETHToolbox=createEvmToolbox(import_helpers5.Chain.MegaETH)});var gasOracleAbi;var init_gasOracle=__esm(()=>{gasOracleAbi=[{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 connectGasPriceOracle(provider){return new import_ethers4.Contract(GAS_PRICE_ORACLE_ADDRESS,gasOracleAbi,provider)}function getL1GasPriceFetcher(provider){return async function(){let gasPriceOracle=connectGasPriceOracle(provider);if(gasPriceOracle&&"l1BaseFee"in gasPriceOracle)return await gasPriceOracle?.l1BaseFee();return}}function serializeTx(provider){return async function({from,to,nonce,...tx}){let{Transaction}=await import("ethers");if(!to)throw new import_helpers7.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Transaction.from({...tx,authorizationList:tx.authorizationList,nonce:nonce?nonce:from?await provider.getTransactionCount(from):0,to}).serialized}}function estimateL1GasCost(provider){return async function(tx){let gasPriceOracle=connectGasPriceOracle(provider),serializedTx=await serializeTx(provider)(tx);if(gasPriceOracle&&"getL1Fee"in gasPriceOracle)return gasPriceOracle.getL1Fee(serializedTx)}}function estimateL2GasCost(provider){return async function(tx){let l2GasPrice=(await provider.getFeeData()).gasPrice??0n,l2GasCost=await provider.estimateGas(tx);return l2GasPrice*l2GasCost}}function estimateTotalGasCost(provider){return async function(tx){let l1GasCost=await estimateL1GasCost(provider)(tx)??0n,l2GasCost=await estimateL2GasCost(provider)(tx);return l1GasCost+l2GasCost}}function estimateL1Gas(provider){return async function(tx){let gasPriceOracle=connectGasPriceOracle(provider),serializedTx=await serializeTx(provider)(tx);if(gasPriceOracle&&"getL1GasUsed"in gasPriceOracle)return gasPriceOracle.getL1GasUsed(serializedTx)}}function estimateGasPrices(provider){return async function(){try{let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=await provider.getFeeData(),l1GasPrice=await getL1GasPriceFetcher(provider)(),price=gasPrice;if(!(maxFeePerGas&&maxPriorityFeePerGas))throw new import_helpers7.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers7.FeeOption.Average]:{gasPrice:price,l1GasPrice,maxFeePerGas,maxPriorityFeePerGas},[import_helpers7.FeeOption.Fast]:{gasPrice:import_helpers7.applyFeeMultiplierToBigInt(price,import_helpers7.FeeOption.Fast),l1GasPrice:import_helpers7.applyFeeMultiplierToBigInt(l1GasPrice||0n,import_helpers7.FeeOption.Fast),maxFeePerGas,maxPriorityFeePerGas:import_helpers7.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers7.FeeOption.Fast)},[import_helpers7.FeeOption.Fastest]:{gasPrice:import_helpers7.applyFeeMultiplierToBigInt(price,import_helpers7.FeeOption.Fastest),l1GasPrice:import_helpers7.applyFeeMultiplierToBigInt(l1GasPrice||0n,import_helpers7.FeeOption.Fastest),maxFeePerGas,maxPriorityFeePerGas:import_helpers7.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers7.FeeOption.Fastest)}}}catch(error){throw new import_helpers7.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}function OPToolbox({provider,...toolboxSignerParams}){let signer=import_ts_pattern4.match(toolboxSignerParams).with({phrase:import_ts_pattern4.P.string},({phrase})=>import_ethers4.HDNodeWallet.fromPhrase(phrase).connect(provider)).with({signer:import_ts_pattern4.P.any},({signer:signer2})=>signer2).otherwise(()=>{return}),evmToolbox=BaseEVMToolbox({provider,signer}),getL1GasPrice=getL1GasPriceFetcher(provider);return{...evmToolbox,estimateGasPrices:estimateGasPrices(provider),estimateL1Gas:estimateL1Gas(provider),estimateL1GasCost:estimateL1GasCost(provider),estimateL2GasCost:estimateL2GasCost(provider),estimateTotalGasCost:estimateTotalGasCost(provider),getBalance:getEvmApi(import_helpers7.Chain.Optimism).getBalance,getL1GasPrice}}var import_helpers7,import_ethers4,import_ts_pattern4,GAS_PRICE_ORACLE_ADDRESS="0x420000000000000000000000000000000000000f";var init_op=__esm(()=>{init_api();init_gasOracle();init_baseEVMToolbox();import_helpers7=require("@swapkit/helpers"),import_ethers4=require("ethers"),import_ts_pattern4=require("ts-pattern")});var exports_toolbox={};__export(exports_toolbox,{validateEVMAddress:()=>validateEVMAddress,toChecksumAddress:()=>toChecksumAddress,isStateChangingCall:()=>isStateChangingCall,isEIP7702Transaction:()=>isEIP7702Transaction,isEIP1559Transaction:()=>isEIP1559Transaction,isBrowserProvider:()=>isBrowserProvider,getTokenAddress:()=>getTokenAddress,getEvmToolboxAsync:()=>getEvmToolboxAsync,getEvmToolbox:()=>getEvmToolbox,getEstimateGasPrices:()=>getEstimateGasPrices,getEVMTxType:()=>getEVMTxType,getEIP1193SendTransaction:()=>getEIP1193SendTransaction,getCreateContractTxObject:()=>getCreateContractTxObject,getCreateContract:()=>getCreateContract,getChecksumAddressFromAsset:()=>getChecksumAddressFromAsset,createContract:()=>createContract,XLayerToolbox:()=>XLayerToolbox,UNIToolbox:()=>UNIToolbox,SONICToolbox:()=>SONICToolbox,OPToolbox:()=>OPToolbox,MONADToolbox:()=>MONADToolbox,MEGAETHToolbox:()=>MEGAETHToolbox,MAX_APPROVAL:()=>MAX_APPROVAL,MATICToolbox:()=>MATICToolbox,HYPEREVMToolbox:()=>HYPEREVMToolbox,GNOToolbox:()=>GNOToolbox,ETHToolbox:()=>ETHToolbox,ContractAddress:()=>ContractAddress,CROToolbox:()=>CROToolbox,CORNToolbox:()=>CORNToolbox,COREToolbox:()=>COREToolbox,BotanixToolbox:()=>BotanixToolbox,BaseEVMToolbox:()=>BaseEVMToolbox,BSCToolbox:()=>BSCToolbox,BERAToolbox:()=>BERAToolbox,BASEToolbox:()=>BASEToolbox,AVAXToolbox:()=>AVAXToolbox,AURORAToolbox:()=>AURORAToolbox,ARBToolbox:()=>ARBToolbox,ADIToolbox:()=>ADIToolbox});function getEvmToolbox(chain,params){return import_ts_pattern5.match(chain).with(import_helpers8.Chain.Adi,()=>ADIToolbox(params)).with(import_helpers8.Chain.Arbitrum,()=>ARBToolbox(params)).with(import_helpers8.Chain.Aurora,()=>AURORAToolbox(params)).with(import_helpers8.Chain.Avalanche,()=>AVAXToolbox(params)).with(import_helpers8.Chain.Base,()=>BASEToolbox(params)).with(import_helpers8.Chain.Berachain,()=>BERAToolbox(params)).with(import_helpers8.Chain.BinanceSmartChain,()=>BSCToolbox(params)).with(import_helpers8.Chain.Botanix,()=>SONICToolbox(params)).with(import_helpers8.Chain.Core,()=>COREToolbox(params)).with(import_helpers8.Chain.Corn,()=>CORNToolbox(params)).with(import_helpers8.Chain.Cronos,()=>CROToolbox(params)).with(import_helpers8.Chain.Ethereum,()=>ETHToolbox(params)).with(import_helpers8.Chain.Gnosis,()=>GNOToolbox(params)).with(import_helpers8.Chain.Hyperevm,()=>HYPEREVMToolbox(params)).with(import_helpers8.Chain.Optimism,()=>OPToolbox(params)).with(import_helpers8.Chain.Polygon,()=>MATICToolbox(params)).with(import_helpers8.Chain.Sonic,()=>SONICToolbox(params)).with(import_helpers8.Chain.Unichain,()=>UNIToolbox(params)).with(import_helpers8.Chain.XLayer,()=>XLayerToolbox(params)).with(import_helpers8.Chain.Monad,()=>MONADToolbox(params)).with(import_helpers8.Chain.MegaETH,()=>MEGAETHToolbox(params)).exhaustive()}async function getEvmToolboxAsync(chain,params){let toolboxParams={...params,provider:params?.provider||await getProvider(chain)};return getEvmToolbox(chain,toolboxParams)}var import_helpers8,import_ts_pattern5;var init_toolbox=__esm(()=>{init_helpers();init_evm();init_op();import_helpers8=require("@swapkit/helpers"),import_ts_pattern5=require("ts-pattern");init_baseEVMToolbox();init_evm();init_op()});var EthNetwork;var init_types=__esm(()=>{((EthNetwork2)=>{EthNetwork2.Test="goerli";EthNetwork2.Main="homestead"})(EthNetwork||={})});var exports_evm2={};__export(exports_evm2,{validateEVMAddress:()=>validateEVMAddress,validateAuthorizations:()=>validateAuthorizations,validateAuthorization:()=>validateAuthorization,toHexString:()=>toHexString,toChecksumAddress:()=>toChecksumAddress,signAuthorization:()=>signAuthorization,parseEIP712FromEVMTx:()=>parseEIP712FromEVMTx,isStateChangingCall:()=>isStateChangingCall,isEIP7702Transaction:()=>isEIP7702Transaction,isEIP1559Transaction:()=>isEIP1559Transaction,isBrowserProvider:()=>isBrowserProvider,getTokenAddress:()=>getTokenAddress,getProviderSync:()=>getProviderSync,getProvider:()=>getProvider,getNetworkParams:()=>getNetworkParams,getIsEIP1559Compatible:()=>getIsEIP1559Compatible,getEvmToolboxAsync:()=>getEvmToolboxAsync,getEvmToolbox:()=>getEvmToolbox,getEvmApi:()=>getEvmApi,getEstimateGasPrices:()=>getEstimateGasPrices,getEVMTxType:()=>getEVMTxType,getEIP1193SendTransaction:()=>getEIP1193SendTransaction,getCreateContractTxObject:()=>getCreateContractTxObject,getCreateContract:()=>getCreateContract,getChecksumAddressFromAsset:()=>getChecksumAddressFromAsset,createCustomEvmApi:()=>createCustomEvmApi,createContract:()=>createContract,buildEIP712DomainType:()=>buildEIP712DomainType,XLayerToolbox:()=>XLayerToolbox,UNIToolbox:()=>UNIToolbox,SONICToolbox:()=>SONICToolbox,OPToolbox:()=>OPToolbox,MONADToolbox:()=>MONADToolbox,MEGAETHToolbox:()=>MEGAETHToolbox,MAX_APPROVAL:()=>MAX_APPROVAL,MATICToolbox:()=>MATICToolbox,HYPEREVMToolbox:()=>HYPEREVMToolbox,GNOToolbox:()=>GNOToolbox,EthNetwork:()=>EthNetwork,ETHToolbox:()=>ETHToolbox,ContractAddress:()=>ContractAddress,CROToolbox:()=>CROToolbox,CORNToolbox:()=>CORNToolbox,COREToolbox:()=>COREToolbox,BotanixToolbox:()=>BotanixToolbox,BaseEVMToolbox:()=>BaseEVMToolbox,BSCToolbox:()=>BSCToolbox,BERAToolbox:()=>BERAToolbox,BASEToolbox:()=>BASEToolbox,AVAXToolbox:()=>AVAXToolbox,AURORAToolbox:()=>AURORAToolbox,ARBToolbox:()=>ARBToolbox,ADIToolbox:()=>ADIToolbox});module.exports=__toCommonJS(exports_evm2);var init_evm2=__esm(()=>{init_api();init_helpers();init_toolbox();init_types()});init_evm2();
|
|
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 +1 @@
|
|
|
1
|
-
var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames,getOwnPropertyDescriptor:__getOwnPropDesc}=Object,__hasOwnProp=Object.prototype.hasOwnProperty;function __accessProp(key){return this[key]}var __toESMCache_node,__toESMCache_esm,__toESM=(mod,isNodeMode,target)=>{var canCache=mod!=null&&typeof mod==="object";if(canCache){var cache=isNodeMode?__toESMCache_node??=new WeakMap:__toESMCache_esm??=new WeakMap,cached=cache.get(mod);if(cached)return cached}target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,"default",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:__accessProp.bind(mod,key),enumerable:!0});if(canCache)cache.set(mod,to);return to},__toCommonJS=(from)=>{var entry=(__moduleCache??=new WeakMap).get(from),desc;if(entry)return entry;if(entry=__defProp({},"__esModule",{value:!0}),from&&typeof from==="object"||typeof from==="function"){for(var key of __getOwnPropNames(from))if(!__hasOwnProp.call(entry,key))__defProp(entry,key,{get:__accessProp.bind(from,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable})}return __moduleCache.set(from,entry),entry},__moduleCache;var __returnValue=(v)=>v;function __exportSetter(name,newValue){this[name]=__returnValue.bind(null,newValue)}var __export=(target,all)=>{for(var name in all)__defProp(target,name,{get:all[name],enumerable:!0,configurable:!0,set:__exportSetter.bind(all,name)})};var __esm=(fn,res)=>()=>(fn&&(res=fn(fn=0)),res);function uniqid(){function now(){let time=Date.now(),lastTime=last||time;return last=lastTime,time>last?time:lastTime+1}return pid+now().toString(36)}function getBalance(chain){return async function(address,scamFilter=!0){let balances=await import_api.SwapKitApi.getChainBalance({address,chain,scamFilter}),{baseDecimal}=import_helpers.getChainConfig(chain),assetValues=balances.map(({identifier,value,decimal})=>{return new import_helpers.AssetValue({decimal:decimal||baseDecimal,identifier,value})});if(!assetValues.some((asset)=>asset.isGasAsset))return[import_helpers.AssetValue.from({chain}),...assetValues];return assetValues}}var import_helpers,import_api,pid,last=0;var init_utils=__esm(()=>{import_helpers=require("@swapkit/helpers"),import_api=require("@swapkit/helpers/api"),pid=typeof process<"u"&&process.pid?process.pid.toString(36):""});function getEvmApi(chain){return{getBalance:getBalance(chain)}}function createCustomEvmApi(methods){return methods}var init_api=__esm(()=>{init_utils()});function getProviderSync(url){return new import_ethers.JsonRpcProvider(url)}async function getProvider(chain,customUrl){return getProviderSync(customUrl||await import_helpers2.getRPCUrl(chain))}function toHexString(value){return value>0n?`0x${value.toString(16)}`:"0x0"}function getNetworkParams(chain){let{explorerUrl,chainIdHex,rpcUrls}=import_helpers2.getChainConfig(chain);return function(){return chain!==import_helpers2.Chain.Ethereum?{...getNetworkInfo({chain}),blockExplorerUrls:[explorerUrl],chainId:chainIdHex,rpcUrls}:void 0}}function getIsEIP1559Compatible(chain){return![import_helpers2.Chain.Adi,import_helpers2.Chain.Arbitrum,import_helpers2.Chain.BinanceSmartChain].includes(chain)}function getNetworkInfo({chain}){let{name,nativeCurrency,baseDecimal:decimals}=import_helpers2.getChainConfig(chain);return import_ts_pattern.match(chain).with(import_helpers2.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals,name:"Avalanche",symbol:chain}})).with(import_helpers2.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals,name:"Berachain",symbol:"BERA"}})).with(import_helpers2.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals,name:"OKB",symbol:"OKB"}})).with(import_helpers2.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals,name:"Binance Coin",symbol:"BNB"}})).with(import_helpers2.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals,name:"xDAI",symbol:"XDAI"}})).with(import_helpers2.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals,name:"Ethereum",symbol:import_helpers2.Chain.Ethereum}})).with(import_helpers2.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals,name:"Polygon",symbol:import_helpers2.Chain.Polygon}})).otherwise(()=>({chainName:name,nativeCurrency:{decimals,name:nativeCurrency,symbol:nativeCurrency}}))}async function signAuthorization(signer,params){if(!("authorize"in signer))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let normalizedParams={...params,nonce:params.nonce!==void 0?BigInt(params.nonce):void 0};return await signer.authorize(normalizedParams)}function validateAuthorization(auth,index){let prefix=index!==void 0?`index ${index}: `:"",throwError=(field,message)=>{throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field,message:`${prefix}${message}`}})};import_ts_pattern.match(auth).when(({chainId})=>typeof chainId!=="bigint",()=>throwError("chainId","chainId must be a bigint")).when(({address})=>!isValidAddress(address),()=>throwError("address","address must be a valid checksummed address")).when(({nonce})=>typeof nonce!=="bigint"||nonce<0n,()=>throwError("nonce","nonce must be a non-negative bigint")).when(({signature})=>!signature,()=>throwError("signature","signature is required")).when(({signature})=>typeof signature?.yParity!=="number"||![0,1].includes(signature.yParity),()=>throwError("signature.yParity","yParity must be 0 or 1")).when(({signature})=>!isValidHex32(signature?.r),()=>throwError("signature.r","r must be a 32-byte hex string")).when(({signature})=>!isValidHex32(signature?.s),()=>throwError("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function buildEIP712DomainType(domain){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key})=>domain[key]!=null).map(({key,type})=>({name:key,type}))}function toPascalCase(str){return str.charAt(0).toUpperCase()+str.slice(1)}function resolveEIP712Type(param,types){if(param.isTuple()&¶m.components){let typeName=toPascalCase(param.name);return types[typeName]=param.components.map((c)=>({name:c.name,type:resolveEIP712Type(c,types)})),typeName}if(param.isArray()){let child=param.arrayChildren;if(child?.isTuple()&&child.components){let typeName=toPascalCase(param.name.replace(/s$/,""));return types[typeName]=child.components.map((c)=>({name:c.name,type:resolveEIP712Type(c,types)})),`${typeName}[]`}return`${child?.type??"bytes"}[]`}return param.type}function resolveMessageValue(val,param){if(typeof val==="bigint")return val;if(param?.isTuple()&&typeof val?.toObject==="function"){let obj=val.toObject(),resolved={};for(let[i,comp]of(param.components??[]).entries())resolved[comp.name]=resolveMessageValue(obj[comp.name]??val[i],comp);return resolved}if(Array.isArray(val)){let child=param?.arrayChildren;return val.map((v)=>resolveMessageValue(v,child??void 0))}return val}function parseEIP712FromEVMTx({chain,abi,data,to}){let parsed=new import_ethers.Interface(abi).parseTransaction({data});if(!parsed)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let customTypes={},primaryType=toPascalCase(parsed.name);customTypes[primaryType]=parsed.fragment.inputs.map((input)=>({name:input.name,type:resolveEIP712Type(input,customTypes)}));let message={};for(let[i,input]of parsed.fragment.inputs.entries())message[input.name]=resolveMessageValue(parsed.args[i],input);let{chainId}=import_helpers2.getChainConfig(chain),domain={chainId:Number(chainId),verifyingContract:import_ethers.getAddress(to)},domainTypes=buildEIP712DomainType(domain);return{domain,message,primaryType,types:{EIP712Domain:domainTypes,...customTypes}}}function validateAuthorizations(authorizations,expectedChainId){if(!Array.isArray(authorizations)||authorizations.length===0)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[i,auth]of authorizations.entries())if(validateAuthorization(auth,i),expectedChainId!==void 0&&auth.chainId!==expectedChainId)throw new import_helpers2.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${i}: authorization chainId (${auth.chainId}) does not match transaction chainId (${expectedChainId})`}})}var import_helpers2,import_ethers,import_ts_pattern,isValidHex32=(v)=>typeof v==="string"&&/^0x[a-fA-F0-9]{64}$/.test(v),isValidAddress=(v)=>{try{return typeof v==="string"&&!!import_ethers.getAddress(v)}catch{return!1}};var init_helpers=__esm(()=>{import_helpers2=require("@swapkit/helpers"),import_ethers=require("ethers"),import_ts_pattern=require("ts-pattern")});var multicallAbi;var init_multicall=__esm(()=>{multicallAbi=[{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 BaseEVMToolbox({chain=import_helpers3.Chain.Ethereum,provider,signer,isEIP1559Compatible=!0}){return{approve:getApprove({chain,isEIP1559Compatible,provider,signer}),approvedAmount:getApprovedAmount({chain,provider}),broadcastTransaction:provider.broadcastTransaction,call:getCall({chain,isEIP1559Compatible,provider,signer}),createApprovalTx:getCreateApprovalTx({chain,provider,signer}),createContract:getCreateContract({chain,provider}),createContractTxObject:getCreateContractTxObject({chain,provider}),createTransaction:getCreateTransferTx({chain,provider,signer}),createTransferTx:getCreateTransferTx({chain,provider,signer}),EIP1193SendTransaction:getEIP1193SendTransaction(provider),estimateCall:getEstimateCall({provider,signer}),estimateGasLimit:getEstimateGasLimit({chain,provider,signer}),estimateGasPrices:getEstimateGasPrices({chain,isEIP1559Compatible,provider}),estimateTransactionFee:getEstimateTransactionFee({chain,isEIP1559Compatible,provider}),getAddress:()=>{return signer?signer.getAddress():void 0},getBalance:getEvmApi(chain).getBalance,getNetworkParams:getNetworkParams(chain),isApproved:getIsApproved({chain,provider}),sendTransaction:getSendTransaction({chain,isEIP1559Compatible,provider,signer}),signAuthorization:getSignAuthorization({signer}),signMessage:signer?(message)=>signer.signMessage(message):void 0,signTypedData:signer?({domain,types,value})=>signer.signTypedData(domain,types,value):void 0,transfer:getTransfer({chain,isEIP1559Compatible,provider,signer}),validateAddress:validateEVMAddress}}function validateEVMAddress(address){try{return import_ethers2.getAddress(address),!0}catch{return!1}}function isBrowserProvider(provider){return provider instanceof import_ethers2.BrowserProvider}function createContract(address,abi,provider){return new import_ethers2.Contract(address,import_ethers2.Interface.from(abi),provider)}function getCreateContract({provider}){return function(address,abi){return new import_ethers2.Contract(address,import_ethers2.Interface.from(abi),provider)}}function isStateChangingCall({abi,funcName}){let abiFragment=abi.find((fragment)=>fragment.name===funcName);if(!abiFragment)throw new import_helpers3.SwapKitError("toolbox_evm_no_abi_fragment",{funcName});return abiFragment.stateMutability&&stateMutable.includes(abiFragment.stateMutability)}function toChecksumAddress(address){return import_ethers2.getAddress(address)}function getEIP1193SendTransaction(provider){return function({value,...params}){if(!isBrowserProvider(provider))throw new import_helpers3.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_gasLimit,gasPrice:_gasPrice,maxFeePerGas:_maxFeePerGas,maxPriorityFeePerGas:_maxPriorityFeePerGas,...cleanParams}=params;return provider.send("eth_sendTransaction",[{...cleanParams,value:toHexString(BigInt(value||0))}])}}function getChecksumAddressFromAsset(asset,chain){let assetAddress=getTokenAddress(asset,chain);if(assetAddress)return import_ethers2.getAddress(assetAddress.toLowerCase());throw new import_helpers3.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function getTokenAddress({chain,symbol,ticker},baseAssetChain){try{let isBSCBNB=chain===import_helpers3.Chain.BinanceSmartChain&&symbol==="BNB"&&ticker==="BNB",isHyperevmHYPE=chain===import_helpers3.Chain.Hyperevm&&symbol==="HYPE"&&ticker==="HYPE",isBaseAsset=chain===baseAssetChain&&symbol===baseAssetChain&&ticker===baseAssetChain,isEVMAsset=ethGasChains.includes(chain)&&symbol==="ETH"&&ticker==="ETH";if(isBaseAsset||isBSCBNB||isHyperevmHYPE||isEVMAsset)return ContractAddress[baseAssetChain];return import_ethers2.getAddress(symbol.slice(ticker.length+1).replace(/^0X/,""))}catch{return null}}function getCreateContractTxObject({provider}){return async({contractAddress,abi,funcName,funcParams=[],txOverrides})=>createContract(contractAddress,abi,provider).getFunction(funcName).populateTransaction(...funcParams.concat(txOverrides).filter((p)=>typeof p<"u"))}function getEstimateGasPrices({chain,provider,isEIP1559Compatible=!0}){return import_ts_pattern2.match(chain).with(import_helpers3.Chain.Gnosis,()=>{return async function(){try{let{gasPrice,maxPriorityFeePerGas}=await provider.getFeeData();if(!gasPrice||maxPriorityFeePerGas===null)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers3.FeeOption.Average]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Average),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Average)},[import_helpers3.FeeOption.Fast]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fast),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fastest),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}).with(import_helpers3.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice}=await provider.getFeeData();if(!gasPrice)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");let bufferedGasPrice=gasPrice*12n/10n;return{[import_helpers3.FeeOption.Average]:{gasPrice:bufferedGasPrice},[import_helpers3.FeeOption.Fast]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(bufferedGasPrice,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(bufferedGasPrice,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=await provider.getFeeData();if(isEIP1559Compatible){if(maxFeePerGas===null||maxPriorityFeePerGas===null)throw new import_helpers3.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers3.FeeOption.Average]:{maxFeePerGas,maxPriorityFeePerGas},[import_helpers3.FeeOption.Fast]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxFeePerGas,import_helpers3.FeeOption.Fast),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{maxFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxFeePerGas,import_helpers3.FeeOption.Fastest),maxPriorityFeePerGas:import_helpers3.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers3.FeeOption.Fastest)}}}if(!gasPrice)throw new import_helpers3.SwapKitError("toolbox_evm_no_gas_price");return{[import_helpers3.FeeOption.Average]:{gasPrice},[import_helpers3.FeeOption.Fast]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fast)},[import_helpers3.FeeOption.Fastest]:{gasPrice:import_helpers3.applyFeeMultiplierToBigInt(gasPrice,import_helpers3.FeeOption.Fastest)}}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}})}function getCall({provider,isEIP1559Compatible,signer,chain}){return async function({callProvider,contractAddress,abi,funcName,funcParams=[],txOverrides={},feeOption=import_helpers3.FeeOption.Fast}){let contractProvider=callProvider||provider;if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let isStateChanging=isStateChangingCall({abi,funcName});if(isStateChanging&&isBrowserProvider(contractProvider)&&signer){let createTx=getCreateContractTxObject({chain,provider:contractProvider}),from=txOverrides?.from||await signer?.getAddress(),txObject=await createTx({abi,contractAddress,funcName,funcParams,txOverrides:{...txOverrides,from}});return getEIP1193SendTransaction(contractProvider)(txObject)}let contract=createContract(contractAddress,abi,contractProvider);if(isStateChanging){if(!signer)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer");let from=txOverrides?.from||await signer.getAddress();if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer_address");let connectedContract=contract.connect(signer),estimateGasPrices=getEstimateGasPrices({chain,isEIP1559Compatible,provider}),{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=(await estimateGasPrices())[feeOption],gasLimit=await contract.getFunction(funcName).estimateGas(...funcParams,txOverrides),result2=await connectedContract[funcName](...funcParams,{...txOverrides,gasLimit,gasPrice,maxFeePerGas,maxPriorityFeePerGas,nonce:txOverrides?.nonce||await contractProvider.getTransactionCount(from)});return typeof result2?.hash==="string"?result2?.hash:result2}let result=await contract[funcName]?.(...funcParams);return typeof result?.hash==="string"?result?.hash:result}}function getApprovedAmount({provider,chain}){return function({assetAddress,spenderAddress,from}){return getCall({chain,isEIP1559Compatible:!0,provider})({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"allowance",funcParams:[from,spenderAddress]})}}function getIsApproved({provider,chain}){return async function({assetAddress,spenderAddress,from,amount=MAX_APPROVAL}){let approvedAmount=await getApprovedAmount({chain,provider})({assetAddress,from,spenderAddress});return import_helpers3.SwapKitNumber.fromBigInt(approvedAmount).gte(import_helpers3.SwapKitNumber.fromBigInt(BigInt(amount)))}}function getApprove({signer,isEIP1559Compatible=!0,provider,chain}){return async function({assetAddress,spenderAddress,feeOptionKey=import_helpers3.FeeOption.Fast,amount,gasLimitFallback,from:fromParam,nonce}){let funcParams=[spenderAddress,BigInt(amount||MAX_APPROVAL)],from=await signer?.getAddress()||fromParam,functionCallParams={abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"approve",funcParams,signer,txOverrides:{from}};if(isBrowserProvider(provider)){let createTx=getCreateContractTxObject({chain,provider}),sendTx=getEIP1193SendTransaction(provider),txObject=await createTx(functionCallParams);return sendTx(txObject)}return getCall({chain,isEIP1559Compatible,provider,signer})({...functionCallParams,feeOption:feeOptionKey,funcParams,txOverrides:{from,gasLimit:gasLimitFallback?BigInt(gasLimitFallback.toString()):void 0,nonce}})}}function getTransfer({signer,isEIP1559Compatible=!0,provider}){return async function({assetValue,memo,recipient,feeOptionKey=import_helpers3.FeeOption.Fast,sender,...tx}){let{hexlify,toUtf8Bytes}=await import("ethers"),txAmount=assetValue.getBaseValue("bigint"),chain=assetValue.chain,from=sender||await signer?.getAddress(),sendTx=getSendTransaction({chain,isEIP1559Compatible,provider,signer});if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_from_address");if(assetValue.isGasAsset){let transaction2={...tx,data:hexlify(toUtf8Bytes(memo||"")),feeOptionKey,from,to:recipient,value:txAmount};return sendTx(transaction2)}if(!getTokenAddress(assetValue,chain))throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=(await getEstimateGasPrices({chain,isEIP1559Compatible,provider})())[feeOptionKey],transaction=await getCreateTransferTx({chain,provider,signer})({assetValue,data:hexlify(toUtf8Bytes(memo||"")),gasPrice,maxFeePerGas,maxPriorityFeePerGas,memo,recipient,sender:from});return sendTx(transaction)}}function getEstimateCall({provider,signer}){return function({contractAddress,abi,funcName,funcParams=[],txOverrides}){if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");let contract=createContract(contractAddress,abi,provider);return signer?contract.connect(signer).getFunction(funcName).estimateGas(...funcParams,txOverrides):contract.getFunction(funcName).estimateGas(...funcParams,txOverrides)}}function getEstimateGasLimit({provider,signer}){return async function({assetValue,recipient,memo,data,sender,funcName,funcParams,txOverrides}){let value=assetValue.bigIntValue,assetAddress=assetValue.isGasAsset?null:getTokenAddress(assetValue,assetValue.chain);if(assetAddress&&funcName)return getEstimateCall({provider,signer})({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName,funcParams,txOverrides});let{hexlify,toUtf8Bytes}=await import("ethers");return provider.estimateGas({data:data?data:memo?hexlify(toUtf8Bytes(memo)):void 0,from:sender,to:recipient,value})}}function getSignAuthorization({signer}){if(!signer)return;return(params)=>signAuthorization(signer,params)}function getSendTransaction({provider,signer,isEIP1559Compatible=!0,chain}){return async function({feeOptionKey=import_helpers3.FeeOption.Fast,...tx}){let{from,to,data,value,...transaction}=tx;if(!signer)throw new import_helpers3.SwapKitError("toolbox_evm_no_signer");if(!to)throw new import_helpers3.SwapKitError("toolbox_evm_no_to_address");let parsedTxObject={...transaction,data:data||"0x",from,to,value:BigInt(value||0)};if(isBrowserProvider(provider))return getEIP1193SendTransaction(provider)(parsedTxObject);let address=from||await signer.getAddress(),nonce=tx.nonce||await provider.getTransactionCount(address),chainId=(await provider.getNetwork()).chainId,txType=getEVMTxType(parsedTxObject,isEIP1559Compatible);if(txType==="eip7702")validateAuthorizations(parsedTxObject.authorizations||[],chainId);let txTypeNum=import_ts_pattern2.match(txType).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),baseTxObject={...parsedTxObject,chainId,nonce,type:txTypeNum,...txType==="eip7702"&&{authorizationList:parsedTxObject.authorizations}},estimateGasPrices=getEstimateGasPrices({chain,isEIP1559Compatible,provider}),feeData=txType!=="legacy"&&!(parsedTxObject.maxFeePerGas&&parsedTxObject.maxPriorityFeePerGas)||!parsedTxObject.gasPrice?Object.entries((await estimateGasPrices())[feeOptionKey]).reduce((acc,[k,v])=>({...acc,[k]:toHexString(BigInt(v))}),{}):{},gasLimit;try{gasLimit=toHexString(parsedTxObject.gasLimit||await provider.estimateGas(baseTxObject)*11n/10n)}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error})}try{let txObject={...baseTxObject,gasLimit,...feeData};try{return(await signer.sendTransaction(txObject)).hash}catch{let txHex=await signer.signTransaction({...txObject,from:address});return(await provider.broadcastTransaction(txHex)).hash}}catch(error){throw new import_helpers3.SwapKitError("toolbox_evm_error_sending_transaction",{error})}}}function getCreateTransferTx({provider,signer}){return async function({assetValue,memo,recipient,data,sender:fromOverride,maxFeePerGas,maxPriorityFeePerGas,gasPrice,...tx}){let txAmount=assetValue.getBaseValue("bigint"),chain=assetValue.chain,from=fromOverride||await signer?.getAddress();if(!from)throw new import_helpers3.SwapKitError("toolbox_evm_no_from_address");if(import_helpers3.isGasAsset(assetValue)){let{hexlify,toUtf8Bytes}=await import("ethers");return{...tx,data:data||hexlify(toUtf8Bytes(memo||"")),from,to:recipient,value:txAmount}}let contractAddress=getTokenAddress(assetValue,chain);if(!contractAddress)throw new import_helpers3.SwapKitError("toolbox_evm_no_contract_address");return getCreateContractTxObject({chain:assetValue.chain,provider})({abi:import_contracts.erc20ABI,contractAddress,funcName:"transfer",funcParams:[recipient,txAmount],txOverrides:{from,gasPrice,maxFeePerGas,maxPriorityFeePerGas}})}}function getCreateApprovalTx({provider,signer,chain}){return async function({assetAddress,spenderAddress,amount,from:fromParam}){let from=await signer?.getAddress()||fromParam,createTx=getCreateContractTxObject({chain,provider}),approvalAmount=["bigint","number"].includes(typeof amount)?amount:amount||MAX_APPROVAL;return await createTx({abi:import_contracts.erc20ABI,contractAddress:assetAddress,funcName:"approve",funcParams:[spenderAddress,BigInt(approvalAmount)],txOverrides:{from}})}}function getEstimateTransactionFee({provider,isEIP1559Compatible=!0,chain}){return async function({feeOption=import_helpers3.FeeOption.Fast,...txObject}){let gasPrices=await getEstimateGasPrices({chain,isEIP1559Compatible,provider})(),gasLimit=await provider.estimateGas(txObject),assetValue=import_helpers3.AssetValue.from({chain}),{gasPrice,maxFeePerGas,maxPriorityFeePerGas}=gasPrices[feeOption];if(!isEIP1559Compatible&&gasPrice)return assetValue.set(import_helpers3.SwapKitNumber.fromBigInt(gasPrice*gasLimit,assetValue.decimal));if(maxFeePerGas&&maxPriorityFeePerGas){let fee=(maxFeePerGas+maxPriorityFeePerGas)*gasLimit;return assetValue.set(import_helpers3.SwapKitNumber.fromBigInt(fee,assetValue.decimal))}throw new import_helpers3.SwapKitError("toolbox_evm_no_gas_price")}}var import_helpers3,import_contracts,import_ethers2,import_ts_pattern2,MAX_APPROVAL,stateMutable,baseContractAddresses,ContractAddress,ethGasChains,isEIP7702Transaction=(tx)=>tx.type===4||(tx.authorizations?.length??0)>0,isEIP1559Transaction=(tx)=>!isEIP7702Transaction(tx)&&(tx.type===2||!!tx.maxFeePerGas||!!tx.maxPriorityFeePerGas),getEVMTxType=(tx,isEIP1559Compatible=!0)=>{if(isEIP7702Transaction(tx))return"eip7702";if(isEIP1559Transaction(tx)||isEIP1559Compatible)return"eip1559";return"legacy"};var init_baseEVMToolbox=__esm(()=>{init_api();init_helpers();import_helpers3=require("@swapkit/helpers"),import_contracts=require("@swapkit/helpers/contracts"),import_ethers2=require("ethers"),import_ts_pattern2=require("ts-pattern"),MAX_APPROVAL=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");stateMutable=["payable","nonpayable"];baseContractAddresses=import_helpers3.EVMChains.reduce((acc,chain)=>{return acc[chain]="0x0000000000000000000000000000000000000000",acc},{}),ContractAddress={...baseContractAddresses,[import_helpers3.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[import_helpers3.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},ethGasChains=[import_helpers3.Chain.Arbitrum,import_helpers3.Chain.Aurora,import_helpers3.Chain.Base,import_helpers3.Chain.Optimism]});function ETHToolbox(params){let evmToolbox=createEvmToolbox(import_helpers5.Chain.Ethereum)(params);async function multicall(callTuples,multicallAddress="0x5ba1e12693dc8f9c48aad8770482f4739beed696",funcName="aggregate",feeOptionKey=import_helpers5.FeeOption.Fast){let txObject=await evmToolbox.createContractTxObject({abi:multicallAbi,contractAddress:multicallAddress,funcName,funcParams:[callTuples]});return evmToolbox.sendTransaction({...txObject,feeOptionKey})}return{...evmToolbox,multicall}}function createEvmToolbox(chain){return function({provider,...toolboxParams}){let isEIP1559Compatible=getIsEIP1559Compatible(chain),signer=import_ts_pattern3.match(toolboxParams).with({phrase:import_ts_pattern3.P.string},({phrase})=>import_ethers3.HDNodeWallet.fromPhrase(phrase).connect(provider)).with({signer:import_ts_pattern3.P.any},({signer:signer2})=>signer2).otherwise(()=>{return});return BaseEVMToolbox({chain,isEIP1559Compatible,provider,signer})}}var import_helpers5,import_ethers3,import_ts_pattern3,ADIToolbox,ARBToolbox,AURORAToolbox,AVAXToolbox,BASEToolbox,BERAToolbox,BSCToolbox,BotanixToolbox,COREToolbox,CORNToolbox,CROToolbox,GNOToolbox,HYPEREVMToolbox,MATICToolbox,SONICToolbox,UNIToolbox,XLayerToolbox,MONADToolbox,MEGAETHToolbox;var init_evm=__esm(()=>{init_multicall();init_helpers();init_baseEVMToolbox();import_helpers5=require("@swapkit/helpers"),import_ethers3=require("ethers"),import_ts_pattern3=require("ts-pattern");ADIToolbox=createEvmToolbox(import_helpers5.Chain.Adi),ARBToolbox=createEvmToolbox(import_helpers5.Chain.Arbitrum),AURORAToolbox=createEvmToolbox(import_helpers5.Chain.Aurora),AVAXToolbox=createEvmToolbox(import_helpers5.Chain.Avalanche),BASEToolbox=createEvmToolbox(import_helpers5.Chain.Base),BERAToolbox=createEvmToolbox(import_helpers5.Chain.Berachain),BSCToolbox=createEvmToolbox(import_helpers5.Chain.BinanceSmartChain),BotanixToolbox=createEvmToolbox(import_helpers5.Chain.Botanix),COREToolbox=createEvmToolbox(import_helpers5.Chain.Core),CORNToolbox=createEvmToolbox(import_helpers5.Chain.Corn),CROToolbox=createEvmToolbox(import_helpers5.Chain.Cronos),GNOToolbox=createEvmToolbox(import_helpers5.Chain.Gnosis),HYPEREVMToolbox=createEvmToolbox(import_helpers5.Chain.Hyperevm),MATICToolbox=createEvmToolbox(import_helpers5.Chain.Polygon),SONICToolbox=createEvmToolbox(import_helpers5.Chain.Sonic),UNIToolbox=createEvmToolbox(import_helpers5.Chain.Unichain),XLayerToolbox=createEvmToolbox(import_helpers5.Chain.XLayer),MONADToolbox=createEvmToolbox(import_helpers5.Chain.Monad),MEGAETHToolbox=createEvmToolbox(import_helpers5.Chain.MegaETH)});var gasOracleAbi;var init_gasOracle=__esm(()=>{gasOracleAbi=[{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 connectGasPriceOracle(provider){return new import_ethers4.Contract(GAS_PRICE_ORACLE_ADDRESS,gasOracleAbi,provider)}function getL1GasPriceFetcher(provider){return async function(){let gasPriceOracle=connectGasPriceOracle(provider);if(gasPriceOracle&&"l1BaseFee"in gasPriceOracle)return await gasPriceOracle?.l1BaseFee();return}}function serializeTx(provider){return async function({from,to,nonce,...tx}){let{Transaction}=await import("ethers");if(!to)throw new import_helpers7.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return Transaction.from({...tx,authorizationList:tx.authorizationList,nonce:nonce?nonce:from?await provider.getTransactionCount(from):0,to}).serialized}}function estimateL1GasCost(provider){return async function(tx){let gasPriceOracle=connectGasPriceOracle(provider),serializedTx=await serializeTx(provider)(tx);if(gasPriceOracle&&"getL1Fee"in gasPriceOracle)return gasPriceOracle.getL1Fee(serializedTx)}}function estimateL2GasCost(provider){return async function(tx){let l2GasPrice=(await provider.getFeeData()).gasPrice??0n,l2GasCost=await provider.estimateGas(tx);return l2GasPrice*l2GasCost}}function estimateTotalGasCost(provider){return async function(tx){let l1GasCost=await estimateL1GasCost(provider)(tx)??0n,l2GasCost=await estimateL2GasCost(provider)(tx);return l1GasCost+l2GasCost}}function estimateL1Gas(provider){return async function(tx){let gasPriceOracle=connectGasPriceOracle(provider),serializedTx=await serializeTx(provider)(tx);if(gasPriceOracle&&"getL1GasUsed"in gasPriceOracle)return gasPriceOracle.getL1GasUsed(serializedTx)}}function estimateGasPrices(provider){return async function(){try{let{maxFeePerGas,maxPriorityFeePerGas,gasPrice}=await provider.getFeeData(),l1GasPrice=await getL1GasPriceFetcher(provider)(),price=gasPrice;if(!(maxFeePerGas&&maxPriorityFeePerGas))throw new import_helpers7.SwapKitError("toolbox_evm_no_fee_data");return{[import_helpers7.FeeOption.Average]:{gasPrice:price,l1GasPrice,maxFeePerGas,maxPriorityFeePerGas},[import_helpers7.FeeOption.Fast]:{gasPrice:import_helpers7.applyFeeMultiplierToBigInt(price,import_helpers7.FeeOption.Fast),l1GasPrice:import_helpers7.applyFeeMultiplierToBigInt(l1GasPrice||0n,import_helpers7.FeeOption.Fast),maxFeePerGas,maxPriorityFeePerGas:import_helpers7.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers7.FeeOption.Fast)},[import_helpers7.FeeOption.Fastest]:{gasPrice:import_helpers7.applyFeeMultiplierToBigInt(price,import_helpers7.FeeOption.Fastest),l1GasPrice:import_helpers7.applyFeeMultiplierToBigInt(l1GasPrice||0n,import_helpers7.FeeOption.Fastest),maxFeePerGas,maxPriorityFeePerGas:import_helpers7.applyFeeMultiplierToBigInt(maxPriorityFeePerGas,import_helpers7.FeeOption.Fastest)}}}catch(error){throw new import_helpers7.SwapKitError("toolbox_evm_gas_estimation_error",{error:error.msg??error.toString()})}}}function OPToolbox({provider,...toolboxSignerParams}){let signer=import_ts_pattern4.match(toolboxSignerParams).with({phrase:import_ts_pattern4.P.string},({phrase})=>import_ethers4.HDNodeWallet.fromPhrase(phrase).connect(provider)).with({signer:import_ts_pattern4.P.any},({signer:signer2})=>signer2).otherwise(()=>{return}),evmToolbox=BaseEVMToolbox({provider,signer}),getL1GasPrice=getL1GasPriceFetcher(provider);return{...evmToolbox,estimateGasPrices:estimateGasPrices(provider),estimateL1Gas:estimateL1Gas(provider),estimateL1GasCost:estimateL1GasCost(provider),estimateL2GasCost:estimateL2GasCost(provider),estimateTotalGasCost:estimateTotalGasCost(provider),getBalance:getEvmApi(import_helpers7.Chain.Optimism).getBalance,getL1GasPrice}}var import_helpers7,import_ethers4,import_ts_pattern4,GAS_PRICE_ORACLE_ADDRESS="0x420000000000000000000000000000000000000f";var init_op=__esm(()=>{init_api();init_gasOracle();init_baseEVMToolbox();import_helpers7=require("@swapkit/helpers"),import_ethers4=require("ethers"),import_ts_pattern4=require("ts-pattern")});var exports_toolbox={};__export(exports_toolbox,{validateEVMAddress:()=>validateEVMAddress,toChecksumAddress:()=>toChecksumAddress,isStateChangingCall:()=>isStateChangingCall,isEIP7702Transaction:()=>isEIP7702Transaction,isEIP1559Transaction:()=>isEIP1559Transaction,isBrowserProvider:()=>isBrowserProvider,getTokenAddress:()=>getTokenAddress,getEvmToolboxAsync:()=>getEvmToolboxAsync,getEvmToolbox:()=>getEvmToolbox,getEstimateGasPrices:()=>getEstimateGasPrices,getEVMTxType:()=>getEVMTxType,getEIP1193SendTransaction:()=>getEIP1193SendTransaction,getCreateContractTxObject:()=>getCreateContractTxObject,getCreateContract:()=>getCreateContract,getChecksumAddressFromAsset:()=>getChecksumAddressFromAsset,createContract:()=>createContract,XLayerToolbox:()=>XLayerToolbox,UNIToolbox:()=>UNIToolbox,SONICToolbox:()=>SONICToolbox,OPToolbox:()=>OPToolbox,MONADToolbox:()=>MONADToolbox,MEGAETHToolbox:()=>MEGAETHToolbox,MAX_APPROVAL:()=>MAX_APPROVAL,MATICToolbox:()=>MATICToolbox,HYPEREVMToolbox:()=>HYPEREVMToolbox,GNOToolbox:()=>GNOToolbox,ETHToolbox:()=>ETHToolbox,ContractAddress:()=>ContractAddress,CROToolbox:()=>CROToolbox,CORNToolbox:()=>CORNToolbox,COREToolbox:()=>COREToolbox,BotanixToolbox:()=>BotanixToolbox,BaseEVMToolbox:()=>BaseEVMToolbox,BSCToolbox:()=>BSCToolbox,BERAToolbox:()=>BERAToolbox,BASEToolbox:()=>BASEToolbox,AVAXToolbox:()=>AVAXToolbox,AURORAToolbox:()=>AURORAToolbox,ARBToolbox:()=>ARBToolbox,ADIToolbox:()=>ADIToolbox});function getEvmToolbox(chain,params){return import_ts_pattern5.match(chain).with(import_helpers8.Chain.Adi,()=>ADIToolbox(params)).with(import_helpers8.Chain.Arbitrum,()=>ARBToolbox(params)).with(import_helpers8.Chain.Aurora,()=>AURORAToolbox(params)).with(import_helpers8.Chain.Avalanche,()=>AVAXToolbox(params)).with(import_helpers8.Chain.Base,()=>BASEToolbox(params)).with(import_helpers8.Chain.Berachain,()=>BERAToolbox(params)).with(import_helpers8.Chain.BinanceSmartChain,()=>BSCToolbox(params)).with(import_helpers8.Chain.Botanix,()=>SONICToolbox(params)).with(import_helpers8.Chain.Core,()=>COREToolbox(params)).with(import_helpers8.Chain.Corn,()=>CORNToolbox(params)).with(import_helpers8.Chain.Cronos,()=>CROToolbox(params)).with(import_helpers8.Chain.Ethereum,()=>ETHToolbox(params)).with(import_helpers8.Chain.Gnosis,()=>GNOToolbox(params)).with(import_helpers8.Chain.Hyperevm,()=>HYPEREVMToolbox(params)).with(import_helpers8.Chain.Optimism,()=>OPToolbox(params)).with(import_helpers8.Chain.Polygon,()=>MATICToolbox(params)).with(import_helpers8.Chain.Sonic,()=>SONICToolbox(params)).with(import_helpers8.Chain.Unichain,()=>UNIToolbox(params)).with(import_helpers8.Chain.XLayer,()=>XLayerToolbox(params)).with(import_helpers8.Chain.Monad,()=>MONADToolbox(params)).with(import_helpers8.Chain.MegaETH,()=>MEGAETHToolbox(params)).exhaustive()}async function getEvmToolboxAsync(chain,params){let toolboxParams={...params,provider:params?.provider||await getProvider(chain)};return getEvmToolbox(chain,toolboxParams)}var import_helpers8,import_ts_pattern5;var init_toolbox=__esm(()=>{init_helpers();init_evm();init_op();import_helpers8=require("@swapkit/helpers"),import_ts_pattern5=require("ts-pattern");init_baseEVMToolbox();init_evm();init_op()});var EthNetwork;var init_types=__esm(()=>{((EthNetwork2)=>{EthNetwork2.Test="goerli";EthNetwork2.Main="homestead"})(EthNetwork||={})});var exports_evm2={};__export(exports_evm2,{validateEVMAddress:()=>validateEVMAddress,validateAuthorizations:()=>validateAuthorizations,validateAuthorization:()=>validateAuthorization,toHexString:()=>toHexString,toChecksumAddress:()=>toChecksumAddress,signAuthorization:()=>signAuthorization,parseEIP712FromEVMTx:()=>parseEIP712FromEVMTx,isStateChangingCall:()=>isStateChangingCall,isEIP7702Transaction:()=>isEIP7702Transaction,isEIP1559Transaction:()=>isEIP1559Transaction,isBrowserProvider:()=>isBrowserProvider,getTokenAddress:()=>getTokenAddress,getProviderSync:()=>getProviderSync,getProvider:()=>getProvider,getNetworkParams:()=>getNetworkParams,getIsEIP1559Compatible:()=>getIsEIP1559Compatible,getEvmToolboxAsync:()=>getEvmToolboxAsync,getEvmToolbox:()=>getEvmToolbox,getEvmApi:()=>getEvmApi,getEstimateGasPrices:()=>getEstimateGasPrices,getEVMTxType:()=>getEVMTxType,getEIP1193SendTransaction:()=>getEIP1193SendTransaction,getCreateContractTxObject:()=>getCreateContractTxObject,getCreateContract:()=>getCreateContract,getChecksumAddressFromAsset:()=>getChecksumAddressFromAsset,createCustomEvmApi:()=>createCustomEvmApi,createContract:()=>createContract,buildEIP712DomainType:()=>buildEIP712DomainType,XLayerToolbox:()=>XLayerToolbox,UNIToolbox:()=>UNIToolbox,SONICToolbox:()=>SONICToolbox,OPToolbox:()=>OPToolbox,MONADToolbox:()=>MONADToolbox,MEGAETHToolbox:()=>MEGAETHToolbox,MAX_APPROVAL:()=>MAX_APPROVAL,MATICToolbox:()=>MATICToolbox,HYPEREVMToolbox:()=>HYPEREVMToolbox,GNOToolbox:()=>GNOToolbox,EthNetwork:()=>EthNetwork,ETHToolbox:()=>ETHToolbox,ContractAddress:()=>ContractAddress,CROToolbox:()=>CROToolbox,CORNToolbox:()=>CORNToolbox,COREToolbox:()=>COREToolbox,BotanixToolbox:()=>BotanixToolbox,BaseEVMToolbox:()=>BaseEVMToolbox,BSCToolbox:()=>BSCToolbox,BERAToolbox:()=>BERAToolbox,BASEToolbox:()=>BASEToolbox,AVAXToolbox:()=>AVAXToolbox,AURORAToolbox:()=>AURORAToolbox,ARBToolbox:()=>ARBToolbox,ADIToolbox:()=>ADIToolbox});module.exports=__toCommonJS(exports_evm2);var init_evm2=__esm(()=>{init_api();init_helpers();init_toolbox();init_types()});function buildOrderAction({builder,grouping="na",orders}){return{builder,grouping,orders,type:"order"}}function buildCancelAction({cancels}){return{cancels,type:"cancel"}}function buildCancelByCloidAction({cancels}){return{cancels,type:"cancelByCloid"}}function buildModifyAction({oid,order}){return{oid,order,type:"modify"}}function buildBatchModifyAction({modifies}){return{modifies,type:"batchModify"}}function buildUpdateLeverageAction({asset,isCross,leverage}){return{asset,isCross,leverage,type:"updateLeverage"}}function buildUpdateIsolatedMarginAction({asset,isBuy,ntli}){return{asset,isBuy,ntli,type:"updateIsolatedMargin"}}function buildTopUpIsolatedOnlyMarginAction({asset,leverage}){return{asset,leverage,type:"topUpIsolatedOnlyMargin"}}function buildScheduleCancelAction({time}){return{time,type:"scheduleCancel"}}function buildUsdClassTransferAction({amount,hyperliquidChain,nonce,signatureChainId,toPerp}){return{amount,hyperliquidChain,nonce,signatureChainId,toPerp,type:"usdClassTransfer"}}function buildSendAssetAction({amount,destination,destinationDex,fromSubAccount,hyperliquidChain,nonce,signatureChainId,sourceDex,token}){return{amount,destination,destinationDex,fromSubAccount,hyperliquidChain,nonce,signatureChainId,sourceDex,token,type:"sendAsset"}}function buildApproveAgentAction({agentAddress,agentName,hyperliquidChain,nonce,signatureChainId}){return{agentAddress,agentName,hyperliquidChain,nonce,signatureChainId,type:"approveAgent"}}function buildApproveBuilderFeeAction({builder,hyperliquidChain,maxFeeRate,nonce,signatureChainId}){return{builder,hyperliquidChain,maxFeeRate,nonce,signatureChainId,type:"approveBuilderFee"}}function buildTokenDelegateAction({hyperliquidChain,isUndelegate,nonce,signatureChainId,validator,wei}){return{hyperliquidChain,isUndelegate,nonce,signatureChainId,type:"tokenDelegate",validator,wei}}function concatBytes(...chunks){let totalLength=chunks.reduce((sum,chunk)=>sum+chunk.length,0),merged=new Uint8Array(totalLength),offset=0;for(let chunk of chunks)merged.set(chunk,offset),offset+=chunk.length;return merged}function encodeLength(prefixBase,shortLimit,valueLength){if(valueLength<shortLimit)return new Uint8Array([prefixBase+valueLength]);if(valueLength<=255)return new Uint8Array([prefixBase+shortLimit,valueLength]);if(valueLength<=65535)return new Uint8Array([prefixBase+shortLimit+1,valueLength>>8,valueLength&255]);return new Uint8Array([prefixBase+shortLimit+2,valueLength>>>24&255,valueLength>>>16&255,valueLength>>>8&255,valueLength&255])}function encodeUintBytes(value,byteLength){let bytes=new Uint8Array(byteLength),remaining=value;for(let index=byteLength-1;index>=0;index-=1)bytes[index]=Number(remaining&0xffn),remaining>>=8n;return bytes}function encodeInteger(value){if(value>=0n){if(value<=0x7fn)return new Uint8Array([Number(value)]);if(value<=0xffn)return new Uint8Array([204,Number(value)]);if(value<=0xffffn)return concatBytes(new Uint8Array([205]),encodeUintBytes(value,2));if(value<=0xffffffffn)return concatBytes(new Uint8Array([206]),encodeUintBytes(value,4));return concatBytes(new Uint8Array([207]),encodeUintBytes(value,8))}if(value>=-32n)return new Uint8Array([256+Number(value)]);if(value>=-128n)return new Uint8Array([208,256+Number(value)]);if(value>=-32768n)return concatBytes(new Uint8Array([209]),encodeUintBytes(BigInt.asUintN(16,value),2));if(value>=-2147483648n)return concatBytes(new Uint8Array([210]),encodeUintBytes(BigInt.asUintN(32,value),4));return concatBytes(new Uint8Array([211]),encodeUintBytes(BigInt.asUintN(64,value),8))}function encodeString(value){let encoded=textEncoder.encode(value);if(encoded.length<32)return concatBytes(new Uint8Array([160+encoded.length]),encoded);return concatBytes(encodeLength(217,0,encoded.length),encoded)}function encodeArray(values){let encodedValues=values.map((value)=>encodeMsgPack(value)),header=values.length<16?new Uint8Array([144+values.length]):values.length<=65535?new Uint8Array([220,values.length>>8,values.length&255]):new Uint8Array([221,values.length>>>24&255,values.length>>>16&255,values.length>>>8&255,values.length&255]);return concatBytes(header,...encodedValues)}function encodeMap(value){let entries=Object.entries(value).filter(([,entryValue])=>typeof entryValue<"u"),header=entries.length<16?new Uint8Array([128+entries.length]):entries.length<=65535?new Uint8Array([222,entries.length>>8,entries.length&255]):new Uint8Array([223,entries.length>>>24&255,entries.length>>>16&255,entries.length>>>8&255,entries.length&255]);return concatBytes(header,...entries.flatMap(([key,entryValue])=>[encodeString(key),encodeMsgPack(entryValue)]))}function encodeMsgPack(value){if(value===null)return new Uint8Array([192]);if(typeof value==="boolean")return new Uint8Array([value?195:194]);if(typeof value==="string")return encodeString(value);if(typeof value==="number"){if(!Number.isFinite(value)||!Number.isInteger(value))throw new import_helpers10.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return encodeInteger(BigInt(value))}if(typeof value==="bigint")return encodeInteger(value);if(value instanceof Uint8Array){let header=value.length<=255?new Uint8Array([196,value.length]):value.length<=65535?new Uint8Array([197,value.length>>8,value.length&255]):new Uint8Array([198,value.length>>>24&255,value.length>>>16&255,value.length>>>8&255,value.length&255]);return concatBytes(header,value)}if(Array.isArray(value))return encodeArray(value);if(typeof value==="object")return encodeMap(value);throw new import_helpers10.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(value)}`})}function hexToBytes(hexValue){let normalized=hexValue.startsWith("0x")?hexValue.slice(2):hexValue;if(normalized.length%2!==0||/[^a-fA-F0-9]/u.test(normalized))throw new import_helpers10.SwapKitError("helpers_invalid_params",{hexValue});let bytes=new Uint8Array(normalized.length/2);for(let index=0;index<normalized.length;index+=2)bytes[index/2]=Number.parseInt(normalized.slice(index,index+2),16);return bytes}function getL1TypedData(connectionId){return{domain:l1Domain,message:{connectionId,source:"a"},primaryType:"Agent",types:{Agent:[...l1Types.Agent]}}}function getUserSignedTypedData(action){let primaryType=primaryTypes[action.type],payloadTypes=userSignedActionTypes[action.type],{type,...message}=action;return{domain:{chainId:Number.parseInt(message.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:zeroAddress,version:"1"},message:{...message,hyperliquidChain:message.hyperliquidChain||mainnet},primaryType,types:{[primaryType]:payloadTypes}}}function getSignatureValues(signatureHex){let signature=import_ethers5.Signature.from(signatureHex);return{r:signature.r,s:signature.s,v:signature.v}}function getActionHash(action,nonce,{expiresAfter,vaultAddress}={}){let actionBytes=encodeMsgPack(action),nonceBytes=encodeUintBytes(BigInt(nonce),8),vaultBytes=vaultAddress?concatBytes(new Uint8Array([1]),hexToBytes(vaultAddress.toLowerCase())):new Uint8Array([0]),expiresAfterBytes=typeof expiresAfter==="number"?concatBytes(new Uint8Array([0]),encodeUintBytes(BigInt(expiresAfter),8)):new Uint8Array;return import_ethers5.keccak256(concatBytes(actionBytes,nonceBytes,vaultBytes,expiresAfterBytes))}function normalizeUserSignedAction(action){let hyperliquidChain=action.hyperliquidChain||mainnet;switch(action.type){case"approveAgent":return{...action,agentAddress:action.agentAddress.toLowerCase(),hyperliquidChain};case"approveBuilderFee":return{...action,builder:action.builder.toLowerCase(),hyperliquidChain};case"sendAsset":return{...action,destination:action.destination.toLowerCase(),fromSubAccount:action.fromSubAccount.toLowerCase(),hyperliquidChain};case"tokenDelegate":return{...action,hyperliquidChain,validator:action.validator.toLowerCase()};case"usdClassTransfer":return{...action,hyperliquidChain};default:return action}}var import_helpers10,import_ethers5,zeroAddress="0x0000000000000000000000000000000000000000",l1Domain,l1Types,mainnet="Mainnet",userSignedActionTypes,primaryTypes,textEncoder;var init_signing=__esm(()=>{import_helpers10=require("@swapkit/helpers"),import_ethers5=require("ethers"),l1Domain={chainId:1337,name:"Exchange",verifyingContract:zeroAddress,version:"1"},l1Types={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},userSignedActionTypes={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},primaryTypes={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},textEncoder=new TextEncoder});function normalizeAddress(address,errorKey){if(!validateHyperCoreAddress(address))throw new import_helpers11.SwapKitError(errorKey,{address});return address.toLowerCase()}async function postInfo(payload){let apiBaseUrl=await getApiBaseUrl();return import_helpers11.RequestClient.post(`${apiBaseUrl}/info`,{json:payload})}function getClearinghouseState({dex,user}){return postInfo({...dex?{dex}:{},type:"clearinghouseState",user:normalizeAddress(user,"helpers_invalid_params")})}function getSpotClearinghouseState({user}){return postInfo({type:"spotClearinghouseState",user:normalizeAddress(user,"helpers_invalid_params")})}function getOpenOrders({dex,user}){return postInfo({...dex?{dex}:{},type:"openOrders",user:normalizeAddress(user,"helpers_invalid_params")})}function getFrontendOpenOrders({dex,user}){return postInfo({...dex?{dex}:{},type:"frontendOpenOrders",user:normalizeAddress(user,"helpers_invalid_params")})}function getOrderStatus({oidOrCloid,user}){return postInfo({oid:oidOrCloid,type:"orderStatus",user:normalizeAddress(user,"helpers_invalid_params")})}function getUserFills({aggregateByTime,user}){return postInfo({...typeof aggregateByTime==="boolean"?{aggregateByTime}:{},type:"userFills",user:normalizeAddress(user,"helpers_invalid_params")})}function getUserFillsByTime({aggregateByTime,endTime,startTime,user}){return postInfo({...typeof aggregateByTime==="boolean"?{aggregateByTime}:{},...typeof endTime==="number"?{endTime}:{},startTime,type:"userFillsByTime",user:normalizeAddress(user,"helpers_invalid_params")})}function getHyperCoreAssetValue({coin,token,value,spotMeta}){if(!value||Number(value)<=0)return null;let ticker=coin?.toUpperCase()||`TOKEN-${token||"UNKNOWN"}`,decimal=fallbackDecimals[ticker]||baseDecimal,meta=spotMeta?.tokens?.find((t)=>t.name===coin||token!==void 0&&t.index===Number(token)),identifier=meta?`${HyperCoreChain}.${ticker}-${meta.name}:${meta.tokenId}`:`${HyperCoreChain}.${ticker}`;return new import_helpers11.AssetValue({decimal,identifier,value})}function mergeBalances(balances){let mergedBalances=new Map;for(let balance of balances){let key=balance.toString({includeSynthProtocol:!0}),currentBalance=mergedBalances.get(key);mergedBalances.set(key,currentBalance?currentBalance.add(balance):balance)}if(![...mergedBalances.values()].some((asset)=>asset.isGasAsset||asset.ticker==="HYPE")){let nativeAsset=import_helpers11.AssetValue.from({chain:HyperCoreChain,value:0});mergedBalances.set(nativeAsset.toString({includeSynthProtocol:!0}),nativeAsset)}return[...mergedBalances.values()]}async function getApiBaseUrl(){try{return await import_helpers11.getRPCUrl(HyperCoreChain)}catch{let[rpcUrl]=import_helpers11.getChainConfig(HyperCoreChain).rpcUrls;if(!rpcUrl)throw new import_helpers11.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:HyperCoreChain});return rpcUrl}}async function getExchangeEndpoint(){return`${await getApiBaseUrl()}/exchange`}function getTypedData(action){let primaryType=primaryTypes2[action.type],{type,...message}=action,payloadTypes=userSignedActionTypes2[type];return{domain:{chainId:Number.parseInt(action.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:zeroAddress2,version:"1"},message,primaryType,types:{[primaryType]:payloadTypes}}}async function createL1ActionRequest({action,expiresAfter,nonce,vaultAddress}){let resolvedNonce=nonce||Date.now(),normalizedVaultAddress=vaultAddress?normalizeAddress(vaultAddress,"helpers_invalid_params"):void 0,endpoint=await getExchangeEndpoint(),connectionId=getActionHash(action,resolvedNonce,{expiresAfter,vaultAddress:normalizedVaultAddress});return{action,endpoint,expiresAfter,nonce:resolvedNonce,typedData:getL1TypedData(connectionId),vaultAddress:normalizedVaultAddress}}async function createUserSignedActionRequest({action,nonce,signatureChainId:signatureChainId2}){let resolvedNonce=nonce||action.nonce||Date.now(),resolvedSignatureChainId=signatureChainId2||action.signatureChainId||"0xa4b1",normalizedAction=normalizeUserSignedAction({...action,nonce:resolvedNonce,signatureChainId:resolvedSignatureChainId});return{action:normalizedAction,endpoint:await getExchangeEndpoint(),nonce:resolvedNonce,typedData:getUserSignedTypedData(normalizedAction)}}async function createTransaction({assetValue,recipient,sender,signatureChainId:customSignatureChainId,time}){let destination=normalizeAddress(recipient,"core_transaction_invalid_recipient_address"),from=normalizeAddress(sender,"core_transaction_invalid_sender_address"),endpoint=await getExchangeEndpoint(),amount=assetValue.getValue("string"),nonce=time||Date.now(),token=assetValue.address;if(!token)throw new import_helpers11.SwapKitError("helpers_invalid_params",{asset:assetValue.toString(),from});let action={amount,destination,hyperliquidChain:hyperliquidMainnet,signatureChainId:customSignatureChainId||signatureChainId,time:nonce,token,type:"spotSend"};return{action,endpoint,nonce,typedData:getTypedData(action)}}async function broadcastTransaction(signed){let response=await import_helpers11.RequestClient.post(signed.endpoint,{json:{action:signed.action,...typeof signed.expiresAfter==="number"?{expiresAfter:signed.expiresAfter}:{},nonce:signed.nonce,signature:signed.signature,...signed.vaultAddress?{vaultAddress:signed.vaultAddress}:{}}});if(response.status!=="ok")throw new import_helpers11.SwapKitError("core_transaction_failed",{response});return response}async function getTransferHash(user,nonce){let apiBaseUrl=await getApiBaseUrl(),startTime=nonce-5000;for(let attempt=0;attempt<5;attempt++){if(attempt>0)await new Promise((r)=>setTimeout(r,1000));try{let updates=await import_helpers11.RequestClient.post(`${apiBaseUrl}/info`,{json:{startTime,type:"userNonFundingLedgerUpdates",user}}),match7=Array.isArray(updates)?updates.find((u)=>u.time&&u.time>=nonce&&(u.delta?.type==="spotTransfer"||u.delta?.type==="internalTransfer")):void 0;if(match7?.hash)return match7.hash}catch{}}return""}function validateHyperCoreAddress(address){return address.startsWith("0x")&&validateEVMAddress(address)}function getHyperCoreToolbox(toolboxParams){let getFallbackBalance=getBalance(HyperCoreChain),index=toolboxParams&&"index"in toolboxParams?toolboxParams.index||0:0,derivationPath=import_helpers11.derivationPathToString(toolboxParams&&"derivationPath"in toolboxParams&&toolboxParams.derivationPath?toolboxParams.derivationPath:import_helpers11.updateDerivationPath(import_helpers11.NetworkDerivationPath[HyperCoreChain],{index})),cachedSigner,signerResolved=!1;function getSigner(){if(signerResolved)return cachedSigner;return cachedSigner=import_ts_pattern6.match(toolboxParams).with({phrase:import_ts_pattern6.P.string},({phrase})=>{return import_ethers6.HDNodeWallet.fromPhrase(phrase,void 0,derivationPath)}).with({signer:import_ts_pattern6.P.not(import_ts_pattern6.P.nullish)},({signer})=>signer).otherwise(()=>{return}),signerResolved=!0,cachedSigner}async function getAddress3(){let signer=getSigner();return signer?await signer.getAddress():""}async function signTransaction(request){let signer=getSigner();if(!signer)throw new import_helpers11.SwapKitError("toolbox_hypercore_no_signer");let signatureHex=await signer.signTypedData(request.typedData.domain,request.typedData.types,request.typedData.message);return{action:request.action,endpoint:request.endpoint,nonce:request.nonce,signature:getSignatureValues(signatureHex),..."expiresAfter"in request?{expiresAfter:request.expiresAfter}:{},..."vaultAddress"in request?{vaultAddress:request.vaultAddress}:{}}}async function getBalance2(address){let normalizedAddress=normalizeAddress(address,"helpers_invalid_params");try{let apiBaseUrl=await getApiBaseUrl(),[spotState,perpState,spotMeta]=await Promise.all([import_helpers11.RequestClient.post(`${apiBaseUrl}/info`,{json:{type:"spotClearinghouseState",user:normalizedAddress}}),import_helpers11.RequestClient.post(`${apiBaseUrl}/info`,{json:{type:"clearinghouseState",user:normalizedAddress}}),import_helpers11.RequestClient.post(`${apiBaseUrl}/info`,{json:{type:"spotMeta"}})]),spotBalances=(spotState.spotState?.balances||spotState.balances||[]).map(({coin,token,total})=>getHyperCoreAssetValue({coin,spotMeta,token,value:total})).filter((asset)=>!!asset),perpBalance=getHyperCoreAssetValue({coin:"USDC",spotMeta,value:perpState.withdrawable||perpState.marginSummary?.accountValue||perpState.marginSummary?.totalRawUsd});return mergeBalances(perpBalance?[...spotBalances,perpBalance]:spotBalances)}catch{return getFallbackBalance(normalizedAddress)}}async function transfer(params){let signer=getSigner();if(!signer)throw new import_helpers11.SwapKitError("toolbox_hypercore_no_signer");let sender=params.sender||await signer.getAddress(),transaction=await createTransaction({...params,feeRate:0,sender}),signed=await signTransaction(transaction);return await broadcastTransaction(signed),getTransferHash(sender,transaction.nonce)}function estimateTransactionFee(){return import_helpers11.AssetValue.from({chain:HyperCoreChain,value:0})}return{broadcastTransaction,createL1ActionRequest,createTransaction,createUserSignedActionRequest,estimateTransactionFee,getAddress:getAddress3,getBalance:getBalance2,getState:{clearinghouse:getClearinghouseState,frontendOpenOrders:getFrontendOpenOrders,openOrders:getOpenOrders,orderStatus:getOrderStatus,spotClearinghouse:getSpotClearinghouseState,userFills:getUserFills,userFillsByTime:getUserFillsByTime},signTransaction,transfer,validateAddress:validateHyperCoreAddress}}var import_helpers11,import_ethers6,import_ts_pattern6,HyperCoreChain,baseDecimal,fallbackDecimals,hyperliquidMainnet="Mainnet",signatureChainId="0xa4b1",zeroAddress2="0x0000000000000000000000000000000000000000",userSignedActionTypes2,primaryTypes2;var init_toolbox2=__esm(()=>{init_evm2();init_utils();init_signing();import_helpers11=require("@swapkit/helpers"),import_ethers6=require("ethers"),import_ts_pattern6=require("ts-pattern"),HyperCoreChain=import_helpers11.Chain.HyperCore,{baseDecimal}=import_helpers11.getChainConfig(HyperCoreChain),fallbackDecimals={HYPE:baseDecimal,USDC:6,USDT:6},userSignedActionTypes2={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},primaryTypes2={spotSend:"HyperliquidTransaction:SpotSend"}});var exports_hypercore={};__export(exports_hypercore,{validateHyperCoreAddress:()=>validateHyperCoreAddress,getHyperCoreToolbox:()=>getHyperCoreToolbox,createUserSignedActionRequest:()=>createUserSignedActionRequest,createTransaction:()=>createTransaction,createL1ActionRequest:()=>createL1ActionRequest,buildUsdClassTransferAction:()=>buildUsdClassTransferAction,buildUpdateLeverageAction:()=>buildUpdateLeverageAction,buildUpdateIsolatedMarginAction:()=>buildUpdateIsolatedMarginAction,buildTopUpIsolatedOnlyMarginAction:()=>buildTopUpIsolatedOnlyMarginAction,buildTokenDelegateAction:()=>buildTokenDelegateAction,buildSendAssetAction:()=>buildSendAssetAction,buildScheduleCancelAction:()=>buildScheduleCancelAction,buildOrderAction:()=>buildOrderAction,buildModifyAction:()=>buildModifyAction,buildCancelByCloidAction:()=>buildCancelByCloidAction,buildCancelAction:()=>buildCancelAction,buildBatchModifyAction:()=>buildBatchModifyAction,buildApproveBuilderFeeAction:()=>buildApproveBuilderFeeAction,buildApproveAgentAction:()=>buildApproveAgentAction});module.exports=__toCommonJS(exports_hypercore);var init_hypercore=__esm(()=>{init_toolbox2()});init_hypercore();
|
|
1
|
+
var nn=Object.create;var{getPrototypeOf:rn,defineProperty:J,getOwnPropertyNames:at,getOwnPropertyDescriptor:on}=Object,ut=Object.prototype.hasOwnProperty;function ct(e){return this[e]}var yn,sn,mr=(e,t,n)=>{var r=e!=null&&typeof e==="object";if(r){var o=t?yn??=new WeakMap:sn??=new WeakMap,i=o.get(e);if(i)return i}n=e!=null?nn(rn(e)):{};let s=t||!e||!e.__esModule?J(n,"default",{value:e,enumerable:!0}):n;for(let p of at(e))if(!ut.call(s,p))J(s,p,{get:ct.bind(e,p),enumerable:!0});if(r)o.set(e,s);return s},lt=(e)=>{var t=(pt??=new WeakMap).get(e),n;if(t)return t;if(t=J({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var r of at(e))if(!ut.call(t,r))J(t,r,{get:ct.bind(e,r),enumerable:!(n=on(e,r))||n.enumerable})}return pt.set(e,t),t},pt;var pn=(e)=>e;function an(e,t){this[e]=pn.bind(null,t)}var ke=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0,configurable:!0,set:an.bind(t,n)})};var D=(e,t)=>()=>(e&&(t=e(e=0)),t);function Ur(){function e(){let t=Date.now(),n=_e||t;return _e=n,t>_e?t:n+1}return un+e().toString(36)}function ie(e){return async function(n,r=!0){let o=await dt.SwapKitApi.getChainBalance({address:n,chain:e,scamFilter:r}),{baseDecimal:i}=I.getChainConfig(e),s=o.map(({identifier:u,value:f,decimal:d})=>{return new I.AssetValue({decimal:d||i,identifier:u,value:f})});if(!s.some((u)=>u.isGasAsset))return[I.AssetValue.from({chain:e}),...s];return s}}var I,dt,un,_e=0;var Ge=D(()=>{I=require("@swapkit/helpers"),dt=require("@swapkit/helpers/api"),un=typeof process<"u"&&process.pid?process.pid.toString(36):""});function P(e){return{getBalance:ie(e)}}function cn(e){return e}var ye=D(()=>{Ge()});function gt(e){return new $.JsonRpcProvider(e)}async function ze(e,t){return gt(t||await c.getRPCUrl(e))}function V(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function he(e){let{explorerUrl:t,chainIdHex:n,rpcUrls:r}=c.getChainConfig(e);return function(){return e!==c.Chain.Ethereum?{...ln({chain:e}),blockExplorerUrls:[t],chainId:n,rpcUrls:r}:void 0}}function Fe(e){return![c.Chain.Adi,c.Chain.Arbitrum,c.Chain.BinanceSmartChain].includes(e)}function ln({chain:e}){let{name:t,nativeCurrency:n,baseDecimal:r}=c.getChainConfig(e);return Qe.match(e).with(c.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:r,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:r,name:"Avalanche",symbol:e}})).with(c.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:r,name:"Berachain",symbol:"BERA"}})).with(c.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:r,name:"OKB",symbol:"OKB"}})).with(c.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:r,name:"Binance Coin",symbol:"BNB"}})).with(c.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:r,name:"xDAI",symbol:"XDAI"}})).with(c.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:c.Chain.Ethereum}})).with(c.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:r,name:"Polygon",symbol:c.Chain.Polygon}})).otherwise(()=>({chainName:t,nativeCurrency:{decimals:r,name:n,symbol:n}}))}async function Ne(e,t){if(!("authorize"in e))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let n={...t,nonce:t.nonce!==void 0?BigInt(t.nonce):void 0};return await e.authorize(n)}function At(e,t){let n=t!==void 0?`index ${t}: `:"",r=(o,i)=>{throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:o,message:`${n}${i}`}})};Qe.match(e).when(({chainId:o})=>typeof o!=="bigint",()=>r("chainId","chainId must be a bigint")).when(({address:o})=>!dn(o),()=>r("address","address must be a valid checksummed address")).when(({nonce:o})=>typeof o!=="bigint"||o<0n,()=>r("nonce","nonce must be a non-negative bigint")).when(({signature:o})=>!o,()=>r("signature","signature is required")).when(({signature:o})=>typeof o?.yParity!=="number"||![0,1].includes(o.yParity),()=>r("signature.yParity","yParity must be 0 or 1")).when(({signature:o})=>!ft(o?.r),()=>r("signature.r","r must be a 32-byte hex string")).when(({signature:o})=>!ft(o?.s),()=>r("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Ht(e){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:t})=>e[t]!=null).map(({key:t,type:n})=>({name:t,type:n}))}function We(e){return e.charAt(0).toUpperCase()+e.slice(1)}function $e(e,t){if(e.isTuple()&&e.components){let n=We(e.name);return t[n]=e.components.map((r)=>({name:r.name,type:$e(r,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let r=We(e.name.replace(/s$/,""));return t[r]=n.components.map((o)=>({name:o.name,type:$e(o,t)})),`${r}[]`}return`${n?.type??"bytes"}[]`}return e.type}function Oe(e,t){if(typeof e==="bigint")return e;if(t?.isTuple()&&typeof e?.toObject==="function"){let n=e.toObject(),r={};for(let[o,i]of(t.components??[]).entries())r[i.name]=Oe(n[i.name]??e[o],i);return r}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((r)=>Oe(r,n??void 0))}return e}function fn({chain:e,abi:t,data:n,to:r}){let i=new $.Interface(t).parseTransaction({data:n});if(!i)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let s={},p=We(i.name);s[p]=i.fragment.inputs.map((a)=>({name:a.name,type:$e(a,s)}));let u={};for(let[a,l]of i.fragment.inputs.entries())u[l.name]=Oe(i.args[a],l);let{chainId:f}=c.getChainConfig(e),d={chainId:Number(f),verifyingContract:$.getAddress(r)},H=Ht(d);return{domain:d,message:u,primaryType:p,types:{EIP712Domain:H,...s}}}function je(e,t){if(!Array.isArray(e)||e.length===0)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,r]of e.entries())if(At(r,n),t!==void 0&&r.chainId!==t)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${r.chainId}) does not match transaction chainId (${t})`}})}var c,$,Qe,ft=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),dn=(e)=>{try{return typeof e==="string"&&!!$.getAddress(e)}catch{return!1}};var K=D(()=>{c=require("@swapkit/helpers"),$=require("ethers"),Qe=require("ts-pattern")});var Ct;var Tt=D(()=>{Ct=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function N({chain:e=y.Chain.Ethereum,provider:t,signer:n,isEIP1559Compatible:r=!0}){return{approve:Tn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),approvedAmount:Ut({chain:e,provider:t}),broadcastTransaction:t.broadcastTransaction,call:Pe({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),createApprovalTx:xn({chain:e,provider:t,signer:n}),createContract:Ze({chain:e,provider:t}),createContractTxObject:O({chain:e,provider:t}),createTransaction:Ye({chain:e,provider:t,signer:n}),createTransferTx:Ye({chain:e,provider:t,signer:n}),EIP1193SendTransaction:Y(t),estimateCall:xt({provider:t,signer:n}),estimateGasLimit:bn({chain:e,provider:t,signer:n}),estimateGasPrices:Q({chain:e,isEIP1559Compatible:r,provider:t}),estimateTransactionFee:wn({chain:e,isEIP1559Compatible:r,provider:t}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:P(e).getBalance,getNetworkParams:he(e),isApproved:Cn({chain:e,provider:t}),sendTransaction:wt({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),signAuthorization:Un({signer:n}),signMessage:n?(o)=>n.signMessage(o):void 0,signTypedData:n?({domain:o,types:i,value:s})=>n.signTypedData(o,i,s):void 0,transfer:mn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),validateAddress:v}}function v(e){try{return B.getAddress(e),!0}catch{return!1}}function j(e){return e instanceof B.BrowserProvider}function ee(e,t,n){return new B.Contract(e,B.Interface.from(t),n)}function Ze({provider:e}){return function(n,r){return new B.Contract(n,B.Interface.from(r),e)}}function Je({abi:e,funcName:t}){let n=e.find((r)=>r.name===t);if(!n)throw new y.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:t});return n.stateMutability&&gn.includes(n.stateMutability)}function mt(e){return B.getAddress(e)}function Y(e){return function({value:n,...r}){if(!j(e))throw new y.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:o,gasPrice:i,maxFeePerGas:s,maxPriorityFeePerGas:p,...u}=r;return e.send("eth_sendTransaction",[{...u,value:V(BigInt(n||0))}])}}function bt(e,t){let n=X(e,t);if(n)return B.getAddress(n.toLowerCase());throw new y.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function X({chain:e,symbol:t,ticker:n},r){try{let o=e===y.Chain.BinanceSmartChain&&t==="BNB"&&n==="BNB",i=e===y.Chain.Hyperevm&&t==="HYPE"&&n==="HYPE",s=e===r&&t===r&&n===r,p=Hn.includes(e)&&t==="ETH"&&n==="ETH";if(s||o||i||p)return Ie[r];return B.getAddress(t.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function O({provider:e}){return async({contractAddress:t,abi:n,funcName:r,funcParams:o=[],txOverrides:i})=>ee(t,n,e).getFunction(r).populateTransaction(...o.concat(i).filter((s)=>typeof s<"u"))}function Q({chain:e,provider:t,isEIP1559Compatible:n=!0}){return Xe.match(e).with(y.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:o,maxPriorityFeePerGas:i}=await t.getFeeData();if(!o||i===null)throw new y.SwapKitError("toolbox_evm_no_fee_data");return{[y.FeeOption.Average]:{maxFeePerGas:y.applyFeeMultiplierToBigInt(o,y.FeeOption.Average),maxPriorityFeePerGas:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Average)},[y.FeeOption.Fast]:{maxFeePerGas:y.applyFeeMultiplierToBigInt(o,y.FeeOption.Fast),maxPriorityFeePerGas:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fast)},[y.FeeOption.Fastest]:{maxFeePerGas:y.applyFeeMultiplierToBigInt(o,y.FeeOption.Fastest),maxPriorityFeePerGas:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fastest)}}}catch(o){throw new y.SwapKitError("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).with(y.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:o}=await t.getFeeData();if(!o)throw new y.SwapKitError("toolbox_evm_no_fee_data");let i=o*12n/10n;return{[y.FeeOption.Average]:{gasPrice:i},[y.FeeOption.Fast]:{gasPrice:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fast)},[y.FeeOption.Fastest]:{gasPrice:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fastest)}}}catch(o){throw new y.SwapKitError("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:i,gasPrice:s}=await t.getFeeData();if(n){if(o===null||i===null)throw new y.SwapKitError("toolbox_evm_no_fee_data");return{[y.FeeOption.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:i},[y.FeeOption.Fast]:{maxFeePerGas:y.applyFeeMultiplierToBigInt(o,y.FeeOption.Fast),maxPriorityFeePerGas:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fast)},[y.FeeOption.Fastest]:{maxFeePerGas:y.applyFeeMultiplierToBigInt(o,y.FeeOption.Fastest),maxPriorityFeePerGas:y.applyFeeMultiplierToBigInt(i,y.FeeOption.Fastest)}}}if(!s)throw new y.SwapKitError("toolbox_evm_no_gas_price");return{[y.FeeOption.Average]:{gasPrice:s},[y.FeeOption.Fast]:{gasPrice:y.applyFeeMultiplierToBigInt(s,y.FeeOption.Fast)},[y.FeeOption.Fastest]:{gasPrice:y.applyFeeMultiplierToBigInt(s,y.FeeOption.Fastest)}}}catch(o){throw new y.SwapKitError("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}})}function Pe({provider:e,isEIP1559Compatible:t,signer:n,chain:r}){return async function({callProvider:i,contractAddress:s,abi:p,funcName:u,funcParams:f=[],txOverrides:d={},feeOption:H=y.FeeOption.Fast}){let a=i||e;if(!s)throw new y.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let l=Je({abi:p,funcName:u});if(l&&j(a)&&n){let x=O({chain:r,provider:a}),S=d?.from||await n?.getAddress(),w=await x({abi:p,contractAddress:s,funcName:u,funcParams:f,txOverrides:{...d,from:S}});return Y(a)(w)}let A=ee(s,p,a);if(l){if(!n)throw new y.SwapKitError("toolbox_evm_no_signer");let x=d?.from||await n.getAddress();if(!x)throw new y.SwapKitError("toolbox_evm_no_signer_address");let S=A.connect(n),w=Q({chain:r,isEIP1559Compatible:t,provider:e}),{maxFeePerGas:k,maxPriorityFeePerGas:_,gasPrice:W}=(await w())[H],h=await A.getFunction(u).estimateGas(...f,d),M=await S[u](...f,{...d,gasLimit:h,gasPrice:W,maxFeePerGas:k,maxPriorityFeePerGas:_,nonce:d?.nonce||await a.getTransactionCount(x)});return typeof M?.hash==="string"?M?.hash:M}let b=await A[u]?.(...f);return typeof b?.hash==="string"?b?.hash:b}}function Ut({provider:e,chain:t}){return function({assetAddress:r,spenderAddress:o,from:i}){return Pe({chain:t,isEIP1559Compatible:!0,provider:e})({abi:F.erc20ABI,contractAddress:r,funcName:"allowance",funcParams:[i,o]})}}function Cn({provider:e,chain:t}){return async function({assetAddress:r,spenderAddress:o,from:i,amount:s=E}){let p=await Ut({chain:t,provider:e})({assetAddress:r,from:i,spenderAddress:o});return y.SwapKitNumber.fromBigInt(p).gte(y.SwapKitNumber.fromBigInt(BigInt(s)))}}function Tn({signer:e,isEIP1559Compatible:t=!0,provider:n,chain:r}){return async function({assetAddress:i,spenderAddress:s,feeOptionKey:p=y.FeeOption.Fast,amount:u,gasLimitFallback:f,from:d,nonce:H}){let a=[s,BigInt(u||E)],l=await e?.getAddress()||d,A={abi:F.erc20ABI,contractAddress:i,funcName:"approve",funcParams:a,signer:e,txOverrides:{from:l}};if(j(n)){let x=O({chain:r,provider:n}),S=Y(n),w=await x(A);return S(w)}return Pe({chain:r,isEIP1559Compatible:t,provider:n,signer:e})({...A,feeOption:p,funcParams:a,txOverrides:{from:l,gasLimit:f?BigInt(f.toString()):void 0,nonce:H}})}}function mn({signer:e,isEIP1559Compatible:t=!0,provider:n}){return async function({assetValue:o,memo:i,recipient:s,feeOptionKey:p=y.FeeOption.Fast,sender:u,...f}){let{hexlify:d,toUtf8Bytes:H}=await import("ethers"),a=o.getBaseValue("bigint"),l=o.chain,A=u||await e?.getAddress(),b=wt({chain:l,isEIP1559Compatible:t,provider:n,signer:e});if(!A)throw new y.SwapKitError("toolbox_evm_no_from_address");if(o.isGasAsset){let W={...f,data:d(H(i||"")),feeOptionKey:p,from:A,to:s,value:a};return b(W)}if(!X(o,l))throw new y.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:S,maxPriorityFeePerGas:w,gasPrice:k}=(await Q({chain:l,isEIP1559Compatible:t,provider:n})())[p],_=await Ye({chain:l,provider:n,signer:e})({assetValue:o,data:d(H(i||"")),gasPrice:k,maxFeePerGas:S,maxPriorityFeePerGas:w,memo:i,recipient:s,sender:A});return b(_)}}function xt({provider:e,signer:t}){return function({contractAddress:r,abi:o,funcName:i,funcParams:s=[],txOverrides:p}){if(!r)throw new y.SwapKitError("toolbox_evm_no_contract_address");let u=ee(r,o,e);return t?u.connect(t).getFunction(i).estimateGas(...s,p):u.getFunction(i).estimateGas(...s,p)}}function bn({provider:e,signer:t}){return async function({assetValue:r,recipient:o,memo:i,data:s,sender:p,funcName:u,funcParams:f,txOverrides:d}){let H=r.bigIntValue,a=r.isGasAsset?null:X(r,r.chain);if(a&&u)return xt({provider:e,signer:t})({abi:F.erc20ABI,contractAddress:a,funcName:u,funcParams:f,txOverrides:d});let{hexlify:l,toUtf8Bytes:A}=await import("ethers");return e.estimateGas({data:s?s:i?l(A(i)):void 0,from:p,to:o,value:H})}}function Un({signer:e}){if(!e)return;return(t)=>Ne(e,t)}function wt({provider:e,signer:t,isEIP1559Compatible:n=!0,chain:r}){return async function({feeOptionKey:i=y.FeeOption.Fast,...s}){let{from:p,to:u,data:f,value:d,...H}=s;if(!t)throw new y.SwapKitError("toolbox_evm_no_signer");if(!u)throw new y.SwapKitError("toolbox_evm_no_to_address");let a={...H,data:f||"0x",from:p,to:u,value:BigInt(d||0)};if(j(e))return Y(e)(a);let l=p||await t.getAddress(),A=s.nonce||await e.getTransactionCount(l),b=(await e.getNetwork()).chainId,x=Ke(a,n);if(x==="eip7702")je(a.authorizations||[],b);let S=Xe.match(x).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),w={...a,chainId:b,nonce:A,type:S,...x==="eip7702"&&{authorizationList:a.authorizations}},k=Q({chain:r,isEIP1559Compatible:n,provider:e}),W=x!=="legacy"&&!(a.maxFeePerGas&&a.maxPriorityFeePerGas)||!a.gasPrice?Object.entries((await k())[i]).reduce((M,[oe,st])=>({...M,[oe]:V(BigInt(st))}),{}):{},h;try{h=V(a.gasLimit||await e.estimateGas(w)*11n/10n)}catch(M){throw new y.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:M})}try{let M={...w,gasLimit:h,...W};try{return(await t.sendTransaction(M)).hash}catch{let oe=await t.signTransaction({...M,from:l});return(await e.broadcastTransaction(oe)).hash}}catch(M){throw new y.SwapKitError("toolbox_evm_error_sending_transaction",{error:M})}}}function Ye({provider:e,signer:t}){return async function({assetValue:r,memo:o,recipient:i,data:s,sender:p,maxFeePerGas:u,maxPriorityFeePerGas:f,gasPrice:d,...H}){let a=r.getBaseValue("bigint"),l=r.chain,A=p||await t?.getAddress();if(!A)throw new y.SwapKitError("toolbox_evm_no_from_address");if(y.isGasAsset(r)){let{hexlify:S,toUtf8Bytes:w}=await import("ethers");return{...H,data:s||S(w(o||"")),from:A,to:i,value:a}}let b=X(r,l);if(!b)throw new y.SwapKitError("toolbox_evm_no_contract_address");return O({chain:r.chain,provider:e})({abi:F.erc20ABI,contractAddress:b,funcName:"transfer",funcParams:[i,a],txOverrides:{from:A,gasPrice:d,maxFeePerGas:u,maxPriorityFeePerGas:f}})}}function xn({provider:e,signer:t,chain:n}){return async function({assetAddress:o,spenderAddress:i,amount:s,from:p}){let u=await t?.getAddress()||p,f=O({chain:n,provider:e}),d=["bigint","number"].includes(typeof s)?s:s||E;return await f({abi:F.erc20ABI,contractAddress:o,funcName:"approve",funcParams:[i,BigInt(d)],txOverrides:{from:u}})}}function wn({provider:e,isEIP1559Compatible:t=!0,chain:n}){return async function({feeOption:o=y.FeeOption.Fast,...i}){let p=await Q({chain:n,isEIP1559Compatible:t,provider:e})(),u=await e.estimateGas(i),f=y.AssetValue.from({chain:n}),{gasPrice:d,maxFeePerGas:H,maxPriorityFeePerGas:a}=p[o];if(!t&&d)return f.set(y.SwapKitNumber.fromBigInt(d*u,f.decimal));if(H&&a){let l=(H+a)*u;return f.set(y.SwapKitNumber.fromBigInt(l,f.decimal))}throw new y.SwapKitError("toolbox_evm_no_gas_price")}}var y,F,B,Xe,E,gn,An,Ie,Hn,se=(e)=>e.type===4||(e.authorizations?.length??0)>0,Ve=(e)=>!se(e)&&(e.type===2||!!e.maxFeePerGas||!!e.maxPriorityFeePerGas),Ke=(e,t=!0)=>{if(se(e))return"eip7702";if(Ve(e)||t)return"eip1559";return"legacy"};var pe=D(()=>{ye();K();y=require("@swapkit/helpers"),F=require("@swapkit/helpers/contracts"),B=require("ethers"),Xe=require("ts-pattern"),E=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");gn=["payable","nonpayable"];An=y.EVMChains.reduce((e,t)=>{return e[t]="0x0000000000000000000000000000000000000000",e},{}),Ie={...An,[y.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[y.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Hn=[y.Chain.Arbitrum,y.Chain.Aurora,y.Chain.Base,y.Chain.Optimism]});function ae(e){let t=U(C.Chain.Ethereum)(e);async function n(r,o="0x5ba1e12693dc8f9c48aad8770482f4739beed696",i="aggregate",s=C.FeeOption.Fast){let p=await t.createContractTxObject({abi:Ct,contractAddress:o,funcName:i,funcParams:[r]});return t.sendTransaction({...p,feeOptionKey:s})}return{...t,multicall:n}}function U(e){return function({provider:n,...r}){let o=Fe(e),i=te.match(r).with({phrase:te.P.string},({phrase:p})=>St.HDNodeWallet.fromPhrase(p).connect(n)).with({signer:te.P.any},({signer:p})=>p).otherwise(()=>{return});return N({chain:e,isEIP1559Compatible:o,provider:n,signer:i})}}var C,St,te,ue,ce,le,de,fe,ge,Ae,Dt,He,Ce,Te,me,be,Ue,ne,xe,we,Se,De;var Ee=D(()=>{Tt();K();pe();C=require("@swapkit/helpers"),St=require("ethers"),te=require("ts-pattern");ue=U(C.Chain.Adi),ce=U(C.Chain.Arbitrum),le=U(C.Chain.Aurora),de=U(C.Chain.Avalanche),fe=U(C.Chain.Base),ge=U(C.Chain.Berachain),Ae=U(C.Chain.BinanceSmartChain),Dt=U(C.Chain.Botanix),He=U(C.Chain.Core),Ce=U(C.Chain.Corn),Te=U(C.Chain.Cronos),me=U(C.Chain.Gnosis),be=U(C.Chain.Hyperevm),Ue=U(C.Chain.Polygon),ne=U(C.Chain.Sonic),xe=U(C.Chain.Unichain),we=U(C.Chain.XLayer),Se=U(C.Chain.Monad),De=U(C.Chain.MegaETH)});var Rt;var Mt=D(()=>{Rt=[{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 ve(e){return new Re.Contract(Dn,Rt,e)}function Bt(e){return async function(){let n=ve(e);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function qt(e){return async function({from:n,to:r,nonce:o,...i}){let{Transaction:s}=await import("ethers");if(!r)throw new T.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return s.from({...i,authorizationList:i.authorizationList,nonce:o?o:n?await e.getTransactionCount(n):0,to:r}).serialized}}function Lt(e){return async function(n){let r=ve(e),o=await qt(e)(n);if(r&&"getL1Fee"in r)return r.getL1Fee(o)}}function kt(e){return async function(n){let o=(await e.getFeeData()).gasPrice??0n,i=await e.estimateGas(n);return o*i}}function Rn(e){return async function(n){let r=await Lt(e)(n)??0n,o=await kt(e)(n);return r+o}}function Mn(e){return async function(n){let r=ve(e),o=await qt(e)(n);if(r&&"getL1GasUsed"in r)return r.getL1GasUsed(o)}}function Bn(e){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:r,gasPrice:o}=await e.getFeeData(),i=await Bt(e)(),s=o;if(!(n&&r))throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{gasPrice:s,l1GasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:r},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(s,T.FeeOption.Fast),l1GasPrice:T.applyFeeMultiplierToBigInt(i||0n,T.FeeOption.Fast),maxFeePerGas:n,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(r,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(s,T.FeeOption.Fastest),l1GasPrice:T.applyFeeMultiplierToBigInt(i||0n,T.FeeOption.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(r,T.FeeOption.Fastest)}}}catch(n){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Me({provider:e,...t}){let n=re.match(t).with({phrase:re.P.string},({phrase:i})=>Re.HDNodeWallet.fromPhrase(i).connect(e)).with({signer:re.P.any},({signer:i})=>i).otherwise(()=>{return}),r=N({provider:e,signer:n}),o=Bt(e);return{...r,estimateGasPrices:Bn(e),estimateL1Gas:Mn(e),estimateL1GasCost:Lt(e),estimateL2GasCost:kt(e),estimateTotalGasCost:Rn(e),getBalance:P(T.Chain.Optimism).getBalance,getL1GasPrice:o}}var T,Re,re,Dn="0x420000000000000000000000000000000000000f";var et=D(()=>{ye();Mt();pe();T=require("@swapkit/helpers"),Re=require("ethers"),re=require("ts-pattern")});var qn={};ke(qn,{validateEVMAddress:()=>v,toChecksumAddress:()=>mt,isStateChangingCall:()=>Je,isEIP7702Transaction:()=>se,isEIP1559Transaction:()=>Ve,isBrowserProvider:()=>j,getTokenAddress:()=>X,getEvmToolboxAsync:()=>Gt,getEvmToolbox:()=>tt,getEstimateGasPrices:()=>Q,getEVMTxType:()=>Ke,getEIP1193SendTransaction:()=>Y,getCreateContractTxObject:()=>O,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createContract:()=>ee,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>ne,OPToolbox:()=>Me,MONADToolbox:()=>Se,MEGAETHToolbox:()=>De,MAX_APPROVAL:()=>E,MATICToolbox:()=>Ue,HYPEREVMToolbox:()=>be,GNOToolbox:()=>me,ETHToolbox:()=>ae,ContractAddress:()=>Ie,CROToolbox:()=>Te,CORNToolbox:()=>Ce,COREToolbox:()=>He,BotanixToolbox:()=>Dt,BaseEVMToolbox:()=>N,BSCToolbox:()=>Ae,BERAToolbox:()=>ge,BASEToolbox:()=>fe,AVAXToolbox:()=>de,AURORAToolbox:()=>le,ARBToolbox:()=>ce,ADIToolbox:()=>ue});function tt(e,t){return _t.match(e).with(m.Chain.Adi,()=>ue(t)).with(m.Chain.Arbitrum,()=>ce(t)).with(m.Chain.Aurora,()=>le(t)).with(m.Chain.Avalanche,()=>de(t)).with(m.Chain.Base,()=>fe(t)).with(m.Chain.Berachain,()=>ge(t)).with(m.Chain.BinanceSmartChain,()=>Ae(t)).with(m.Chain.Botanix,()=>ne(t)).with(m.Chain.Core,()=>He(t)).with(m.Chain.Corn,()=>Ce(t)).with(m.Chain.Cronos,()=>Te(t)).with(m.Chain.Ethereum,()=>ae(t)).with(m.Chain.Gnosis,()=>me(t)).with(m.Chain.Hyperevm,()=>be(t)).with(m.Chain.Optimism,()=>Me(t)).with(m.Chain.Polygon,()=>Ue(t)).with(m.Chain.Sonic,()=>ne(t)).with(m.Chain.Unichain,()=>xe(t)).with(m.Chain.XLayer,()=>we(t)).with(m.Chain.Monad,()=>Se(t)).with(m.Chain.MegaETH,()=>De(t)).exhaustive()}async function Gt(e,t){let n={...t,provider:t?.provider||await ze(e)};return tt(e,n)}var m,_t;var Wt=D(()=>{K();Ee();et();m=require("@swapkit/helpers"),_t=require("ts-pattern");pe();Ee();et()});var $t;var Ot=D(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})($t||={})});var Ln={};ke(Ln,{validateEVMAddress:()=>v,validateAuthorizations:()=>je,validateAuthorization:()=>At,toHexString:()=>V,toChecksumAddress:()=>mt,signAuthorization:()=>Ne,parseEIP712FromEVMTx:()=>fn,isStateChangingCall:()=>Je,isEIP7702Transaction:()=>se,isEIP1559Transaction:()=>Ve,isBrowserProvider:()=>j,getTokenAddress:()=>X,getProviderSync:()=>gt,getProvider:()=>ze,getNetworkParams:()=>he,getIsEIP1559Compatible:()=>Fe,getEvmToolboxAsync:()=>Gt,getEvmToolbox:()=>tt,getEvmApi:()=>P,getEstimateGasPrices:()=>Q,getEVMTxType:()=>Ke,getEIP1193SendTransaction:()=>Y,getCreateContractTxObject:()=>O,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createCustomEvmApi:()=>cn,createContract:()=>ee,buildEIP712DomainType:()=>Ht,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>ne,OPToolbox:()=>Me,MONADToolbox:()=>Se,MEGAETHToolbox:()=>De,MAX_APPROVAL:()=>E,MATICToolbox:()=>Ue,HYPEREVMToolbox:()=>be,GNOToolbox:()=>me,EthNetwork:()=>$t,ETHToolbox:()=>ae,ContractAddress:()=>Ie,CROToolbox:()=>Te,CORNToolbox:()=>Ce,COREToolbox:()=>He,BotanixToolbox:()=>Dt,BaseEVMToolbox:()=>N,BSCToolbox:()=>Ae,BERAToolbox:()=>ge,BASEToolbox:()=>fe,AVAXToolbox:()=>de,AURORAToolbox:()=>le,ARBToolbox:()=>ce,ADIToolbox:()=>ue});module.exports=lt(Ln);var Qt=D(()=>{ye();K();Wt();Ot()});function kn({builder:e,grouping:t="na",orders:n}){return{builder:e,grouping:t,orders:n,type:"order"}}function _n({cancels:e}){return{cancels:e,type:"cancel"}}function Gn({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function Wn({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function $n({modifies:e}){return{modifies:e,type:"batchModify"}}function On({asset:e,isCross:t,leverage:n}){return{asset:e,isCross:t,leverage:n,type:"updateLeverage"}}function Qn({asset:e,isBuy:t,ntli:n}){return{asset:e,isBuy:t,ntli:n,type:"updateIsolatedMargin"}}function zn({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function hn({time:e}){return{time:e,type:"scheduleCancel"}}function Fn({amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o}){return{amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o,type:"usdClassTransfer"}}function Nn({amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:s,sourceDex:p,token:u}){return{amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:s,sourceDex:p,token:u,type:"sendAsset"}}function jn({agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o}){return{agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o,type:"approveAgent"}}function Yn({builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o}){return{builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o,type:"approveBuilderFee"}}function Xn({hyperliquidChain:e,isUndelegate:t,nonce:n,signatureChainId:r,validator:o,wei:i}){return{hyperliquidChain:e,isUndelegate:t,nonce:n,signatureChainId:r,type:"tokenDelegate",validator:o,wei:i}}function R(...e){let t=e.reduce((o,i)=>o+i.length,0),n=new Uint8Array(t),r=0;for(let o of e)n.set(o,r),r+=o.length;return n}function Kn(e,t,n){if(n<t)return new Uint8Array([e+n]);if(n<=255)return new Uint8Array([e+t,n]);if(n<=65535)return new Uint8Array([e+t+1,n>>8,n&255]);return new Uint8Array([e+t+2,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function G(e,t){let n=new Uint8Array(t),r=e;for(let o=t-1;o>=0;o-=1)n[o]=Number(r&0xffn),r>>=8n;return n}function zt(e){if(e>=0n){if(e<=0x7fn)return new Uint8Array([Number(e)]);if(e<=0xffn)return new Uint8Array([204,Number(e)]);if(e<=0xffffn)return R(new Uint8Array([205]),G(e,2));if(e<=0xffffffffn)return R(new Uint8Array([206]),G(e,4));return R(new Uint8Array([207]),G(e,8))}if(e>=-32n)return new Uint8Array([256+Number(e)]);if(e>=-128n)return new Uint8Array([208,256+Number(e)]);if(e>=-32768n)return R(new Uint8Array([209]),G(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return R(new Uint8Array([210]),G(BigInt.asUintN(32,e),4));return R(new Uint8Array([211]),G(BigInt.asUintN(64,e),8))}function Nt(e){let t=Vn.encode(e);if(t.length<32)return R(new Uint8Array([160+t.length]),t);return R(Kn(217,0,t.length),t)}function En(e){let t=e.map((r)=>rt(r)),n=e.length<16?new Uint8Array([144+e.length]):e.length<=65535?new Uint8Array([220,e.length>>8,e.length&255]):new Uint8Array([221,e.length>>>24&255,e.length>>>16&255,e.length>>>8&255,e.length&255]);return R(n,...t)}function vn(e){let t=Object.entries(e).filter(([,r])=>typeof r<"u"),n=t.length<16?new Uint8Array([128+t.length]):t.length<=65535?new Uint8Array([222,t.length>>8,t.length&255]):new Uint8Array([223,t.length>>>24&255,t.length>>>16&255,t.length>>>8&255,t.length&255]);return R(n,...t.flatMap(([r,o])=>[Nt(r),rt(o)]))}function rt(e){if(e===null)return new Uint8Array([192]);if(typeof e==="boolean")return new Uint8Array([e?195:194]);if(typeof e==="string")return Nt(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new Be.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return zt(BigInt(e))}if(typeof e==="bigint")return zt(e);if(e instanceof Uint8Array){let t=e.length<=255?new Uint8Array([196,e.length]):e.length<=65535?new Uint8Array([197,e.length>>8,e.length&255]):new Uint8Array([198,e.length>>>24&255,e.length>>>16&255,e.length>>>8&255,e.length&255]);return R(t,e)}if(Array.isArray(e))return En(e);if(typeof e==="object")return vn(e);throw new Be.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function er(e){let t=e.startsWith("0x")?e.slice(2):e;if(t.length%2!==0||/[^a-fA-F0-9]/u.test(t))throw new Be.SwapKitError("helpers_invalid_params",{hexValue:e});let n=new Uint8Array(t.length/2);for(let r=0;r<t.length;r+=2)n[r/2]=Number.parseInt(t.slice(r,r+2),16);return n}function jt(e){return{domain:Zn,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...Jn.Agent]}}}function Yt(e){let t=Pn[e.type],n=In[e.type],{type:r,...o}=e;return{domain:{chainId:Number.parseInt(o.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:ht,version:"1"},message:{...o,hyperliquidChain:o.hyperliquidChain||Ft},primaryType:t,types:{[t]:n}}}function Xt(e){let t=qe.Signature.from(e);return{r:t.r,s:t.s,v:t.v}}function Zt(e,t,{expiresAfter:n,vaultAddress:r}={}){let o=rt(e),i=G(BigInt(t),8),s=r?R(new Uint8Array([1]),er(r.toLowerCase())):new Uint8Array([0]),p=typeof n==="number"?R(new Uint8Array([0]),G(BigInt(n),8)):new Uint8Array;return qe.keccak256(R(o,i,s,p))}function Jt(e){let t=e.hyperliquidChain||Ft;switch(e.type){case"approveAgent":return{...e,agentAddress:e.agentAddress.toLowerCase(),hyperliquidChain:t};case"approveBuilderFee":return{...e,builder:e.builder.toLowerCase(),hyperliquidChain:t};case"sendAsset":return{...e,destination:e.destination.toLowerCase(),fromSubAccount:e.fromSubAccount.toLowerCase(),hyperliquidChain:t};case"tokenDelegate":return{...e,hyperliquidChain:t,validator:e.validator.toLowerCase()};case"usdClassTransfer":return{...e,hyperliquidChain:t};default:return e}}var Be,qe,ht="0x0000000000000000000000000000000000000000",Zn,Jn,Ft="Mainnet",In,Pn,Vn;var It=D(()=>{Be=require("@swapkit/helpers"),qe=require("ethers"),Zn={chainId:1337,name:"Exchange",verifyingContract:ht,version:"1"},Jn={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},In={approveAgent:[{name:"hyperliquidChain",type:"string"},{name:"agentAddress",type:"address"},{name:"agentName",type:"string"},{name:"nonce",type:"uint64"}],approveBuilderFee:[{name:"hyperliquidChain",type:"string"},{name:"maxFeeRate",type:"string"},{name:"builder",type:"address"},{name:"nonce",type:"uint64"}],sendAsset:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"sourceDex",type:"string"},{name:"destinationDex",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"fromSubAccount",type:"string"},{name:"nonce",type:"uint64"}],tokenDelegate:[{name:"hyperliquidChain",type:"string"},{name:"validator",type:"address"},{name:"wei",type:"uint64"},{name:"isUndelegate",type:"bool"},{name:"nonce",type:"uint64"}],usdClassTransfer:[{name:"hyperliquidChain",type:"string"},{name:"amount",type:"string"},{name:"toPerp",type:"bool"},{name:"nonce",type:"uint64"}]},Pn={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},Vn=new TextEncoder});function q(e,t){if(!yt(e))throw new g.SwapKitError(t,{address:e});return e.toLowerCase()}async function z(e){let t=await Le();return g.RequestClient.post(`${t}/info`,{json:e})}function sr({dex:e,user:t}){return z({...e?{dex:e}:{},type:"clearinghouseState",user:q(t,"helpers_invalid_params")})}function pr({user:e}){return z({type:"spotClearinghouseState",user:q(e,"helpers_invalid_params")})}function ar({dex:e,user:t}){return z({...e?{dex:e}:{},type:"openOrders",user:q(t,"helpers_invalid_params")})}function ur({dex:e,user:t}){return z({...e?{dex:e}:{},type:"frontendOpenOrders",user:q(t,"helpers_invalid_params")})}function cr({oidOrCloid:e,user:t}){return z({oid:e,type:"orderStatus",user:q(t,"helpers_invalid_params")})}function lr({aggregateByTime:e,user:t}){return z({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:q(t,"helpers_invalid_params")})}function dr({aggregateByTime:e,endTime:t,startTime:n,user:r}){return z({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof t==="number"?{endTime:t}:{},startTime:n,type:"userFillsByTime",user:q(r,"helpers_invalid_params")})}function Pt({coin:e,token:t,value:n,spotMeta:r}){if(!n||Number(n)<=0)return null;let o=e?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,i=tr[o]||Et,s=r?.tokens?.find((u)=>u.name===e||t!==void 0&&u.index===Number(t)),p=s?`${L}.${o}-${s.name}:${s.tokenId}`:`${L}.${o}`;return new g.AssetValue({decimal:i,identifier:p,value:n})}function fr(e){let t=new Map;for(let n of e){let r=n.toString({includeSynthProtocol:!0}),o=t.get(r);t.set(r,o?o.add(n):n)}if(![...t.values()].some((n)=>n.isGasAsset||n.ticker==="HYPE")){let n=g.AssetValue.from({chain:L,value:0});t.set(n.toString({includeSynthProtocol:!0}),n)}return[...t.values()]}async function Le(){try{return await g.getRPCUrl(L)}catch{let[e]=g.getChainConfig(L).rpcUrls;if(!e)throw new g.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:L});return e}}async function it(){return`${await Le()}/exchange`}function gr(e){let t=yr[e.type],{type:n,...r}=e,o=ir[n];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:or,version:"1"},message:r,primaryType:t,types:{[t]:o}}}async function vt({action:e,expiresAfter:t,nonce:n,vaultAddress:r}){let o=n||Date.now(),i=r?q(r,"helpers_invalid_params"):void 0,s=await it(),p=Zt(e,o,{expiresAfter:t,vaultAddress:i});return{action:e,endpoint:s,expiresAfter:t,nonce:o,typedData:jt(p),vaultAddress:i}}async function en({action:e,nonce:t,signatureChainId:n}){let r=t||e.nonce||Date.now(),o=n||e.signatureChainId||"0xa4b1",i=Jt({...e,nonce:r,signatureChainId:o});return{action:i,endpoint:await it(),nonce:r,typedData:Yt(i)}}async function ot({assetValue:e,recipient:t,sender:n,signatureChainId:r,time:o}){let i=q(t,"core_transaction_invalid_recipient_address"),s=q(n,"core_transaction_invalid_sender_address"),p=await it(),u=e.getValue("string"),f=o||Date.now(),d=e.address;if(!d)throw new g.SwapKitError("helpers_invalid_params",{asset:e.toString(),from:s});let H={amount:u,destination:i,hyperliquidChain:nr,signatureChainId:r||rr,time:f,token:d,type:"spotSend"};return{action:H,endpoint:p,nonce:f,typedData:gr(H)}}async function Vt(e){let t=await g.RequestClient.post(e.endpoint,{json:{action:e.action,...typeof e.expiresAfter==="number"?{expiresAfter:e.expiresAfter}:{},nonce:e.nonce,signature:e.signature,...e.vaultAddress?{vaultAddress:e.vaultAddress}:{}}});if(t.status!=="ok")throw new g.SwapKitError("core_transaction_failed",{response:t});return t}async function Ar(e,t){let n=await Le(),r=t-5000;for(let o=0;o<5;o++){if(o>0)await new Promise((i)=>setTimeout(i,1000));try{let i=await g.RequestClient.post(`${n}/info`,{json:{startTime:r,type:"userNonFundingLedgerUpdates",user:e}}),s=Array.isArray(i)?i.find((p)=>p.time&&p.time>=t&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(s?.hash)return s.hash}catch{}}return""}function yt(e){return e.startsWith("0x")&&v(e)}function Hr(e){let t=ie(L),n=e&&"index"in e?e.index||0:0,r=g.derivationPathToString(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:g.updateDerivationPath(g.NetworkDerivationPath[L],{index:n})),o,i=!1;function s(){if(i)return o;return o=Z.match(e).with({phrase:Z.P.string},({phrase:a})=>{return Kt.HDNodeWallet.fromPhrase(a,void 0,r)}).with({signer:Z.P.not(Z.P.nullish)},({signer:a})=>a).otherwise(()=>{return}),i=!0,o}async function p(){let a=s();return a?await a.getAddress():""}async function u(a){let l=s();if(!l)throw new g.SwapKitError("toolbox_hypercore_no_signer");let A=await l.signTypedData(a.typedData.domain,a.typedData.types,a.typedData.message);return{action:a.action,endpoint:a.endpoint,nonce:a.nonce,signature:Xt(A),..."expiresAfter"in a?{expiresAfter:a.expiresAfter}:{},..."vaultAddress"in a?{vaultAddress:a.vaultAddress}:{}}}async function f(a){let l=q(a,"helpers_invalid_params");try{let A=await Le(),[b,x,S]=await Promise.all([g.RequestClient.post(`${A}/info`,{json:{type:"spotClearinghouseState",user:l}}),g.RequestClient.post(`${A}/info`,{json:{type:"clearinghouseState",user:l}}),g.RequestClient.post(`${A}/info`,{json:{type:"spotMeta"}})]),w=(b.spotState?.balances||b.balances||[]).map(({coin:_,token:W,total:h})=>Pt({coin:_,spotMeta:S,token:W,value:h})).filter((_)=>!!_),k=Pt({coin:"USDC",spotMeta:S,value:x.withdrawable||x.marginSummary?.accountValue||x.marginSummary?.totalRawUsd});return fr(k?[...w,k]:w)}catch{return t(l)}}async function d(a){let l=s();if(!l)throw new g.SwapKitError("toolbox_hypercore_no_signer");let A=a.sender||await l.getAddress(),b=await ot({...a,feeRate:0,sender:A}),x=await u(b);return await Vt(x),Ar(A,b.nonce)}function H(){return g.AssetValue.from({chain:L,value:0})}return{broadcastTransaction:Vt,createL1ActionRequest:vt,createTransaction:ot,createUserSignedActionRequest:en,estimateTransactionFee:H,getAddress:p,getBalance:f,getState:{clearinghouse:sr,frontendOpenOrders:ur,openOrders:ar,orderStatus:cr,spotClearinghouse:pr,userFills:lr,userFillsByTime:dr},signTransaction:u,transfer:d,validateAddress:yt}}var g,Kt,Z,L,Et,tr,nr="Mainnet",rr="0xa4b1",or="0x0000000000000000000000000000000000000000",ir,yr;var tn=D(()=>{Qt();Ge();It();g=require("@swapkit/helpers"),Kt=require("ethers"),Z=require("ts-pattern"),L=g.Chain.HyperCore,{baseDecimal:Et}=g.getChainConfig(L),tr={HYPE:Et,USDC:6,USDT:6},ir={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},yr={spotSend:"HyperliquidTransaction:SpotSend"}});var Cr={};ke(Cr,{validateHyperCoreAddress:()=>yt,getHyperCoreToolbox:()=>Hr,createUserSignedActionRequest:()=>en,createTransaction:()=>ot,createL1ActionRequest:()=>vt,buildUsdClassTransferAction:()=>Fn,buildUpdateLeverageAction:()=>On,buildUpdateIsolatedMarginAction:()=>Qn,buildTopUpIsolatedOnlyMarginAction:()=>zn,buildTokenDelegateAction:()=>Xn,buildSendAssetAction:()=>Nn,buildScheduleCancelAction:()=>hn,buildOrderAction:()=>kn,buildModifyAction:()=>Wn,buildCancelByCloidAction:()=>Gn,buildCancelAction:()=>_n,buildBatchModifyAction:()=>$n,buildApproveBuilderFeeAction:()=>Yn,buildApproveAgentAction:()=>jn});module.exports=lt(Cr);var Tr=D(()=>{tn()});Tr();
|