@swapkit/toolboxes 4.14.1 → 4.14.2

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.
@@ -1 +1 @@
1
- var on=Object.create;var{getPrototypeOf:yn,defineProperty:Z,getOwnPropertyNames:at,getOwnPropertyDescriptor:sn}=Object,ut=Object.prototype.hasOwnProperty;function ct(e){return this[e]}var pn,an,mr=(e,t,n)=>{var r=e!=null&&typeof e==="object";if(r){var o=t?pn??=new WeakMap:an??=new WeakMap,i=o.get(e);if(i)return i}n=e!=null?on(yn(e)):{};let s=t||!e||!e.__esModule?Z(n,"default",{value:e,enumerable:!0}):n;for(let a of at(e))if(!ut.call(s,a))Z(s,a,{get:ct.bind(e,a),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=Z({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var r of at(e))if(!ut.call(t,r))Z(t,r,{get:ct.bind(e,r),enumerable:!(n=sn(e,r))||n.enumerable})}return pt.set(e,t),t},pt;var un=(e)=>e;function cn(e,t){this[e]=un.bind(null,t)}var _e=(e,t)=>{for(var n in t)Z(e,n,{get:t[n],enumerable:!0,configurable:!0,set:cn.bind(t,n)})};var D=(e,t)=>()=>(e&&(t=e(e=0)),t);function Ur(){function e(){let t=Date.now(),n=ke||t;return ke=n,t>ke?t:n+1}return ln+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}=J.getChainConfig(e),s=o.map(({identifier:u,value:d,decimal:f})=>{return new J.AssetValue({decimal:f||i,identifier:u,value:d})});if(!s.some((u)=>u.isGasAsset))return[J.AssetValue.from({chain:e}),...s];return s}}var J,dt,ln,ke=0;var Ge=D(()=>{J=require("@swapkit/helpers"),dt=require("@swapkit/helpers/api"),ln=typeof process<"u"&&process.pid?process.pid.toString(36):""});function I(e){return{getBalance:ie(e)}}function dn(e){return e}var ye=D(()=>{Ge()});function gt(e){return new O.JsonRpcProvider(e)}async function Fe(e,t){return gt(t||await c.getRPCUrl(e))}function P(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function ze(e){let{explorerUrl:t,chainIdHex:n,rpcUrls:r}=c.getChainConfig(e);return function(){return e!==c.Chain.Ethereum?{...fn({chain:e}),blockExplorerUrls:[t],chainId:n,rpcUrls:r}:void 0}}function $e(e){return![c.Chain.Adi,c.Chain.Arbitrum,c.Chain.BinanceSmartChain].includes(e)}function fn({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})=>!gn(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 Ct(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 Oe(e){return e.charAt(0).toUpperCase()+e.slice(1)}function We(e,t){if(e.isTuple()&&e.components){let n=Oe(e.name);return t[n]=e.components.map((r)=>({name:r.name,type:We(r,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let r=Oe(e.name.replace(/s$/,""));return t[r]=n.components.map((o)=>({name:o.name,type:We(o,t)})),`${r}[]`}return`${n?.type??"bytes"}[]`}return e.type}function he(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]=he(n[i.name]??e[o],i);return r}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((r)=>he(r,n??void 0))}return e}function An({chain:e,abi:t,data:n,to:r}){let i=new O.Interface(t).parseTransaction({data:n});if(!i)throw new c.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let s={},a=Oe(i.name);s[a]=i.fragment.inputs.map((p)=>({name:p.name,type:We(p,s)}));let u={};for(let[p,l]of i.fragment.inputs.entries())u[l.name]=he(i.args[p],l);let{chainId:d}=c.getChainConfig(e),f={chainId:Number(d),verifyingContract:O.getAddress(r)},m=Ct(f);return{domain:f,message:u,primaryType:a,types:{EIP712Domain:m,...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,O,Qe,ft=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),gn=(e)=>{try{return typeof e==="string"&&!!O.getAddress(e)}catch{return!1}};var V=D(()=>{c=require("@swapkit/helpers"),O=require("ethers"),Qe=require("ts-pattern")});var Ht;var Tt=D(()=>{Ht=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});function $({chain:e=y.Chain.Ethereum,provider:t,signer:n,isEIP1559Compatible:r=!0}){return{approve:bn({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:Sn({chain:e,provider:t,signer:n}),createContract:Ze({chain:e,provider:t}),createContractTxObject:W({chain:e,provider:t}),createTransaction:Ye({chain:e,provider:t,signer:n}),createTransferTx:Ye({chain:e,provider:t,signer:n}),EIP1193SendTransaction:j(t),estimateCall:xt({provider:t,signer:n}),estimateGasLimit:xn({chain:e,provider:t,signer:n}),estimateGasPrices:h({chain:e,isEIP1559Compatible:r,provider:t}),estimateTransactionFee:Dn({chain:e,isEIP1559Compatible:r,provider:t}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:I(e).getBalance,getNetworkParams:ze(e),isApproved:mn({chain:e,provider:t}),sendTransaction:wt({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),signAuthorization:wn({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:Un({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),validateAddress:E}}function E(e){try{return B.getAddress(e),!0}catch{return!1}}function N(e){return e instanceof B.BrowserProvider}function v(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&&Cn.includes(n.stateMutability)}function mt(e){return B.getAddress(e)}function j(e){return function({value:n,...r}){if(!N(e))throw new y.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:o,gasPrice:i,maxFeePerGas:s,maxPriorityFeePerGas:a,...u}=r;return e.send("eth_sendTransaction",[{...u,value:P(BigInt(n||0))}])}}function bt(e,t){let n=Y(e,t);if(n)return B.getAddress(n.toLowerCase());throw new y.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function Y({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,a=Tn.includes(e)&&t==="ETH"&&n==="ETH";if(s||o||i||a)return Ie[r];return B.getAddress(t.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function W({provider:e}){return async({contractAddress:t,abi:n,funcName:r,funcParams:o=[],txOverrides:i})=>v(t,n,e).getFunction(r).populateTransaction(...o.concat(i).filter((s)=>typeof s<"u"))}function h({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");return{[y.FeeOption.Average]:{gasPrice:o},[y.FeeOption.Fast]:{gasPrice:o},[y.FeeOption.Fastest]:{gasPrice:o}}}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:a,funcName:u,funcParams:d=[],txOverrides:f={},feeOption:m=y.FeeOption.Fast}){let p=i||e;if(!s)throw new y.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let l=Je({abi:a,funcName:u});if(l&&N(p)&&n){let x=W({chain:r,provider:p}),S=f?.from||await n?.getAddress(),w=await x({abi:a,contractAddress:s,funcName:u,funcParams:d,txOverrides:{...f,from:S}});return j(p)(w)}let A=v(s,a,p);if(l){if(!n)throw new y.SwapKitError("toolbox_evm_no_signer");let x=f?.from||await n.getAddress();if(!x)throw new y.SwapKitError("toolbox_evm_no_signer_address");let S=A.connect(n),w=h({chain:r,isEIP1559Compatible:t,provider:e}),{maxFeePerGas:L,maxPriorityFeePerGas:F,gasPrice:G}=(await w())[m],re=await A.getFunction(u).estimateGas(...d,f),M=await S[u](...d,{...f,gasLimit:re,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:F,nonce:f?.nonce||await p.getTransactionCount(x)});return typeof M?.hash==="string"?M?.hash:M}let b=await A[u]?.(...d);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:z.erc20ABI,contractAddress:r,funcName:"allowance",funcParams:[i,o]})}}function mn({provider:e,chain:t}){return async function({assetAddress:r,spenderAddress:o,from:i,amount:s=K}){let a=await Ut({chain:t,provider:e})({assetAddress:r,from:i,spenderAddress:o});return y.SwapKitNumber.fromBigInt(a).gte(y.SwapKitNumber.fromBigInt(BigInt(s)))}}function bn({signer:e,isEIP1559Compatible:t=!0,provider:n,chain:r}){return async function({assetAddress:i,spenderAddress:s,feeOptionKey:a=y.FeeOption.Fast,amount:u,gasLimitFallback:d,from:f,nonce:m}){let p=[s,BigInt(u||K)],l=await e?.getAddress()||f,A={abi:z.erc20ABI,contractAddress:i,funcName:"approve",funcParams:p,signer:e,txOverrides:{from:l}};if(N(n)){let x=W({chain:r,provider:n}),S=j(n),w=await x(A);return S(w)}return Pe({chain:r,isEIP1559Compatible:t,provider:n,signer:e})({...A,feeOption:a,funcParams:p,txOverrides:{from:l,gasLimit:d?BigInt(d.toString()):void 0,nonce:m}})}}function Un({signer:e,isEIP1559Compatible:t=!0,provider:n}){return async function({assetValue:o,memo:i,recipient:s,feeOptionKey:a=y.FeeOption.Fast,sender:u,...d}){let{hexlify:f,toUtf8Bytes:m}=await import("ethers"),p=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 G={...d,data:f(m(i||"")),feeOptionKey:a,from:A,to:s,value:p};return b(G)}if(!Y(o,l))throw new y.SwapKitError("toolbox_evm_no_contract_address");let{maxFeePerGas:S,maxPriorityFeePerGas:w,gasPrice:L}=(await h({chain:l,isEIP1559Compatible:t,provider:n})())[a],F=await Ye({chain:l,provider:n,signer:e})({assetValue:o,data:f(m(i||"")),gasPrice:L,maxFeePerGas:S,maxPriorityFeePerGas:w,memo:i,recipient:s,sender:A});return b(F)}}function xt({provider:e,signer:t}){return function({contractAddress:r,abi:o,funcName:i,funcParams:s=[],txOverrides:a}){if(!r)throw new y.SwapKitError("toolbox_evm_no_contract_address");let u=v(r,o,e);return t?u.connect(t).getFunction(i).estimateGas(...s,a):u.getFunction(i).estimateGas(...s,a)}}function xn({provider:e,signer:t}){return async function({assetValue:r,recipient:o,memo:i,data:s,sender:a,funcName:u,funcParams:d,txOverrides:f}){let m=r.bigIntValue,p=r.isGasAsset?null:Y(r,r.chain);if(p&&u)return xt({provider:e,signer:t})({abi:z.erc20ABI,contractAddress:p,funcName:u,funcParams:d,txOverrides:f});let{hexlify:l,toUtf8Bytes:A}=await import("ethers");return e.estimateGas({data:s?s:i?l(A(i)):void 0,from:a,to:o,value:m})}}function wn({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:a,to:u,data:d,value:f,...m}=s;if(!t)throw new y.SwapKitError("toolbox_evm_no_signer");if(!u)throw new y.SwapKitError("toolbox_evm_no_to_address");let p={...m,data:d||"0x",from:a,to:u,value:BigInt(f||0)};if(N(e))return j(e)(p);let l=a||await t.getAddress(),A=s.nonce||await e.getTransactionCount(l),b=(await e.getNetwork()).chainId,x=Ke(p,n);if(x==="eip7702")je(p.authorizations||[],b);let S=Xe.match(x).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),w={...p,chainId:b,nonce:A,type:S,...x==="eip7702"&&{authorizationList:p.authorizations}},L=h({chain:r,isEIP1559Compatible:n,provider:e}),G=x!=="legacy"&&!(p.maxFeePerGas&&p.maxPriorityFeePerGas)||!p.gasPrice?Object.entries((await L())[i]).reduce((M,[oe,st])=>({...M,[oe]:P(BigInt(st))}),{}):{},re;try{re=P(p.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:re,...G};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:a,maxFeePerGas:u,maxPriorityFeePerGas:d,gasPrice:f,...m}){let p=r.getBaseValue("bigint"),l=r.chain,A=a||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{...m,data:s||S(w(o||"")),from:A,to:i,value:p}}let b=Y(r,l);if(!b)throw new y.SwapKitError("toolbox_evm_no_contract_address");return W({chain:r.chain,provider:e})({abi:z.erc20ABI,contractAddress:b,funcName:"transfer",funcParams:[i,p],txOverrides:{from:A,gasPrice:f,maxFeePerGas:u,maxPriorityFeePerGas:d}})}}function Sn({provider:e,signer:t,chain:n}){return async function({assetAddress:o,spenderAddress:i,amount:s,from:a}){let u=await t?.getAddress()||a,d=W({chain:n,provider:e}),f=["bigint","number"].includes(typeof s)?s:s||K;return await d({abi:z.erc20ABI,contractAddress:o,funcName:"approve",funcParams:[i,BigInt(f)],txOverrides:{from:u}})}}function Dn({provider:e,isEIP1559Compatible:t=!0,chain:n}){return async function({feeOption:o=y.FeeOption.Fast,...i}){let a=await h({chain:n,isEIP1559Compatible:t,provider:e})(),u=await e.estimateGas(i),d=y.AssetValue.from({chain:n}),{gasPrice:f,maxFeePerGas:m,maxPriorityFeePerGas:p}=a[o];if(!t&&f)return d.set(y.SwapKitNumber.fromBigInt(f*u,d.decimal));if(m&&p){let l=(m+p)*u;return d.set(y.SwapKitNumber.fromBigInt(l,d.decimal))}throw new y.SwapKitError("toolbox_evm_no_gas_price")}}var y,z,B,Xe,K,Cn,Hn,Ie,Tn,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();V();y=require("@swapkit/helpers"),z=require("@swapkit/helpers/contracts"),B=require("ethers"),Xe=require("ts-pattern"),K=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Cn=["payable","nonpayable"];Hn=y.EVMChains.reduce((e,t)=>{return e[t]="0x0000000000000000000000000000000000000000",e},{}),Ie={...Hn,[y.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[y.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},Tn=[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 a=await t.createContractTxObject({abi:Ht,contractAddress:o,funcName:i,funcParams:[r]});return t.sendTransaction({...a,feeOptionKey:s})}return{...t,multicall:n}}function U(e){return function({provider:n,...r}){let o=$e(e),i=ee.match(r).with({phrase:ee.P.string},({phrase:a})=>St.HDNodeWallet.fromPhrase(a).connect(n)).with({signer:ee.P.any},({signer:a})=>a).otherwise(()=>{return});return $({chain:e,isEIP1559Compatible:o,provider:n,signer:i})}}var C,St,ee,ue,ce,le,de,fe,ge,Ae,Dt,Ce,He,Te,me,be,Ue,te,xe,we,Se,De;var Ee=D(()=>{Tt();V();pe();C=require("@swapkit/helpers"),St=require("ethers"),ee=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),Ce=U(C.Chain.Core),He=U(C.Chain.Corn),Te=U(C.Chain.Cronos),me=U(C.Chain.Gnosis),be=U(C.Chain.Hyperevm),Ue=U(C.Chain.Polygon),te=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(Mn,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 H.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 _t(e){return async function(n){let o=(await e.getFeeData()).gasPrice??0n,i=await e.estimateGas(n);return o*i}}function Bn(e){return async function(n){let r=await Lt(e)(n)??0n,o=await _t(e)(n);return r+o}}function qn(e){return async function(n){let r=ve(e),o=await qt(e)(n);if(r&&"getL1GasUsed"in r)return r.getL1GasUsed(o)}}function Ln(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 H.SwapKitError("toolbox_evm_no_fee_data");return{[H.FeeOption.Average]:{gasPrice:s,l1GasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:r},[H.FeeOption.Fast]:{gasPrice:H.applyFeeMultiplierToBigInt(s,H.FeeOption.Fast),l1GasPrice:H.applyFeeMultiplierToBigInt(i||0n,H.FeeOption.Fast),maxFeePerGas:n,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(r,H.FeeOption.Fast)},[H.FeeOption.Fastest]:{gasPrice:H.applyFeeMultiplierToBigInt(s,H.FeeOption.Fastest),l1GasPrice:H.applyFeeMultiplierToBigInt(i||0n,H.FeeOption.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:H.applyFeeMultiplierToBigInt(r,H.FeeOption.Fastest)}}}catch(n){throw new H.SwapKitError("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Me({provider:e,...t}){let n=ne.match(t).with({phrase:ne.P.string},({phrase:i})=>Re.HDNodeWallet.fromPhrase(i).connect(e)).with({signer:ne.P.any},({signer:i})=>i).otherwise(()=>{return}),r=$({provider:e,signer:n}),o=Bt(e);return{...r,estimateGasPrices:Ln(e),estimateL1Gas:qn(e),estimateL1GasCost:Lt(e),estimateL2GasCost:_t(e),estimateTotalGasCost:Bn(e),getBalance:I(H.Chain.Optimism).getBalance,getL1GasPrice:o}}var H,Re,ne,Mn="0x420000000000000000000000000000000000000f";var et=D(()=>{ye();Mt();pe();H=require("@swapkit/helpers"),Re=require("ethers"),ne=require("ts-pattern")});var _n={};_e(_n,{validateEVMAddress:()=>E,toChecksumAddress:()=>mt,isStateChangingCall:()=>Je,isEIP7702Transaction:()=>se,isEIP1559Transaction:()=>Ve,isBrowserProvider:()=>N,getTokenAddress:()=>Y,getEvmToolboxAsync:()=>Gt,getEvmToolbox:()=>tt,getEstimateGasPrices:()=>h,getEVMTxType:()=>Ke,getEIP1193SendTransaction:()=>j,getCreateContractTxObject:()=>W,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createContract:()=>v,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>te,OPToolbox:()=>Me,MONADToolbox:()=>Se,MEGAETHToolbox:()=>De,MAX_APPROVAL:()=>K,MATICToolbox:()=>Ue,HYPEREVMToolbox:()=>be,GNOToolbox:()=>me,ETHToolbox:()=>ae,ContractAddress:()=>Ie,CROToolbox:()=>Te,CORNToolbox:()=>He,COREToolbox:()=>Ce,BotanixToolbox:()=>Dt,BaseEVMToolbox:()=>$,BSCToolbox:()=>Ae,BERAToolbox:()=>ge,BASEToolbox:()=>fe,AVAXToolbox:()=>de,AURORAToolbox:()=>le,ARBToolbox:()=>ce,ADIToolbox:()=>ue});function tt(e,t){return kt.match(e).with(T.Chain.Adi,()=>ue(t)).with(T.Chain.Arbitrum,()=>ce(t)).with(T.Chain.Aurora,()=>le(t)).with(T.Chain.Avalanche,()=>de(t)).with(T.Chain.Base,()=>fe(t)).with(T.Chain.Berachain,()=>ge(t)).with(T.Chain.BinanceSmartChain,()=>Ae(t)).with(T.Chain.Botanix,()=>te(t)).with(T.Chain.Core,()=>Ce(t)).with(T.Chain.Corn,()=>He(t)).with(T.Chain.Cronos,()=>Te(t)).with(T.Chain.Ethereum,()=>ae(t)).with(T.Chain.Gnosis,()=>me(t)).with(T.Chain.Hyperevm,()=>be(t)).with(T.Chain.Optimism,()=>Me(t)).with(T.Chain.Polygon,()=>Ue(t)).with(T.Chain.Sonic,()=>te(t)).with(T.Chain.Unichain,()=>xe(t)).with(T.Chain.XLayer,()=>we(t)).with(T.Chain.Monad,()=>Se(t)).with(T.Chain.MegaETH,()=>De(t)).exhaustive()}async function Gt(e,t){let n={...t,provider:t?.provider||await Fe(e)};return tt(e,n)}var T,kt;var Ot=D(()=>{V();Ee();et();T=require("@swapkit/helpers"),kt=require("ts-pattern");pe();Ee();et()});var Wt;var ht=D(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Wt||={})});var kn={};_e(kn,{validateEVMAddress:()=>E,validateAuthorizations:()=>je,validateAuthorization:()=>At,toHexString:()=>P,toChecksumAddress:()=>mt,signAuthorization:()=>Ne,parseEIP712FromEVMTx:()=>An,isStateChangingCall:()=>Je,isEIP7702Transaction:()=>se,isEIP1559Transaction:()=>Ve,isBrowserProvider:()=>N,getTokenAddress:()=>Y,getProviderSync:()=>gt,getProvider:()=>Fe,getNetworkParams:()=>ze,getIsEIP1559Compatible:()=>$e,getEvmToolboxAsync:()=>Gt,getEvmToolbox:()=>tt,getEvmApi:()=>I,getEstimateGasPrices:()=>h,getEVMTxType:()=>Ke,getEIP1193SendTransaction:()=>j,getCreateContractTxObject:()=>W,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createCustomEvmApi:()=>dn,createContract:()=>v,buildEIP712DomainType:()=>Ct,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>te,OPToolbox:()=>Me,MONADToolbox:()=>Se,MEGAETHToolbox:()=>De,MAX_APPROVAL:()=>K,MATICToolbox:()=>Ue,HYPEREVMToolbox:()=>be,GNOToolbox:()=>me,EthNetwork:()=>Wt,ETHToolbox:()=>ae,ContractAddress:()=>Ie,CROToolbox:()=>Te,CORNToolbox:()=>He,COREToolbox:()=>Ce,BotanixToolbox:()=>Dt,BaseEVMToolbox:()=>$,BSCToolbox:()=>Ae,BERAToolbox:()=>ge,BASEToolbox:()=>fe,AVAXToolbox:()=>de,AURORAToolbox:()=>le,ARBToolbox:()=>ce,ADIToolbox:()=>ue});module.exports=lt(kn);var Qt=D(()=>{ye();V();Ot();ht()});function Gn({builder:e,grouping:t="na",orders:n}){return{builder:e,grouping:t,orders:n,type:"order"}}function On({cancels:e}){return{cancels:e,type:"cancel"}}function Wn({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function hn({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function Qn({modifies:e}){return{modifies:e,type:"batchModify"}}function Fn({asset:e,isCross:t,leverage:n}){return{asset:e,isCross:t,leverage:n,type:"updateLeverage"}}function zn({asset:e,isBuy:t,ntli:n}){return{asset:e,isBuy:t,ntli:n,type:"updateIsolatedMargin"}}function $n({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function Nn({time:e}){return{time:e,type:"scheduleCancel"}}function jn({amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o}){return{amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o,type:"usdClassTransfer"}}function Yn({amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:s,sourceDex:a,token:u}){return{amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:s,sourceDex:a,token:u,type:"sendAsset"}}function Xn({agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o}){return{agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o,type:"approveAgent"}}function Zn({builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o}){return{builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o,type:"approveBuilderFee"}}function Jn({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 vn(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 k(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 Ft(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]),k(e,2));if(e<=0xffffffffn)return R(new Uint8Array([206]),k(e,4));return R(new Uint8Array([207]),k(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]),k(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return R(new Uint8Array([210]),k(BigInt.asUintN(32,e),4));return R(new Uint8Array([211]),k(BigInt.asUintN(64,e),8))}function Nt(e){let t=En.encode(e);if(t.length<32)return R(new Uint8Array([160+t.length]),t);return R(vn(217,0,t.length),t)}function er(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 tr(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 Ft(BigInt(e))}if(typeof e==="bigint")return Ft(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 er(e);if(typeof e==="object")return tr(e);throw new Be.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function nr(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:In,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...Pn.Agent]}}}function Yt(e){let t=Kn[e.type],n=Vn[e.type],{type:r,...o}=e;return{domain:{chainId:Number.parseInt(o.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:zt,version:"1"},message:{...o,hyperliquidChain:o.hyperliquidChain||$t},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=k(BigInt(t),8),s=r?R(new Uint8Array([1]),nr(r.toLowerCase())):new Uint8Array([0]),a=typeof n==="number"?R(new Uint8Array([0]),k(BigInt(n),8)):new Uint8Array;return qe.keccak256(R(o,i,s,a))}function Jt(e){let t=e.hyperliquidChain||$t;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,zt="0x0000000000000000000000000000000000000000",In,Pn,$t="Mainnet",Vn,Kn,En;var It=D(()=>{Be=require("@swapkit/helpers"),qe=require("ethers"),In={chainId:1337,name:"Exchange",verifyingContract:zt,version:"1"},Pn={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},Vn={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"}]},Kn={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},En=new TextEncoder});function q(e,t){if(!yt(e))throw new g.SwapKitError(t,{address:e});return e.toLowerCase()}async function Q(e){let t=await Le();return g.RequestClient.post(`${t}/info`,{json:e})}function sr({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"clearinghouseState",user:q(t,"helpers_invalid_params")})}function pr({user:e}){return Q({type:"spotClearinghouseState",user:q(e,"helpers_invalid_params")})}function ar({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"openOrders",user:q(t,"helpers_invalid_params")})}function ur({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"frontendOpenOrders",user:q(t,"helpers_invalid_params")})}function cr({oidOrCloid:e,user:t}){return Q({oid:e,type:"orderStatus",user:q(t,"helpers_invalid_params")})}function lr({aggregateByTime:e,user:t}){return Q({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:q(t,"helpers_invalid_params")})}function dr({aggregateByTime:e,endTime:t,startTime:n,user:r}){return Q({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof t==="number"?{endTime:t}:{},startTime:n,type:"userFillsByTime",user:q(r,"helpers_invalid_params")})}function Kt({coin:e,token:t,value:n}){if(!n||Number(n)<=0)return null;let r=e?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,o=rr[r]||en;return new g.AssetValue({decimal:o,identifier:`${_}.${r}`,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)){let n=g.AssetValue.from({chain:_,value:0});t.set(n.toString({includeSynthProtocol:!0}),n)}return[...t.values()]}async function Le(){try{return await g.getRPCUrl(_)}catch{let[e]=g.getChainConfig(_).rpcUrls;if(!e)throw new g.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:_});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 tn({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(),a=Zt(e,o,{expiresAfter:t,vaultAddress:i});return{action:e,endpoint:s,expiresAfter:t,nonce:o,typedData:jt(a),vaultAddress:i}}async function nn({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"),a=await it(),u=e.getValue("string"),d=o||Date.now(),f=e.ticker==="USDC"?{amount:u,destination:i,hyperliquidChain:Pt,signatureChainId:r||Vt,time:d,type:"usdSend"}:{amount:u,destination:i,hyperliquidChain:Pt,signatureChainId:r||Vt,time:d,token:e.address?e.address:(()=>{throw new g.SwapKitError("helpers_invalid_params",{asset:e.toString(),from:s})})(),type:"spotSend"};return{action:f,endpoint:a,nonce:d,typedData:gr(f)}}async function Et(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((a)=>a.time&&a.time>=t&&(a.delta?.type==="spotTransfer"||a.delta?.type==="internalTransfer")):void 0;if(s?.hash)return s.hash}catch{}}return""}function yt(e){return e.startsWith("0x")&&E(e)}function Cr(e){let t=ie(_),n=e&&"index"in e?e.index||0:0,r=g.derivationPathToString(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:g.updateDerivationPath(g.NetworkDerivationPath[_],{index:n})),o,i=!1;function s(){if(i)return o;return o=X.match(e).with({phrase:X.P.string},({phrase:p})=>{return vt.HDNodeWallet.fromPhrase(p,void 0,r)}).with({signer:X.P.not(X.P.nullish)},({signer:p})=>p).otherwise(()=>{return}),i=!0,o}async function a(){let p=s();return p?await p.getAddress():""}async function u(p){let l=s();if(!l)throw new g.SwapKitError("toolbox_hypercore_no_signer");let A=await l.signTypedData(p.typedData.domain,p.typedData.types,p.typedData.message);return{action:p.action,endpoint:p.endpoint,nonce:p.nonce,signature:Xt(A),..."expiresAfter"in p?{expiresAfter:p.expiresAfter}:{},..."vaultAddress"in p?{vaultAddress:p.vaultAddress}:{}}}async function d(p){let l=q(p,"helpers_invalid_params");try{let A=await Le(),[b,x]=await Promise.all([g.RequestClient.post(`${A}/info`,{json:{type:"spotClearinghouseState",user:l}}),g.RequestClient.post(`${A}/info`,{json:{type:"clearinghouseState",user:l}})]),S=(b.spotState?.balances||b.balances||[]).map(({coin:L,token:F,total:G})=>Kt({coin:L,token:F,value:G})).filter((L)=>!!L),w=Kt({coin:"USDC",value:x.withdrawable||x.marginSummary?.accountValue||x.marginSummary?.totalRawUsd});return fr(w?[...S,w]:S)}catch{return t(l)}}async function f(p){let l=s();if(!l)throw new g.SwapKitError("toolbox_hypercore_no_signer");let A=p.sender||await l.getAddress(),b=await ot({...p,feeRate:0,sender:A}),x=await u(b);return await Et(x),Ar(A,b.nonce)}function m(){return g.AssetValue.from({chain:_,value:0})}return{broadcastTransaction:Et,createL1ActionRequest:tn,createTransaction:ot,createUserSignedActionRequest:nn,estimateTransactionFee:m,getAddress:a,getBalance:d,getState:{clearinghouse:sr,frontendOpenOrders:ur,openOrders:ar,orderStatus:cr,spotClearinghouse:pr,userFills:lr,userFillsByTime:dr},signTransaction:u,transfer:f,validateAddress:yt}}var g,vt,X,_,en,rr,Pt="Mainnet",Vt="0xa4b1",or="0x0000000000000000000000000000000000000000",ir,yr;var rn=D(()=>{Qt();Ge();It();g=require("@swapkit/helpers"),vt=require("ethers"),X=require("ts-pattern"),_=g.Chain.HyperCore,{baseDecimal:en}=g.getChainConfig(_),rr={HYPE:en,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"}],usdSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},yr={spotSend:"HyperliquidTransaction:SpotSend",usdSend:"HyperliquidTransaction:UsdSend"}});var Hr={};_e(Hr,{validateHyperCoreAddress:()=>yt,getHyperCoreToolbox:()=>Cr,createUserSignedActionRequest:()=>nn,createTransaction:()=>ot,createL1ActionRequest:()=>tn,buildUsdClassTransferAction:()=>jn,buildUpdateLeverageAction:()=>Fn,buildUpdateIsolatedMarginAction:()=>zn,buildTopUpIsolatedOnlyMarginAction:()=>$n,buildTokenDelegateAction:()=>Jn,buildSendAssetAction:()=>Yn,buildScheduleCancelAction:()=>Nn,buildOrderAction:()=>Gn,buildModifyAction:()=>hn,buildCancelByCloidAction:()=>Wn,buildCancelAction:()=>On,buildBatchModifyAction:()=>Qn,buildApproveBuilderFeeAction:()=>Zn,buildApproveAgentAction:()=>Xn});module.exports=lt(Hr);var Tr=D(()=>{rn()});Tr();
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 W.JsonRpcProvider(e)}async function Fe(e,t){return gt(t||await c.getRPCUrl(e))}function V(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function ze(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 he(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 Oe(e){return e.charAt(0).toUpperCase()+e.slice(1)}function We(e,t){if(e.isTuple()&&e.components){let n=Oe(e.name);return t[n]=e.components.map((r)=>({name:r.name,type:We(r,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let r=Oe(e.name.replace(/s$/,""));return t[r]=n.components.map((o)=>({name:o.name,type:We(o,t)})),`${r}[]`}return`${n?.type??"bytes"}[]`}return e.type}function $e(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]=$e(n[i.name]??e[o],i);return r}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((r)=>$e(r,n??void 0))}return e}function fn({chain:e,abi:t,data:n,to:r}){let i=new W.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=Oe(i.name);s[p]=i.fragment.inputs.map((a)=>({name:a.name,type:We(a,s)}));let u={};for(let[a,l]of i.fragment.inputs.entries())u[l.name]=$e(i.args[a],l);let{chainId:f}=c.getChainConfig(e),d={chainId:Number(f),verifyingContract:W.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,W,Qe,ft=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),dn=(e)=>{try{return typeof e==="string"&&!!W.getAddress(e)}catch{return!1}};var K=D(()=>{c=require("@swapkit/helpers"),W=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:$({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:ze(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 $({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");return{[y.FeeOption.Average]:{gasPrice:o},[y.FeeOption.Fast]:{gasPrice:o},[y.FeeOption.Fastest]:{gasPrice:o}}}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=$({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:O}=(await w())[H],z=await A.getFunction(u).estimateGas(...f,d),R=await S[u](...f,{...d,gasLimit:z,gasPrice:O,maxFeePerGas:k,maxPriorityFeePerGas:_,nonce:d?.nonce||await a.getTransactionCount(x)});return typeof R?.hash==="string"?R?.hash:R}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:h.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:h.erc20ABI,contractAddress:i,funcName:"approve",funcParams:a,signer:e,txOverrides:{from:l}};if(j(n)){let x=$({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 O={...f,data:d(H(i||"")),feeOptionKey:p,from:A,to:s,value:a};return b(O)}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:h.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}),O=x!=="legacy"&&!(a.maxFeePerGas&&a.maxPriorityFeePerGas)||!a.gasPrice?Object.entries((await k())[i]).reduce((R,[oe,st])=>({...R,[oe]:V(BigInt(st))}),{}):{},z;try{z=V(a.gasLimit||await e.estimateGas(w)*11n/10n)}catch(R){throw new y.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:R})}try{let R={...w,gasLimit:z,...O};try{return(await t.sendTransaction(R)).hash}catch{let oe=await t.signTransaction({...R,from:l});return(await e.broadcastTransaction(oe)).hash}}catch(R){throw new y.SwapKitError("toolbox_evm_error_sending_transaction",{error:R})}}}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 $({chain:r.chain,provider:e})({abi:h.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=$({chain:n,provider:e}),d=["bigint","number"].includes(typeof s)?s:s||E;return await f({abi:h.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,h,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"),h=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=he(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 Mt;var Rt=D(()=>{Mt=[{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 Me.Contract(Dn,Mt,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 Mn(e){return async function(n){let r=await Lt(e)(n)??0n,o=await kt(e)(n);return r+o}}function Rn(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 Re({provider:e,...t}){let n=re.match(t).with({phrase:re.P.string},({phrase:i})=>Me.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:Rn(e),estimateL1GasCost:Lt(e),estimateL2GasCost:kt(e),estimateTotalGasCost:Mn(e),getBalance:P(T.Chain.Optimism).getBalance,getL1GasPrice:o}}var T,Me,re,Dn="0x420000000000000000000000000000000000000f";var et=D(()=>{ye();Rt();pe();T=require("@swapkit/helpers"),Me=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:()=>$,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createContract:()=>ee,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>ne,OPToolbox:()=>Re,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,()=>Re(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 Fe(e)};return tt(e,n)}var m,_t;var Ot=D(()=>{K();Ee();et();m=require("@swapkit/helpers"),_t=require("ts-pattern");pe();Ee();et()});var Wt;var $t=D(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Wt||={})});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:()=>Fe,getNetworkParams:()=>ze,getIsEIP1559Compatible:()=>he,getEvmToolboxAsync:()=>Gt,getEvmToolbox:()=>tt,getEvmApi:()=>P,getEstimateGasPrices:()=>Q,getEVMTxType:()=>Ke,getEIP1193SendTransaction:()=>Y,getCreateContractTxObject:()=>$,getCreateContract:()=>Ze,getChecksumAddressFromAsset:()=>bt,createCustomEvmApi:()=>cn,createContract:()=>ee,buildEIP712DomainType:()=>Ht,XLayerToolbox:()=>we,UNIToolbox:()=>xe,SONICToolbox:()=>ne,OPToolbox:()=>Re,MONADToolbox:()=>Se,MEGAETHToolbox:()=>De,MAX_APPROVAL:()=>E,MATICToolbox:()=>Ue,HYPEREVMToolbox:()=>be,GNOToolbox:()=>me,EthNetwork:()=>Wt,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();Ot();$t()});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 On({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function Wn({modifies:e}){return{modifies:e,type:"batchModify"}}function $n({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 Fn({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function zn({time:e}){return{time:e,type:"scheduleCancel"}}function hn({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 M(...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 Ft(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 M(new Uint8Array([205]),G(e,2));if(e<=0xffffffffn)return M(new Uint8Array([206]),G(e,4));return M(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 M(new Uint8Array([209]),G(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return M(new Uint8Array([210]),G(BigInt.asUintN(32,e),4));return M(new Uint8Array([211]),G(BigInt.asUintN(64,e),8))}function Nt(e){let t=Vn.encode(e);if(t.length<32)return M(new Uint8Array([160+t.length]),t);return M(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 M(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 M(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 Ft(BigInt(e))}if(typeof e==="bigint")return Ft(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 M(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:zt,version:"1"},message:{...o,hyperliquidChain:o.hyperliquidChain||ht},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?M(new Uint8Array([1]),er(r.toLowerCase())):new Uint8Array([0]),p=typeof n==="number"?M(new Uint8Array([0]),G(BigInt(n),8)):new Uint8Array;return qe.keccak256(M(o,i,s,p))}function Jt(e){let t=e.hyperliquidChain||ht;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,zt="0x0000000000000000000000000000000000000000",Zn,Jn,ht="Mainnet",In,Pn,Vn;var It=D(()=>{Be=require("@swapkit/helpers"),qe=require("ethers"),Zn={chainId:1337,name:"Exchange",verifyingContract:zt,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 F(e){let t=await Le();return g.RequestClient.post(`${t}/info`,{json:e})}function sr({dex:e,user:t}){return F({...e?{dex:e}:{},type:"clearinghouseState",user:q(t,"helpers_invalid_params")})}function pr({user:e}){return F({type:"spotClearinghouseState",user:q(e,"helpers_invalid_params")})}function ar({dex:e,user:t}){return F({...e?{dex:e}:{},type:"openOrders",user:q(t,"helpers_invalid_params")})}function ur({dex:e,user:t}){return F({...e?{dex:e}:{},type:"frontendOpenOrders",user:q(t,"helpers_invalid_params")})}function cr({oidOrCloid:e,user:t}){return F({oid:e,type:"orderStatus",user:q(t,"helpers_invalid_params")})}function lr({aggregateByTime:e,user:t}){return F({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:q(t,"helpers_invalid_params")})}function dr({aggregateByTime:e,endTime:t,startTime:n,user:r}){return F({...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:O,total:z})=>Pt({coin:_,spotMeta:S,token:O,value:z})).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:()=>hn,buildUpdateLeverageAction:()=>$n,buildUpdateIsolatedMarginAction:()=>Qn,buildTopUpIsolatedOnlyMarginAction:()=>Fn,buildTokenDelegateAction:()=>Xn,buildSendAssetAction:()=>Nn,buildScheduleCancelAction:()=>zn,buildOrderAction:()=>kn,buildModifyAction:()=>On,buildCancelByCloidAction:()=>Gn,buildCancelAction:()=>_n,buildBatchModifyAction:()=>Wn,buildApproveBuilderFeeAction:()=>Yn,buildApproveAgentAction:()=>jn});module.exports=lt(Cr);var Tr=D(()=>{tn()});Tr();
@@ -1 +1 @@
1
- var sn=Object.defineProperty;var pn=(e)=>e;function an(e,t){this[e]=pn.bind(null,t)}var Le=(e,t)=>{for(var n in t)sn(e,n,{get:t[n],enumerable:!0,configurable:!0,set:an.bind(t,n)})};var S=(e,t)=>()=>(e&&(t=e(e=0)),t);var re=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as ut,getChainConfig as un}from"@swapkit/helpers";import{SwapKitApi as cn}from"@swapkit/helpers/api";function Jr(){function e(){let t=Date.now(),n=_e||t;return _e=n,t>_e?t:n+1}return ln+e().toString(36)}function oe(e){return async function(n,r=!0){let o=await cn.getChainBalance({address:n,chain:e,scamFilter:r}),{baseDecimal:i}=un(e),y=o.map(({identifier:a,value:c,decimal:l})=>{return new ut({decimal:l||i,identifier:a,value:c})});if(!y.some((a)=>a.isGasAsset))return[ut.from({chain:e}),...y];return y}}var ln,_e=0;var ke=S(()=>{ln=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Z(e){return{getBalance:oe(e)}}function dn(e){return e}var ie=S(()=>{ke()});import{Chain as A,getChainConfig as he,getRPCUrl as fn,SwapKitError as ye}from"@swapkit/helpers";import{getAddress as lt,Interface as gn,JsonRpcProvider as An}from"ethers";import{match as dt}from"ts-pattern";function ft(e){return new An(e)}async function Qe(e,t){return ft(t||await fn(e))}function J(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function Fe(e){let{explorerUrl:t,chainIdHex:n,rpcUrls:r}=he(e);return function(){return e!==A.Ethereum?{...Cn({chain:e}),blockExplorerUrls:[t],chainId:n,rpcUrls:r}:void 0}}function ze(e){return![A.Adi,A.Arbitrum,A.BinanceSmartChain].includes(e)}function Cn({chain:e}){let{name:t,nativeCurrency:n,baseDecimal:r}=he(e);return dt(e).with(A.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:r,name:"Ethereum",symbol:A.Ethereum}})).with(A.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:A.Ethereum}})).with(A.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:r,name:"Avalanche",symbol:e}})).with(A.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:A.Ethereum}})).with(A.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:r,name:"Berachain",symbol:"BERA"}})).with(A.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:r,name:"OKB",symbol:"OKB"}})).with(A.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:r,name:"Binance Coin",symbol:"BNB"}})).with(A.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:r,name:"xDAI",symbol:"XDAI"}})).with(A.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:A.Ethereum}})).with(A.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:r,name:"Polygon",symbol:A.Polygon}})).otherwise(()=>({chainName:t,nativeCurrency:{decimals:r,name:n,symbol:n}}))}async function $e(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 gt(e,t){let n=t!==void 0?`index ${t}: `:"",r=(o,i)=>{throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:o,message:`${n}${i}`}})};dt(e).when(({chainId:o})=>typeof o!=="bigint",()=>r("chainId","chainId must be a bigint")).when(({address:o})=>!Hn(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})=>!ct(o?.r),()=>r("signature.r","r must be a 32-byte hex string")).when(({signature:o})=>!ct(o?.s),()=>r("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function At(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 Ge(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Oe(e,t){if(e.isTuple()&&e.components){let n=Ge(e.name);return t[n]=e.components.map((r)=>({name:r.name,type:Oe(r,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let r=Ge(e.name.replace(/s$/,""));return t[r]=n.components.map((o)=>({name:o.name,type:Oe(o,t)})),`${r}[]`}return`${n?.type??"bytes"}[]`}return e.type}function We(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]=We(n[i.name]??e[o],i);return r}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((r)=>We(r,n??void 0))}return e}function Tn({chain:e,abi:t,data:n,to:r}){let i=new gn(t).parseTransaction({data:n});if(!i)throw new ye({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let y={},p=Ge(i.name);y[p]=i.fragment.inputs.map((s)=>({name:s.name,type:Oe(s,y)}));let a={};for(let[s,u]of i.fragment.inputs.entries())a[u.name]=We(i.args[s],u);let{chainId:c}=he(e),l={chainId:Number(c),verifyingContract:lt(r)},H=At(l);return{domain:l,message:a,primaryType:p,types:{EIP712Domain:H,...y}}}function Ne(e,t){if(!Array.isArray(e)||e.length===0)throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,r]of e.entries())if(gt(r,n),t!==void 0&&r.chainId!==t)throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${r.chainId}) does not match transaction chainId (${t})`}})}var ct=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),Hn=(e)=>{try{return typeof e==="string"&&!!lt(e)}catch{return!1}};var I=()=>{};var Ct;var Ht=S(()=>{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"}]});import{AssetValue as mn,applyFeeMultiplierToBigInt as M,Chain as B,EVMChains as bn,FeeOption as d,isGasAsset as Un,SwapKitError as g,SwapKitNumber as se}from"@swapkit/helpers";import{erc20ABI as P}from"@swapkit/helpers/contracts";import{BrowserProvider as xn,Contract as Tt,getAddress as pe,Interface as mt}from"ethers";import{match as bt}from"ts-pattern";function z({chain:e=B.Ethereum,provider:t,signer:n,isEIP1559Compatible:r=!0}){return{approve:Mn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),approvedAmount:wt({chain:e,provider:t}),broadcastTransaction:t.broadcastTransaction,call:Je({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),createApprovalTx:_n({chain:e,provider:t,signer:n}),createContract:Ye({chain:e,provider:t}),createContractTxObject:W({chain:e,provider:t}),createTransaction:je({chain:e,provider:t,signer:n}),createTransferTx:je({chain:e,provider:t,signer:n}),EIP1193SendTransaction:N(t),estimateCall:St({provider:t,signer:n}),estimateGasLimit:qn({chain:e,provider:t,signer:n}),estimateGasPrices:h({chain:e,isEIP1559Compatible:r,provider:t}),estimateTransactionFee:kn({chain:e,isEIP1559Compatible:r,provider:t}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:Z(e).getBalance,getNetworkParams:Fe(e),isApproved:Rn({chain:e,provider:t}),sendTransaction:Dt({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),signAuthorization:Ln({signer:n}),signMessage:n?(o)=>n.signMessage(o):void 0,signTypedData:n?({domain:o,types:i,value:y})=>n.signTypedData(o,i,y):void 0,transfer:Bn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),validateAddress:K}}function K(e){try{return pe(e),!0}catch{return!1}}function $(e){return e instanceof xn}function E(e,t,n){return new Tt(e,mt.from(t),n)}function Ye({provider:e}){return function(n,r){return new Tt(n,mt.from(r),e)}}function Xe({abi:e,funcName:t}){let n=e.find((r)=>r.name===t);if(!n)throw new g("toolbox_evm_no_abi_fragment",{funcName:t});return n.stateMutability&&wn.includes(n.stateMutability)}function Ut(e){return pe(e)}function N(e){return function({value:n,...r}){if(!$(e))throw new g("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:o,gasPrice:i,maxFeePerGas:y,maxPriorityFeePerGas:p,...a}=r;return e.send("eth_sendTransaction",[{...a,value:J(BigInt(n||0))}])}}function xt(e,t){let n=j(e,t);if(n)return pe(n.toLowerCase());throw new g("toolbox_evm_invalid_gas_asset_address")}function j({chain:e,symbol:t,ticker:n},r){try{let o=e===B.BinanceSmartChain&&t==="BNB"&&n==="BNB",i=e===B.Hyperevm&&t==="HYPE"&&n==="HYPE",y=e===r&&t===r&&n===r,p=Dn.includes(e)&&t==="ETH"&&n==="ETH";if(y||o||i||p)return Ze[r];return pe(t.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function W({provider:e}){return async({contractAddress:t,abi:n,funcName:r,funcParams:o=[],txOverrides:i})=>E(t,n,e).getFunction(r).populateTransaction(...o.concat(i).filter((y)=>typeof y<"u"))}function h({chain:e,provider:t,isEIP1559Compatible:n=!0}){return bt(e).with(B.Gnosis,()=>{return async function(){try{let{gasPrice:o,maxPriorityFeePerGas:i}=await t.getFeeData();if(!o||i===null)throw new g("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:M(o,d.Average),maxPriorityFeePerGas:M(i,d.Average)},[d.Fast]:{maxFeePerGas:M(o,d.Fast),maxPriorityFeePerGas:M(i,d.Fast)},[d.Fastest]:{maxFeePerGas:M(o,d.Fastest),maxPriorityFeePerGas:M(i,d.Fastest)}}}catch(o){throw new g("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).with(B.Arbitrum,()=>{return async function(){try{let{gasPrice:o}=await t.getFeeData();if(!o)throw new g("toolbox_evm_no_fee_data");return{[d.Average]:{gasPrice:o},[d.Fast]:{gasPrice:o},[d.Fastest]:{gasPrice:o}}}catch(o){throw new g("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:i,gasPrice:y}=await t.getFeeData();if(n){if(o===null||i===null)throw new g("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:i},[d.Fast]:{maxFeePerGas:M(o,d.Fast),maxPriorityFeePerGas:M(i,d.Fast)},[d.Fastest]:{maxFeePerGas:M(o,d.Fastest),maxPriorityFeePerGas:M(i,d.Fastest)}}}if(!y)throw new g("toolbox_evm_no_gas_price");return{[d.Average]:{gasPrice:y},[d.Fast]:{gasPrice:M(y,d.Fast)},[d.Fastest]:{gasPrice:M(y,d.Fastest)}}}catch(o){throw new g("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}})}function Je({provider:e,isEIP1559Compatible:t,signer:n,chain:r}){return async function({callProvider:i,contractAddress:y,abi:p,funcName:a,funcParams:c=[],txOverrides:l={},feeOption:H=d.Fast}){let s=i||e;if(!y)throw new g("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let u=Xe({abi:p,funcName:a});if(u&&$(s)&&n){let U=W({chain:r,provider:s}),w=l?.from||await n?.getAddress(),x=await U({abi:p,contractAddress:y,funcName:a,funcParams:c,txOverrides:{...l,from:w}});return N(s)(x)}let f=E(y,p,s);if(u){if(!n)throw new g("toolbox_evm_no_signer");let U=l?.from||await n.getAddress();if(!U)throw new g("toolbox_evm_no_signer_address");let w=f.connect(n),x=h({chain:r,isEIP1559Compatible:t,provider:e}),{maxFeePerGas:L,maxPriorityFeePerGas:F,gasPrice:O}=(await x())[H],te=await f.getFunction(a).estimateGas(...c,l),R=await w[a](...c,{...l,gasLimit:te,gasPrice:O,maxFeePerGas:L,maxPriorityFeePerGas:F,nonce:l?.nonce||await s.getTransactionCount(U)});return typeof R?.hash==="string"?R?.hash:R}let T=await f[a]?.(...c);return typeof T?.hash==="string"?T?.hash:T}}function wt({provider:e,chain:t}){return function({assetAddress:r,spenderAddress:o,from:i}){return Je({chain:t,isEIP1559Compatible:!0,provider:e})({abi:P,contractAddress:r,funcName:"allowance",funcParams:[i,o]})}}function Rn({provider:e,chain:t}){return async function({assetAddress:r,spenderAddress:o,from:i,amount:y=V}){let p=await wt({chain:t,provider:e})({assetAddress:r,from:i,spenderAddress:o});return se.fromBigInt(p).gte(se.fromBigInt(BigInt(y)))}}function Mn({signer:e,isEIP1559Compatible:t=!0,provider:n,chain:r}){return async function({assetAddress:i,spenderAddress:y,feeOptionKey:p=d.Fast,amount:a,gasLimitFallback:c,from:l,nonce:H}){let s=[y,BigInt(a||V)],u=await e?.getAddress()||l,f={abi:P,contractAddress:i,funcName:"approve",funcParams:s,signer:e,txOverrides:{from:u}};if($(n)){let U=W({chain:r,provider:n}),w=N(n),x=await U(f);return w(x)}return Je({chain:r,isEIP1559Compatible:t,provider:n,signer:e})({...f,feeOption:p,funcParams:s,txOverrides:{from:u,gasLimit:c?BigInt(c.toString()):void 0,nonce:H}})}}function Bn({signer:e,isEIP1559Compatible:t=!0,provider:n}){return async function({assetValue:o,memo:i,recipient:y,feeOptionKey:p=d.Fast,sender:a,...c}){let{hexlify:l,toUtf8Bytes:H}=await import("ethers"),s=o.getBaseValue("bigint"),u=o.chain,f=a||await e?.getAddress(),T=Dt({chain:u,isEIP1559Compatible:t,provider:n,signer:e});if(!f)throw new g("toolbox_evm_no_from_address");if(o.isGasAsset){let O={...c,data:l(H(i||"")),feeOptionKey:p,from:f,to:y,value:s};return T(O)}if(!j(o,u))throw new g("toolbox_evm_no_contract_address");let{maxFeePerGas:w,maxPriorityFeePerGas:x,gasPrice:L}=(await h({chain:u,isEIP1559Compatible:t,provider:n})())[p],F=await je({chain:u,provider:n,signer:e})({assetValue:o,data:l(H(i||"")),gasPrice:L,maxFeePerGas:w,maxPriorityFeePerGas:x,memo:i,recipient:y,sender:f});return T(F)}}function St({provider:e,signer:t}){return function({contractAddress:r,abi:o,funcName:i,funcParams:y=[],txOverrides:p}){if(!r)throw new g("toolbox_evm_no_contract_address");let a=E(r,o,e);return t?a.connect(t).getFunction(i).estimateGas(...y,p):a.getFunction(i).estimateGas(...y,p)}}function qn({provider:e,signer:t}){return async function({assetValue:r,recipient:o,memo:i,data:y,sender:p,funcName:a,funcParams:c,txOverrides:l}){let H=r.bigIntValue,s=r.isGasAsset?null:j(r,r.chain);if(s&&a)return St({provider:e,signer:t})({abi:P,contractAddress:s,funcName:a,funcParams:c,txOverrides:l});let{hexlify:u,toUtf8Bytes:f}=await import("ethers");return e.estimateGas({data:y?y:i?u(f(i)):void 0,from:p,to:o,value:H})}}function Ln({signer:e}){if(!e)return;return(t)=>$e(e,t)}function Dt({provider:e,signer:t,isEIP1559Compatible:n=!0,chain:r}){return async function({feeOptionKey:i=d.Fast,...y}){let{from:p,to:a,data:c,value:l,...H}=y;if(!t)throw new g("toolbox_evm_no_signer");if(!a)throw new g("toolbox_evm_no_to_address");let s={...H,data:c||"0x",from:p,to:a,value:BigInt(l||0)};if($(e))return N(e)(s);let u=p||await t.getAddress(),f=y.nonce||await e.getTransactionCount(u),T=(await e.getNetwork()).chainId,U=Pe(s,n);if(U==="eip7702")Ne(s.authorizations||[],T);let w=bt(U).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),x={...s,chainId:T,nonce:f,type:w,...U==="eip7702"&&{authorizationList:s.authorizations}},L=h({chain:r,isEIP1559Compatible:n,provider:e}),O=U!=="legacy"&&!(s.maxFeePerGas&&s.maxPriorityFeePerGas)||!s.gasPrice?Object.entries((await L())[i]).reduce((R,[ne,at])=>({...R,[ne]:J(BigInt(at))}),{}):{},te;try{te=J(s.gasLimit||await e.estimateGas(x)*11n/10n)}catch(R){throw new g("toolbox_evm_error_estimating_gas_limit",{error:R})}try{let R={...x,gasLimit:te,...O};try{return(await t.sendTransaction(R)).hash}catch{let ne=await t.signTransaction({...R,from:u});return(await e.broadcastTransaction(ne)).hash}}catch(R){throw new g("toolbox_evm_error_sending_transaction",{error:R})}}}function je({provider:e,signer:t}){return async function({assetValue:r,memo:o,recipient:i,data:y,sender:p,maxFeePerGas:a,maxPriorityFeePerGas:c,gasPrice:l,...H}){let s=r.getBaseValue("bigint"),u=r.chain,f=p||await t?.getAddress();if(!f)throw new g("toolbox_evm_no_from_address");if(Un(r)){let{hexlify:w,toUtf8Bytes:x}=await import("ethers");return{...H,data:y||w(x(o||"")),from:f,to:i,value:s}}let T=j(r,u);if(!T)throw new g("toolbox_evm_no_contract_address");return W({chain:r.chain,provider:e})({abi:P,contractAddress:T,funcName:"transfer",funcParams:[i,s],txOverrides:{from:f,gasPrice:l,maxFeePerGas:a,maxPriorityFeePerGas:c}})}}function _n({provider:e,signer:t,chain:n}){return async function({assetAddress:o,spenderAddress:i,amount:y,from:p}){let a=await t?.getAddress()||p,c=W({chain:n,provider:e}),l=["bigint","number"].includes(typeof y)?y:y||V;return await c({abi:P,contractAddress:o,funcName:"approve",funcParams:[i,BigInt(l)],txOverrides:{from:a}})}}function kn({provider:e,isEIP1559Compatible:t=!0,chain:n}){return async function({feeOption:o=d.Fast,...i}){let p=await h({chain:n,isEIP1559Compatible:t,provider:e})(),a=await e.estimateGas(i),c=mn.from({chain:n}),{gasPrice:l,maxFeePerGas:H,maxPriorityFeePerGas:s}=p[o];if(!t&&l)return c.set(se.fromBigInt(l*a,c.decimal));if(H&&s){let u=(H+s)*a;return c.set(se.fromBigInt(u,c.decimal))}throw new g("toolbox_evm_no_gas_price")}}var V,wn,Sn,Ze,Dn,ae=(e)=>e.type===4||(e.authorizations?.length??0)>0,Ie=(e)=>!ae(e)&&(e.type===2||!!e.maxFeePerGas||!!e.maxPriorityFeePerGas),Pe=(e,t=!0)=>{if(ae(e))return"eip7702";if(Ie(e)||t)return"eip1559";return"legacy"};var ue=S(()=>{ie();I();V=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");wn=["payable","nonpayable"];Sn=bn.reduce((e,t)=>{return e[t]="0x0000000000000000000000000000000000000000",e},{}),Ze={...Sn,[B.Optimism]:"0x4200000000000000000000000000000000000042",[B.Polygon]:"0x0000000000000000000000000000000000001010"},Dn=[B.Arbitrum,B.Aurora,B.Base,B.Optimism]});import{Chain as m,FeeOption as Gn}from"@swapkit/helpers";import{HDNodeWallet as On}from"ethers";import{match as Wn,P as Rt}from"ts-pattern";function ce(e){let t=b(m.Ethereum)(e);async function n(r,o="0x5ba1e12693dc8f9c48aad8770482f4739beed696",i="aggregate",y=Gn.Fast){let p=await t.createContractTxObject({abi:Ct,contractAddress:o,funcName:i,funcParams:[r]});return t.sendTransaction({...p,feeOptionKey:y})}return{...t,multicall:n}}function b(e){return function({provider:n,...r}){let o=ze(e),i=Wn(r).with({phrase:Rt.string},({phrase:p})=>On.fromPhrase(p).connect(n)).with({signer:Rt.any},({signer:p})=>p).otherwise(()=>{return});return z({chain:e,isEIP1559Compatible:o,provider:n,signer:i})}}var le,de,fe,ge,Ae,Ce,He,Mt,Te,me,be,Ue,xe,we,v,Se,De,Re,Me;var Ve=S(()=>{Ht();I();ue();le=b(m.Adi),de=b(m.Arbitrum),fe=b(m.Aurora),ge=b(m.Avalanche),Ae=b(m.Base),Ce=b(m.Berachain),He=b(m.BinanceSmartChain),Mt=b(m.Botanix),Te=b(m.Core),me=b(m.Corn),be=b(m.Cronos),Ue=b(m.Gnosis),xe=b(m.Hyperevm),we=b(m.Polygon),v=b(m.Sonic),Se=b(m.Unichain),De=b(m.XLayer),Re=b(m.Monad),Me=b(m.MegaETH)});var Bt;var qt=S(()=>{Bt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Y,Chain as Qn,FeeOption as _,SwapKitError as Ke}from"@swapkit/helpers";import{Contract as Fn,HDNodeWallet as zn}from"ethers";import{match as $n,P as Lt}from"ts-pattern";function Ee(e){return new Fn(Nn,Bt,e)}function _t(e){return async function(){let n=Ee(e);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function kt(e){return async function({from:n,to:r,nonce:o,...i}){let{Transaction:y}=await import("ethers");if(!r)throw new Ke("toolbox_evm_invalid_transaction",{error:"Missing to address"});return y.from({...i,authorizationList:i.authorizationList,nonce:o?o:n?await e.getTransactionCount(n):0,to:r}).serialized}}function Gt(e){return async function(n){let r=Ee(e),o=await kt(e)(n);if(r&&"getL1Fee"in r)return r.getL1Fee(o)}}function Ot(e){return async function(n){let o=(await e.getFeeData()).gasPrice??0n,i=await e.estimateGas(n);return o*i}}function jn(e){return async function(n){let r=await Gt(e)(n)??0n,o=await Ot(e)(n);return r+o}}function Yn(e){return async function(n){let r=Ee(e),o=await kt(e)(n);if(r&&"getL1GasUsed"in r)return r.getL1GasUsed(o)}}function Xn(e){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:r,gasPrice:o}=await e.getFeeData(),i=await _t(e)(),y=o;if(!(n&&r))throw new Ke("toolbox_evm_no_fee_data");return{[_.Average]:{gasPrice:y,l1GasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:r},[_.Fast]:{gasPrice:Y(y,_.Fast),l1GasPrice:Y(i||0n,_.Fast),maxFeePerGas:n,maxPriorityFeePerGas:Y(r,_.Fast)},[_.Fastest]:{gasPrice:Y(y,_.Fastest),l1GasPrice:Y(i||0n,_.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:Y(r,_.Fastest)}}}catch(n){throw new Ke("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Be({provider:e,...t}){let n=$n(t).with({phrase:Lt.string},({phrase:i})=>zn.fromPhrase(i).connect(e)).with({signer:Lt.any},({signer:i})=>i).otherwise(()=>{return}),r=z({provider:e,signer:n}),o=_t(e);return{...r,estimateGasPrices:Xn(e),estimateL1Gas:Yn(e),estimateL1GasCost:Gt(e),estimateL2GasCost:Ot(e),estimateTotalGasCost:jn(e),getBalance:Z(Qn.Optimism).getBalance,getL1GasPrice:o}}var Nn="0x420000000000000000000000000000000000000f";var ve=S(()=>{ie();qt();ue()});var Jn={};Le(Jn,{validateEVMAddress:()=>K,toChecksumAddress:()=>Ut,isStateChangingCall:()=>Xe,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Ie,isBrowserProvider:()=>$,getTokenAddress:()=>j,getEvmToolboxAsync:()=>Wt,getEvmToolbox:()=>et,getEstimateGasPrices:()=>h,getEVMTxType:()=>Pe,getEIP1193SendTransaction:()=>N,getCreateContractTxObject:()=>W,getCreateContract:()=>Ye,getChecksumAddressFromAsset:()=>xt,createContract:()=>E,XLayerToolbox:()=>De,UNIToolbox:()=>Se,SONICToolbox:()=>v,OPToolbox:()=>Be,MONADToolbox:()=>Re,MEGAETHToolbox:()=>Me,MAX_APPROVAL:()=>V,MATICToolbox:()=>we,HYPEREVMToolbox:()=>xe,GNOToolbox:()=>Ue,ETHToolbox:()=>ce,ContractAddress:()=>Ze,CROToolbox:()=>be,CORNToolbox:()=>me,COREToolbox:()=>Te,BotanixToolbox:()=>Mt,BaseEVMToolbox:()=>z,BSCToolbox:()=>He,BERAToolbox:()=>Ce,BASEToolbox:()=>Ae,AVAXToolbox:()=>ge,AURORAToolbox:()=>fe,ARBToolbox:()=>de,ADIToolbox:()=>le});import{Chain as C}from"@swapkit/helpers";import{match as Zn}from"ts-pattern";function et(e,t){return Zn(e).with(C.Adi,()=>le(t)).with(C.Arbitrum,()=>de(t)).with(C.Aurora,()=>fe(t)).with(C.Avalanche,()=>ge(t)).with(C.Base,()=>Ae(t)).with(C.Berachain,()=>Ce(t)).with(C.BinanceSmartChain,()=>He(t)).with(C.Botanix,()=>v(t)).with(C.Core,()=>Te(t)).with(C.Corn,()=>me(t)).with(C.Cronos,()=>be(t)).with(C.Ethereum,()=>ce(t)).with(C.Gnosis,()=>Ue(t)).with(C.Hyperevm,()=>xe(t)).with(C.Optimism,()=>Be(t)).with(C.Polygon,()=>we(t)).with(C.Sonic,()=>v(t)).with(C.Unichain,()=>Se(t)).with(C.XLayer,()=>De(t)).with(C.Monad,()=>Re(t)).with(C.MegaETH,()=>Me(t)).exhaustive()}async function Wt(e,t){let n={...t,provider:t?.provider||await Qe(e)};return et(e,n)}var ht=S(()=>{I();Ve();ve();ue();Ve();ve()});var Qt;var Ft=S(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Qt||={})});var In={};Le(In,{validateEVMAddress:()=>K,validateAuthorizations:()=>Ne,validateAuthorization:()=>gt,toHexString:()=>J,toChecksumAddress:()=>Ut,signAuthorization:()=>$e,parseEIP712FromEVMTx:()=>Tn,isStateChangingCall:()=>Xe,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Ie,isBrowserProvider:()=>$,getTokenAddress:()=>j,getProviderSync:()=>ft,getProvider:()=>Qe,getNetworkParams:()=>Fe,getIsEIP1559Compatible:()=>ze,getEvmToolboxAsync:()=>Wt,getEvmToolbox:()=>et,getEvmApi:()=>Z,getEstimateGasPrices:()=>h,getEVMTxType:()=>Pe,getEIP1193SendTransaction:()=>N,getCreateContractTxObject:()=>W,getCreateContract:()=>Ye,getChecksumAddressFromAsset:()=>xt,createCustomEvmApi:()=>dn,createContract:()=>E,buildEIP712DomainType:()=>At,XLayerToolbox:()=>De,UNIToolbox:()=>Se,SONICToolbox:()=>v,OPToolbox:()=>Be,MONADToolbox:()=>Re,MEGAETHToolbox:()=>Me,MAX_APPROVAL:()=>V,MATICToolbox:()=>we,HYPEREVMToolbox:()=>xe,GNOToolbox:()=>Ue,EthNetwork:()=>Qt,ETHToolbox:()=>ce,ContractAddress:()=>Ze,CROToolbox:()=>be,CORNToolbox:()=>me,COREToolbox:()=>Te,BotanixToolbox:()=>Mt,BaseEVMToolbox:()=>z,BSCToolbox:()=>He,BERAToolbox:()=>Ce,BASEToolbox:()=>Ae,AVAXToolbox:()=>ge,AURORAToolbox:()=>fe,ARBToolbox:()=>de,ADIToolbox:()=>le});var zt=S(()=>{ie();I();ht();Ft()});function Pn({builder:e,grouping:t="na",orders:n}){return{builder:e,grouping:t,orders:n,type:"order"}}function Vn({cancels:e}){return{cancels:e,type:"cancel"}}function Kn({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function En({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function vn({modifies:e}){return{modifies:e,type:"batchModify"}}function er({asset:e,isCross:t,leverage:n}){return{asset:e,isCross:t,leverage:n,type:"updateLeverage"}}function tr({asset:e,isBuy:t,ntli:n}){return{asset:e,isBuy:t,ntli:n,type:"updateIsolatedMargin"}}function nr({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function rr({time:e}){return{time:e,type:"scheduleCancel"}}function or({amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o}){return{amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o,type:"usdClassTransfer"}}function ir({amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:y,sourceDex:p,token:a}){return{amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:y,sourceDex:p,token:a,type:"sendAsset"}}function yr({agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o}){return{agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o,type:"approveAgent"}}function sr({builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o}){return{builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o,type:"approveBuilderFee"}}function pr({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}}import{SwapKitError as nt}from"@swapkit/helpers";import{keccak256 as ar,Signature as ur}from"ethers";function D(...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 Ar(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 $t(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 D(new Uint8Array([205]),G(e,2));if(e<=0xffffffffn)return D(new Uint8Array([206]),G(e,4));return D(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 D(new Uint8Array([209]),G(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return D(new Uint8Array([210]),G(BigInt.asUintN(32,e),4));return D(new Uint8Array([211]),G(BigInt.asUintN(64,e),8))}function Yt(e){let t=gr.encode(e);if(t.length<32)return D(new Uint8Array([160+t.length]),t);return D(Ar(217,0,t.length),t)}function Cr(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 D(n,...t)}function Hr(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 D(n,...t.flatMap(([r,o])=>[Yt(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 Yt(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new nt("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return $t(BigInt(e))}if(typeof e==="bigint")return $t(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 D(t,e)}if(Array.isArray(e))return Cr(e);if(typeof e==="object")return Hr(e);throw new nt("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function Tr(e){let t=e.startsWith("0x")?e.slice(2):e;if(t.length%2!==0||/[^a-fA-F0-9]/u.test(t))throw new nt("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 Xt(e){return{domain:cr,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...lr.Agent]}}}function Zt(e){let t=fr[e.type],n=dr[e.type],{type:r,...o}=e;return{domain:{chainId:Number.parseInt(o.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Nt,version:"1"},message:{...o,hyperliquidChain:o.hyperliquidChain||jt},primaryType:t,types:{[t]:n}}}function Jt(e){let t=ur.from(e);return{r:t.r,s:t.s,v:t.v}}function It(e,t,{expiresAfter:n,vaultAddress:r}={}){let o=rt(e),i=G(BigInt(t),8),y=r?D(new Uint8Array([1]),Tr(r.toLowerCase())):new Uint8Array([0]),p=typeof n==="number"?D(new Uint8Array([0]),G(BigInt(n),8)):new Uint8Array;return ar(D(o,i,y,p))}function Pt(e){let t=e.hyperliquidChain||jt;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 Nt="0x0000000000000000000000000000000000000000",cr,lr,jt="Mainnet",dr,fr,gr;var Vt=S(()=>{cr={chainId:1337,name:"Exchange",verifyingContract:Nt,version:"1"},lr={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},dr={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"}]},fr={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},gr=new TextEncoder});import{AssetValue as yt,Chain as mr,derivationPathToString as br,getChainConfig as tn,getRPCUrl as Ur,NetworkDerivationPath as xr,RequestClient as ee,SwapKitError as X,updateDerivationPath as wr}from"@swapkit/helpers";import{HDNodeWallet as Sr}from"ethers";import{match as Dr,P as ot}from"ts-pattern";function q(e,t){if(!pt(e))throw new X(t,{address:e});return e.toLowerCase()}async function Q(e){let t=await qe();return ee.post(`${t}/info`,{json:e})}function Lr({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"clearinghouseState",user:q(t,"helpers_invalid_params")})}function _r({user:e}){return Q({type:"spotClearinghouseState",user:q(e,"helpers_invalid_params")})}function kr({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"openOrders",user:q(t,"helpers_invalid_params")})}function Gr({dex:e,user:t}){return Q({...e?{dex:e}:{},type:"frontendOpenOrders",user:q(t,"helpers_invalid_params")})}function Or({oidOrCloid:e,user:t}){return Q({oid:e,type:"orderStatus",user:q(t,"helpers_invalid_params")})}function Wr({aggregateByTime:e,user:t}){return Q({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:q(t,"helpers_invalid_params")})}function hr({aggregateByTime:e,endTime:t,startTime:n,user:r}){return Q({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof t==="number"?{endTime:t}:{},startTime:n,type:"userFillsByTime",user:q(r,"helpers_invalid_params")})}function vt({coin:e,token:t,value:n}){if(!n||Number(n)<=0)return null;let r=e?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,o=Rr[r]||nn;return new yt({decimal:o,identifier:`${k}.${r}`,value:n})}function Qr(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)){let n=yt.from({chain:k,value:0});t.set(n.toString({includeSynthProtocol:!0}),n)}return[...t.values()]}async function qe(){try{return await Ur(k)}catch{let[e]=tn(k).rpcUrls;if(!e)throw new X("helpers_chain_no_public_or_set_rpc_url",{chain:k});return e}}async function st(){return`${await qe()}/exchange`}function Fr(e){let t=qr[e.type],{type:n,...r}=e,o=Br[n];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Mr,version:"1"},message:r,primaryType:t,types:{[t]:o}}}async function rn({action:e,expiresAfter:t,nonce:n,vaultAddress:r}){let o=n||Date.now(),i=r?q(r,"helpers_invalid_params"):void 0,y=await st(),p=It(e,o,{expiresAfter:t,vaultAddress:i});return{action:e,endpoint:y,expiresAfter:t,nonce:o,typedData:Xt(p),vaultAddress:i}}async function on({action:e,nonce:t,signatureChainId:n}){let r=t||e.nonce||Date.now(),o=n||e.signatureChainId||"0xa4b1",i=Pt({...e,nonce:r,signatureChainId:o});return{action:i,endpoint:await st(),nonce:r,typedData:Zt(i)}}async function it({assetValue:e,recipient:t,sender:n,signatureChainId:r,time:o}){let i=q(t,"core_transaction_invalid_recipient_address"),y=q(n,"core_transaction_invalid_sender_address"),p=await st(),a=e.getValue("string"),c=o||Date.now(),l=e.ticker==="USDC"?{amount:a,destination:i,hyperliquidChain:Kt,signatureChainId:r||Et,time:c,type:"usdSend"}:{amount:a,destination:i,hyperliquidChain:Kt,signatureChainId:r||Et,time:c,token:e.address?e.address:(()=>{throw new X("helpers_invalid_params",{asset:e.toString(),from:y})})(),type:"spotSend"};return{action:l,endpoint:p,nonce:c,typedData:Fr(l)}}async function en(e){let t=await ee.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 X("core_transaction_failed",{response:t});return t}async function zr(e,t){let n=await qe(),r=t-5000;for(let o=0;o<5;o++){if(o>0)await new Promise((i)=>setTimeout(i,1000));try{let i=await ee.post(`${n}/info`,{json:{startTime:r,type:"userNonFundingLedgerUpdates",user:e}}),y=Array.isArray(i)?i.find((p)=>p.time&&p.time>=t&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(y?.hash)return y.hash}catch{}}return""}function pt(e){return e.startsWith("0x")&&K(e)}function $r(e){let t=oe(k),n=e&&"index"in e?e.index||0:0,r=br(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:wr(xr[k],{index:n})),o,i=!1;function y(){if(i)return o;return o=Dr(e).with({phrase:ot.string},({phrase:s})=>{return Sr.fromPhrase(s,void 0,r)}).with({signer:ot.not(ot.nullish)},({signer:s})=>s).otherwise(()=>{return}),i=!0,o}async function p(){let s=y();return s?await s.getAddress():""}async function a(s){let u=y();if(!u)throw new X("toolbox_hypercore_no_signer");let f=await u.signTypedData(s.typedData.domain,s.typedData.types,s.typedData.message);return{action:s.action,endpoint:s.endpoint,nonce:s.nonce,signature:Jt(f),..."expiresAfter"in s?{expiresAfter:s.expiresAfter}:{},..."vaultAddress"in s?{vaultAddress:s.vaultAddress}:{}}}async function c(s){let u=q(s,"helpers_invalid_params");try{let f=await qe(),[T,U]=await Promise.all([ee.post(`${f}/info`,{json:{type:"spotClearinghouseState",user:u}}),ee.post(`${f}/info`,{json:{type:"clearinghouseState",user:u}})]),w=(T.spotState?.balances||T.balances||[]).map(({coin:L,token:F,total:O})=>vt({coin:L,token:F,value:O})).filter((L)=>!!L),x=vt({coin:"USDC",value:U.withdrawable||U.marginSummary?.accountValue||U.marginSummary?.totalRawUsd});return Qr(x?[...w,x]:w)}catch{return t(u)}}async function l(s){let u=y();if(!u)throw new X("toolbox_hypercore_no_signer");let f=s.sender||await u.getAddress(),T=await it({...s,feeRate:0,sender:f}),U=await a(T);return await en(U),zr(f,T.nonce)}function H(){return yt.from({chain:k,value:0})}return{broadcastTransaction:en,createL1ActionRequest:rn,createTransaction:it,createUserSignedActionRequest:on,estimateTransactionFee:H,getAddress:p,getBalance:c,getState:{clearinghouse:Lr,frontendOpenOrders:Gr,openOrders:kr,orderStatus:Or,spotClearinghouse:_r,userFills:Wr,userFillsByTime:hr},signTransaction:a,transfer:l,validateAddress:pt}}var k,nn,Rr,Kt="Mainnet",Et="0xa4b1",Mr="0x0000000000000000000000000000000000000000",Br,qr;var yn=S(()=>{zt();ke();Vt();k=mr.HyperCore,{baseDecimal:nn}=tn(k),Rr={HYPE:nn,USDC:6,USDT:6},Br={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}],usdSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},qr={spotSend:"HyperliquidTransaction:SpotSend",usdSend:"HyperliquidTransaction:UsdSend"}});var Nr={};Le(Nr,{validateHyperCoreAddress:()=>pt,getHyperCoreToolbox:()=>$r,createUserSignedActionRequest:()=>on,createTransaction:()=>it,createL1ActionRequest:()=>rn,buildUsdClassTransferAction:()=>or,buildUpdateLeverageAction:()=>er,buildUpdateIsolatedMarginAction:()=>tr,buildTopUpIsolatedOnlyMarginAction:()=>nr,buildTokenDelegateAction:()=>pr,buildSendAssetAction:()=>ir,buildScheduleCancelAction:()=>rr,buildOrderAction:()=>Pn,buildModifyAction:()=>En,buildCancelByCloidAction:()=>Kn,buildCancelAction:()=>Vn,buildBatchModifyAction:()=>vn,buildApproveBuilderFeeAction:()=>sr,buildApproveAgentAction:()=>yr});var jr=S(()=>{yn()});jr();export{pt as validateHyperCoreAddress,$r as getHyperCoreToolbox,on as createUserSignedActionRequest,it as createTransaction,rn as createL1ActionRequest,or as buildUsdClassTransferAction,er as buildUpdateLeverageAction,tr as buildUpdateIsolatedMarginAction,nr as buildTopUpIsolatedOnlyMarginAction,pr as buildTokenDelegateAction,ir as buildSendAssetAction,rr as buildScheduleCancelAction,Pn as buildOrderAction,En as buildModifyAction,Kn as buildCancelByCloidAction,Vn as buildCancelAction,vn as buildBatchModifyAction,sr as buildApproveBuilderFeeAction,yr as buildApproveAgentAction};
1
+ var on=Object.defineProperty;var yn=(e)=>e;function sn(e,t){this[e]=yn.bind(null,t)}var Le=(e,t)=>{for(var n in t)on(e,n,{get:t[n],enumerable:!0,configurable:!0,set:sn.bind(t,n)})};var S=(e,t)=>()=>(e&&(t=e(e=0)),t);var re=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as ut,getChainConfig as pn}from"@swapkit/helpers";import{SwapKitApi as an}from"@swapkit/helpers/api";function Jr(){function e(){let t=Date.now(),n=ke||t;return ke=n,t>ke?t:n+1}return un+e().toString(36)}function oe(e){return async function(n,r=!0){let o=await an.getChainBalance({address:n,chain:e,scamFilter:r}),{baseDecimal:i}=pn(e),y=o.map(({identifier:a,value:l,decimal:c})=>{return new ut({decimal:c||i,identifier:a,value:l})});if(!y.some((a)=>a.isGasAsset))return[ut.from({chain:e}),...y];return y}}var un,ke=0;var _e=S(()=>{un=typeof process<"u"&&process.pid?process.pid.toString(36):""});function I(e){return{getBalance:oe(e)}}function cn(e){return e}var ie=S(()=>{_e()});import{Chain as H,getChainConfig as $e,getRPCUrl as ln,SwapKitError as ye}from"@swapkit/helpers";import{getAddress as lt,Interface as dn,JsonRpcProvider as fn}from"ethers";import{match as dt}from"ts-pattern";function ft(e){return new fn(e)}async function Qe(e,t){return ft(t||await ln(e))}function P(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function Fe(e){let{explorerUrl:t,chainIdHex:n,rpcUrls:r}=$e(e);return function(){return e!==H.Ethereum?{...gn({chain:e}),blockExplorerUrls:[t],chainId:n,rpcUrls:r}:void 0}}function ze(e){return![H.Adi,H.Arbitrum,H.BinanceSmartChain].includes(e)}function gn({chain:e}){let{name:t,nativeCurrency:n,baseDecimal:r}=$e(e);return dt(e).with(H.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:r,name:"Ethereum",symbol:H.Ethereum}})).with(H.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:H.Ethereum}})).with(H.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:r,name:"Avalanche",symbol:e}})).with(H.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:H.Ethereum}})).with(H.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:r,name:"Berachain",symbol:"BERA"}})).with(H.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:r,name:"OKB",symbol:"OKB"}})).with(H.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:r,name:"Binance Coin",symbol:"BNB"}})).with(H.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:r,name:"xDAI",symbol:"XDAI"}})).with(H.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:r,name:"Ethereum",symbol:H.Ethereum}})).with(H.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:r,name:"Polygon",symbol:H.Polygon}})).otherwise(()=>({chainName:t,nativeCurrency:{decimals:r,name:n,symbol:n}}))}async function he(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 gt(e,t){let n=t!==void 0?`index ${t}: `:"",r=(o,i)=>{throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:o,message:`${n}${i}`}})};dt(e).when(({chainId:o})=>typeof o!=="bigint",()=>r("chainId","chainId must be a bigint")).when(({address:o})=>!An(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})=>!ct(o?.r),()=>r("signature.r","r must be a 32-byte hex string")).when(({signature:o})=>!ct(o?.s),()=>r("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function At(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 Ge(e){return e.charAt(0).toUpperCase()+e.slice(1)}function Oe(e,t){if(e.isTuple()&&e.components){let n=Ge(e.name);return t[n]=e.components.map((r)=>({name:r.name,type:Oe(r,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let r=Ge(e.name.replace(/s$/,""));return t[r]=n.components.map((o)=>({name:o.name,type:Oe(o,t)})),`${r}[]`}return`${n?.type??"bytes"}[]`}return e.type}function We(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]=We(n[i.name]??e[o],i);return r}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((r)=>We(r,n??void 0))}return e}function Hn({chain:e,abi:t,data:n,to:r}){let i=new dn(t).parseTransaction({data:n});if(!i)throw new ye({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let y={},p=Ge(i.name);y[p]=i.fragment.inputs.map((s)=>({name:s.name,type:Oe(s,y)}));let a={};for(let[s,u]of i.fragment.inputs.entries())a[u.name]=We(i.args[s],u);let{chainId:l}=$e(e),c={chainId:Number(l),verifyingContract:lt(r)},g=At(c);return{domain:c,message:a,primaryType:p,types:{EIP712Domain:g,...y}}}function Ne(e,t){if(!Array.isArray(e)||e.length===0)throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,r]of e.entries())if(gt(r,n),t!==void 0&&r.chainId!==t)throw new ye({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${r.chainId}) does not match transaction chainId (${t})`}})}var ct=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),An=(e)=>{try{return typeof e==="string"&&!!lt(e)}catch{return!1}};var V=()=>{};var Ht;var Ct=S(()=>{Ht=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as Cn,applyFeeMultiplierToBigInt as R,Chain as B,EVMChains as Tn,FeeOption as d,isGasAsset as mn,SwapKitError as A,SwapKitNumber as se}from"@swapkit/helpers";import{erc20ABI as K}from"@swapkit/helpers/contracts";import{BrowserProvider as bn,Contract as Tt,getAddress as pe,Interface as mt}from"ethers";import{match as bt}from"ts-pattern";function h({chain:e=B.Ethereum,provider:t,signer:n,isEIP1559Compatible:r=!0}){return{approve:Dn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),approvedAmount:wt({chain:e,provider:t}),broadcastTransaction:t.broadcastTransaction,call:Je({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),createApprovalTx:qn({chain:e,provider:t,signer:n}),createContract:Ye({chain:e,provider:t}),createContractTxObject:$({chain:e,provider:t}),createTransaction:je({chain:e,provider:t,signer:n}),createTransferTx:je({chain:e,provider:t,signer:n}),EIP1193SendTransaction:j(t),estimateCall:St({provider:t,signer:n}),estimateGasLimit:Rn({chain:e,provider:t,signer:n}),estimateGasPrices:Q({chain:e,isEIP1559Compatible:r,provider:t}),estimateTransactionFee:Ln({chain:e,isEIP1559Compatible:r,provider:t}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:I(e).getBalance,getNetworkParams:Fe(e),isApproved:Sn({chain:e,provider:t}),sendTransaction:Dt({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),signAuthorization:Bn({signer:n}),signMessage:n?(o)=>n.signMessage(o):void 0,signTypedData:n?({domain:o,types:i,value:y})=>n.signTypedData(o,i,y):void 0,transfer:Mn({chain:e,isEIP1559Compatible:r,provider:t,signer:n}),validateAddress:v}}function v(e){try{return pe(e),!0}catch{return!1}}function N(e){return e instanceof bn}function ee(e,t,n){return new Tt(e,mt.from(t),n)}function Ye({provider:e}){return function(n,r){return new Tt(n,mt.from(r),e)}}function Xe({abi:e,funcName:t}){let n=e.find((r)=>r.name===t);if(!n)throw new A("toolbox_evm_no_abi_fragment",{funcName:t});return n.stateMutability&&Un.includes(n.stateMutability)}function Ut(e){return pe(e)}function j(e){return function({value:n,...r}){if(!N(e))throw new A("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:o,gasPrice:i,maxFeePerGas:y,maxPriorityFeePerGas:p,...a}=r;return e.send("eth_sendTransaction",[{...a,value:P(BigInt(n||0))}])}}function xt(e,t){let n=Y(e,t);if(n)return pe(n.toLowerCase());throw new A("toolbox_evm_invalid_gas_asset_address")}function Y({chain:e,symbol:t,ticker:n},r){try{let o=e===B.BinanceSmartChain&&t==="BNB"&&n==="BNB",i=e===B.Hyperevm&&t==="HYPE"&&n==="HYPE",y=e===r&&t===r&&n===r,p=wn.includes(e)&&t==="ETH"&&n==="ETH";if(y||o||i||p)return Ze[r];return pe(t.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function $({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((y)=>typeof y<"u"))}function Q({chain:e,provider:t,isEIP1559Compatible:n=!0}){return bt(e).with(B.Gnosis,()=>{return async function(){try{let{gasPrice:o,maxPriorityFeePerGas:i}=await t.getFeeData();if(!o||i===null)throw new A("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:R(o,d.Average),maxPriorityFeePerGas:R(i,d.Average)},[d.Fast]:{maxFeePerGas:R(o,d.Fast),maxPriorityFeePerGas:R(i,d.Fast)},[d.Fastest]:{maxFeePerGas:R(o,d.Fastest),maxPriorityFeePerGas:R(i,d.Fastest)}}}catch(o){throw new A("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).with(B.Arbitrum,()=>{return async function(){try{let{gasPrice:o}=await t.getFeeData();if(!o)throw new A("toolbox_evm_no_fee_data");return{[d.Average]:{gasPrice:o},[d.Fast]:{gasPrice:o},[d.Fastest]:{gasPrice:o}}}catch(o){throw new A("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:i,gasPrice:y}=await t.getFeeData();if(n){if(o===null||i===null)throw new A("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:o,maxPriorityFeePerGas:i},[d.Fast]:{maxFeePerGas:R(o,d.Fast),maxPriorityFeePerGas:R(i,d.Fast)},[d.Fastest]:{maxFeePerGas:R(o,d.Fastest),maxPriorityFeePerGas:R(i,d.Fastest)}}}if(!y)throw new A("toolbox_evm_no_gas_price");return{[d.Average]:{gasPrice:y},[d.Fast]:{gasPrice:R(y,d.Fast)},[d.Fastest]:{gasPrice:R(y,d.Fastest)}}}catch(o){throw new A("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}})}function Je({provider:e,isEIP1559Compatible:t,signer:n,chain:r}){return async function({callProvider:i,contractAddress:y,abi:p,funcName:a,funcParams:l=[],txOverrides:c={},feeOption:g=d.Fast}){let s=i||e;if(!y)throw new A("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let u=Xe({abi:p,funcName:a});if(u&&N(s)&&n){let U=$({chain:r,provider:s}),w=c?.from||await n?.getAddress(),x=await U({abi:p,contractAddress:y,funcName:a,funcParams:l,txOverrides:{...c,from:w}});return j(s)(x)}let f=ee(y,p,s);if(u){if(!n)throw new A("toolbox_evm_no_signer");let U=c?.from||await n.getAddress();if(!U)throw new A("toolbox_evm_no_signer_address");let w=f.connect(n),x=Q({chain:r,isEIP1559Compatible:t,provider:e}),{maxFeePerGas:k,maxPriorityFeePerGas:G,gasPrice:W}=(await x())[g],z=await f.getFunction(a).estimateGas(...l,c),M=await w[a](...l,{...c,gasLimit:z,gasPrice:W,maxFeePerGas:k,maxPriorityFeePerGas:G,nonce:c?.nonce||await s.getTransactionCount(U)});return typeof M?.hash==="string"?M?.hash:M}let T=await f[a]?.(...l);return typeof T?.hash==="string"?T?.hash:T}}function wt({provider:e,chain:t}){return function({assetAddress:r,spenderAddress:o,from:i}){return Je({chain:t,isEIP1559Compatible:!0,provider:e})({abi:K,contractAddress:r,funcName:"allowance",funcParams:[i,o]})}}function Sn({provider:e,chain:t}){return async function({assetAddress:r,spenderAddress:o,from:i,amount:y=E}){let p=await wt({chain:t,provider:e})({assetAddress:r,from:i,spenderAddress:o});return se.fromBigInt(p).gte(se.fromBigInt(BigInt(y)))}}function Dn({signer:e,isEIP1559Compatible:t=!0,provider:n,chain:r}){return async function({assetAddress:i,spenderAddress:y,feeOptionKey:p=d.Fast,amount:a,gasLimitFallback:l,from:c,nonce:g}){let s=[y,BigInt(a||E)],u=await e?.getAddress()||c,f={abi:K,contractAddress:i,funcName:"approve",funcParams:s,signer:e,txOverrides:{from:u}};if(N(n)){let U=$({chain:r,provider:n}),w=j(n),x=await U(f);return w(x)}return Je({chain:r,isEIP1559Compatible:t,provider:n,signer:e})({...f,feeOption:p,funcParams:s,txOverrides:{from:u,gasLimit:l?BigInt(l.toString()):void 0,nonce:g}})}}function Mn({signer:e,isEIP1559Compatible:t=!0,provider:n}){return async function({assetValue:o,memo:i,recipient:y,feeOptionKey:p=d.Fast,sender:a,...l}){let{hexlify:c,toUtf8Bytes:g}=await import("ethers"),s=o.getBaseValue("bigint"),u=o.chain,f=a||await e?.getAddress(),T=Dt({chain:u,isEIP1559Compatible:t,provider:n,signer:e});if(!f)throw new A("toolbox_evm_no_from_address");if(o.isGasAsset){let W={...l,data:c(g(i||"")),feeOptionKey:p,from:f,to:y,value:s};return T(W)}if(!Y(o,u))throw new A("toolbox_evm_no_contract_address");let{maxFeePerGas:w,maxPriorityFeePerGas:x,gasPrice:k}=(await Q({chain:u,isEIP1559Compatible:t,provider:n})())[p],G=await je({chain:u,provider:n,signer:e})({assetValue:o,data:c(g(i||"")),gasPrice:k,maxFeePerGas:w,maxPriorityFeePerGas:x,memo:i,recipient:y,sender:f});return T(G)}}function St({provider:e,signer:t}){return function({contractAddress:r,abi:o,funcName:i,funcParams:y=[],txOverrides:p}){if(!r)throw new A("toolbox_evm_no_contract_address");let a=ee(r,o,e);return t?a.connect(t).getFunction(i).estimateGas(...y,p):a.getFunction(i).estimateGas(...y,p)}}function Rn({provider:e,signer:t}){return async function({assetValue:r,recipient:o,memo:i,data:y,sender:p,funcName:a,funcParams:l,txOverrides:c}){let g=r.bigIntValue,s=r.isGasAsset?null:Y(r,r.chain);if(s&&a)return St({provider:e,signer:t})({abi:K,contractAddress:s,funcName:a,funcParams:l,txOverrides:c});let{hexlify:u,toUtf8Bytes:f}=await import("ethers");return e.estimateGas({data:y?y:i?u(f(i)):void 0,from:p,to:o,value:g})}}function Bn({signer:e}){if(!e)return;return(t)=>he(e,t)}function Dt({provider:e,signer:t,isEIP1559Compatible:n=!0,chain:r}){return async function({feeOptionKey:i=d.Fast,...y}){let{from:p,to:a,data:l,value:c,...g}=y;if(!t)throw new A("toolbox_evm_no_signer");if(!a)throw new A("toolbox_evm_no_to_address");let s={...g,data:l||"0x",from:p,to:a,value:BigInt(c||0)};if(N(e))return j(e)(s);let u=p||await t.getAddress(),f=y.nonce||await e.getTransactionCount(u),T=(await e.getNetwork()).chainId,U=Pe(s,n);if(U==="eip7702")Ne(s.authorizations||[],T);let w=bt(U).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),x={...s,chainId:T,nonce:f,type:w,...U==="eip7702"&&{authorizationList:s.authorizations}},k=Q({chain:r,isEIP1559Compatible:n,provider:e}),W=U!=="legacy"&&!(s.maxFeePerGas&&s.maxPriorityFeePerGas)||!s.gasPrice?Object.entries((await k())[i]).reduce((M,[ne,at])=>({...M,[ne]:P(BigInt(at))}),{}):{},z;try{z=P(s.gasLimit||await e.estimateGas(x)*11n/10n)}catch(M){throw new A("toolbox_evm_error_estimating_gas_limit",{error:M})}try{let M={...x,gasLimit:z,...W};try{return(await t.sendTransaction(M)).hash}catch{let ne=await t.signTransaction({...M,from:u});return(await e.broadcastTransaction(ne)).hash}}catch(M){throw new A("toolbox_evm_error_sending_transaction",{error:M})}}}function je({provider:e,signer:t}){return async function({assetValue:r,memo:o,recipient:i,data:y,sender:p,maxFeePerGas:a,maxPriorityFeePerGas:l,gasPrice:c,...g}){let s=r.getBaseValue("bigint"),u=r.chain,f=p||await t?.getAddress();if(!f)throw new A("toolbox_evm_no_from_address");if(mn(r)){let{hexlify:w,toUtf8Bytes:x}=await import("ethers");return{...g,data:y||w(x(o||"")),from:f,to:i,value:s}}let T=Y(r,u);if(!T)throw new A("toolbox_evm_no_contract_address");return $({chain:r.chain,provider:e})({abi:K,contractAddress:T,funcName:"transfer",funcParams:[i,s],txOverrides:{from:f,gasPrice:c,maxFeePerGas:a,maxPriorityFeePerGas:l}})}}function qn({provider:e,signer:t,chain:n}){return async function({assetAddress:o,spenderAddress:i,amount:y,from:p}){let a=await t?.getAddress()||p,l=$({chain:n,provider:e}),c=["bigint","number"].includes(typeof y)?y:y||E;return await l({abi:K,contractAddress:o,funcName:"approve",funcParams:[i,BigInt(c)],txOverrides:{from:a}})}}function Ln({provider:e,isEIP1559Compatible:t=!0,chain:n}){return async function({feeOption:o=d.Fast,...i}){let p=await Q({chain:n,isEIP1559Compatible:t,provider:e})(),a=await e.estimateGas(i),l=Cn.from({chain:n}),{gasPrice:c,maxFeePerGas:g,maxPriorityFeePerGas:s}=p[o];if(!t&&c)return l.set(se.fromBigInt(c*a,l.decimal));if(g&&s){let u=(g+s)*a;return l.set(se.fromBigInt(u,l.decimal))}throw new A("toolbox_evm_no_gas_price")}}var E,Un,xn,Ze,wn,ae=(e)=>e.type===4||(e.authorizations?.length??0)>0,Ie=(e)=>!ae(e)&&(e.type===2||!!e.maxFeePerGas||!!e.maxPriorityFeePerGas),Pe=(e,t=!0)=>{if(ae(e))return"eip7702";if(Ie(e)||t)return"eip1559";return"legacy"};var ue=S(()=>{ie();V();E=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Un=["payable","nonpayable"];xn=Tn.reduce((e,t)=>{return e[t]="0x0000000000000000000000000000000000000000",e},{}),Ze={...xn,[B.Optimism]:"0x4200000000000000000000000000000000000042",[B.Polygon]:"0x0000000000000000000000000000000000001010"},wn=[B.Arbitrum,B.Aurora,B.Base,B.Optimism]});import{Chain as m,FeeOption as kn}from"@swapkit/helpers";import{HDNodeWallet as _n}from"ethers";import{match as Gn,P as Mt}from"ts-pattern";function ce(e){let t=b(m.Ethereum)(e);async function n(r,o="0x5ba1e12693dc8f9c48aad8770482f4739beed696",i="aggregate",y=kn.Fast){let p=await t.createContractTxObject({abi:Ht,contractAddress:o,funcName:i,funcParams:[r]});return t.sendTransaction({...p,feeOptionKey:y})}return{...t,multicall:n}}function b(e){return function({provider:n,...r}){let o=ze(e),i=Gn(r).with({phrase:Mt.string},({phrase:p})=>_n.fromPhrase(p).connect(n)).with({signer:Mt.any},({signer:p})=>p).otherwise(()=>{return});return h({chain:e,isEIP1559Compatible:o,provider:n,signer:i})}}var le,de,fe,ge,Ae,He,Ce,Rt,Te,me,be,Ue,xe,we,te,Se,De,Me,Re;var Ve=S(()=>{Ct();V();ue();le=b(m.Adi),de=b(m.Arbitrum),fe=b(m.Aurora),ge=b(m.Avalanche),Ae=b(m.Base),He=b(m.Berachain),Ce=b(m.BinanceSmartChain),Rt=b(m.Botanix),Te=b(m.Core),me=b(m.Corn),be=b(m.Cronos),Ue=b(m.Gnosis),xe=b(m.Hyperevm),we=b(m.Polygon),te=b(m.Sonic),Se=b(m.Unichain),De=b(m.XLayer),Me=b(m.Monad),Re=b(m.MegaETH)});var Bt;var qt=S(()=>{Bt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as X,Chain as Wn,FeeOption as _,SwapKitError as Ke}from"@swapkit/helpers";import{Contract as $n,HDNodeWallet as Qn}from"ethers";import{match as Fn,P as Lt}from"ts-pattern";function Ee(e){return new $n(zn,Bt,e)}function kt(e){return async function(){let n=Ee(e);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function _t(e){return async function({from:n,to:r,nonce:o,...i}){let{Transaction:y}=await import("ethers");if(!r)throw new Ke("toolbox_evm_invalid_transaction",{error:"Missing to address"});return y.from({...i,authorizationList:i.authorizationList,nonce:o?o:n?await e.getTransactionCount(n):0,to:r}).serialized}}function Gt(e){return async function(n){let r=Ee(e),o=await _t(e)(n);if(r&&"getL1Fee"in r)return r.getL1Fee(o)}}function Ot(e){return async function(n){let o=(await e.getFeeData()).gasPrice??0n,i=await e.estimateGas(n);return o*i}}function hn(e){return async function(n){let r=await Gt(e)(n)??0n,o=await Ot(e)(n);return r+o}}function Nn(e){return async function(n){let r=Ee(e),o=await _t(e)(n);if(r&&"getL1GasUsed"in r)return r.getL1GasUsed(o)}}function jn(e){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:r,gasPrice:o}=await e.getFeeData(),i=await kt(e)(),y=o;if(!(n&&r))throw new Ke("toolbox_evm_no_fee_data");return{[_.Average]:{gasPrice:y,l1GasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:r},[_.Fast]:{gasPrice:X(y,_.Fast),l1GasPrice:X(i||0n,_.Fast),maxFeePerGas:n,maxPriorityFeePerGas:X(r,_.Fast)},[_.Fastest]:{gasPrice:X(y,_.Fastest),l1GasPrice:X(i||0n,_.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:X(r,_.Fastest)}}}catch(n){throw new Ke("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function Be({provider:e,...t}){let n=Fn(t).with({phrase:Lt.string},({phrase:i})=>Qn.fromPhrase(i).connect(e)).with({signer:Lt.any},({signer:i})=>i).otherwise(()=>{return}),r=h({provider:e,signer:n}),o=kt(e);return{...r,estimateGasPrices:jn(e),estimateL1Gas:Nn(e),estimateL1GasCost:Gt(e),estimateL2GasCost:Ot(e),estimateTotalGasCost:hn(e),getBalance:I(Wn.Optimism).getBalance,getL1GasPrice:o}}var zn="0x420000000000000000000000000000000000000f";var ve=S(()=>{ie();qt();ue()});var Xn={};Le(Xn,{validateEVMAddress:()=>v,toChecksumAddress:()=>Ut,isStateChangingCall:()=>Xe,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Ie,isBrowserProvider:()=>N,getTokenAddress:()=>Y,getEvmToolboxAsync:()=>Wt,getEvmToolbox:()=>et,getEstimateGasPrices:()=>Q,getEVMTxType:()=>Pe,getEIP1193SendTransaction:()=>j,getCreateContractTxObject:()=>$,getCreateContract:()=>Ye,getChecksumAddressFromAsset:()=>xt,createContract:()=>ee,XLayerToolbox:()=>De,UNIToolbox:()=>Se,SONICToolbox:()=>te,OPToolbox:()=>Be,MONADToolbox:()=>Me,MEGAETHToolbox:()=>Re,MAX_APPROVAL:()=>E,MATICToolbox:()=>we,HYPEREVMToolbox:()=>xe,GNOToolbox:()=>Ue,ETHToolbox:()=>ce,ContractAddress:()=>Ze,CROToolbox:()=>be,CORNToolbox:()=>me,COREToolbox:()=>Te,BotanixToolbox:()=>Rt,BaseEVMToolbox:()=>h,BSCToolbox:()=>Ce,BERAToolbox:()=>He,BASEToolbox:()=>Ae,AVAXToolbox:()=>ge,AURORAToolbox:()=>fe,ARBToolbox:()=>de,ADIToolbox:()=>le});import{Chain as C}from"@swapkit/helpers";import{match as Yn}from"ts-pattern";function et(e,t){return Yn(e).with(C.Adi,()=>le(t)).with(C.Arbitrum,()=>de(t)).with(C.Aurora,()=>fe(t)).with(C.Avalanche,()=>ge(t)).with(C.Base,()=>Ae(t)).with(C.Berachain,()=>He(t)).with(C.BinanceSmartChain,()=>Ce(t)).with(C.Botanix,()=>te(t)).with(C.Core,()=>Te(t)).with(C.Corn,()=>me(t)).with(C.Cronos,()=>be(t)).with(C.Ethereum,()=>ce(t)).with(C.Gnosis,()=>Ue(t)).with(C.Hyperevm,()=>xe(t)).with(C.Optimism,()=>Be(t)).with(C.Polygon,()=>we(t)).with(C.Sonic,()=>te(t)).with(C.Unichain,()=>Se(t)).with(C.XLayer,()=>De(t)).with(C.Monad,()=>Me(t)).with(C.MegaETH,()=>Re(t)).exhaustive()}async function Wt(e,t){let n={...t,provider:t?.provider||await Qe(e)};return et(e,n)}var $t=S(()=>{V();Ve();ve();ue();Ve();ve()});var Qt;var Ft=S(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Qt||={})});var Zn={};Le(Zn,{validateEVMAddress:()=>v,validateAuthorizations:()=>Ne,validateAuthorization:()=>gt,toHexString:()=>P,toChecksumAddress:()=>Ut,signAuthorization:()=>he,parseEIP712FromEVMTx:()=>Hn,isStateChangingCall:()=>Xe,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Ie,isBrowserProvider:()=>N,getTokenAddress:()=>Y,getProviderSync:()=>ft,getProvider:()=>Qe,getNetworkParams:()=>Fe,getIsEIP1559Compatible:()=>ze,getEvmToolboxAsync:()=>Wt,getEvmToolbox:()=>et,getEvmApi:()=>I,getEstimateGasPrices:()=>Q,getEVMTxType:()=>Pe,getEIP1193SendTransaction:()=>j,getCreateContractTxObject:()=>$,getCreateContract:()=>Ye,getChecksumAddressFromAsset:()=>xt,createCustomEvmApi:()=>cn,createContract:()=>ee,buildEIP712DomainType:()=>At,XLayerToolbox:()=>De,UNIToolbox:()=>Se,SONICToolbox:()=>te,OPToolbox:()=>Be,MONADToolbox:()=>Me,MEGAETHToolbox:()=>Re,MAX_APPROVAL:()=>E,MATICToolbox:()=>we,HYPEREVMToolbox:()=>xe,GNOToolbox:()=>Ue,EthNetwork:()=>Qt,ETHToolbox:()=>ce,ContractAddress:()=>Ze,CROToolbox:()=>be,CORNToolbox:()=>me,COREToolbox:()=>Te,BotanixToolbox:()=>Rt,BaseEVMToolbox:()=>h,BSCToolbox:()=>Ce,BERAToolbox:()=>He,BASEToolbox:()=>Ae,AVAXToolbox:()=>ge,AURORAToolbox:()=>fe,ARBToolbox:()=>de,ADIToolbox:()=>le});var zt=S(()=>{ie();V();$t();Ft()});function Jn({builder:e,grouping:t="na",orders:n}){return{builder:e,grouping:t,orders:n,type:"order"}}function In({cancels:e}){return{cancels:e,type:"cancel"}}function Pn({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function Vn({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function Kn({modifies:e}){return{modifies:e,type:"batchModify"}}function En({asset:e,isCross:t,leverage:n}){return{asset:e,isCross:t,leverage:n,type:"updateLeverage"}}function vn({asset:e,isBuy:t,ntli:n}){return{asset:e,isBuy:t,ntli:n,type:"updateIsolatedMargin"}}function er({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function tr({time:e}){return{time:e,type:"scheduleCancel"}}function nr({amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o}){return{amount:e,hyperliquidChain:t,nonce:n,signatureChainId:r,toPerp:o,type:"usdClassTransfer"}}function rr({amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:y,sourceDex:p,token:a}){return{amount:e,destination:t,destinationDex:n,fromSubAccount:r,hyperliquidChain:o,nonce:i,signatureChainId:y,sourceDex:p,token:a,type:"sendAsset"}}function or({agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o}){return{agentAddress:e,agentName:t,hyperliquidChain:n,nonce:r,signatureChainId:o,type:"approveAgent"}}function ir({builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o}){return{builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:r,signatureChainId:o,type:"approveBuilderFee"}}function yr({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}}import{SwapKitError as nt}from"@swapkit/helpers";import{keccak256 as sr,Signature as pr}from"ethers";function D(...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 fr(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 O(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 ht(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 D(new Uint8Array([205]),O(e,2));if(e<=0xffffffffn)return D(new Uint8Array([206]),O(e,4));return D(new Uint8Array([207]),O(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 D(new Uint8Array([209]),O(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return D(new Uint8Array([210]),O(BigInt.asUintN(32,e),4));return D(new Uint8Array([211]),O(BigInt.asUintN(64,e),8))}function Yt(e){let t=dr.encode(e);if(t.length<32)return D(new Uint8Array([160+t.length]),t);return D(fr(217,0,t.length),t)}function gr(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 D(n,...t)}function Ar(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 D(n,...t.flatMap(([r,o])=>[Yt(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 Yt(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new nt("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return ht(BigInt(e))}if(typeof e==="bigint")return ht(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 D(t,e)}if(Array.isArray(e))return gr(e);if(typeof e==="object")return Ar(e);throw new nt("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function Hr(e){let t=e.startsWith("0x")?e.slice(2):e;if(t.length%2!==0||/[^a-fA-F0-9]/u.test(t))throw new nt("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 Xt(e){return{domain:ar,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...ur.Agent]}}}function Zt(e){let t=lr[e.type],n=cr[e.type],{type:r,...o}=e;return{domain:{chainId:Number.parseInt(o.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Nt,version:"1"},message:{...o,hyperliquidChain:o.hyperliquidChain||jt},primaryType:t,types:{[t]:n}}}function Jt(e){let t=pr.from(e);return{r:t.r,s:t.s,v:t.v}}function It(e,t,{expiresAfter:n,vaultAddress:r}={}){let o=rt(e),i=O(BigInt(t),8),y=r?D(new Uint8Array([1]),Hr(r.toLowerCase())):new Uint8Array([0]),p=typeof n==="number"?D(new Uint8Array([0]),O(BigInt(n),8)):new Uint8Array;return sr(D(o,i,y,p))}function Pt(e){let t=e.hyperliquidChain||jt;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 Nt="0x0000000000000000000000000000000000000000",ar,ur,jt="Mainnet",cr,lr,dr;var Vt=S(()=>{ar={chainId:1337,name:"Exchange",verifyingContract:Nt,version:"1"},ur={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},cr={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"}]},lr={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},dr=new TextEncoder});import{AssetValue as yt,Chain as Cr,derivationPathToString as Tr,getChainConfig as vt,getRPCUrl as mr,NetworkDerivationPath as br,RequestClient as Z,SwapKitError as J,updateDerivationPath as Ur}from"@swapkit/helpers";import{HDNodeWallet as xr}from"ethers";import{match as wr,P as ot}from"ts-pattern";function q(e,t){if(!pt(e))throw new J(t,{address:e});return e.toLowerCase()}async function F(e){let t=await qe();return Z.post(`${t}/info`,{json:e})}function Lr({dex:e,user:t}){return F({...e?{dex:e}:{},type:"clearinghouseState",user:q(t,"helpers_invalid_params")})}function kr({user:e}){return F({type:"spotClearinghouseState",user:q(e,"helpers_invalid_params")})}function _r({dex:e,user:t}){return F({...e?{dex:e}:{},type:"openOrders",user:q(t,"helpers_invalid_params")})}function Gr({dex:e,user:t}){return F({...e?{dex:e}:{},type:"frontendOpenOrders",user:q(t,"helpers_invalid_params")})}function Or({oidOrCloid:e,user:t}){return F({oid:e,type:"orderStatus",user:q(t,"helpers_invalid_params")})}function Wr({aggregateByTime:e,user:t}){return F({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:q(t,"helpers_invalid_params")})}function $r({aggregateByTime:e,endTime:t,startTime:n,user:r}){return F({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof t==="number"?{endTime:t}:{},startTime:n,type:"userFillsByTime",user:q(r,"helpers_invalid_params")})}function Kt({coin:e,token:t,value:n,spotMeta:r}){if(!n||Number(n)<=0)return null;let o=e?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,i=Sr[o]||en,y=r?.tokens?.find((a)=>a.name===e||t!==void 0&&a.index===Number(t)),p=y?`${L}.${o}-${y.name}:${y.tokenId}`:`${L}.${o}`;return new yt({decimal:i,identifier:p,value:n})}function Qr(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=yt.from({chain:L,value:0});t.set(n.toString({includeSynthProtocol:!0}),n)}return[...t.values()]}async function qe(){try{return await mr(L)}catch{let[e]=vt(L).rpcUrls;if(!e)throw new J("helpers_chain_no_public_or_set_rpc_url",{chain:L});return e}}async function st(){return`${await qe()}/exchange`}function Fr(e){let t=qr[e.type],{type:n,...r}=e,o=Br[n];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Rr,version:"1"},message:r,primaryType:t,types:{[t]:o}}}async function tn({action:e,expiresAfter:t,nonce:n,vaultAddress:r}){let o=n||Date.now(),i=r?q(r,"helpers_invalid_params"):void 0,y=await st(),p=It(e,o,{expiresAfter:t,vaultAddress:i});return{action:e,endpoint:y,expiresAfter:t,nonce:o,typedData:Xt(p),vaultAddress:i}}async function nn({action:e,nonce:t,signatureChainId:n}){let r=t||e.nonce||Date.now(),o=n||e.signatureChainId||"0xa4b1",i=Pt({...e,nonce:r,signatureChainId:o});return{action:i,endpoint:await st(),nonce:r,typedData:Zt(i)}}async function it({assetValue:e,recipient:t,sender:n,signatureChainId:r,time:o}){let i=q(t,"core_transaction_invalid_recipient_address"),y=q(n,"core_transaction_invalid_sender_address"),p=await st(),a=e.getValue("string"),l=o||Date.now(),c=e.address;if(!c)throw new J("helpers_invalid_params",{asset:e.toString(),from:y});let g={amount:a,destination:i,hyperliquidChain:Dr,signatureChainId:r||Mr,time:l,token:c,type:"spotSend"};return{action:g,endpoint:p,nonce:l,typedData:Fr(g)}}async function Et(e){let t=await Z.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 J("core_transaction_failed",{response:t});return t}async function zr(e,t){let n=await qe(),r=t-5000;for(let o=0;o<5;o++){if(o>0)await new Promise((i)=>setTimeout(i,1000));try{let i=await Z.post(`${n}/info`,{json:{startTime:r,type:"userNonFundingLedgerUpdates",user:e}}),y=Array.isArray(i)?i.find((p)=>p.time&&p.time>=t&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(y?.hash)return y.hash}catch{}}return""}function pt(e){return e.startsWith("0x")&&v(e)}function hr(e){let t=oe(L),n=e&&"index"in e?e.index||0:0,r=Tr(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:Ur(br[L],{index:n})),o,i=!1;function y(){if(i)return o;return o=wr(e).with({phrase:ot.string},({phrase:s})=>{return xr.fromPhrase(s,void 0,r)}).with({signer:ot.not(ot.nullish)},({signer:s})=>s).otherwise(()=>{return}),i=!0,o}async function p(){let s=y();return s?await s.getAddress():""}async function a(s){let u=y();if(!u)throw new J("toolbox_hypercore_no_signer");let f=await u.signTypedData(s.typedData.domain,s.typedData.types,s.typedData.message);return{action:s.action,endpoint:s.endpoint,nonce:s.nonce,signature:Jt(f),..."expiresAfter"in s?{expiresAfter:s.expiresAfter}:{},..."vaultAddress"in s?{vaultAddress:s.vaultAddress}:{}}}async function l(s){let u=q(s,"helpers_invalid_params");try{let f=await qe(),[T,U,w]=await Promise.all([Z.post(`${f}/info`,{json:{type:"spotClearinghouseState",user:u}}),Z.post(`${f}/info`,{json:{type:"clearinghouseState",user:u}}),Z.post(`${f}/info`,{json:{type:"spotMeta"}})]),x=(T.spotState?.balances||T.balances||[]).map(({coin:G,token:W,total:z})=>Kt({coin:G,spotMeta:w,token:W,value:z})).filter((G)=>!!G),k=Kt({coin:"USDC",spotMeta:w,value:U.withdrawable||U.marginSummary?.accountValue||U.marginSummary?.totalRawUsd});return Qr(k?[...x,k]:x)}catch{return t(u)}}async function c(s){let u=y();if(!u)throw new J("toolbox_hypercore_no_signer");let f=s.sender||await u.getAddress(),T=await it({...s,feeRate:0,sender:f}),U=await a(T);return await Et(U),zr(f,T.nonce)}function g(){return yt.from({chain:L,value:0})}return{broadcastTransaction:Et,createL1ActionRequest:tn,createTransaction:it,createUserSignedActionRequest:nn,estimateTransactionFee:g,getAddress:p,getBalance:l,getState:{clearinghouse:Lr,frontendOpenOrders:Gr,openOrders:_r,orderStatus:Or,spotClearinghouse:kr,userFills:Wr,userFillsByTime:$r},signTransaction:a,transfer:c,validateAddress:pt}}var L,en,Sr,Dr="Mainnet",Mr="0xa4b1",Rr="0x0000000000000000000000000000000000000000",Br,qr;var rn=S(()=>{zt();_e();Vt();L=Cr.HyperCore,{baseDecimal:en}=vt(L),Sr={HYPE:en,USDC:6,USDT:6},Br={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},qr={spotSend:"HyperliquidTransaction:SpotSend"}});var Nr={};Le(Nr,{validateHyperCoreAddress:()=>pt,getHyperCoreToolbox:()=>hr,createUserSignedActionRequest:()=>nn,createTransaction:()=>it,createL1ActionRequest:()=>tn,buildUsdClassTransferAction:()=>nr,buildUpdateLeverageAction:()=>En,buildUpdateIsolatedMarginAction:()=>vn,buildTopUpIsolatedOnlyMarginAction:()=>er,buildTokenDelegateAction:()=>yr,buildSendAssetAction:()=>rr,buildScheduleCancelAction:()=>tr,buildOrderAction:()=>Jn,buildModifyAction:()=>Vn,buildCancelByCloidAction:()=>Pn,buildCancelAction:()=>In,buildBatchModifyAction:()=>Kn,buildApproveBuilderFeeAction:()=>ir,buildApproveAgentAction:()=>or});var jr=S(()=>{rn()});jr();export{pt as validateHyperCoreAddress,hr as getHyperCoreToolbox,nn as createUserSignedActionRequest,it as createTransaction,tn as createL1ActionRequest,nr as buildUsdClassTransferAction,En as buildUpdateLeverageAction,vn as buildUpdateIsolatedMarginAction,er as buildTopUpIsolatedOnlyMarginAction,yr as buildTokenDelegateAction,rr as buildSendAssetAction,tr as buildScheduleCancelAction,Jn as buildOrderAction,Vn as buildModifyAction,Pn as buildCancelByCloidAction,In as buildCancelAction,Kn as buildBatchModifyAction,ir as buildApproveBuilderFeeAction,or as buildApproveAgentAction};