@swapkit/toolboxes 4.28.2 → 4.28.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @swapkit/toolboxes
2
2
 
3
+ ## 4.28.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`c357b3b`](https://github.com/swapkit/sdk/commit/c357b3bc1a384d9ebdf1b4da2f4b94542636538e) Thanks [@towanTG](https://github.com/towanTG)! - Hypercore balances take their decimals from Hyperliquid's `weiDecimals` instead of a hardcoded ticker table. USDC is 8 decimals on Hypercore (it is 6 only on EVM chains), so the old `{ USDC: 6 }` fallback truncated spot balances; the table now applies only when spot metadata is unavailable.
8
+ - [#358](https://github.com/swapkit/sdk/pull/358) [`6734cab`](https://github.com/swapkit/sdk/commit/6734cab233f17b6e5372519fe43e029477117827) Thanks [@github-actions](https://github.com/apps/github-actions)! - Correct flashnet's Hypercore assets in the dev list. The api collapses flashnet's two Hyperliquid chains and emitted Hypercore USDC carrying HyperEVM USDC's contract address (`HYPE.USDC-0xb88339CB…`) — an EVM address is not a valid Hypercore asset id, so `spotSend` built from it was rejected. Hypercore entries are now generated in Hyperliquid `NAME:tokenId` form, matching what the hypercore toolbox builds at runtime: `HYPE.USDC-USDC:0x6d1e7cde…` and `HYPE.USDE-USDE:0x2e6d84f2…`, both 8 decimals (`weiDecimals`). `HYPEREVM.*` assets are untouched. (via @swapkit/helpers@4.20.4)
9
+
3
10
  ## 4.28.2
4
11
 
5
12
  ### Patch Changes
@@ -1 +1 @@
1
- var He=Object.create;var{getPrototypeOf:Ue,defineProperty:tn,getOwnPropertyNames:wt,getOwnPropertyDescriptor:be}=Object,St=Object.prototype.hasOwnProperty;function Mt(n){return this[n]}var de,Ce,Oo=(n,t,e)=>{var o=n!=null&&typeof n==="object";if(o){var y=t?de??=new WeakMap:Ce??=new WeakMap,u=y.get(n);if(u)return u}e=n!=null?He(Ue(n)):{};let s=t||!n||!n.__esModule?tn(e,"default",{value:n,enumerable:!0}):e;for(let p of wt(n))if(!St.call(s,p))tn(s,p,{get:Mt.bind(n,p),enumerable:!0});if(o)y.set(n,s);return s},xt=(n)=>{var t=(at??=new WeakMap).get(n),e;if(t)return t;if(t=tn({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var o of wt(n))if(!St.call(t,o))tn(t,o,{get:Mt.bind(n,o),enumerable:!(e=be(n,o))||e.enumerable})}return at.set(n,t),t},at;var ae=(n)=>n;function we(n,t){this[n]=ae.bind(null,t)}var Gn=(n,t)=>{for(var e in t)tn(n,e,{get:t[e],enumerable:!0,configurable:!0,set:we.bind(t,e)})};var R=(n,t)=>()=>(n&&(t=n(n=0)),t);function Vo(){function n(){let t=Date.now(),e=In||t;return In=e,t>In?t:e+1}return Se+n().toString(36)}function An(n){return async function(e,o=!0){let y=await Dt.SwapKitApi.getChainBalance({address:e,chain:n,scamFilter:o}),{baseDecimal:u}=en.getChainConfig(n),s=y.map(({identifier:i,value:f,decimal:l})=>{return new en.AssetValue({decimal:l||u,identifier:i,value:f})});if(!s.some((i)=>i.isGasAsset))return[en.AssetValue.from({chain:n}),...s];return s}}var en,Dt,Se,In=0;var Fn=R(()=>{en=require("@swapkit/helpers"),Dt=require("@swapkit/helpers/api"),Se=typeof process<"u"&&process.pid?process.pid.toString(36):""});function on(n){return{getBalance:An(n)}}function Me(n){return n}var gn=R(()=>{Fn()});function qt(n){return new m.JsonRpcProvider(n)}async function xe(n,t){return qt(t||await A.getRPCUrl(n))}function vn(n){let t=A.SKConfig.get("rpcUrls")[n]?.filter(Boolean)??[];if(t.length===0)throw new A.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:n});let{chainId:e}=A.getChainConfig(n),o=m.Network.from(Number(e)),[y]=t;if(t.length===1)return new m.JsonRpcProvider(y,o,{staticNetwork:o});return new m.FallbackProvider(t.map((u,s)=>({priority:s+1,provider:new m.JsonRpcProvider(u,o,{staticNetwork:o}),stallTimeout:2000})),o,{quorum:1})}function _(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function nt(n){let{explorerUrl:t,chainIdHex:e,rpcUrls:o}=A.getChainConfig(n);return function(){return n!==A.Chain.Ethereum?{...De({chain:n}),blockExplorerUrls:[t],chainId:e,rpcUrls:o}:void 0}}function tt(n){return![A.Chain.Adi,A.Chain.Arbitrum,A.Chain.BinanceSmartChain,A.Chain.Robinhood].includes(n)}function De({chain:n}){let{name:t,nativeCurrency:e,baseDecimal:o}=A.getChainConfig(n);return En.match(n).with(A.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:A.Chain.Ethereum}})).with(A.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:A.Chain.Ethereum}})).with(A.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(A.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:A.Chain.Ethereum}})).with(A.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(A.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(A.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(A.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(A.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:A.Chain.Ethereum}})).with(A.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:A.Chain.Polygon}})).with(A.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:o,name:"Ethereum",symbol:A.Chain.Ethereum}})).otherwise(()=>({chainName:t,nativeCurrency:{decimals:o,name:e,symbol:e}}))}async function et(n,t){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let e={...t,nonce:t.nonce!==void 0?BigInt(t.nonce):void 0};return await n.authorize(e)}function Rt(n,t){let e=t!==void 0?`index ${t}: `:"",o=(y,u)=>{throw new A.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:y,message:`${e}${u}`}})};En.match(n).when(({chainId:y})=>typeof y!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:y})=>!Be(y),()=>o("address","address must be a valid checksummed address")).when(({nonce:y})=>typeof y!=="bigint"||y<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:y})=>!y,()=>o("signature","signature is required")).when(({signature:y})=>typeof y?.yParity!=="number"||![0,1].includes(y.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:y})=>!Bt(y?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:y})=>!Bt(y?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function _t(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:t})=>n[t]!=null).map(({key:t,type:e})=>({name:t,type:e}))}function Kn(n){return n.charAt(0).toUpperCase()+n.slice(1)}function hn(n,t){if(n.isTuple()&&n.components){let e=Kn(n.name);return t[e]=n.components.map((o)=>({name:o.name,type:hn(o,t)})),e}if(n.isArray()){let e=n.arrayChildren;if(e?.isTuple()&&e.components){let o=Kn(n.name.replace(/s$/,""));return t[o]=e.components.map((y)=>({name:y.name,type:hn(y,t)})),`${o}[]`}return`${e?.type??"bytes"}[]`}return n.type}function Pn(n,t){if(typeof n==="bigint")return n;if(t?.isTuple()&&typeof n?.toObject==="function"){let e=n.toObject(),o={};for(let[y,u]of(t.components??[]).entries())o[u.name]=Pn(e[u.name]??n[y],u);return o}if(Array.isArray(n)){let e=t?.arrayChildren;return n.map((o)=>Pn(o,e??void 0))}return n}function qe({chain:n,abi:t,data:e,to:o}){let u=new m.Interface(t).parseTransaction({data:e});if(!u)throw new A.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let s={},p=Kn(u.name);s[p]=u.fragment.inputs.map((c)=>({name:c.name,type:hn(c,s)}));let i={};for(let[c,g]of u.fragment.inputs.entries())i[g.name]=Pn(u.args[c],g);let{chainId:f}=A.getChainConfig(n),l={chainId:Number(f),verifyingContract:m.getAddress(o)},b=_t(l);return{domain:l,message:i,primaryType:p,types:{EIP712Domain:b,...s}}}function ot(n,t){if(!Array.isArray(n)||n.length===0)throw new A.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[e,o]of n.entries())if(Rt(o,e),t!==void 0&&o.chainId!==t)throw new A.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${e}: authorization chainId (${o.chainId}) does not match transaction chainId (${t})`}})}var A,m,En,Bt=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),Be=(n)=>{try{return typeof n==="string"&&!!m.getAddress(n)}catch{return!1}};var yn=R(()=>{A=require("@swapkit/helpers"),m=require("ethers"),En=require("ts-pattern")});var kt;var mt=R(()=>{kt=[{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 I({chain:n=r.Chain.Ethereum,provider:t,signer:e,isEIP1559Compatible:o=!0,estimateGasPrices:y,estimateAdditionalFee:u}){let s=y??V({chain:n,isEIP1559Compatible:o,provider:t}),p=Xt({chain:n,estimateAdditionalFee:u,estimateGasPrices:s,isEIP1559Compatible:o,provider:t,signer:e});return{approve:$e({chain:n,isEIP1559Compatible:o,provider:t,signer:e}),approvedAmount:Wt({chain:n,provider:t}),broadcastTransaction:t.broadcastTransaction,call:Tn({chain:n,isEIP1559Compatible:o,provider:t,signer:e}),createApprovalTx:je({chain:n,provider:t,signer:e}),createContract:rt({chain:n,provider:t}),createContractTxObject:j({chain:n,provider:t}),createTransaction:p,createTransferTx:p,EIP1193SendTransaction:K(t),estimateCall:Lt({provider:t,signer:e}),estimateGasLimit:We({chain:n,provider:t,signer:e}),estimateGasPrices:s,estimateTransactionFee:Ve({chain:n,isEIP1559Compatible:o,provider:t}),getAddress:()=>{return e?e.getAddress():void 0},getBalance:on(n).getBalance,getNetworkParams:nt(n),isApproved:me({chain:n,provider:t}),sendTransaction:Yt({chain:n,estimateGasPrices:s,isEIP1559Compatible:o,provider:t,signer:e}),signAuthorization:Le({signer:e}),signMessage:e?(i)=>e.signMessage(i):void 0,signTypedData:e?({domain:i,types:f,value:l})=>e.signTypedData(i,f,l):void 0,transfer:Qe({chain:n,estimateAdditionalFee:u,estimateGasPrices:s,isEIP1559Compatible:o,provider:t,signer:e}),validateAddress:rn}}function rn(n){try{return B.getAddress(n),!0}catch{return!1}}function F(n){return n instanceof B.BrowserProvider}function sn(n,t,e){return new B.Contract(n,B.Interface.from(t),e)}function rt({provider:n}){return function(e,o){return new B.Contract(e,B.Interface.from(o),n)}}function st({abi:n,funcName:t}){let e=n.find((o)=>o.name===t);if(!e)throw new r.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:t});return e.stateMutability&&Re.includes(e.stateMutability)}function $t(n){return B.getAddress(n)}function K(n,t=!1){return function({value:o,...y}){if(!F(n))throw new r.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let u={...y,gasPrice:"gasPrice"in y?y.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in y?y.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in y?y.maxPriorityFeePerGas:void 0},{gasLimit:s,gasPrice:p,maxFeePerGas:i,maxPriorityFeePerGas:f,...l}=u,b={...l,...t&&s!==void 0&&{gas:_(BigInt(s))},...t&&p!==void 0&&{gasPrice:_(BigInt(p))},...t&&i!==void 0&&{maxFeePerGas:_(BigInt(i))},...t&&f!==void 0&&{maxPriorityFeePerGas:_(BigInt(f))},value:_(BigInt(o||0))};return n.send("eth_sendTransaction",[b])}}function Qt(n,t){let e=pn(n,t);if(e)return B.getAddress(e.toLowerCase());throw new r.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function pn({chain:n,symbol:t,ticker:e},o){try{let y=n===r.Chain.BinanceSmartChain&&t==="BNB"&&e==="BNB",u=n===r.Chain.Hyperevm&&t==="HYPE"&&e==="HYPE",s=n===o&&t===o&&e===o,p=ke.includes(n)&&t==="ETH"&&e==="ETH";if(s||y||u||p)return pt[o];return B.getAddress(t.slice(e.length+1).replace(/^0X/,""))}catch{return null}}function j({provider:n}){return async({contractAddress:t,abi:e,funcName:o,funcParams:y=[],txOverrides:u})=>{let s=await sn(t,e,n).getFunction(o).populateTransaction(...y.concat(u).filter((p)=>typeof p<"u"));return{...s,value:_(BigInt(s.value||0))}}}function V({chain:n,provider:t,isEIP1559Compatible:e=!0}){return ut.match(n).with(r.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:y,maxPriorityFeePerGas:u}=await t.getFeeData();if(!y||u===null)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{[r.FeeOption.Average]:{maxFeePerGas:r.applyFeeMultiplierToBigInt(y,r.FeeOption.Average),maxPriorityFeePerGas:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Average)},[r.FeeOption.Fast]:{maxFeePerGas:r.applyFeeMultiplierToBigInt(y,r.FeeOption.Fast),maxPriorityFeePerGas:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fast)},[r.FeeOption.Fastest]:{maxFeePerGas:r.applyFeeMultiplierToBigInt(y,r.FeeOption.Fastest),maxPriorityFeePerGas:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fastest)}}}catch(y){throw new r.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).with(r.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:y}=await t.getFeeData();if(!y)throw new r.SwapKitError("toolbox_evm_no_fee_data");let u=y*12n/10n;return{[r.FeeOption.Average]:{gasPrice:u},[r.FeeOption.Fast]:{gasPrice:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fast)},[r.FeeOption.Fastest]:{gasPrice:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fastest)}}}catch(y){throw new r.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:y,maxPriorityFeePerGas:u,gasPrice:s}=await t.getFeeData();if(e){if(y===null||u===null)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{[r.FeeOption.Average]:{maxFeePerGas:y,maxPriorityFeePerGas:u},[r.FeeOption.Fast]:{maxFeePerGas:r.applyFeeMultiplierToBigInt(y,r.FeeOption.Fast),maxPriorityFeePerGas:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fast)},[r.FeeOption.Fastest]:{maxFeePerGas:r.applyFeeMultiplierToBigInt(y,r.FeeOption.Fastest),maxPriorityFeePerGas:r.applyFeeMultiplierToBigInt(u,r.FeeOption.Fastest)}}}if(!s)throw new r.SwapKitError("toolbox_evm_no_gas_price");return{[r.FeeOption.Average]:{gasPrice:s},[r.FeeOption.Fast]:{gasPrice:r.applyFeeMultiplierToBigInt(s,r.FeeOption.Fast)},[r.FeeOption.Fastest]:{gasPrice:r.applyFeeMultiplierToBigInt(s,r.FeeOption.Fastest)}}}catch(y){throw new r.SwapKitError("toolbox_evm_gas_estimation_error",{error:y.msg??y.toString()})}}})}function Tn({provider:n,isEIP1559Compatible:t,signer:e,chain:o}){return async function({callProvider:u,contractAddress:s,abi:p,funcName:i,funcParams:f=[],txOverrides:l={},feeOption:b=r.FeeOption.Fast}){let c=u||n;if(!s)throw new r.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let g=st({abi:p,funcName:i});if(g&&F(c)&&e){let C=j({chain:o,provider:c}),x=l?.from||await e?.getAddress(),S=await C({abi:p,contractAddress:s,funcName:i,funcParams:f,txOverrides:{...l,from:x}});return K(c)(S)}let T=sn(s,p,c);if(g){if(!e)throw new r.SwapKitError("toolbox_evm_no_signer");let C=l?.from||await e.getAddress();if(!C)throw new r.SwapKitError("toolbox_evm_no_signer_address");let x=T.connect(e),S=V({chain:o,isEIP1559Compatible:t,provider:n}),{maxFeePerGas:$,maxPriorityFeePerGas:Q,gasPrice:X}=(await S())[b],q=await T.getFunction(i).estimateGas(...f,l),W=await x[i](...f,{...l,gasLimit:q,gasPrice:X,maxFeePerGas:$,maxPriorityFeePerGas:Q,nonce:l?.nonce||await c.getTransactionCount(C)});return typeof W?.hash==="string"?W?.hash:W}let d=await T[i]?.(...f);return typeof d?.hash==="string"?d?.hash:d}}function Wt({provider:n,chain:t}){return function({assetAddress:o,spenderAddress:y,from:u}){return Tn({chain:t,isEIP1559Compatible:!0,provider:n})({abi:O.erc20ABI,contractAddress:o,funcName:"allowance",funcParams:[u,y]})}}function me({provider:n,chain:t}){return async function({assetAddress:o,spenderAddress:y,from:u,amount:s=un}){let p=await Wt({chain:t,provider:n})({assetAddress:o,from:u,spenderAddress:y});return r.SwapKitNumber.fromBigInt(p).gte(r.SwapKitNumber.fromBigInt(BigInt(s)))}}function $e({signer:n,isEIP1559Compatible:t=!0,provider:e,chain:o}){return async function({assetAddress:u,spenderAddress:s,feeOptionKey:p=r.FeeOption.Fast,amount:i,gasLimitFallback:f,from:l,nonce:b}){let c=[s,BigInt(i||un)],g=await n?.getAddress()||l,T={abi:O.erc20ABI,contractAddress:u,funcName:"approve",funcParams:c,signer:n,txOverrides:{from:g}};if(F(e)){let C=j({chain:o,provider:e}),x=K(e),S=await C(T);return x(S)}return Tn({chain:o,isEIP1559Compatible:t,provider:e,signer:n})({...T,feeOption:p,funcParams:c,txOverrides:{from:g,gasLimit:f?BigInt(f.toString()):void 0,nonce:b}})}}function Qe({chain:n,estimateGasPrices:t,estimateAdditionalFee:e,signer:o,isEIP1559Compatible:y=!0,provider:u}){return async function({assetValue:p,memo:i,recipient:f,feeOptionKey:l=r.FeeOption.Fast,sender:b,sweep:c,...g}){let T=b||await o?.getAddress(),d=Yt({chain:n,estimateGasPrices:t,isEIP1559Compatible:y,provider:u,signer:o});if(!T)throw new r.SwapKitError("toolbox_evm_no_from_address");let C=await Xt({chain:n,estimateAdditionalFee:e,estimateGasPrices:t,isEIP1559Compatible:y,provider:u,signer:o})({assetValue:p,feeOptionKey:l,memo:i,recipient:f,sender:T,sweep:c,...g});return d({...C,feeOptionKey:l,sweep:c})}}function Lt({provider:n,signer:t}){return function({contractAddress:o,abi:y,funcName:u,funcParams:s=[],txOverrides:p}){if(!o)throw new r.SwapKitError("toolbox_evm_no_contract_address");let i=sn(o,y,n);return t?i.connect(t).getFunction(u).estimateGas(...s,p):i.getFunction(u).estimateGas(...s,p)}}function We({provider:n,signer:t}){return async function({assetValue:o,recipient:y,memo:u,data:s,sender:p,funcName:i,funcParams:f,txOverrides:l}){let b=o.bigIntValue,c=o.isGasAsset?null:pn(o,o.chain);if(c&&i)return Lt({provider:n,signer:t})({abi:O.erc20ABI,contractAddress:c,funcName:i,funcParams:f,txOverrides:l});let{hexlify:g,toUtf8Bytes:T}=await import("ethers");return n.estimateGas({data:s?s:u?g(T(u)):void 0,from:p,to:y,value:b})}}function Le({signer:n}){if(!n)return;return(t)=>et(n,t)}function Ye(n,t){if(n==="legacy"){if(t.gasPrice===void 0)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:_(t.gasPrice)}}if(t.maxFeePerGas===void 0||t.maxPriorityFeePerGas===void 0)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:_(t.maxFeePerGas),maxPriorityFeePerGas:_(t.maxPriorityFeePerGas)}}function Yt({chain:n,estimateGasPrices:t,provider:e,signer:o,isEIP1559Compatible:y=!0}){return async function({feeOptionKey:s=r.FeeOption.Fast,sweep:p,...i}){let{from:f,to:l,data:b,value:c,...g}=i;if(!o)throw new r.SwapKitError("toolbox_evm_no_signer");if(!l)throw new r.SwapKitError("toolbox_evm_no_to_address");let T={...g,data:b||"0x",from:f,to:l,value:BigInt(c||0)};if(F(e))return K(e,p)(T);let d=f||await o.getAddress(),C=i.nonce??await e.getTransactionCount(d),x=(await e.getNetwork()).chainId,S=ct(T,y);if(S==="eip7702")ot(T.authorizations||[],x);let $=ut.match(S).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Q={...T,chainId:x,nonce:C,type:$,...S==="eip7702"&&{authorizationList:T.authorizations}},X=t??V({chain:n,isEIP1559Compatible:y,provider:e}),W=(S==="legacy"?T.gasPrice!==void 0:T.maxFeePerGas!==void 0&&T.maxPriorityFeePerGas!==void 0)?{}:Ye(S,(await X())[s]),Z;try{Z=_(T.gasLimit?BigInt(T.gasLimit):await e.estimateGas(Q)*11n/10n)}catch(D){throw new r.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:D})}try{let D={...Q,gasLimit:Z,...W};try{return(await o.sendTransaction(D)).hash}catch{let z=await o.signTransaction({...D,from:d});return(await e.broadcastTransaction(z)).hash}}catch(D){throw new r.SwapKitError("toolbox_evm_error_sending_transaction",{error:D})}}}function N(n,t){throw new r.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:n.toString(),fee:t.toString()}})}function Xe(n,t){if(t){if(n.maxFeePerGas===void 0||n.maxPriorityFeePerGas===void 0)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:n.maxFeePerGas,maxPriorityFeePerGas:n.maxPriorityFeePerGas},feePerGas:n.maxFeePerGas}}if(n.gasPrice===void 0)throw new r.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:n.gasPrice},feePerGas:n.gasPrice}}function Ze(n,t){if(n>t)return n;return t}function ze(n){return B.getBytes(n).reduce((t,e)=>t+(e===0?4n:16n),21000n)}function yt(n){let e=(n instanceof Error?n.message:String(n)).toLowerCase();return e.includes("insufficient funds")||e.includes("insufficient balance")||e.includes("gas required exceeds allowance")}async function Je({balance:n,estimateAdditionalFee:t,feeOptionKey:e,l2Reserve:o,sweepTx:y,valueBeforeL1Fee:u}){if(!t)return 0n;let s=await t({...y,value:u})??0n,p=r.applyFeeMultiplierToBigInt(s,e),i=u-p;if(i<=0n)N(n,o+p);let f=await t({...y,value:i})??s;return r.applyFeeMultiplierToBigInt(Ze(s,f),e)}async function Ne({chain:n,data:t,estimateGasPrices:e,estimateAdditionalFee:o,feeOptionKey:y,from:u,isEIP1559Compatible:s,provider:p,recipient:i,transaction:f}){let l=await p.getBalance(u),b=e??V({chain:n,isEIP1559Compatible:s,provider:p}),{feeFields:c,feePerGas:g}=Xe((await b())[y],s),d={...o&&f.nonce===void 0?{...f,nonce:await p.getTransactionCount(u)}:f,...c,data:t,from:u,to:i},C=ze(t)*g;if(l-C<=0n)N(l,C);let x=(l-C)/2n,S;try{S=await p.estimateGas({...d,value:x})}catch(nn){if(!yt(nn))throw nn;try{S=await p.estimateGas({...d,value:0n})}catch(Ct){if(yt(Ct))N(l,C);throw Ct}}let $=S*g;if(l-$<=0n)N(l,$);let q=S*11n/10n*g,W=l>q?l-q:0n,Z;try{Z=await p.estimateGas({...d,value:W})}catch(nn){if(!yt(nn))throw nn;N(l,q)}let D=Z*g,z=l-D;if(z<=0n)N(l,D);let E=await Je({balance:l,estimateAdditionalFee:o,feeOptionKey:y,l2Reserve:D,sweepTx:{...d,gasLimit:Z},valueBeforeL1Fee:z}),v=z-E;if(v<=0n)N(l,D+E);return{...d,gasLimit:Z,value:_(v)}}async function Oe({chain:n,contractAddress:t,from:e,provider:o}){let y=await Tn({chain:n,provider:o})({abi:O.erc20ABI,contractAddress:t,funcName:"balanceOf",funcParams:[e]});if(typeof y!=="bigint")throw new r.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return y}function Xt({chain:n,estimateAdditionalFee:t,estimateGasPrices:e,isEIP1559Compatible:o=!0,provider:y,signer:u}){return async function({assetValue:p,authorizations:i,memo:f,recipient:l,data:b,feeOptionKey:c=r.FeeOption.Fast,gasLimit:g,sender:T,sweep:d,type:C,maxFeePerGas:x,maxPriorityFeePerGas:S,gasPrice:$,...Q}){let X=p.getBaseValue("bigint"),q=T||await u?.getAddress();if(!q)throw new r.SwapKitError("toolbox_evm_no_from_address");if(d&&(C===4||(i?.length??0)>0))throw new r.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:n,reason:"EIP-7702 sweep transactions are not supported"}});if(r.isGasAsset(p)){let{hexlify:z,toUtf8Bytes:E}=await import("ethers"),v=b||z(E(f||""));if(!d)return{...Q,...i!==void 0&&{authorizations:i},data:v,from:q,...g!==void 0&&{gasLimit:g},to:l,...C!==void 0&&{type:C},value:_(X)};return Ne({chain:n,data:v,estimateAdditionalFee:t,estimateGasPrices:e,feeOptionKey:c,from:q,isEIP1559Compatible:o,provider:y,recipient:l,transaction:{nonce:Q.nonce,type:C}})}let W=pn(p,n);if(!W)throw new r.SwapKitError("toolbox_evm_no_contract_address");let Z=j({chain:n,provider:y}),D=d?await Oe({chain:n,contractAddress:W,from:q,provider:y}):X;if(d&&D<=0n)throw new r.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:p.toString(),balance:D.toString()}});return Z({abi:O.erc20ABI,contractAddress:W,funcName:"transfer",funcParams:[l,D],txOverrides:{from:q,gasLimit:g,gasPrice:$,maxFeePerGas:x,maxPriorityFeePerGas:S}})}}function je({provider:n,signer:t,chain:e}){return async function({assetAddress:y,spenderAddress:u,amount:s,from:p}){let i=await t?.getAddress()||p,f=j({chain:e,provider:n}),l=["bigint","number"].includes(typeof s)?s:s||un;return await f({abi:O.erc20ABI,contractAddress:y,funcName:"approve",funcParams:[u,BigInt(l)],txOverrides:{from:i}})}}function Ve({provider:n,isEIP1559Compatible:t=!0,chain:e}){return async function({feeOption:y=r.FeeOption.Fast,...u}){let p=await V({chain:e,isEIP1559Compatible:t,provider:n})(),i=await n.estimateGas(u),f=r.AssetValue.from({chain:e}),{gasPrice:l,maxFeePerGas:b,maxPriorityFeePerGas:c}=p[y];if(!t&&l)return f.set(r.SwapKitNumber.fromBigInt(l*i,f.decimal));if(b&&c){let g=(b+c)*i;return f.set(r.SwapKitNumber.fromBigInt(g,f.decimal))}throw new r.SwapKitError("toolbox_evm_no_gas_price")}}var r,O,B,ut,un,Re,_e,pt,ke,Hn=(n)=>n.type===4||(n.authorizations?.length??0)>0,it=(n)=>!Hn(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),ct=(n,t=!0)=>{if(Hn(n))return"eip7702";if(it(n)||t)return"eip1559";return"legacy"};var Un=R(()=>{gn();yn();r=require("@swapkit/helpers"),O=require("@swapkit/helpers/contracts"),B=require("ethers"),ut=require("ts-pattern"),un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Re=["payable","nonpayable"];_e=r.EVMChains.reduce((n,t)=>{return n[t]="0x0000000000000000000000000000000000000000",n},{}),pt={..._e,[r.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[r.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},ke=[r.Chain.Arbitrum,r.Chain.Aurora,r.Chain.Base,r.Chain.Optimism,r.Chain.Robinhood]});var Zt;var zt=R(()=>{Zt=[{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:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",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 dn(n){return new bn.Contract(Ge,Zt,n)}function Jt(n){return async function(){let e=dn(n);if(e&&"l1BaseFee"in e)return await e?.l1BaseFee();return}}function Nt(n){return async function({from:e,to:o,nonce:y,...u}){let{Transaction:s}=await import("ethers");if(!o)throw new U.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return s.from({...u,authorizationList:u.authorizationList,nonce:y??(e?await n.getTransactionCount(e):0),to:o}).unsignedSerialized}}function lt(n,t){return async function(o){let y=dn(n),u=o.chainId??t??(await n.getNetwork()).chainId,s=await Nt(n)({...o,chainId:u});if(y&&"getL1Fee"in y){let p=await y.getL1Fee(s);if(typeof p!=="bigint")throw new U.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return p}return}}function ft(n){return async function(e){let o=dn(n);if(o&&"getOperatorFee"in o){let y=await o.getOperatorFee(e);if(typeof y!=="bigint")throw new U.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return y}return 0n}}function Ie(n,t){let e=lt(n,t),o=ft(n);return async function(u){if(u.gasLimit===void 0||u.gasLimit===null)throw new U.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[s,p]=await Promise.all([e(u),o(BigInt(u.gasLimit.toString()))]);return(s??0n)+p}}function Ot(n){return async function(e){let y=(await n.getFeeData()).gasPrice??0n,u=await n.estimateGas(e);return y*u}}function Fe(n){return async function(e){let o=await lt(n)(e)??0n,y=await Ot(n)(e),u=e.gasLimit??await n.estimateGas(e),s=await ft(n)(BigInt(u.toString()));return o+y+s}}function Ke(n){return async function(e){let o=dn(n),y=await Nt(n)(e);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(y)}}function he(n){return async function(){try{let{maxFeePerGas:e,maxPriorityFeePerGas:o,gasPrice:y}=await n.getFeeData(),u=await Jt(n)(),s=y;if(!(e&&o))throw new U.SwapKitError("toolbox_evm_no_fee_data");return{[U.FeeOption.Average]:{gasPrice:s,l1GasPrice:u,maxFeePerGas:e,maxPriorityFeePerGas:o},[U.FeeOption.Fast]:{gasPrice:U.applyFeeMultiplierToBigInt(s,U.FeeOption.Fast),l1GasPrice:U.applyFeeMultiplierToBigInt(u||0n,U.FeeOption.Fast),maxFeePerGas:e,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(o,U.FeeOption.Fast)},[U.FeeOption.Fastest]:{gasPrice:U.applyFeeMultiplierToBigInt(s,U.FeeOption.Fastest),l1GasPrice:U.applyFeeMultiplierToBigInt(u||0n,U.FeeOption.Fastest),maxFeePerGas:e,maxPriorityFeePerGas:U.applyFeeMultiplierToBigInt(o,U.FeeOption.Fastest)}}}catch(e){throw new U.SwapKitError("toolbox_evm_gas_estimation_error",{error:e.msg??e.toString()})}}}function h(n){return function({provider:e,...o}){let y=cn.match(o).with({phrase:cn.P.string},({phrase:c})=>bn.HDNodeWallet.fromPhrase(c).connect(e)).with({signer:cn.P.any},({signer:c})=>c).otherwise(()=>{return}),u=Jt(e),s=BigInt(U.getChainConfig(n).chainId),p=lt(e,s),i=Ie(e,s),f=ft(e),l=n===U.Chain.Optimism?he(e):void 0;return{...I({chain:n,estimateAdditionalFee:i,estimateGasPrices:l,provider:e,signer:y}),estimateL1Gas:Ke(e),estimateL1GasCost:p,estimateL2GasCost:Ot(e),estimateOperatorFee:f,estimateTotalGasCost:Fe(e),getBalance:on(n).getBalance,getL1GasPrice:u}}}var U,bn,cn,Ge="0x420000000000000000000000000000000000000f",Cn;var an=R(()=>{gn();zt();Un();U=require("@swapkit/helpers"),bn=require("ethers"),cn=require("ts-pattern");Cn=h(U.Chain.Optimism)});function wn(n){let t=M(a.Chain.Ethereum)(n);async function e(o,y="0x5ba1e12693dc8f9c48aad8770482f4739beed696",u="aggregate",s=a.FeeOption.Fast){let p=await t.createContractTxObject({abi:kt,contractAddress:y,funcName:u,funcParams:[o]});return t.sendTransaction({...p,feeOptionKey:s})}return{...t,multicall:e}}function M(n){return function({provider:e,...o}){let y=tt(n),u=ln.match(o).with({phrase:ln.P.string},({phrase:p})=>jt.HDNodeWallet.fromPhrase(p).connect(e)).with({signer:ln.P.any},({signer:p})=>p).otherwise(()=>{return});return I({chain:n,isEIP1559Compatible:y,provider:e,signer:u})}}var a,jt,ln,Sn,Mn,xn,Dn,Bn,qn,Rn,Vt,_n,kn,mn,$n,Qn,Wn,Ln,Yn,Xn,Zn,zn,fn,Jn,Nn;var At=R(()=>{mt();yn();Un();an();a=require("@swapkit/helpers"),jt=require("ethers"),ln=require("ts-pattern");Sn=M(a.Chain.Adi),Mn=M(a.Chain.Arbitrum),xn=M(a.Chain.Aurora),Dn=M(a.Chain.Avalanche),Bn=h(a.Chain.Base),qn=M(a.Chain.Berachain),Rn=M(a.Chain.BinanceSmartChain),Vt=M(a.Chain.Botanix),_n=M(a.Chain.Core),kn=M(a.Chain.Corn),mn=M(a.Chain.Cronos),$n=M(a.Chain.Gnosis),Qn=M(a.Chain.Robinhood),Wn=M(a.Chain.Hyperevm),Ln=M(a.Chain.Linea),Yn=M(a.Chain.Polygon),Xn=M(a.Chain.MegaETH),Zn=M(a.Chain.Monad),zn=M(a.Chain.Plasma),fn=M(a.Chain.Sonic),Jn=h(a.Chain.Unichain),Nn=M(a.Chain.XLayer)});var Ee={};Gn(Ee,{validateEVMAddress:()=>rn,toChecksumAddress:()=>$t,isStateChangingCall:()=>st,isEIP7702Transaction:()=>Hn,isEIP1559Transaction:()=>it,isBrowserProvider:()=>F,getTokenAddress:()=>pn,getEvmToolboxAsync:()=>It,getEvmToolbox:()=>gt,getEstimateGasPrices:()=>V,getEVMTxType:()=>ct,getEIP1193SendTransaction:()=>K,getCreateContractTxObject:()=>j,getCreateContract:()=>rt,getChecksumAddressFromAsset:()=>Qt,createOPStackToolbox:()=>h,createContract:()=>sn,XLayerToolbox:()=>Nn,UNIToolbox:()=>Jn,SONICToolbox:()=>fn,PLASMAToolbox:()=>zn,OPToolbox:()=>Cn,MONADToolbox:()=>Zn,MEGAETHToolbox:()=>Xn,MAX_APPROVAL:()=>un,MATICToolbox:()=>Yn,LINEAToolbox:()=>Ln,HYPEREVMToolbox:()=>Wn,HOODToolbox:()=>Qn,GNOToolbox:()=>$n,ETHToolbox:()=>wn,ContractAddress:()=>pt,CROToolbox:()=>mn,CORNToolbox:()=>kn,COREToolbox:()=>_n,BotanixToolbox:()=>Vt,BaseEVMToolbox:()=>I,BSCToolbox:()=>Rn,BERAToolbox:()=>qn,BASEToolbox:()=>Bn,AVAXToolbox:()=>Dn,AURORAToolbox:()=>xn,ARBToolbox:()=>Mn,ADIToolbox:()=>Sn});function gt(n,t){return Gt.match(n).with(w.Chain.Adi,()=>Sn(t)).with(w.Chain.Arbitrum,()=>Mn(t)).with(w.Chain.Aurora,()=>xn(t)).with(w.Chain.Avalanche,()=>Dn(t)).with(w.Chain.Base,()=>Bn(t)).with(w.Chain.Berachain,()=>qn(t)).with(w.Chain.BinanceSmartChain,()=>Rn(t)).with(w.Chain.Botanix,()=>fn(t)).with(w.Chain.Core,()=>_n(t)).with(w.Chain.Corn,()=>kn(t)).with(w.Chain.Cronos,()=>mn(t)).with(w.Chain.Ethereum,()=>wn(t)).with(w.Chain.Gnosis,()=>$n(t)).with(w.Chain.Hyperevm,()=>Wn(t)).with(w.Chain.Linea,()=>Ln(t)).with(w.Chain.MegaETH,()=>Xn(t)).with(w.Chain.Monad,()=>Zn(t)).with(w.Chain.Optimism,()=>Cn(t)).with(w.Chain.Plasma,()=>zn(t)).with(w.Chain.Polygon,()=>Yn(t)).with(w.Chain.Robinhood,()=>Qn(t)).with(w.Chain.Sonic,()=>fn(t)).with(w.Chain.Unichain,()=>Jn(t)).with(w.Chain.XLayer,()=>Nn(t)).exhaustive()}async function It(n,t){let e={...t,provider:t?.provider||vn(n)};return gt(n,e)}var w,Gt;var Ft=R(()=>{yn();At();an();w=require("@swapkit/helpers"),Gt=require("ts-pattern");Un();At();an()});var Kt;var ht=R(()=>{((e)=>{e.Test="goerli";e.Main="homestead"})(Kt||={})});var ve={};Gn(ve,{validateEVMAddress:()=>rn,validateAuthorizations:()=>ot,validateAuthorization:()=>Rt,toHexString:()=>_,toChecksumAddress:()=>$t,signAuthorization:()=>et,parseEIP712FromEVMTx:()=>qe,isStateChangingCall:()=>st,isEIP7702Transaction:()=>Hn,isEIP1559Transaction:()=>it,isBrowserProvider:()=>F,getTokenAddress:()=>pn,getProviderSync:()=>qt,getProvider:()=>xe,getNetworkParams:()=>nt,getIsEIP1559Compatible:()=>tt,getFallbackProvider:()=>vn,getEvmToolboxAsync:()=>It,getEvmToolbox:()=>gt,getEvmApi:()=>on,getEstimateGasPrices:()=>V,getEVMTxType:()=>ct,getEIP1193SendTransaction:()=>K,getCreateContractTxObject:()=>j,getCreateContract:()=>rt,getChecksumAddressFromAsset:()=>Qt,createOPStackToolbox:()=>h,createCustomEvmApi:()=>Me,createContract:()=>sn,buildEIP712DomainType:()=>_t,XLayerToolbox:()=>Nn,UNIToolbox:()=>Jn,SONICToolbox:()=>fn,PLASMAToolbox:()=>zn,OPToolbox:()=>Cn,MONADToolbox:()=>Zn,MEGAETHToolbox:()=>Xn,MAX_APPROVAL:()=>un,MATICToolbox:()=>Yn,LINEAToolbox:()=>Ln,HYPEREVMToolbox:()=>Wn,HOODToolbox:()=>Qn,GNOToolbox:()=>$n,EthNetwork:()=>Kt,ETHToolbox:()=>wn,ContractAddress:()=>pt,CROToolbox:()=>mn,CORNToolbox:()=>kn,COREToolbox:()=>_n,BotanixToolbox:()=>Vt,BaseEVMToolbox:()=>I,BSCToolbox:()=>Rn,BERAToolbox:()=>qn,BASEToolbox:()=>Bn,AVAXToolbox:()=>Dn,AURORAToolbox:()=>xn,ARBToolbox:()=>Mn,ADIToolbox:()=>Sn});module.exports=xt(ve);var Pt=R(()=>{gn();yn();Ft();ht()});function no({builder:n,grouping:t="na",orders:e}){return{builder:n,grouping:t,orders:e,type:"order"}}function to({cancels:n}){return{cancels:n,type:"cancel"}}function eo({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function oo({oid:n,order:t}){return{oid:n,order:t,type:"modify"}}function yo({modifies:n}){return{modifies:n,type:"batchModify"}}function uo({asset:n,isCross:t,leverage:e}){return{asset:n,isCross:t,leverage:e,type:"updateLeverage"}}function ro({asset:n,isBuy:t,ntli:e}){return{asset:n,isBuy:t,ntli:e,type:"updateIsolatedMargin"}}function so({asset:n,leverage:t}){return{asset:n,leverage:t,type:"topUpIsolatedOnlyMargin"}}function po({time:n}){return{time:n,type:"scheduleCancel"}}function io({amount:n,hyperliquidChain:t,nonce:e,signatureChainId:o,toPerp:y}){return{amount:n,hyperliquidChain:t,nonce:e,signatureChainId:o,toPerp:y,type:"usdClassTransfer"}}function co({amount:n,destination:t,destinationDex:e,fromSubAccount:o,hyperliquidChain:y,nonce:u,signatureChainId:s,sourceDex:p,token:i}){return{amount:n,destination:t,destinationDex:e,fromSubAccount:o,hyperliquidChain:y,nonce:u,signatureChainId:s,sourceDex:p,token:i,type:"sendAsset"}}function lo({agentAddress:n,agentName:t,hyperliquidChain:e,nonce:o,signatureChainId:y}){return{agentAddress:n,agentName:t,hyperliquidChain:e,nonce:o,signatureChainId:y,type:"approveAgent"}}function fo({builder:n,hyperliquidChain:t,maxFeeRate:e,nonce:o,signatureChainId:y}){return{builder:n,hyperliquidChain:t,maxFeeRate:e,nonce:o,signatureChainId:y,type:"approveBuilderFee"}}function Ao({hyperliquidChain:n,isUndelegate:t,nonce:e,signatureChainId:o,validator:y,wei:u}){return{hyperliquidChain:n,isUndelegate:t,nonce:e,signatureChainId:o,type:"tokenDelegate",validator:y,wei:u}}function k(...n){let t=n.reduce((y,u)=>y+u.length,0),e=new Uint8Array(t),o=0;for(let y of n)e.set(y,o),o+=y.length;return e}function Co(n,t,e){if(e<t)return new Uint8Array([n+e]);if(e<=255)return new Uint8Array([n+t,e]);if(e<=65535)return new Uint8Array([n+t+1,e>>8,e&255]);return new Uint8Array([n+t+2,e>>>24&255,e>>>16&255,e>>>8&255,e&255])}function J(n,t){let e=new Uint8Array(t),o=n;for(let y=t-1;y>=0;y-=1)e[y]=Number(o&0xffn),o>>=8n;return e}function Et(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return k(new Uint8Array([205]),J(n,2));if(n<=0xffffffffn)return k(new Uint8Array([206]),J(n,4));return k(new Uint8Array([207]),J(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return k(new Uint8Array([209]),J(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return k(new Uint8Array([210]),J(BigInt.asUintN(32,n),4));return k(new Uint8Array([211]),J(BigInt.asUintN(64,n),8))}function te(n){let t=bo.encode(n);if(t.length<32)return k(new Uint8Array([160+t.length]),t);return k(Co(217,0,t.length),t)}function ao(n){let t=n.map((o)=>Ht(o)),e=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return k(e,...t)}function wo(n){let t=Object.entries(n).filter(([,o])=>typeof o<"u"),e=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 k(e,...t.flatMap(([o,y])=>[te(o),Ht(y)]))}function Ht(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return te(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new On.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return Et(BigInt(n))}if(typeof n==="bigint")return Et(n);if(n instanceof Uint8Array){let t=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return k(t,n)}if(Array.isArray(n))return ao(n);if(typeof n==="object")return wo(n);throw new On.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function So(n){let t=n.startsWith("0x")?n.slice(2):n;if(t.length%2!==0||/[^a-fA-F0-9]/u.test(t))throw new On.SwapKitError("helpers_invalid_params",{hexValue:n});let e=new Uint8Array(t.length/2);for(let o=0;o<t.length;o+=2)e[o/2]=Number.parseInt(t.slice(o,o+2),16);return e}function ee(n){return{domain:go,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...To.Agent]}}}function oe(n){let t=Uo[n.type],e=Ho[n.type],{type:o,...y}=n;return{domain:{chainId:Number.parseInt(y.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:vt,version:"1"},message:{...y,hyperliquidChain:y.hyperliquidChain||ne},primaryType:t,types:{[t]:e}}}function ye(n){let t=jn.Signature.from(n);return{r:t.r,s:t.s,v:t.v}}function ue(n,t,{expiresAfter:e,vaultAddress:o}={}){let y=Ht(n),u=J(BigInt(t),8),s=o?k(new Uint8Array([1]),So(o.toLowerCase())):new Uint8Array([0]),p=typeof e==="number"?k(new Uint8Array([0]),J(BigInt(e),8)):new Uint8Array;return jn.keccak256(k(y,u,s,p))}function re(n){let t=n.hyperliquidChain||ne;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:t};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:t};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:t};case"tokenDelegate":return{...n,hyperliquidChain:t,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:t};default:return n}}var On,jn,vt="0x0000000000000000000000000000000000000000",go,To,ne="Mainnet",Ho,Uo,bo;var se=R(()=>{On=require("@swapkit/helpers"),jn=require("ethers"),go={chainId:1337,name:"Exchange",verifyingContract:vt,version:"1"},To={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},Ho={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"}]},Uo={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},bo=new TextEncoder});function L(n,t){if(!dt(n))throw new H.SwapKitError(t,{address:n});return n.toLowerCase()}async function G(n){let t=await Vn();return H.RequestClient.post(`${t}/info`,{json:n})}function _o({dex:n,user:t}){return G({...n?{dex:n}:{},type:"clearinghouseState",user:L(t,"helpers_invalid_params")})}function fe({user:n}){return G({type:"spotClearinghouseState",user:L(n,"helpers_invalid_params")})}function ko({dex:n,user:t}){return G({...n?{dex:n}:{},type:"openOrders",user:L(t,"helpers_invalid_params")})}function mo({dex:n,user:t}){return G({...n?{dex:n}:{},type:"frontendOpenOrders",user:L(t,"helpers_invalid_params")})}function $o({oidOrCloid:n,user:t}){return G({oid:n,type:"orderStatus",user:L(t,"helpers_invalid_params")})}function Qo({aggregateByTime:n,user:t}){return G({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:L(t,"helpers_invalid_params")})}function Wo({aggregateByTime:n,endTime:t,startTime:e,user:o}){return G({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof t==="number"?{endTime:t}:{},startTime:e,type:"userFillsByTime",user:L(o,"helpers_invalid_params")})}function pe({coin:n,token:t,value:e,spotMeta:o}){if(!e||Number(e)<=0)return null;let y=n?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,u=Mo[y]||le,s=o?.tokens?.find((i)=>i.name===n||t!==void 0&&i.index===Number(t)),p=s?`${Y}.${y}-${s.name}:${s.tokenId}`:`${Y}.${y}`;return new H.AssetValue({decimal:u,identifier:p,value:e})}function Lo(n){let t=new Map;for(let e of n){let o=e.toString({includeSynthProtocol:!0}),y=t.get(o);t.set(o,y?y.add(e):e)}if(![...t.values()].some((e)=>e.isGasAsset||e.ticker==="HYPE")){let e=H.AssetValue.from({chain:Y,value:0});t.set(e.toString({includeSynthProtocol:!0}),e)}return[...t.values()]}async function Vn(){try{return await H.getRPCUrl(Y)}catch{let[n]=H.getChainConfig(Y).rpcUrls;if(!n)throw new H.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:Y});return n}}async function bt(){return`${await Vn()}/exchange`}function Yo(n){let t=Ro[n.type],{type:e,...o}=n,y=qo[e];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Bo,version:"1"},message:o,primaryType:t,types:{[t]:y}}}async function Ae({action:n,expiresAfter:t,nonce:e,vaultAddress:o}){let y=e||Date.now(),u=o?L(o,"helpers_invalid_params"):void 0,s=await bt(),p=ue(n,y,{expiresAfter:t,vaultAddress:u});return{action:n,endpoint:s,expiresAfter:t,nonce:y,typedData:ee(p),vaultAddress:u}}async function ge({action:n,nonce:t,signatureChainId:e}){let o=t||n.nonce||Date.now(),y=e||n.signatureChainId||"0xa4b1",u=re({...n,nonce:o,signatureChainId:y});return{action:u,endpoint:await bt(),nonce:o,typedData:oe(u)}}async function Xo({assetValue:n,sender:t,token:e}){let o=await fe({user:t}),y=(o.spotState?.balances||o.balances||[]).find(({coin:u})=>u&&e.startsWith(`${u}:`))?.total;if(!y||Number(y)<=0)throw new H.SwapKitError("toolbox_sweep_amount_too_low",{asset:n.toString(),balance:y||"0"});return y}async function Ut({assetValue:n,recipient:t,sender:e,signatureChainId:o,sweep:y,time:u}){let s=L(t,"core_transaction_invalid_recipient_address"),p=L(e,"core_transaction_invalid_sender_address"),i=n.address;if(!i)throw new H.SwapKitError("helpers_invalid_params",{asset:n.toString(),from:p});let f=y?await Xo({assetValue:n,sender:p,token:i}):n.getValue("string"),l=await bt(),b=u||Date.now(),c={amount:f,destination:s,hyperliquidChain:xo,signatureChainId:o||Do,time:b,token:i,type:"spotSend"};return{action:c,endpoint:l,nonce:b,typedData:Yo(c)}}async function ie(n){let t=await H.RequestClient.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(t.status!=="ok")throw new H.SwapKitError("core_transaction_failed",{response:t});return t}async function Zo(n,t){let e=await Vn(),o=t-5000;for(let y=0;y<5;y++){if(y>0)await new Promise((u)=>setTimeout(u,1000));try{let u=await H.RequestClient.post(`${e}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),s=Array.isArray(u)?u.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 dt(n){return n.startsWith("0x")&&rn(n)}function zo(n){let t=An(Y),e=n&&"index"in n?n.index||0:0,o=H.derivationPathToString(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:H.updateDerivationPath(H.NetworkDerivationPath[Y],{index:e})),y,u=!1;function s(){if(u)return y;return y=P.match(n).with({phrase:P.P.string},({phrase:c})=>{return ce.HDNodeWallet.fromPhrase(c,void 0,o)}).with({signer:P.P.not(P.P.nullish)},({signer:c})=>c).otherwise(()=>{return}),u=!0,y}async function p(){let c=s();return c?await c.getAddress():""}async function i(c){let g=s();if(!g)throw new H.SwapKitError("toolbox_hypercore_no_signer");let T=await g.signTypedData(c.typedData.domain,c.typedData.types,c.typedData.message);return{action:c.action,endpoint:c.endpoint,nonce:c.nonce,signature:ye(T),..."expiresAfter"in c?{expiresAfter:c.expiresAfter}:{},..."vaultAddress"in c?{vaultAddress:c.vaultAddress}:{}}}async function f(c){let g=L(c,"helpers_invalid_params");try{let T=await Vn(),[d,C,x]=await Promise.all([H.RequestClient.post(`${T}/info`,{json:{type:"spotClearinghouseState",user:g}}),H.RequestClient.post(`${T}/info`,{json:{type:"clearinghouseState",user:g}}),H.RequestClient.post(`${T}/info`,{json:{type:"spotMeta"}})]),S=(d.spotState?.balances||d.balances||[]).map(({coin:Q,token:X,total:q})=>pe({coin:Q,spotMeta:x,token:X,value:q})).filter((Q)=>!!Q),$=pe({coin:"USDC",spotMeta:x,value:C.withdrawable||C.marginSummary?.accountValue||C.marginSummary?.totalRawUsd});return Lo($?[...S,$]:S)}catch{return t(g)}}async function l({sweep:c,...g}){let T=s();if(!T)throw new H.SwapKitError("toolbox_hypercore_no_signer");let d=g.sender||await T.getAddress(),C=await Ut({...g,feeRate:0,sender:d,sweep:c}),x=await i(C);return await ie(x),Zo(d,C.nonce)}function b(){return H.AssetValue.from({chain:Y,value:0})}return{broadcastTransaction:ie,createL1ActionRequest:Ae,createTransaction:Ut,createUserSignedActionRequest:ge,estimateTransactionFee:b,getAddress:p,getBalance:f,getState:{clearinghouse:_o,frontendOpenOrders:mo,openOrders:ko,orderStatus:$o,spotClearinghouse:fe,userFills:Qo,userFillsByTime:Wo},signTransaction:i,transfer:l,validateAddress:dt}}var H,ce,P,Y,le,Mo,xo="Mainnet",Do="0xa4b1",Bo="0x0000000000000000000000000000000000000000",qo,Ro;var Te=R(()=>{Pt();Fn();se();H=require("@swapkit/helpers"),ce=require("ethers"),P=require("ts-pattern"),Y=H.Chain.Hype,{baseDecimal:le}=H.getChainConfig(Y),Mo={HYPE:le,USDC:6,USDT:6},qo={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},Ro={spotSend:"HyperliquidTransaction:SpotSend"}});var Jo={};Gn(Jo,{validateHyperCoreAddress:()=>dt,getHyperCoreToolbox:()=>zo,createUserSignedActionRequest:()=>ge,createTransaction:()=>Ut,createL1ActionRequest:()=>Ae,buildUsdClassTransferAction:()=>io,buildUpdateLeverageAction:()=>uo,buildUpdateIsolatedMarginAction:()=>ro,buildTopUpIsolatedOnlyMarginAction:()=>so,buildTokenDelegateAction:()=>Ao,buildSendAssetAction:()=>co,buildScheduleCancelAction:()=>po,buildOrderAction:()=>no,buildModifyAction:()=>oo,buildCancelByCloidAction:()=>eo,buildCancelAction:()=>to,buildBatchModifyAction:()=>yo,buildApproveBuilderFeeAction:()=>fo,buildApproveAgentAction:()=>lo});module.exports=xt(Jo);var No=R(()=>{Te()});No();
1
+ var Qt=Object.create;var{getPrototypeOf:Xt,defineProperty:yn,getOwnPropertyNames:Jy,getOwnPropertyDescriptor:Yt}=Object,qy=Object.prototype.hasOwnProperty;function Ry(n){return this[n]}var Zt,Bt,E0=(n,y,t)=>{var u=n!=null&&typeof n==="object";if(u){var f=y?Zt??=new WeakMap:Bt??=new WeakMap,o=f.get(n);if(o)return o}t=n!=null?Qt(Xt(n)):{};let U=y||!n||!n.__esModule?yn(t,"default",{value:n,enumerable:!0}):t;for(let H of Jy(n))if(!qy.call(U,H))yn(U,H,{get:Ry.bind(n,H),enumerable:!0});if(u)f.set(n,U);return U},Ly=(n)=>{var y=(xy??=new WeakMap).get(n),t;if(y)return y;if(y=yn({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var u of Jy(n))if(!qy.call(y,u))yn(y,u,{get:Ry.bind(n,u),enumerable:!(t=Yt(n,u))||t.enumerable})}return xy.set(n,y),y},xy;var xt=(n)=>n;function Jt(n,y){this[n]=xt.bind(null,y)}var hn=(n,y)=>{for(var t in y)yn(n,t,{get:y[t],enumerable:!0,configurable:!0,set:Jt.bind(y,t)})};var _=(n,y)=>()=>(n&&(y=n(n=0)),y);function P0(){function n(){let y=Date.now(),t=mn||y;return mn=t,y>mn?y:t+1}return qt+n().toString(36)}function Dn(n){return async function(t,u=!0){let f=await ky.SwapKitApi.getChainBalance({address:t,chain:n,scamFilter:u}),{baseDecimal:o}=tn.getChainConfig(n),U=f.map(({identifier:A,value:D,decimal:b})=>{return new tn.AssetValue({decimal:b||o,identifier:A,value:D})});if(!U.some((A)=>A.isGasAsset))return[tn.AssetValue.from({chain:n}),...U];return U}}var tn,ky,qt,mn=0;var vn=_(()=>{tn=require("@swapkit/helpers"),ky=require("@swapkit/helpers/api"),qt=typeof process<"u"&&process.pid?process.pid.toString(36):""});function un(n){return{getBalance:Dn(n)}}function Rt(n){return n}var wn=_(()=>{vn()});function Ny(n){return new p.JsonRpcProvider(n)}async function Lt(n,y){return Ny(y||await w.getRPCUrl(n))}function an(n){let y=w.SKConfig.get("rpcUrls")[n]?.filter(Boolean)??[];if(y.length===0)throw new w.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:n});let{chainId:t}=w.getChainConfig(n),u=p.Network.from(Number(t)),[f]=y;if(y.length===1)return new p.JsonRpcProvider(f,u,{staticNetwork:u});return new p.FallbackProvider(y.map((o,U)=>({priority:U+1,provider:new p.JsonRpcProvider(o,u,{staticNetwork:u}),stallTimeout:2000})),u,{quorum:1})}function G(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function ny(n){let{explorerUrl:y,chainIdHex:t,rpcUrls:u}=w.getChainConfig(n);return function(){return n!==w.Chain.Ethereum?{...kt({chain:n}),blockExplorerUrls:[y],chainId:t,rpcUrls:u}:void 0}}function yy(n){return![w.Chain.Adi,w.Chain.Arbitrum,w.Chain.BinanceSmartChain,w.Chain.Robinhood].includes(n)}function kt({chain:n}){let{name:y,nativeCurrency:t,baseDecimal:u}=w.getChainConfig(n);return rn.match(n).with(w.Chain.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:u,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:u,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:u,name:"Avalanche",symbol:n}})).with(w.Chain.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:u,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:u,name:"Berachain",symbol:"BERA"}})).with(w.Chain.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:u,name:"OKB",symbol:"OKB"}})).with(w.Chain.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:u,name:"Binance Coin",symbol:"BNB"}})).with(w.Chain.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:u,name:"xDAI",symbol:"XDAI"}})).with(w.Chain.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:u,name:"Ethereum",symbol:w.Chain.Ethereum}})).with(w.Chain.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:u,name:"Polygon",symbol:w.Chain.Polygon}})).with(w.Chain.Robinhood,()=>({chainName:"Robinhood Chain",nativeCurrency:{decimals:u,name:"Ethereum",symbol:w.Chain.Ethereum}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:u,name:t,symbol:t}}))}async function ty(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let t={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(t)}function _y(n,y){let t=y!==void 0?`index ${y}: `:"",u=(f,o)=>{throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${t}${o}`}})};rn.match(n).when(({chainId:f})=>typeof f!=="bigint",()=>u("chainId","chainId must be a bigint")).when(({address:f})=>!jt(f),()=>u("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>u("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>u("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>u("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!jy(f?.r),()=>u("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!jy(f?.s),()=>u("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Gy(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:t})=>({name:y,type:t}))}function dn(n){return n.charAt(0).toUpperCase()+n.slice(1)}function sn(n,y){if(n.isTuple()&&n.components){let t=dn(n.name);return y[t]=n.components.map((u)=>({name:u.name,type:sn(u,y)})),t}if(n.isArray()){let t=n.arrayChildren;if(t?.isTuple()&&t.components){let u=dn(n.name.replace(/s$/,""));return y[u]=t.components.map((f)=>({name:f.name,type:sn(f,y)})),`${u}[]`}return`${t?.type??"bytes"}[]`}return n.type}function en(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let t=n.toObject(),u={};for(let[f,o]of(y.components??[]).entries())u[o.name]=en(t[o.name]??n[f],o);return u}if(Array.isArray(n)){let t=y?.arrayChildren;return n.map((u)=>en(u,t??void 0))}return n}function Nt({chain:n,abi:y,data:t,to:u}){let o=new p.Interface(y).parseTransaction({data:t});if(!o)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let U={},H=dn(o.name);U[H]=o.fragment.inputs.map((M)=>({name:M.name,type:sn(M,U)}));let A={};for(let[M,W]of o.fragment.inputs.entries())A[W.name]=en(o.args[M],W);let{chainId:D}=w.getChainConfig(n),b={chainId:Number(D),verifyingContract:p.getAddress(u)},Y=Gy(b);return{domain:b,message:A,primaryType:H,types:{EIP712Domain:Y,...U}}}function uy(n,y){if(!Array.isArray(n)||n.length===0)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[t,u]of n.entries())if(_y(u,t),y!==void 0&&u.chainId!==y)throw new w.SwapKitError({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${t}: authorization chainId (${u.chainId}) does not match transaction chainId (${y})`}})}var w,p,rn,jy=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),jt=(n)=>{try{return typeof n==="string"&&!!p.getAddress(n)}catch{return!1}};var fn=_(()=>{w=require("@swapkit/helpers"),p=require("ethers"),rn=require("ts-pattern")});var zy;var py=_(()=>{zy=[{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 v({chain:n=T.Chain.Ethereum,provider:y,signer:t,isEIP1559Compatible:u=!0,estimateGasPrices:f,estimateAdditionalFee:o}){let U=f??h({chain:n,isEIP1559Compatible:u,provider:y}),H=ly({chain:n,estimateAdditionalFee:o,estimateGasPrices:U,isEIP1559Compatible:u,provider:y,signer:t});return{approve:Ct({chain:n,isEIP1559Compatible:u,provider:y,signer:t}),approvedAmount:Vy({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:Wn({chain:n,isEIP1559Compatible:u,provider:y,signer:t}),createApprovalTx:Pt({chain:n,provider:y,signer:t}),createContract:Ty({chain:n,provider:y}),createContractTxObject:P({chain:n,provider:y}),createTransaction:H,createTransferTx:H,EIP1193SendTransaction:i(y),estimateCall:Sy({provider:y,signer:t}),estimateGasLimit:Vt({chain:n,provider:y,signer:t}),estimateGasPrices:U,estimateTransactionFee:ht({chain:n,isEIP1559Compatible:u,provider:y}),getAddress:()=>{return t?t.getAddress():void 0},getBalance:un(n).getBalance,getNetworkParams:ny(n),isApproved:pt({chain:n,provider:y}),sendTransaction:Ky({chain:n,estimateGasPrices:U,isEIP1559Compatible:u,provider:y,signer:t}),signAuthorization:St({signer:t}),signMessage:t?(A)=>t.signMessage(A):void 0,signTypedData:t?({domain:A,types:D,value:b})=>t.signTypedData(A,D,b):void 0,transfer:Ot({chain:n,estimateAdditionalFee:o,estimateGasPrices:U,isEIP1559Compatible:u,provider:y,signer:t}),validateAddress:Tn}}function Tn(n){try{return j.getAddress(n),!0}catch{return!1}}function d(n){return n instanceof j.BrowserProvider}function Un(n,y,t){return new j.Contract(n,j.Interface.from(y),t)}function Ty({provider:n}){return function(t,u){return new j.Contract(t,j.Interface.from(u),n)}}function Uy({abi:n,funcName:y}){let t=n.find((u)=>u.name===y);if(!t)throw new T.SwapKitError("toolbox_evm_no_abi_fragment",{funcName:y});return t.stateMutability&&_t.includes(t.stateMutability)}function Cy(n){return j.getAddress(n)}function i(n,y=!1){return function({value:u,...f}){if(!d(n))throw new T.SwapKitError("toolbox_evm_provider_not_eip1193_compatible");let o={...f,gasPrice:"gasPrice"in f?f.gasPrice:void 0,maxFeePerGas:"maxFeePerGas"in f?f.maxFeePerGas:void 0,maxPriorityFeePerGas:"maxPriorityFeePerGas"in f?f.maxPriorityFeePerGas:void 0},{gasLimit:U,gasPrice:H,maxFeePerGas:A,maxPriorityFeePerGas:D,...b}=o,Y={...b,...y&&U!==void 0&&{gas:G(BigInt(U))},...y&&H!==void 0&&{gasPrice:G(BigInt(H))},...y&&A!==void 0&&{maxFeePerGas:G(BigInt(A))},...y&&D!==void 0&&{maxPriorityFeePerGas:G(BigInt(D))},value:G(BigInt(u||0))};return n.send("eth_sendTransaction",[Y])}}function Oy(n,y){let t=Hn(n,y);if(t)return j.getAddress(t.toLowerCase());throw new T.SwapKitError("toolbox_evm_invalid_gas_asset_address")}function Hn({chain:n,symbol:y,ticker:t},u){try{let f=n===T.Chain.BinanceSmartChain&&y==="BNB"&&t==="BNB",o=n===T.Chain.Hyperevm&&y==="HYPE"&&t==="HYPE",U=n===u&&y===u&&t===u,H=zt.includes(n)&&y==="ETH"&&t==="ETH";if(U||f||o||H)return Hy[u];return j.getAddress(y.slice(t.length+1).replace(/^0X/,""))}catch{return null}}function P({provider:n}){return async({contractAddress:y,abi:t,funcName:u,funcParams:f=[],txOverrides:o})=>{let U=await Un(y,t,n).getFunction(u).populateTransaction(...f.concat(o).filter((H)=>typeof H<"u"));return{...U,value:G(BigInt(U.value||0))}}}function h({chain:n,provider:y,isEIP1559Compatible:t=!0}){return oy.match(n).with(T.Chain.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:o}=await y.getFeeData();if(!f||o===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(f,T.FeeOption.Average),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Average)},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(f,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(f,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fastest)}}}catch(f){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(T.Chain.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new T.SwapKitError("toolbox_evm_no_fee_data");let o=f*12n/10n;return{[T.FeeOption.Average]:{gasPrice:o},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fastest)}}}catch(f){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:o,gasPrice:U}=await y.getFeeData();if(t){if(f===null||o===null)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{[T.FeeOption.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:o},[T.FeeOption.Fast]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(f,T.FeeOption.Fast),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{maxFeePerGas:T.applyFeeMultiplierToBigInt(f,T.FeeOption.Fastest),maxPriorityFeePerGas:T.applyFeeMultiplierToBigInt(o,T.FeeOption.Fastest)}}}if(!U)throw new T.SwapKitError("toolbox_evm_no_gas_price");return{[T.FeeOption.Average]:{gasPrice:U},[T.FeeOption.Fast]:{gasPrice:T.applyFeeMultiplierToBigInt(U,T.FeeOption.Fast)},[T.FeeOption.Fastest]:{gasPrice:T.applyFeeMultiplierToBigInt(U,T.FeeOption.Fastest)}}}catch(f){throw new T.SwapKitError("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function Wn({provider:n,isEIP1559Compatible:y,signer:t,chain:u}){return async function({callProvider:o,contractAddress:U,abi:H,funcName:A,funcParams:D=[],txOverrides:b={},feeOption:Y=T.FeeOption.Fast}){let M=o||n;if(!U)throw new T.SwapKitError("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=Uy({abi:H,funcName:A});if(W&&d(M)&&t){let B=P({chain:u,provider:M}),L=b?.from||await t?.getAddress(),q=await B({abi:H,contractAddress:U,funcName:A,funcParams:D,txOverrides:{...b,from:L}});return i(M)(q)}let $=Un(U,H,M);if(W){if(!t)throw new T.SwapKitError("toolbox_evm_no_signer");let B=b?.from||await t.getAddress();if(!B)throw new T.SwapKitError("toolbox_evm_no_signer_address");let L=$.connect(t),q=h({chain:u,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:C,maxPriorityFeePerGas:O,gasPrice:l}=(await q())[Y],N=await $.getFunction(A).estimateGas(...D,b),V=await L[A](...D,{...b,gasLimit:N,gasPrice:l,maxFeePerGas:C,maxPriorityFeePerGas:O,nonce:b?.nonce||await M.getTransactionCount(B)});return typeof V?.hash==="string"?V?.hash:V}let Z=await $[A]?.(...D);return typeof Z?.hash==="string"?Z?.hash:Z}}function Vy({provider:n,chain:y}){return function({assetAddress:u,spenderAddress:f,from:o}){return Wn({chain:y,isEIP1559Compatible:!0,provider:n})({abi:g.erc20ABI,contractAddress:u,funcName:"allowance",funcParams:[o,f]})}}function pt({provider:n,chain:y}){return async function({assetAddress:u,spenderAddress:f,from:o,amount:U=on}){let H=await Vy({chain:y,provider:n})({assetAddress:u,from:o,spenderAddress:f});return T.SwapKitNumber.fromBigInt(H).gte(T.SwapKitNumber.fromBigInt(BigInt(U)))}}function Ct({signer:n,isEIP1559Compatible:y=!0,provider:t,chain:u}){return async function({assetAddress:o,spenderAddress:U,feeOptionKey:H=T.FeeOption.Fast,amount:A,gasLimitFallback:D,from:b,nonce:Y}){let M=[U,BigInt(A||on)],W=await n?.getAddress()||b,$={abi:g.erc20ABI,contractAddress:o,funcName:"approve",funcParams:M,signer:n,txOverrides:{from:W}};if(d(t)){let B=P({chain:u,provider:t}),L=i(t),q=await B($);return L(q)}return Wn({chain:u,isEIP1559Compatible:y,provider:t,signer:n})({...$,feeOption:H,funcParams:M,txOverrides:{from:W,gasLimit:D?BigInt(D.toString()):void 0,nonce:Y}})}}function Ot({chain:n,estimateGasPrices:y,estimateAdditionalFee:t,signer:u,isEIP1559Compatible:f=!0,provider:o}){return async function({assetValue:H,memo:A,recipient:D,feeOptionKey:b=T.FeeOption.Fast,sender:Y,sweep:M,...W}){let $=Y||await u?.getAddress(),Z=Ky({chain:n,estimateGasPrices:y,isEIP1559Compatible:f,provider:o,signer:u});if(!$)throw new T.SwapKitError("toolbox_evm_no_from_address");let B=await ly({chain:n,estimateAdditionalFee:t,estimateGasPrices:y,isEIP1559Compatible:f,provider:o,signer:u})({assetValue:H,feeOptionKey:b,memo:A,recipient:D,sender:$,sweep:M,...W});return Z({...B,feeOptionKey:b,sweep:M})}}function Sy({provider:n,signer:y}){return function({contractAddress:u,abi:f,funcName:o,funcParams:U=[],txOverrides:H}){if(!u)throw new T.SwapKitError("toolbox_evm_no_contract_address");let A=Un(u,f,n);return y?A.connect(y).getFunction(o).estimateGas(...U,H):A.getFunction(o).estimateGas(...U,H)}}function Vt({provider:n,signer:y}){return async function({assetValue:u,recipient:f,memo:o,data:U,sender:H,funcName:A,funcParams:D,txOverrides:b}){let Y=u.bigIntValue,M=u.isGasAsset?null:Hn(u,u.chain);if(M&&A)return Sy({provider:n,signer:y})({abi:g.erc20ABI,contractAddress:M,funcName:A,funcParams:D,txOverrides:b});let{hexlify:W,toUtf8Bytes:$}=await import("ethers");return n.estimateGas({data:U?U:o?W($(o)):void 0,from:H,to:f,value:Y})}}function St({signer:n}){if(!n)return;return(y)=>ty(n,y)}function Kt(n,y){if(n==="legacy"){if(y.gasPrice===void 0)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{gasPrice:G(y.gasPrice)}}if(y.maxFeePerGas===void 0||y.maxPriorityFeePerGas===void 0)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{maxFeePerGas:G(y.maxFeePerGas),maxPriorityFeePerGas:G(y.maxPriorityFeePerGas)}}function Ky({chain:n,estimateGasPrices:y,provider:t,signer:u,isEIP1559Compatible:f=!0}){return async function({feeOptionKey:U=T.FeeOption.Fast,sweep:H,...A}){let{from:D,to:b,data:Y,value:M,...W}=A;if(!u)throw new T.SwapKitError("toolbox_evm_no_signer");if(!b)throw new T.SwapKitError("toolbox_evm_no_to_address");let $={...W,data:Y||"0x",from:D,to:b,value:BigInt(M||0)};if(d(t))return i(t,H)($);let Z=D||await u.getAddress(),B=A.nonce??await t.getTransactionCount(Z),L=(await t.getNetwork()).chainId,q=My($,f);if(q==="eip7702")uy($.authorizations||[],L);let C=oy.match(q).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),O={...$,chainId:L,nonce:B,type:C,...q==="eip7702"&&{authorizationList:$.authorizations}},l=y??h({chain:n,isEIP1559Compatible:f,provider:t}),V=(q==="legacy"?$.gasPrice!==void 0:$.maxFeePerGas!==void 0&&$.maxPriorityFeePerGas!==void 0)?{}:Kt(q,(await l())[U]),c;try{c=G($.gasLimit?BigInt($.gasLimit):await t.estimateGas(O)*11n/10n)}catch(k){throw new T.SwapKitError("toolbox_evm_error_estimating_gas_limit",{error:k})}try{let k={...O,gasLimit:c,...V};try{return(await u.sendTransaction(k)).hash}catch{let F=await u.signTransaction({...k,from:Z});return(await t.broadcastTransaction(F)).hash}}catch(k){throw new T.SwapKitError("toolbox_evm_error_sending_transaction",{error:k})}}}function E(n,y){throw new T.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{balance:n.toString(),fee:y.toString()}})}function lt(n,y){if(y){if(n.maxFeePerGas===void 0||n.maxPriorityFeePerGas===void 0)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{maxFeePerGas:n.maxFeePerGas,maxPriorityFeePerGas:n.maxPriorityFeePerGas},feePerGas:n.maxFeePerGas}}if(n.gasPrice===void 0)throw new T.SwapKitError("toolbox_evm_no_fee_data");return{feeFields:{gasPrice:n.gasPrice},feePerGas:n.gasPrice}}function ct(n,y){if(n>y)return n;return y}function Ft(n){return j.getBytes(n).reduce((y,t)=>y+(t===0?4n:16n),21000n)}function fy(n){let t=(n instanceof Error?n.message:String(n)).toLowerCase();return t.includes("insufficient funds")||t.includes("insufficient balance")||t.includes("gas required exceeds allowance")}async function It({balance:n,estimateAdditionalFee:y,feeOptionKey:t,l2Reserve:u,sweepTx:f,valueBeforeL1Fee:o}){if(!y)return 0n;let U=await y({...f,value:o})??0n,H=T.applyFeeMultiplierToBigInt(U,t),A=o-H;if(A<=0n)E(n,u+H);let D=await y({...f,value:A})??U;return T.applyFeeMultiplierToBigInt(ct(U,D),t)}async function Et({chain:n,data:y,estimateGasPrices:t,estimateAdditionalFee:u,feeOptionKey:f,from:o,isEIP1559Compatible:U,provider:H,recipient:A,transaction:D}){let b=await H.getBalance(o),Y=t??h({chain:n,isEIP1559Compatible:U,provider:H}),{feeFields:M,feePerGas:W}=lt((await Y())[f],U),Z={...u&&D.nonce===void 0?{...D,nonce:await H.getTransactionCount(o)}:D,...M,data:y,from:o,to:A},B=Ft(y)*W;if(b-B<=0n)E(b,B);let L=(b-B)/2n,q;try{q=await H.estimateGas({...Z,value:L})}catch(nn){if(!fy(nn))throw nn;try{q=await H.estimateGas({...Z,value:0n})}catch(By){if(fy(By))E(b,B);throw By}}let C=q*W;if(b-C<=0n)E(b,C);let N=q*11n/10n*W,V=b>N?b-N:0n,c;try{c=await H.estimateGas({...Z,value:V})}catch(nn){if(!fy(nn))throw nn;E(b,N)}let k=c*W,F=b-k;if(F<=0n)E(b,k);let r=await It({balance:b,estimateAdditionalFee:u,feeOptionKey:f,l2Reserve:k,sweepTx:{...Z,gasLimit:c},valueBeforeL1Fee:F}),a=F-r;if(a<=0n)E(b,k+r);return{...Z,gasLimit:c,value:G(a)}}async function gt({chain:n,contractAddress:y,from:t,provider:u}){let f=await Wn({chain:n,provider:u})({abi:g.erc20ABI,contractAddress:y,funcName:"balanceOf",funcParams:[t]});if(typeof f!=="bigint")throw new T.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid ERC20 balance"}});return f}function ly({chain:n,estimateAdditionalFee:y,estimateGasPrices:t,isEIP1559Compatible:u=!0,provider:f,signer:o}){return async function({assetValue:H,authorizations:A,memo:D,recipient:b,data:Y,feeOptionKey:M=T.FeeOption.Fast,gasLimit:W,sender:$,sweep:Z,type:B,maxFeePerGas:L,maxPriorityFeePerGas:q,gasPrice:C,...O}){let l=H.getBaseValue("bigint"),N=$||await o?.getAddress();if(!N)throw new T.SwapKitError("toolbox_evm_no_from_address");if(Z&&(B===4||(A?.length??0)>0))throw new T.SwapKitError({errorKey:"toolbox_not_supported",info:{chain:n,reason:"EIP-7702 sweep transactions are not supported"}});if(T.isGasAsset(H)){let{hexlify:F,toUtf8Bytes:r}=await import("ethers"),a=Y||F(r(D||""));if(!Z)return{...O,...A!==void 0&&{authorizations:A},data:a,from:N,...W!==void 0&&{gasLimit:W},to:b,...B!==void 0&&{type:B},value:G(l)};return Et({chain:n,data:a,estimateAdditionalFee:y,estimateGasPrices:t,feeOptionKey:M,from:N,isEIP1559Compatible:u,provider:f,recipient:b,transaction:{nonce:O.nonce,type:B}})}let V=Hn(H,n);if(!V)throw new T.SwapKitError("toolbox_evm_no_contract_address");let c=P({chain:n,provider:f}),k=Z?await gt({chain:n,contractAddress:V,from:N,provider:f}):l;if(Z&&k<=0n)throw new T.SwapKitError({errorKey:"toolbox_sweep_amount_too_low",info:{asset:H.toString(),balance:k.toString()}});return c({abi:g.erc20ABI,contractAddress:V,funcName:"transfer",funcParams:[b,k],txOverrides:{from:N,gasLimit:W,gasPrice:C,maxFeePerGas:L,maxPriorityFeePerGas:q}})}}function Pt({provider:n,signer:y,chain:t}){return async function({assetAddress:f,spenderAddress:o,amount:U,from:H}){let A=await y?.getAddress()||H,D=P({chain:t,provider:n}),b=["bigint","number"].includes(typeof U)?U:U||on;return await D({abi:g.erc20ABI,contractAddress:f,funcName:"approve",funcParams:[o,BigInt(b)],txOverrides:{from:A}})}}function ht({provider:n,isEIP1559Compatible:y=!0,chain:t}){return async function({feeOption:f=T.FeeOption.Fast,...o}){let H=await h({chain:t,isEIP1559Compatible:y,provider:n})(),A=await n.estimateGas(o),D=T.AssetValue.from({chain:t}),{gasPrice:b,maxFeePerGas:Y,maxPriorityFeePerGas:M}=H[f];if(!y&&b)return D.set(T.SwapKitNumber.fromBigInt(b*A,D.decimal));if(Y&&M){let W=(Y+M)*A;return D.set(T.SwapKitNumber.fromBigInt(W,D.decimal))}throw new T.SwapKitError("toolbox_evm_no_gas_price")}}var T,g,j,oy,on,_t,Gt,Hy,zt,$n=(n)=>n.type===4||(n.authorizations?.length??0)>0,Ay=(n)=>!$n(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),My=(n,y=!0)=>{if($n(n))return"eip7702";if(Ay(n)||y)return"eip1559";return"legacy"};var Qn=_(()=>{wn();fn();T=require("@swapkit/helpers"),g=require("@swapkit/helpers/contracts"),j=require("ethers"),oy=require("ts-pattern"),on=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");_t=["payable","nonpayable"];Gt=T.EVMChains.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),Hy={...Gt,[T.Chain.Optimism]:"0x4200000000000000000000000000000000000042",[T.Chain.Polygon]:"0x0000000000000000000000000000000000001010"},zt=[T.Chain.Arbitrum,T.Chain.Aurora,T.Chain.Base,T.Chain.Optimism,T.Chain.Robinhood]});var cy;var Fy=_(()=>{cy=[{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:[{internalType:"uint256",name:"_gasUsed",type:"uint256"}],name:"getOperatorFee",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 Yn(n){return new Xn.Contract(mt,cy,n)}function Iy(n){return async function(){let t=Yn(n);if(t&&"l1BaseFee"in t)return await t?.l1BaseFee();return}}function Ey(n){return async function({from:t,to:u,nonce:f,...o}){let{Transaction:U}=await import("ethers");if(!u)throw new X.SwapKitError("toolbox_evm_invalid_transaction",{error:"Missing to address"});return U.from({...o,authorizationList:o.authorizationList,nonce:f??(t?await n.getTransactionCount(t):0),to:u}).unsignedSerialized}}function by(n,y){return async function(u){let f=Yn(n),o=u.chainId??y??(await n.getNetwork()).chainId,U=await Ey(n)({...u,chainId:o});if(f&&"getL1Fee"in f){let H=await f.getL1Fee(U);if(typeof H!=="bigint")throw new X.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack L1 fee"}});return H}return}}function Dy(n){return async function(t){let u=Yn(n);if(u&&"getOperatorFee"in u){let f=await u.getOperatorFee(t);if(typeof f!=="bigint")throw new X.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Invalid OP-stack operator fee"}});return f}return 0n}}function vt(n,y){let t=by(n,y),u=Dy(n);return async function(o){if(o.gasLimit===void 0||o.gasLimit===null)throw new X.SwapKitError({errorKey:"toolbox_evm_invalid_transaction",info:{error:"Missing gas limit for OP-stack fee estimation"}});let[U,H]=await Promise.all([t(o),u(BigInt(o.gasLimit.toString()))]);return(U??0n)+H}}function gy(n){return async function(t){let f=(await n.getFeeData()).gasPrice??0n,o=await n.estimateGas(t);return f*o}}function dt(n){return async function(t){let u=await by(n)(t)??0n,f=await gy(n)(t),o=t.gasLimit??await n.estimateGas(t),U=await Dy(n)(BigInt(o.toString()));return u+f+U}}function it(n){return async function(t){let u=Yn(n),f=await Ey(n)(t);if(u&&"getL1GasUsed"in u)return u.getL1GasUsed(f)}}function st(n){return async function(){try{let{maxFeePerGas:t,maxPriorityFeePerGas:u,gasPrice:f}=await n.getFeeData(),o=await Iy(n)(),U=f;if(!(t&&u))throw new X.SwapKitError("toolbox_evm_no_fee_data");return{[X.FeeOption.Average]:{gasPrice:U,l1GasPrice:o,maxFeePerGas:t,maxPriorityFeePerGas:u},[X.FeeOption.Fast]:{gasPrice:X.applyFeeMultiplierToBigInt(U,X.FeeOption.Fast),l1GasPrice:X.applyFeeMultiplierToBigInt(o||0n,X.FeeOption.Fast),maxFeePerGas:t,maxPriorityFeePerGas:X.applyFeeMultiplierToBigInt(u,X.FeeOption.Fast)},[X.FeeOption.Fastest]:{gasPrice:X.applyFeeMultiplierToBigInt(U,X.FeeOption.Fastest),l1GasPrice:X.applyFeeMultiplierToBigInt(o||0n,X.FeeOption.Fastest),maxFeePerGas:t,maxPriorityFeePerGas:X.applyFeeMultiplierToBigInt(u,X.FeeOption.Fastest)}}}catch(t){throw new X.SwapKitError("toolbox_evm_gas_estimation_error",{error:t.msg??t.toString()})}}}function s(n){return function({provider:t,...u}){let f=An.match(u).with({phrase:An.P.string},({phrase:M})=>Xn.HDNodeWallet.fromPhrase(M).connect(t)).with({signer:An.P.any},({signer:M})=>M).otherwise(()=>{return}),o=Iy(t),U=BigInt(X.getChainConfig(n).chainId),H=by(t,U),A=vt(t,U),D=Dy(t),b=n===X.Chain.Optimism?st(t):void 0;return{...v({chain:n,estimateAdditionalFee:A,estimateGasPrices:b,provider:t,signer:f}),estimateL1Gas:it(t),estimateL1GasCost:H,estimateL2GasCost:gy(t),estimateOperatorFee:D,estimateTotalGasCost:dt(t),getBalance:un(n).getBalance,getL1GasPrice:o}}}var X,Xn,An,mt="0x420000000000000000000000000000000000000f",Zn;var Bn=_(()=>{wn();Fy();Qn();X=require("@swapkit/helpers"),Xn=require("ethers"),An=require("ts-pattern");Zn=s(X.Chain.Optimism)});function xn(n){let y=R(x.Chain.Ethereum)(n);async function t(u,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",o="aggregate",U=x.FeeOption.Fast){let H=await y.createContractTxObject({abi:zy,contractAddress:f,funcName:o,funcParams:[u]});return y.sendTransaction({...H,feeOptionKey:U})}return{...y,multicall:t}}function R(n){return function({provider:t,...u}){let f=yy(n),o=Mn.match(u).with({phrase:Mn.P.string},({phrase:H})=>Py.HDNodeWallet.fromPhrase(H).connect(t)).with({signer:Mn.P.any},({signer:H})=>H).otherwise(()=>{return});return v({chain:n,isEIP1559Compatible:f,provider:t,signer:o})}}var x,Py,Mn,Jn,qn,Rn,Ln,kn,jn,Nn,hy,_n,Gn,zn,pn,Cn,On,Vn,Sn,Kn,ln,cn,bn,Fn,In;var wy=_(()=>{py();fn();Qn();Bn();x=require("@swapkit/helpers"),Py=require("ethers"),Mn=require("ts-pattern");Jn=R(x.Chain.Adi),qn=R(x.Chain.Arbitrum),Rn=R(x.Chain.Aurora),Ln=R(x.Chain.Avalanche),kn=s(x.Chain.Base),jn=R(x.Chain.Berachain),Nn=R(x.Chain.BinanceSmartChain),hy=R(x.Chain.Botanix),_n=R(x.Chain.Core),Gn=R(x.Chain.Corn),zn=R(x.Chain.Cronos),pn=R(x.Chain.Gnosis),Cn=R(x.Chain.Robinhood),On=R(x.Chain.Hyperevm),Vn=R(x.Chain.Linea),Sn=R(x.Chain.Polygon),Kn=R(x.Chain.MegaETH),ln=R(x.Chain.Monad),cn=R(x.Chain.Plasma),bn=R(x.Chain.Sonic),Fn=s(x.Chain.Unichain),In=R(x.Chain.XLayer)});var rt={};hn(rt,{validateEVMAddress:()=>Tn,toChecksumAddress:()=>Cy,isStateChangingCall:()=>Uy,isEIP7702Transaction:()=>$n,isEIP1559Transaction:()=>Ay,isBrowserProvider:()=>d,getTokenAddress:()=>Hn,getEvmToolboxAsync:()=>vy,getEvmToolbox:()=>Wy,getEstimateGasPrices:()=>h,getEVMTxType:()=>My,getEIP1193SendTransaction:()=>i,getCreateContractTxObject:()=>P,getCreateContract:()=>Ty,getChecksumAddressFromAsset:()=>Oy,createOPStackToolbox:()=>s,createContract:()=>Un,XLayerToolbox:()=>In,UNIToolbox:()=>Fn,SONICToolbox:()=>bn,PLASMAToolbox:()=>cn,OPToolbox:()=>Zn,MONADToolbox:()=>ln,MEGAETHToolbox:()=>Kn,MAX_APPROVAL:()=>on,MATICToolbox:()=>Sn,LINEAToolbox:()=>Vn,HYPEREVMToolbox:()=>On,HOODToolbox:()=>Cn,GNOToolbox:()=>pn,ETHToolbox:()=>xn,ContractAddress:()=>Hy,CROToolbox:()=>zn,CORNToolbox:()=>Gn,COREToolbox:()=>_n,BotanixToolbox:()=>hy,BaseEVMToolbox:()=>v,BSCToolbox:()=>Nn,BERAToolbox:()=>jn,BASEToolbox:()=>kn,AVAXToolbox:()=>Ln,AURORAToolbox:()=>Rn,ARBToolbox:()=>qn,ADIToolbox:()=>Jn});function Wy(n,y){return my.match(n).with(J.Chain.Adi,()=>Jn(y)).with(J.Chain.Arbitrum,()=>qn(y)).with(J.Chain.Aurora,()=>Rn(y)).with(J.Chain.Avalanche,()=>Ln(y)).with(J.Chain.Base,()=>kn(y)).with(J.Chain.Berachain,()=>jn(y)).with(J.Chain.BinanceSmartChain,()=>Nn(y)).with(J.Chain.Botanix,()=>bn(y)).with(J.Chain.Core,()=>_n(y)).with(J.Chain.Corn,()=>Gn(y)).with(J.Chain.Cronos,()=>zn(y)).with(J.Chain.Ethereum,()=>xn(y)).with(J.Chain.Gnosis,()=>pn(y)).with(J.Chain.Hyperevm,()=>On(y)).with(J.Chain.Linea,()=>Vn(y)).with(J.Chain.MegaETH,()=>Kn(y)).with(J.Chain.Monad,()=>ln(y)).with(J.Chain.Optimism,()=>Zn(y)).with(J.Chain.Plasma,()=>cn(y)).with(J.Chain.Polygon,()=>Sn(y)).with(J.Chain.Robinhood,()=>Cn(y)).with(J.Chain.Sonic,()=>bn(y)).with(J.Chain.Unichain,()=>Fn(y)).with(J.Chain.XLayer,()=>In(y)).exhaustive()}async function vy(n,y){let t={...y,provider:y?.provider||an(n)};return Wy(n,t)}var J,my;var dy=_(()=>{fn();wy();Bn();J=require("@swapkit/helpers"),my=require("ts-pattern");Qn();wy();Bn()});var iy;var sy=_(()=>{((t)=>{t.Test="goerli";t.Main="homestead"})(iy||={})});var at={};hn(at,{validateEVMAddress:()=>Tn,validateAuthorizations:()=>uy,validateAuthorization:()=>_y,toHexString:()=>G,toChecksumAddress:()=>Cy,signAuthorization:()=>ty,parseEIP712FromEVMTx:()=>Nt,isStateChangingCall:()=>Uy,isEIP7702Transaction:()=>$n,isEIP1559Transaction:()=>Ay,isBrowserProvider:()=>d,getTokenAddress:()=>Hn,getProviderSync:()=>Ny,getProvider:()=>Lt,getNetworkParams:()=>ny,getIsEIP1559Compatible:()=>yy,getFallbackProvider:()=>an,getEvmToolboxAsync:()=>vy,getEvmToolbox:()=>Wy,getEvmApi:()=>un,getEstimateGasPrices:()=>h,getEVMTxType:()=>My,getEIP1193SendTransaction:()=>i,getCreateContractTxObject:()=>P,getCreateContract:()=>Ty,getChecksumAddressFromAsset:()=>Oy,createOPStackToolbox:()=>s,createCustomEvmApi:()=>Rt,createContract:()=>Un,buildEIP712DomainType:()=>Gy,XLayerToolbox:()=>In,UNIToolbox:()=>Fn,SONICToolbox:()=>bn,PLASMAToolbox:()=>cn,OPToolbox:()=>Zn,MONADToolbox:()=>ln,MEGAETHToolbox:()=>Kn,MAX_APPROVAL:()=>on,MATICToolbox:()=>Sn,LINEAToolbox:()=>Vn,HYPEREVMToolbox:()=>On,HOODToolbox:()=>Cn,GNOToolbox:()=>pn,EthNetwork:()=>iy,ETHToolbox:()=>xn,ContractAddress:()=>Hy,CROToolbox:()=>zn,CORNToolbox:()=>Gn,COREToolbox:()=>_n,BotanixToolbox:()=>hy,BaseEVMToolbox:()=>v,BSCToolbox:()=>Nn,BERAToolbox:()=>jn,BASEToolbox:()=>kn,AVAXToolbox:()=>Ln,AURORAToolbox:()=>Rn,ARBToolbox:()=>qn,ADIToolbox:()=>Jn});module.exports=Ly(at);var ey=_(()=>{wn();fn();dy();sy()});function n0({builder:n,grouping:y="na",orders:t}){return{builder:n,grouping:y,orders:t,type:"order"}}function y0({cancels:n}){return{cancels:n,type:"cancel"}}function t0({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function u0({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function f0({modifies:n}){return{modifies:n,type:"batchModify"}}function o0({asset:n,isCross:y,leverage:t}){return{asset:n,isCross:y,leverage:t,type:"updateLeverage"}}function T0({asset:n,isBuy:y,ntli:t}){return{asset:n,isBuy:y,ntli:t,type:"updateIsolatedMargin"}}function U0({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function H0({time:n}){return{time:n,type:"scheduleCancel"}}function A0({amount:n,hyperliquidChain:y,nonce:t,signatureChainId:u,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:t,signatureChainId:u,toPerp:f,type:"usdClassTransfer"}}function M0({amount:n,destination:y,destinationDex:t,fromSubAccount:u,hyperliquidChain:f,nonce:o,signatureChainId:U,sourceDex:H,token:A}){return{amount:n,destination:y,destinationDex:t,fromSubAccount:u,hyperliquidChain:f,nonce:o,signatureChainId:U,sourceDex:H,token:A,type:"sendAsset"}}function b0({agentAddress:n,agentName:y,hyperliquidChain:t,nonce:u,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:t,nonce:u,signatureChainId:f,type:"approveAgent"}}function D0({builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:u,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:u,signatureChainId:f,type:"approveBuilderFee"}}function w0({hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:u,validator:f,wei:o}){return{hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:u,type:"tokenDelegate",validator:f,wei:o}}function z(...n){let y=n.reduce((f,o)=>f+o.length,0),t=new Uint8Array(y),u=0;for(let f of n)t.set(f,u),u+=f.length;return t}function Z0(n,y,t){if(t<y)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+y,t]);if(t<=65535)return new Uint8Array([n+y+1,t>>8,t&255]);return new Uint8Array([n+y+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function I(n,y){let t=new Uint8Array(y),u=n;for(let f=y-1;f>=0;f-=1)t[f]=Number(u&0xffn),u>>=8n;return t}function ry(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return z(new Uint8Array([205]),I(n,2));if(n<=0xffffffffn)return z(new Uint8Array([206]),I(n,4));return z(new Uint8Array([207]),I(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return z(new Uint8Array([209]),I(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return z(new Uint8Array([210]),I(BigInt.asUintN(32,n),4));return z(new Uint8Array([211]),I(BigInt.asUintN(64,n),8))}function yt(n){let y=Y0.encode(n);if(y.length<32)return z(new Uint8Array([160+y.length]),y);return z(Z0(217,0,y.length),y)}function B0(n){let y=n.map((u)=>Qy(u)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return z(t,...y)}function x0(n){let y=Object.entries(n).filter(([,u])=>typeof u<"u"),t=y.length<16?new Uint8Array([128+y.length]):y.length<=65535?new Uint8Array([222,y.length>>8,y.length&255]):new Uint8Array([223,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return z(t,...y.flatMap(([u,f])=>[yt(u),Qy(f)]))}function Qy(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return yt(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new En.SwapKitError("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return ry(BigInt(n))}if(typeof n==="bigint")return ry(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return z(y,n)}if(Array.isArray(n))return B0(n);if(typeof n==="object")return x0(n);throw new En.SwapKitError("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function J0(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new En.SwapKitError("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(y.length/2);for(let u=0;u<y.length;u+=2)t[u/2]=Number.parseInt(y.slice(u,u+2),16);return t}function tt(n){return{domain:W0,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...$0.Agent]}}}function ut(n){let y=X0[n.type],t=Q0[n.type],{type:u,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:ay,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||nt},primaryType:y,types:{[y]:t}}}function ft(n){let y=gn.Signature.from(n);return{r:y.r,s:y.s,v:y.v}}function ot(n,y,{expiresAfter:t,vaultAddress:u}={}){let f=Qy(n),o=I(BigInt(y),8),U=u?z(new Uint8Array([1]),J0(u.toLowerCase())):new Uint8Array([0]),H=typeof t==="number"?z(new Uint8Array([0]),I(BigInt(t),8)):new Uint8Array;return gn.keccak256(z(f,o,U,H))}function Tt(n){let y=n.hyperliquidChain||nt;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var En,gn,ay="0x0000000000000000000000000000000000000000",W0,$0,nt="Mainnet",Q0,X0,Y0;var Ut=_(()=>{En=require("@swapkit/helpers"),gn=require("ethers"),W0={chainId:1337,name:"Exchange",verifyingContract:ay,version:"1"},$0={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},Q0={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"}]},X0={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},Y0=new TextEncoder});function S(n,y){if(!Zy(n))throw new Q.SwapKitError(y,{address:n});return n.toLowerCase()}async function m(n){let y=await Pn();return Q.RequestClient.post(`${y}/info`,{json:n})}function _0({dex:n,user:y}){return m({...n?{dex:n}:{},type:"clearinghouseState",user:S(y,"helpers_invalid_params")})}function Dt({user:n}){return m({type:"spotClearinghouseState",user:S(n,"helpers_invalid_params")})}function G0({dex:n,user:y}){return m({...n?{dex:n}:{},type:"openOrders",user:S(y,"helpers_invalid_params")})}function z0({dex:n,user:y}){return m({...n?{dex:n}:{},type:"frontendOpenOrders",user:S(y,"helpers_invalid_params")})}function p0({oidOrCloid:n,user:y}){return m({oid:n,type:"orderStatus",user:S(y,"helpers_invalid_params")})}function C0({aggregateByTime:n,user:y}){return m({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:S(y,"helpers_invalid_params")})}function O0({aggregateByTime:n,endTime:y,startTime:t,user:u}){return m({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:t,type:"userFillsByTime",user:S(u,"helpers_invalid_params")})}function Ht({coin:n,token:y,value:t,spotMeta:u}){if(!t||Number(t)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,o=u?.tokens?.find((A)=>A.name===n||y!==void 0&&A.index===Number(y)),U=o?.weiDecimals??q0[f]??bt,H=o?`${K}.${f}-${o.name}:${o.tokenId}`:`${K}.${f}`;return new Q.AssetValue({decimal:U,identifier:H,value:t})}function V0(n){let y=new Map;for(let t of n){let u=t.toString({includeSynthProtocol:!0}),f=y.get(u);y.set(u,f?f.add(t):t)}if(![...y.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=Q.AssetValue.from({chain:K,value:0});y.set(t.toString({includeSynthProtocol:!0}),t)}return[...y.values()]}async function Pn(){try{return await Q.getRPCUrl(K)}catch{let[n]=Q.getChainConfig(K).rpcUrls;if(!n)throw new Q.SwapKitError("helpers_chain_no_public_or_set_rpc_url",{chain:K});return n}}async function Yy(){return`${await Pn()}/exchange`}function S0(n){let y=N0[n.type],{type:t,...u}=n,f=j0[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:k0,version:"1"},message:u,primaryType:y,types:{[y]:f}}}async function wt({action:n,expiresAfter:y,nonce:t,vaultAddress:u}){let f=t||Date.now(),o=u?S(u,"helpers_invalid_params"):void 0,U=await Yy(),H=ot(n,f,{expiresAfter:y,vaultAddress:o});return{action:n,endpoint:U,expiresAfter:y,nonce:f,typedData:tt(H),vaultAddress:o}}async function Wt({action:n,nonce:y,signatureChainId:t}){let u=y||n.nonce||Date.now(),f=t||n.signatureChainId||"0xa4b1",o=Tt({...n,nonce:u,signatureChainId:f});return{action:o,endpoint:await Yy(),nonce:u,typedData:ut(o)}}async function K0({assetValue:n,sender:y,token:t}){let u=await Dt({user:y}),f=(u.spotState?.balances||u.balances||[]).find(({coin:o})=>o&&t.startsWith(`${o}:`))?.total;if(!f||Number(f)<=0)throw new Q.SwapKitError("toolbox_sweep_amount_too_low",{asset:n.toString(),balance:f||"0"});return f}async function Xy({assetValue:n,recipient:y,sender:t,signatureChainId:u,sweep:f,time:o}){let U=S(y,"core_transaction_invalid_recipient_address"),H=S(t,"core_transaction_invalid_sender_address"),A=n.address;if(!A)throw new Q.SwapKitError("helpers_invalid_params",{asset:n.toString(),from:H});let D=f?await K0({assetValue:n,sender:H,token:A}):n.getValue("string"),b=await Yy(),Y=o||Date.now(),M={amount:D,destination:U,hyperliquidChain:R0,signatureChainId:u||L0,time:Y,token:A,type:"spotSend"};return{action:M,endpoint:b,nonce:Y,typedData:S0(M)}}async function At(n){let y=await Q.RequestClient.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(y.status!=="ok")throw new Q.SwapKitError("core_transaction_failed",{response:y});return y}async function l0(n,y){let t=await Pn(),u=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((o)=>setTimeout(o,1000));try{let o=await Q.RequestClient.post(`${t}/info`,{json:{startTime:u,type:"userNonFundingLedgerUpdates",user:n}}),U=Array.isArray(o)?o.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(U?.hash)return U.hash}catch{}}return""}function Zy(n){return n.startsWith("0x")&&Tn(n)}function c0(n){let y=Dn(K),t=n&&"index"in n?n.index||0:0,u=Q.derivationPathToString(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:Q.updateDerivationPath(Q.NetworkDerivationPath[K],{index:t})),f,o=!1;function U(){if(o)return f;return f=e.match(n).with({phrase:e.P.string},({phrase:M})=>{return Mt.HDNodeWallet.fromPhrase(M,void 0,u)}).with({signer:e.P.not(e.P.nullish)},({signer:M})=>M).otherwise(()=>{return}),o=!0,f}async function H(){let M=U();return M?await M.getAddress():""}async function A(M){let W=U();if(!W)throw new Q.SwapKitError("toolbox_hypercore_no_signer");let $=await W.signTypedData(M.typedData.domain,M.typedData.types,M.typedData.message);return{action:M.action,endpoint:M.endpoint,nonce:M.nonce,signature:ft($),..."expiresAfter"in M?{expiresAfter:M.expiresAfter}:{},..."vaultAddress"in M?{vaultAddress:M.vaultAddress}:{}}}async function D(M){let W=S(M,"helpers_invalid_params");try{let $=await Pn(),[Z,B,L]=await Promise.all([Q.RequestClient.post(`${$}/info`,{json:{type:"spotClearinghouseState",user:W}}),Q.RequestClient.post(`${$}/info`,{json:{type:"clearinghouseState",user:W}}),Q.RequestClient.post(`${$}/info`,{json:{type:"spotMeta"}})]),q=(Z.spotState?.balances||Z.balances||[]).map(({coin:O,token:l,total:N})=>Ht({coin:O,spotMeta:L,token:l,value:N})).filter((O)=>!!O),C=Ht({coin:"USDC",spotMeta:L,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return V0(C?[...q,C]:q)}catch{return y(W)}}async function b({sweep:M,...W}){let $=U();if(!$)throw new Q.SwapKitError("toolbox_hypercore_no_signer");let Z=W.sender||await $.getAddress(),B=await Xy({...W,feeRate:0,sender:Z,sweep:M}),L=await A(B);return await At(L),l0(Z,B.nonce)}function Y(){return Q.AssetValue.from({chain:K,value:0})}return{broadcastTransaction:At,createL1ActionRequest:wt,createTransaction:Xy,createUserSignedActionRequest:Wt,estimateTransactionFee:Y,getAddress:H,getBalance:D,getState:{clearinghouse:_0,frontendOpenOrders:z0,openOrders:G0,orderStatus:p0,spotClearinghouse:Dt,userFills:C0,userFillsByTime:O0},signTransaction:A,transfer:b,validateAddress:Zy}}var Q,Mt,e,K,bt,q0,R0="Mainnet",L0="0xa4b1",k0="0x0000000000000000000000000000000000000000",j0,N0;var $t=_(()=>{ey();vn();Ut();Q=require("@swapkit/helpers"),Mt=require("ethers"),e=require("ts-pattern"),K=Q.Chain.Hype,{baseDecimal:bt}=Q.getChainConfig(K),q0={HYPE:bt,USDC:6,USDT:6},j0={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},N0={spotSend:"HyperliquidTransaction:SpotSend"}});var F0={};hn(F0,{validateHyperCoreAddress:()=>Zy,getHyperCoreToolbox:()=>c0,createUserSignedActionRequest:()=>Wt,createTransaction:()=>Xy,createL1ActionRequest:()=>wt,buildUsdClassTransferAction:()=>A0,buildUpdateLeverageAction:()=>o0,buildUpdateIsolatedMarginAction:()=>T0,buildTopUpIsolatedOnlyMarginAction:()=>U0,buildTokenDelegateAction:()=>w0,buildSendAssetAction:()=>M0,buildScheduleCancelAction:()=>H0,buildOrderAction:()=>n0,buildModifyAction:()=>u0,buildCancelByCloidAction:()=>t0,buildCancelAction:()=>y0,buildBatchModifyAction:()=>f0,buildApproveBuilderFeeAction:()=>D0,buildApproveAgentAction:()=>b0});module.exports=Ly(F0);var I0=_(()=>{$t()});I0();
@@ -1 +1 @@
1
- import"../../chunk-44m22jy1.js";import{q as W}from"../../chunk-z61r1327.js";import{fa as Q}from"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";function Fe({builder:e,grouping:n="na",orders:t}){return{builder:e,grouping:n,orders:t,type:"order"}}function Me({cancels:e}){return{cancels:e,type:"cancel"}}function Ne({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function ve({oid:e,order:n}){return{oid:e,order:n,type:"modify"}}function $e({modifies:e}){return{modifies:e,type:"batchModify"}}function Le({asset:e,isCross:n,leverage:t}){return{asset:e,isCross:n,leverage:t,type:"updateLeverage"}}function Ee({asset:e,isBuy:n,ntli:t}){return{asset:e,isBuy:n,ntli:t,type:"updateIsolatedMargin"}}function ze({asset:e,leverage:n}){return{asset:e,leverage:n,type:"topUpIsolatedOnlyMargin"}}function Ve({time:e}){return{time:e,type:"scheduleCancel"}}function je({amount:e,hyperliquidChain:n,nonce:t,signatureChainId:r,toPerp:i}){return{amount:e,hyperliquidChain:n,nonce:t,signatureChainId:r,toPerp:i,type:"usdClassTransfer"}}function Qe({amount:e,destination:n,destinationDex:t,fromSubAccount:r,hyperliquidChain:i,nonce:o,signatureChainId:a,sourceDex:p,token:d}){return{amount:e,destination:n,destinationDex:t,fromSubAccount:r,hyperliquidChain:i,nonce:o,signatureChainId:a,sourceDex:p,token:d,type:"sendAsset"}}function We({agentAddress:e,agentName:n,hyperliquidChain:t,nonce:r,signatureChainId:i}){return{agentAddress:e,agentName:n,hyperliquidChain:t,nonce:r,signatureChainId:i,type:"approveAgent"}}function Ke({builder:e,hyperliquidChain:n,maxFeeRate:t,nonce:r,signatureChainId:i}){return{builder:e,hyperliquidChain:n,maxFeeRate:t,nonce:r,signatureChainId:i,type:"approveBuilderFee"}}function Ye({hyperliquidChain:e,isUndelegate:n,nonce:t,signatureChainId:r,validator:i,wei:o}){return{hyperliquidChain:e,isUndelegate:n,nonce:t,signatureChainId:r,type:"tokenDelegate",validator:i,wei:o}}import{AssetValue as O,Chain as ye,derivationPathToString as ue,getChainConfig as K,getRPCUrl as le,NetworkDerivationPath as fe,RequestClient as h,SwapKitError as A,updateDerivationPath as ge}from"@swapkit/helpers";import{HDNodeWallet as Ae}from"ethers";import{match as me,P as B}from"ts-pattern";import{SwapKitError as _}from"@swapkit/helpers";import{keccak256 as ee,Signature as ne}from"ethers";var I="0x0000000000000000000000000000000000000000",te={chainId:1337,name:"Exchange",verifyingContract:I,version:"1"},re={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},F="Mainnet",ie={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"}]},oe={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},se=new TextEncoder;function c(...e){let n=e.reduce((i,o)=>i+o.length,0),t=new Uint8Array(n),r=0;for(let i of e)t.set(i,r),r+=i.length;return t}function ae(e,n,t){if(t<n)return new Uint8Array([e+t]);if(t<=255)return new Uint8Array([e+n,t]);if(t<=65535)return new Uint8Array([e+n+1,t>>8,t&255]);return new Uint8Array([e+n+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function g(e,n){let t=new Uint8Array(n),r=e;for(let i=n-1;i>=0;i-=1)t[i]=Number(r&0xffn),r>>=8n;return t}function q(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 c(new Uint8Array([205]),g(e,2));if(e<=0xffffffffn)return c(new Uint8Array([206]),g(e,4));return c(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 c(new Uint8Array([209]),g(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return c(new Uint8Array([210]),g(BigInt.asUintN(32,e),4));return c(new Uint8Array([211]),g(BigInt.asUintN(64,e),8))}function M(e){let n=se.encode(e);if(n.length<32)return c(new Uint8Array([160+n.length]),n);return c(ae(217,0,n.length),n)}function pe(e){let n=e.map((r)=>D(r)),t=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 c(t,...n)}function ce(e){let n=Object.entries(e).filter(([,r])=>typeof r<"u"),t=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return c(t,...n.flatMap(([r,i])=>[M(r),D(i)]))}function D(e){if(e===null)return new Uint8Array([192]);if(typeof e==="boolean")return new Uint8Array([e?195:194]);if(typeof e==="string")return M(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new _("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return q(BigInt(e))}if(typeof e==="bigint")return q(e);if(e instanceof Uint8Array){let n=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 c(n,e)}if(Array.isArray(e))return pe(e);if(typeof e==="object")return ce(e);throw new _("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function de(e){let n=e.startsWith("0x")?e.slice(2):e;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new _("helpers_invalid_params",{hexValue:e});let t=new Uint8Array(n.length/2);for(let r=0;r<n.length;r+=2)t[r/2]=Number.parseInt(n.slice(r,r+2),16);return t}function N(e){return{domain:te,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...re.Agent]}}}function v(e){let n=oe[e.type],t=ie[e.type],{type:r,...i}=e;return{domain:{chainId:Number.parseInt(i.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:I,version:"1"},message:{...i,hyperliquidChain:i.hyperliquidChain||F},primaryType:n,types:{[n]:t}}}function $(e){let n=ne.from(e);return{r:n.r,s:n.s,v:n.v}}function L(e,n,{expiresAfter:t,vaultAddress:r}={}){let i=D(e),o=g(BigInt(n),8),a=r?c(new Uint8Array([1]),de(r.toLowerCase())):new Uint8Array([0]),p=typeof t==="number"?c(new Uint8Array([0]),g(BigInt(t),8)):new Uint8Array;return ee(c(i,o,a,p))}function E(e){let n=e.hyperliquidChain||F;switch(e.type){case"approveAgent":return{...e,agentAddress:e.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...e,builder:e.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...e,destination:e.destination.toLowerCase(),fromSubAccount:e.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...e,hyperliquidChain:n,validator:e.validator.toLowerCase()};case"usdClassTransfer":return{...e,hyperliquidChain:n};default:return e}}var l=ye.Hype,{baseDecimal:Y}=K(l),Ce={HYPE:Y,USDC:6,USDT:6},he="Mainnet",He="0xa4b1",Se="0x0000000000000000000000000000000000000000",xe={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},Te={spotSend:"HyperliquidTransaction:SpotSend"};function y(e,n){if(!J(e))throw new A(n,{address:e});return e.toLowerCase()}async function m(e){let n=await T();return h.post(`${n}/info`,{json:e})}function we({dex:e,user:n}){return m({...e?{dex:e}:{},type:"clearinghouseState",user:y(n,"helpers_invalid_params")})}function G({user:e}){return m({type:"spotClearinghouseState",user:y(e,"helpers_invalid_params")})}function Ue({dex:e,user:n}){return m({...e?{dex:e}:{},type:"openOrders",user:y(n,"helpers_invalid_params")})}function be({dex:e,user:n}){return m({...e?{dex:e}:{},type:"frontendOpenOrders",user:y(n,"helpers_invalid_params")})}function _e({oidOrCloid:e,user:n}){return m({oid:e,type:"orderStatus",user:y(n,"helpers_invalid_params")})}function De({aggregateByTime:e,user:n}){return m({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:y(n,"helpers_invalid_params")})}function Be({aggregateByTime:e,endTime:n,startTime:t,user:r}){return m({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof n==="number"?{endTime:n}:{},startTime:t,type:"userFillsByTime",user:y(r,"helpers_invalid_params")})}function z({coin:e,token:n,value:t,spotMeta:r}){if(!t||Number(t)<=0)return null;let i=e?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,o=Ce[i]||Y,a=r?.tokens?.find((d)=>d.name===e||n!==void 0&&d.index===Number(n)),p=a?`${l}.${i}-${a.name}:${a.tokenId}`:`${l}.${i}`;return new O({decimal:o,identifier:p,value:t})}function Oe(e){let n=new Map;for(let t of e){let r=t.toString({includeSynthProtocol:!0}),i=n.get(r);n.set(r,i?i.add(t):t)}if(![...n.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=O.from({chain:l,value:0});n.set(t.toString({includeSynthProtocol:!0}),t)}return[...n.values()]}async function T(){try{return await le(l)}catch{let[e]=K(l).rpcUrls;if(!e)throw new A("helpers_chain_no_public_or_set_rpc_url",{chain:l});return e}}async function k(){return`${await T()}/exchange`}function ke(e){let n=Te[e.type],{type:t,...r}=e,i=xe[t];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Se,version:"1"},message:r,primaryType:n,types:{[n]:i}}}async function Pe({action:e,expiresAfter:n,nonce:t,vaultAddress:r}){let i=t||Date.now(),o=r?y(r,"helpers_invalid_params"):void 0,a=await k(),p=L(e,i,{expiresAfter:n,vaultAddress:o});return{action:e,endpoint:a,expiresAfter:n,nonce:i,typedData:N(p),vaultAddress:o}}async function Re({action:e,nonce:n,signatureChainId:t}){let r=n||e.nonce||Date.now(),i=t||e.signatureChainId||"0xa4b1",o=E({...e,nonce:r,signatureChainId:i});return{action:o,endpoint:await k(),nonce:r,typedData:v(o)}}async function qe({assetValue:e,sender:n,token:t}){let r=await G({user:n}),i=(r.spotState?.balances||r.balances||[]).find(({coin:o})=>o&&t.startsWith(`${o}:`))?.total;if(!i||Number(i)<=0)throw new A("toolbox_sweep_amount_too_low",{asset:e.toString(),balance:i||"0"});return i}async function V({assetValue:e,recipient:n,sender:t,signatureChainId:r,sweep:i,time:o}){let a=y(n,"core_transaction_invalid_recipient_address"),p=y(t,"core_transaction_invalid_sender_address"),d=e.address;if(!d)throw new A("helpers_invalid_params",{asset:e.toString(),from:p});let w=i?await qe({assetValue:e,sender:p,token:d}):e.getValue("string"),U=await k(),S=o||Date.now(),s={amount:w,destination:a,hyperliquidChain:he,signatureChainId:r||He,time:S,token:d,type:"spotSend"};return{action:s,endpoint:U,nonce:S,typedData:ke(s)}}async function j(e){let n=await h.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(n.status!=="ok")throw new A("core_transaction_failed",{response:n});return n}async function Ie(e,n){let t=await T(),r=n-5000;for(let i=0;i<5;i++){if(i>0)await new Promise((o)=>setTimeout(o,1000));try{let o=await h.post(`${t}/info`,{json:{startTime:r,type:"userNonFundingLedgerUpdates",user:e}}),a=Array.isArray(o)?o.find((p)=>p.time&&p.time>=n&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(a?.hash)return a.hash}catch{}}return""}function J(e){return e.startsWith("0x")&&W(e)}function an(e){let n=Q(l),t=e&&"index"in e?e.index||0:0,r=ue(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:ge(fe[l],{index:t})),i,o=!1;function a(){if(o)return i;return i=me(e).with({phrase:B.string},({phrase:s})=>{return Ae.fromPhrase(s,void 0,r)}).with({signer:B.not(B.nullish)},({signer:s})=>s).otherwise(()=>{return}),o=!0,i}async function p(){let s=a();return s?await s.getAddress():""}async function d(s){let u=a();if(!u)throw new A("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:$(f),..."expiresAfter"in s?{expiresAfter:s.expiresAfter}:{},..."vaultAddress"in s?{vaultAddress:s.vaultAddress}:{}}}async function w(s){let u=y(s,"helpers_invalid_params");try{let f=await T(),[H,C,x]=await Promise.all([h.post(`${f}/info`,{json:{type:"spotClearinghouseState",user:u}}),h.post(`${f}/info`,{json:{type:"clearinghouseState",user:u}}),h.post(`${f}/info`,{json:{type:"spotMeta"}})]),P=(H.spotState?.balances||H.balances||[]).map(({coin:b,token:X,total:Z})=>z({coin:b,spotMeta:x,token:X,value:Z})).filter((b)=>!!b),R=z({coin:"USDC",spotMeta:x,value:C.withdrawable||C.marginSummary?.accountValue||C.marginSummary?.totalRawUsd});return Oe(R?[...P,R]:P)}catch{return n(u)}}async function U({sweep:s,...u}){let f=a();if(!f)throw new A("toolbox_hypercore_no_signer");let H=u.sender||await f.getAddress(),C=await V({...u,feeRate:0,sender:H,sweep:s}),x=await d(C);return await j(x),Ie(H,C.nonce)}function S(){return O.from({chain:l,value:0})}return{broadcastTransaction:j,createL1ActionRequest:Pe,createTransaction:V,createUserSignedActionRequest:Re,estimateTransactionFee:S,getAddress:p,getBalance:w,getState:{clearinghouse:we,frontendOpenOrders:be,openOrders:Ue,orderStatus:_e,spotClearinghouse:G,userFills:De,userFillsByTime:Be},signTransaction:d,transfer:U,validateAddress:J}}export{J as validateHyperCoreAddress,an as getHyperCoreToolbox,Re as createUserSignedActionRequest,V as createTransaction,Pe as createL1ActionRequest,je as buildUsdClassTransferAction,Le as buildUpdateLeverageAction,Ee as buildUpdateIsolatedMarginAction,ze as buildTopUpIsolatedOnlyMarginAction,Ye as buildTokenDelegateAction,Qe as buildSendAssetAction,Ve as buildScheduleCancelAction,Fe as buildOrderAction,ve as buildModifyAction,Ne as buildCancelByCloidAction,Me as buildCancelAction,$e as buildBatchModifyAction,Ke as buildApproveBuilderFeeAction,We as buildApproveAgentAction};
1
+ import"../../chunk-44m22jy1.js";import{q as z}from"../../chunk-z61r1327.js";import{fa as q}from"../../chunk-nvfkjbyq.js";import"../../chunk-xbdjxeqd.js";function Xn({builder:n,grouping:r="na",orders:t}){return{builder:n,grouping:r,orders:t,type:"order"}}function Yn({cancels:n}){return{cancels:n,type:"cancel"}}function Zn({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function kn({oid:n,order:r}){return{oid:n,order:r,type:"modify"}}function Bn({modifies:n}){return{modifies:n,type:"batchModify"}}function Rn({asset:n,isCross:r,leverage:t}){return{asset:n,isCross:r,leverage:t,type:"updateLeverage"}}function Sn({asset:n,isBuy:r,ntli:t}){return{asset:n,isBuy:r,ntli:t,type:"updateIsolatedMargin"}}function Kn({asset:n,leverage:r}){return{asset:n,leverage:r,type:"topUpIsolatedOnlyMargin"}}function En({time:n}){return{time:n,type:"scheduleCancel"}}function qn({amount:n,hyperliquidChain:r,nonce:t,signatureChainId:y,toPerp:i}){return{amount:n,hyperliquidChain:r,nonce:t,signatureChainId:y,toPerp:i,type:"usdClassTransfer"}}function zn({amount:n,destination:r,destinationDex:t,fromSubAccount:y,hyperliquidChain:i,nonce:e,signatureChainId:o,sourceDex:f,token:c}){return{amount:n,destination:r,destinationDex:t,fromSubAccount:y,hyperliquidChain:i,nonce:e,signatureChainId:o,sourceDex:f,token:c,type:"sendAsset"}}function Vn({agentAddress:n,agentName:r,hyperliquidChain:t,nonce:y,signatureChainId:i}){return{agentAddress:n,agentName:r,hyperliquidChain:t,nonce:y,signatureChainId:i,type:"approveAgent"}}function Pn({builder:n,hyperliquidChain:r,maxFeeRate:t,nonce:y,signatureChainId:i}){return{builder:n,hyperliquidChain:r,maxFeeRate:t,nonce:y,signatureChainId:i,type:"approveBuilderFee"}}function ln({hyperliquidChain:n,isUndelegate:r,nonce:t,signatureChainId:y,validator:i,wei:e}){return{hyperliquidChain:n,isUndelegate:r,nonce:t,signatureChainId:y,type:"tokenDelegate",validator:i,wei:e}}import{AssetValue as j,Chain as xn,derivationPathToString as Hn,getChainConfig as V,getRPCUrl as Un,NetworkDerivationPath as wn,RequestClient as g,SwapKitError as d,updateDerivationPath as dn}from"@swapkit/helpers";import{HDNodeWallet as Tn}from"ethers";import{match as bn,P as _}from"ts-pattern";import{SwapKitError as m}from"@swapkit/helpers";import{keccak256 as nn,Signature as rn}from"ethers";var Q="0x0000000000000000000000000000000000000000",tn={chainId:1337,name:"Exchange",verifyingContract:Q,version:"1"},yn={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},W="Mainnet",en={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"},fn=new TextEncoder;function A(...n){let r=n.reduce((i,e)=>i+e.length,0),t=new Uint8Array(r),y=0;for(let i of n)t.set(i,y),y+=i.length;return t}function on(n,r,t){if(t<r)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+r,t]);if(t<=65535)return new Uint8Array([n+r+1,t>>8,t&255]);return new Uint8Array([n+r+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function w(n,r){let t=new Uint8Array(r),y=n;for(let i=r-1;i>=0;i-=1)t[i]=Number(y&0xffn),y>>=8n;return t}function L(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return A(new Uint8Array([205]),w(n,2));if(n<=0xffffffffn)return A(new Uint8Array([206]),w(n,4));return A(new Uint8Array([207]),w(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return A(new Uint8Array([209]),w(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return A(new Uint8Array([210]),w(BigInt.asUintN(32,n),4));return A(new Uint8Array([211]),w(BigInt.asUintN(64,n),8))}function X(n){let r=fn.encode(n);if(r.length<32)return A(new Uint8Array([160+r.length]),r);return A(on(217,0,r.length),r)}function An(n){let r=n.map((y)=>N(y)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return A(t,...r)}function cn(n){let r=Object.entries(n).filter(([,y])=>typeof y<"u"),t=r.length<16?new Uint8Array([128+r.length]):r.length<=65535?new Uint8Array([222,r.length>>8,r.length&255]):new Uint8Array([223,r.length>>>24&255,r.length>>>16&255,r.length>>>8&255,r.length&255]);return A(t,...r.flatMap(([y,i])=>[X(y),N(i)]))}function N(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return X(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new m("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return L(BigInt(n))}if(typeof n==="bigint")return L(n);if(n instanceof Uint8Array){let r=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return A(r,n)}if(Array.isArray(n))return An(n);if(typeof n==="object")return cn(n);throw new m("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function Cn(n){let r=n.startsWith("0x")?n.slice(2):n;if(r.length%2!==0||/[^a-fA-F0-9]/u.test(r))throw new m("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(r.length/2);for(let y=0;y<r.length;y+=2)t[y/2]=Number.parseInt(r.slice(y,y+2),16);return t}function Y(n){return{domain:tn,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...yn.Agent]}}}function Z(n){let r=pn[n.type],t=en[n.type],{type:y,...i}=n;return{domain:{chainId:Number.parseInt(i.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Q,version:"1"},message:{...i,hyperliquidChain:i.hyperliquidChain||W},primaryType:r,types:{[r]:t}}}function k(n){let r=rn.from(n);return{r:r.r,s:r.s,v:r.v}}function B(n,r,{expiresAfter:t,vaultAddress:y}={}){let i=N(n),e=w(BigInt(r),8),o=y?A(new Uint8Array([1]),Cn(y.toLowerCase())):new Uint8Array([0]),f=typeof t==="number"?A(new Uint8Array([0]),w(BigInt(t),8)):new Uint8Array;return nn(A(i,e,o,f))}function R(n){let r=n.hyperliquidChain||W;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:r};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:r};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:r};case"tokenDelegate":return{...n,hyperliquidChain:r,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:r};default:return n}}var H=xn.Hype,{baseDecimal:P}=V(H),gn={HYPE:P,USDC:6,USDT:6},hn="Mainnet",Dn="0xa4b1",Mn="0x0000000000000000000000000000000000000000",On={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},un={spotSend:"HyperliquidTransaction:SpotSend"};function C(n,r){if(!v(n))throw new d(r,{address:n});return n.toLowerCase()}async function T(n){let r=await O();return g.post(`${r}/info`,{json:n})}function Fn({dex:n,user:r}){return T({...n?{dex:n}:{},type:"clearinghouseState",user:C(r,"helpers_invalid_params")})}function l({user:n}){return T({type:"spotClearinghouseState",user:C(n,"helpers_invalid_params")})}function In({dex:n,user:r}){return T({...n?{dex:n}:{},type:"openOrders",user:C(r,"helpers_invalid_params")})}function mn({dex:n,user:r}){return T({...n?{dex:n}:{},type:"frontendOpenOrders",user:C(r,"helpers_invalid_params")})}function Nn({oidOrCloid:n,user:r}){return T({oid:n,type:"orderStatus",user:C(r,"helpers_invalid_params")})}function _n({aggregateByTime:n,user:r}){return T({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:C(r,"helpers_invalid_params")})}function jn({aggregateByTime:n,endTime:r,startTime:t,user:y}){return T({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof r==="number"?{endTime:r}:{},startTime:t,type:"userFillsByTime",user:C(y,"helpers_invalid_params")})}function S({coin:n,token:r,value:t,spotMeta:y}){if(!t||Number(t)<=0)return null;let i=n?.toUpperCase()||`TOKEN-${r||"UNKNOWN"}`,e=y?.tokens?.find((c)=>c.name===n||r!==void 0&&c.index===Number(r)),o=e?.weiDecimals??gn[i]??P,f=e?`${H}.${i}-${e.name}:${e.tokenId}`:`${H}.${i}`;return new j({decimal:o,identifier:f,value:t})}function $n(n){let r=new Map;for(let t of n){let y=t.toString({includeSynthProtocol:!0}),i=r.get(y);r.set(y,i?i.add(t):t)}if(![...r.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=j.from({chain:H,value:0});r.set(t.toString({includeSynthProtocol:!0}),t)}return[...r.values()]}async function O(){try{return await Un(H)}catch{let[n]=V(H).rpcUrls;if(!n)throw new d("helpers_chain_no_public_or_set_rpc_url",{chain:H});return n}}async function $(){return`${await O()}/exchange`}function Gn(n){let r=un[n.type],{type:t,...y}=n,i=On[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:Mn,version:"1"},message:y,primaryType:r,types:{[r]:i}}}async function Jn({action:n,expiresAfter:r,nonce:t,vaultAddress:y}){let i=t||Date.now(),e=y?C(y,"helpers_invalid_params"):void 0,o=await $(),f=B(n,i,{expiresAfter:r,vaultAddress:e});return{action:n,endpoint:o,expiresAfter:r,nonce:i,typedData:Y(f),vaultAddress:e}}async function Ln({action:n,nonce:r,signatureChainId:t}){let y=r||n.nonce||Date.now(),i=t||n.signatureChainId||"0xa4b1",e=R({...n,nonce:y,signatureChainId:i});return{action:e,endpoint:await $(),nonce:y,typedData:Z(e)}}async function Qn({assetValue:n,sender:r,token:t}){let y=await l({user:r}),i=(y.spotState?.balances||y.balances||[]).find(({coin:e})=>e&&t.startsWith(`${e}:`))?.total;if(!i||Number(i)<=0)throw new d("toolbox_sweep_amount_too_low",{asset:n.toString(),balance:i||"0"});return i}async function K({assetValue:n,recipient:r,sender:t,signatureChainId:y,sweep:i,time:e}){let o=C(r,"core_transaction_invalid_recipient_address"),f=C(t,"core_transaction_invalid_sender_address"),c=n.address;if(!c)throw new d("helpers_invalid_params",{asset:n.toString(),from:f});let u=i?await Qn({assetValue:n,sender:f,token:c}):n.getValue("string"),F=await $(),D=e||Date.now(),p={amount:u,destination:o,hyperliquidChain:hn,signatureChainId:y||Dn,time:D,token:c,type:"spotSend"};return{action:p,endpoint:F,nonce:D,typedData:Gn(p)}}async function E(n){let r=await g.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(r.status!=="ok")throw new d("core_transaction_failed",{response:r});return r}async function Wn(n,r){let t=await O(),y=r-5000;for(let i=0;i<5;i++){if(i>0)await new Promise((e)=>setTimeout(e,1000));try{let e=await g.post(`${t}/info`,{json:{startTime:y,type:"userNonFundingLedgerUpdates",user:n}}),o=Array.isArray(e)?e.find((f)=>f.time&&f.time>=r&&(f.delta?.type==="spotTransfer"||f.delta?.type==="internalTransfer")):void 0;if(o?.hash)return o.hash}catch{}}return""}function v(n){return n.startsWith("0x")&&z(n)}function fr(n){let r=q(H),t=n&&"index"in n?n.index||0:0,y=Hn(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:dn(wn[H],{index:t})),i,e=!1;function o(){if(e)return i;return i=bn(n).with({phrase:_.string},({phrase:p})=>{return Tn.fromPhrase(p,void 0,y)}).with({signer:_.not(_.nullish)},({signer:p})=>p).otherwise(()=>{return}),e=!0,i}async function f(){let p=o();return p?await p.getAddress():""}async function c(p){let x=o();if(!x)throw new d("toolbox_hypercore_no_signer");let U=await x.signTypedData(p.typedData.domain,p.typedData.types,p.typedData.message);return{action:p.action,endpoint:p.endpoint,nonce:p.nonce,signature:k(U),..."expiresAfter"in p?{expiresAfter:p.expiresAfter}:{},..."vaultAddress"in p?{vaultAddress:p.vaultAddress}:{}}}async function u(p){let x=C(p,"helpers_invalid_params");try{let U=await O(),[h,b,M]=await Promise.all([g.post(`${U}/info`,{json:{type:"spotClearinghouseState",user:x}}),g.post(`${U}/info`,{json:{type:"clearinghouseState",user:x}}),g.post(`${U}/info`,{json:{type:"spotMeta"}})]),G=(h.spotState?.balances||h.balances||[]).map(({coin:I,token:s,total:a})=>S({coin:I,spotMeta:M,token:s,value:a})).filter((I)=>!!I),J=S({coin:"USDC",spotMeta:M,value:b.withdrawable||b.marginSummary?.accountValue||b.marginSummary?.totalRawUsd});return $n(J?[...G,J]:G)}catch{return r(x)}}async function F({sweep:p,...x}){let U=o();if(!U)throw new d("toolbox_hypercore_no_signer");let h=x.sender||await U.getAddress(),b=await K({...x,feeRate:0,sender:h,sweep:p}),M=await c(b);return await E(M),Wn(h,b.nonce)}function D(){return j.from({chain:H,value:0})}return{broadcastTransaction:E,createL1ActionRequest:Jn,createTransaction:K,createUserSignedActionRequest:Ln,estimateTransactionFee:D,getAddress:f,getBalance:u,getState:{clearinghouse:Fn,frontendOpenOrders:mn,openOrders:In,orderStatus:Nn,spotClearinghouse:l,userFills:_n,userFillsByTime:jn},signTransaction:c,transfer:F,validateAddress:v}}export{v as validateHyperCoreAddress,fr as getHyperCoreToolbox,Ln as createUserSignedActionRequest,K as createTransaction,Jn as createL1ActionRequest,qn as buildUsdClassTransferAction,Rn as buildUpdateLeverageAction,Sn as buildUpdateIsolatedMarginAction,Kn as buildTopUpIsolatedOnlyMarginAction,ln as buildTokenDelegateAction,zn as buildSendAssetAction,En as buildScheduleCancelAction,Xn as buildOrderAction,kn as buildModifyAction,Zn as buildCancelByCloidAction,Yn as buildCancelAction,Bn as buildBatchModifyAction,Pn as buildApproveBuilderFeeAction,Vn as buildApproveAgentAction};