@swapkit/toolboxes 4.18.0 → 4.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/chunk-3pne8gaa.js +1 -0
  3. package/dist/chunk-44m22jy1.js +1 -0
  4. package/dist/chunk-4q573g5z.js +2 -0
  5. package/dist/chunk-54gntgt1.js +2 -0
  6. package/dist/chunk-ntbvmmch.js +2 -0
  7. package/dist/chunk-r2htb2ce.js +1 -0
  8. package/dist/src/aptos/index.js +1 -1
  9. package/dist/src/cardano/index.cjs +1 -1
  10. package/dist/src/cardano/index.js +1 -1
  11. package/dist/src/cosmos/index.cjs +1 -1
  12. package/dist/src/cosmos/index.js +1 -1
  13. package/dist/src/evm/index.cjs +1 -1
  14. package/dist/src/evm/index.js +1 -1
  15. package/dist/src/hypercore/index.cjs +1 -1
  16. package/dist/src/hypercore/index.js +1 -1
  17. package/dist/src/index.cjs +1 -1
  18. package/dist/src/index.js +1 -1
  19. package/dist/src/near/index.cjs +1 -1
  20. package/dist/src/near/index.js +1 -1
  21. package/dist/src/radix/index.cjs +1 -1
  22. package/dist/src/radix/index.js +1 -1
  23. package/dist/src/ripple/index.cjs +1 -1
  24. package/dist/src/ripple/index.js +1 -1
  25. package/dist/src/solana/index.js +1 -1
  26. package/dist/src/starknet/index.js +1 -1
  27. package/dist/src/stellar/index.js +1 -1
  28. package/dist/src/substrate/index.cjs +1 -1
  29. package/dist/src/substrate/index.js +1 -1
  30. package/dist/src/sui/index.js +1 -1
  31. package/dist/src/ton/index.cjs +1 -1
  32. package/dist/src/ton/index.js +1 -1
  33. package/dist/src/tron/index.cjs +1 -1
  34. package/dist/src/tron/index.js +1 -1
  35. package/dist/src/utxo/index.js +1 -1
  36. package/dist/types/cardano/toolbox.d.ts +1 -1
  37. package/dist/types/cosmos/toolbox/cosmos.d.ts +2 -3
  38. package/dist/types/evm/helpers.d.ts +11 -1
  39. package/dist/types/near/toolbox.d.ts +1 -2
  40. package/dist/types/radix/index.d.ts +2 -2
  41. package/dist/types/ripple/index.d.ts +4 -8
  42. package/dist/types/substrate/substrate.d.ts +1 -1
  43. package/dist/types/ton/toolbox.d.ts +5 -2
  44. package/dist/types/ton/types.d.ts +1 -0
  45. package/package.json +4 -2
@@ -1 +1 @@
1
- var yn=Object.defineProperty;var pn=(e)=>e;function an(e,t){this[e]=pn.bind(null,t)}var ke=(e,t)=>{for(var n in t)yn(e,n,{get:t[n],enumerable:!0,configurable:!0,set:an.bind(t,n)})};var M=(e,t)=>()=>(e&&(t=e(e=0)),t);var oe=((e)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});import{AssetValue as ct,getChainConfig as un}from"@swapkit/helpers";import{SwapKitApi as ln}from"@swapkit/helpers/api";function Po(){function e(){let t=Date.now(),n=_e||t;return _e=n,t>_e?t:n+1}return cn+e().toString(36)}function re(e){return async function(n,o=!0){let r=await ln.getChainBalance({address:n,chain:e,scamFilter:o}),{baseDecimal:i}=un(e),s=r.map(({identifier:a,value:c,decimal:l})=>{return new ct({decimal:l||i,identifier:a,value:c})});if(!s.some((a)=>a.isGasAsset))return[ct.from({chain:e}),...s];return s}}var cn,_e=0;var Oe=M(()=>{cn=typeof process<"u"&&process.pid?process.pid.toString(36):""});function J(e){return{getBalance:re(e)}}function dn(e){return e}var ie=M(()=>{Oe()});import{Chain as C,getChainConfig as Ne,getRPCUrl as Tn,SwapKitError as se}from"@swapkit/helpers";import{getAddress as Tt,Interface as fn,JsonRpcProvider as gn}from"ethers";import{match as ft}from"ts-pattern";function gt(e){return new gn(e)}async function Qe(e,t){return gt(t||await Tn(e))}function E(e){return e>0n?`0x${e.toString(16)}`:"0x0"}function Ve(e){let{explorerUrl:t,chainIdHex:n,rpcUrls:o}=Ne(e);return function(){return e!==C.Ethereum?{...An({chain:e}),blockExplorerUrls:[t],chainId:n,rpcUrls:o}:void 0}}function ze(e){return![C.Adi,C.Arbitrum,C.BinanceSmartChain].includes(e)}function An({chain:e}){let{name:t,nativeCurrency:n,baseDecimal:o}=Ne(e);return ft(e).with(C.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:C.Ethereum}})).with(C.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:C.Ethereum}})).with(C.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:e}})).with(C.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:C.Ethereum}})).with(C.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(C.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(C.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(C.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(C.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:C.Ethereum}})).with(C.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:C.Polygon}})).otherwise(()=>({chainName:t,nativeCurrency:{decimals:o,name:n,symbol:n}}))}async function Fe(e,t){if(!("authorize"in e))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let n={...t,nonce:t.nonce!==void 0?BigInt(t.nonce):void 0};return await e.authorize(n)}function At(e,t){let n=t!==void 0?`index ${t}: `:"",o=(r,i)=>{throw new se({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:r,message:`${n}${i}`}})};ft(e).when(({chainId:r})=>typeof r!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:r})=>!Cn(r),()=>o("address","address must be a valid checksummed address")).when(({nonce:r})=>typeof r!=="bigint"||r<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:r})=>!r,()=>o("signature","signature is required")).when(({signature:r})=>typeof r?.yParity!=="number"||![0,1].includes(r.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:r})=>!dt(r?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:r})=>!dt(r?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Ct(e){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:t})=>e[t]!=null).map(({key:t,type:n})=>({name:t,type:n}))}function Ge(e){return e.charAt(0).toUpperCase()+e.slice(1)}function We(e,t){if(e.isTuple()&&e.components){let n=Ge(e.name);return t[n]=e.components.map((o)=>({name:o.name,type:We(o,t)})),n}if(e.isArray()){let n=e.arrayChildren;if(n?.isTuple()&&n.components){let o=Ge(e.name.replace(/s$/,""));return t[o]=n.components.map((r)=>({name:r.name,type:We(r,t)})),`${o}[]`}return`${n?.type??"bytes"}[]`}return e.type}function $e(e,t){if(typeof e==="bigint")return e;if(t?.isTuple()&&typeof e?.toObject==="function"){let n=e.toObject(),o={};for(let[r,i]of(t.components??[]).entries())o[i.name]=$e(n[i.name]??e[r],i);return o}if(Array.isArray(e)){let n=t?.arrayChildren;return e.map((o)=>$e(o,n??void 0))}return e}function mn({chain:e,abi:t,data:n,to:o}){let i=new fn(t).parseTransaction({data:n});if(!i)throw new se({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let s={},p=Ge(i.name);s[p]=i.fragment.inputs.map((y)=>({name:y.name,type:We(y,s)}));let a={};for(let[y,u]of i.fragment.inputs.entries())a[u.name]=$e(i.args[y],u);let{chainId:c}=Ne(e),l={chainId:Number(c),verifyingContract:Tt(o)},f=Ct(l);return{domain:l,message:a,primaryType:p,types:{EIP712Domain:f,...s}}}function Xe(e,t){if(!Array.isArray(e)||e.length===0)throw new se({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[n,o]of e.entries())if(At(o,n),t!==void 0&&o.chainId!==t)throw new se({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${n}: authorization chainId (${o.chainId}) does not match transaction chainId (${t})`}})}var dt=(e)=>typeof e==="string"&&/^0x[a-fA-F0-9]{64}$/.test(e),Cn=(e)=>{try{return typeof e==="string"&&!!Tt(e)}catch{return!1}};var P=()=>{};var mt;var bt=M(()=>{mt=[{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"aggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes[]",name:"returnData",type:"bytes[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"blockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBlockNumber",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockCoinbase",outputs:[{internalType:"address",name:"coinbase",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockDifficulty",outputs:[{internalType:"uint256",name:"difficulty",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockGasLimit",outputs:[{internalType:"uint256",name:"gaslimit",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"addr",type:"address"}],name:"getEthBalance",outputs:[{internalType:"uint256",name:"balance",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getLastBlockHash",outputs:[{internalType:"bytes32",name:"blockHash",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryAggregate",outputs:[{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bool",name:"requireSuccess",type:"bool"},{components:[{internalType:"address",name:"target",type:"address"},{internalType:"bytes",name:"callData",type:"bytes"}],internalType:"struct Multicall2.Call[]",name:"calls",type:"tuple[]"}],name:"tryBlockAndAggregate",outputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"bytes32",name:"blockHash",type:"bytes32"},{components:[{internalType:"bool",name:"success",type:"bool"},{internalType:"bytes",name:"returnData",type:"bytes"}],internalType:"struct Multicall2.Result[]",name:"returnData",type:"tuple[]"}],stateMutability:"nonpayable",type:"function"}]});import{AssetValue as bn,applyFeeMultiplierToBigInt as S,Chain as B,EVMChains as Hn,FeeOption as d,isGasAsset as xn,SwapKitError as g,SwapKitNumber as ye}from"@swapkit/helpers";import{erc20ABI as I}from"@swapkit/helpers/contracts";import{BrowserProvider as wn,Contract as Ht,getAddress as pe,Interface as xt}from"ethers";import{match as wt}from"ts-pattern";function V({chain:e=B.Ethereum,provider:t,signer:n,isEIP1559Compatible:o=!0}){return{approve:Rn({chain:e,isEIP1559Compatible:o,provider:t,signer:n}),approvedAmount:St({chain:e,provider:t}),broadcastTransaction:t.broadcastTransaction,call:Ee({chain:e,isEIP1559Compatible:o,provider:t,signer:n}),createApprovalTx:Ln({chain:e,provider:t,signer:n}),createContract:je({chain:e,provider:t}),createContractTxObject:W({chain:e,provider:t}),createTransaction:Ye({chain:e,provider:t,signer:n}),createTransferTx:Ye({chain:e,provider:t,signer:n}),EIP1193SendTransaction:F(t),estimateCall:Dt({provider:t,signer:n}),estimateGasLimit:hn({chain:e,provider:t,signer:n}),estimateGasPrices:$({chain:e,isEIP1559Compatible:o,provider:t}),estimateTransactionFee:kn({chain:e,isEIP1559Compatible:o,provider:t}),getAddress:()=>{return n?n.getAddress():void 0},getBalance:J(e).getBalance,getNetworkParams:Ve(e),isApproved:Dn({chain:e,provider:t}),sendTransaction:Rt({chain:e,isEIP1559Compatible:o,provider:t,signer:n}),signAuthorization:qn({signer:n}),signMessage:n?(r)=>n.signMessage(r):void 0,signTypedData:n?({domain:r,types:i,value:s})=>n.signTypedData(r,i,s):void 0,transfer:Bn({chain:e,isEIP1559Compatible:o,provider:t,signer:n}),validateAddress:v}}function v(e){try{return pe(e),!0}catch{return!1}}function z(e){return e instanceof wn}function ee(e,t,n){return new Ht(e,xt.from(t),n)}function je({provider:e}){return function(n,o){return new Ht(n,xt.from(o),e)}}function Ze({abi:e,funcName:t}){let n=e.find((o)=>o.name===t);if(!n)throw new g("toolbox_evm_no_abi_fragment",{funcName:t});return n.stateMutability&&Un.includes(n.stateMutability)}function Ut(e){return pe(e)}function F(e){return function({value:n,...o}){if(!z(e))throw new g("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:r,gasPrice:i,maxFeePerGas:s,maxPriorityFeePerGas:p,...a}=o;return e.send("eth_sendTransaction",[{...a,value:E(BigInt(n||0))}])}}function Mt(e,t){let n=X(e,t);if(n)return pe(n.toLowerCase());throw new g("toolbox_evm_invalid_gas_asset_address")}function X({chain:e,symbol:t,ticker:n},o){try{let r=e===B.BinanceSmartChain&&t==="BNB"&&n==="BNB",i=e===B.Hyperevm&&t==="HYPE"&&n==="HYPE",s=e===o&&t===o&&n===o,p=Sn.includes(e)&&t==="ETH"&&n==="ETH";if(s||r||i||p)return Je[o];return pe(t.slice(n.length+1).replace(/^0X/,""))}catch{return null}}function W({provider:e}){return async({contractAddress:t,abi:n,funcName:o,funcParams:r=[],txOverrides:i})=>ee(t,n,e).getFunction(o).populateTransaction(...r.concat(i).filter((s)=>typeof s<"u"))}function $({chain:e,provider:t,isEIP1559Compatible:n=!0}){return wt(e).with(B.Gnosis,()=>{return async function(){try{let{gasPrice:r,maxPriorityFeePerGas:i}=await t.getFeeData();if(!r||i===null)throw new g("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:S(r,d.Average),maxPriorityFeePerGas:S(i,d.Average)},[d.Fast]:{maxFeePerGas:S(r,d.Fast),maxPriorityFeePerGas:S(i,d.Fast)},[d.Fastest]:{maxFeePerGas:S(r,d.Fastest),maxPriorityFeePerGas:S(i,d.Fastest)}}}catch(r){throw new g("toolbox_evm_gas_estimation_error",{error:r.msg??r.toString()})}}}).with(B.Arbitrum,()=>{return async function(){try{let{gasPrice:r}=await t.getFeeData();if(!r)throw new g("toolbox_evm_no_fee_data");let i=r*12n/10n;return{[d.Average]:{gasPrice:i},[d.Fast]:{gasPrice:S(i,d.Fast)},[d.Fastest]:{gasPrice:S(i,d.Fastest)}}}catch(r){throw new g("toolbox_evm_gas_estimation_error",{error:r.msg??r.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:r,maxPriorityFeePerGas:i,gasPrice:s}=await t.getFeeData();if(n){if(r===null||i===null)throw new g("toolbox_evm_no_fee_data");return{[d.Average]:{maxFeePerGas:r,maxPriorityFeePerGas:i},[d.Fast]:{maxFeePerGas:S(r,d.Fast),maxPriorityFeePerGas:S(i,d.Fast)},[d.Fastest]:{maxFeePerGas:S(r,d.Fastest),maxPriorityFeePerGas:S(i,d.Fastest)}}}if(!s)throw new g("toolbox_evm_no_gas_price");return{[d.Average]:{gasPrice:s},[d.Fast]:{gasPrice:S(s,d.Fast)},[d.Fastest]:{gasPrice:S(s,d.Fastest)}}}catch(r){throw new g("toolbox_evm_gas_estimation_error",{error:r.msg??r.toString()})}}})}function Ee({provider:e,isEIP1559Compatible:t,signer:n,chain:o}){return async function({callProvider:i,contractAddress:s,abi:p,funcName:a,funcParams:c=[],txOverrides:l={},feeOption:f=d.Fast}){let y=i||e;if(!s)throw new g("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let u=Ze({abi:p,funcName:a});if(u&&z(y)&&n){let x=W({chain:o,provider:y}),U=l?.from||await n?.getAddress(),w=await x({abi:p,contractAddress:s,funcName:a,funcParams:c,txOverrides:{...l,from:U}});return F(y)(w)}let T=ee(s,p,y);if(u){if(!n)throw new g("toolbox_evm_no_signer");let x=l?.from||await n.getAddress();if(!x)throw new g("toolbox_evm_no_signer_address");let U=T.connect(n),w=$({chain:o,isEIP1559Compatible:t,provider:e}),{maxFeePerGas:L,maxPriorityFeePerGas:_,gasPrice:G}=(await w())[f],Q=await T.getFunction(a).estimateGas(...c,l),R=await U[a](...c,{...l,gasLimit:Q,gasPrice:G,maxFeePerGas:L,maxPriorityFeePerGas:_,nonce:l?.nonce||await y.getTransactionCount(x)});return typeof R?.hash==="string"?R?.hash:R}let H=await T[a]?.(...c);return typeof H?.hash==="string"?H?.hash:H}}function St({provider:e,chain:t}){return function({assetAddress:o,spenderAddress:r,from:i}){return Ee({chain:t,isEIP1559Compatible:!0,provider:e})({abi:I,contractAddress:o,funcName:"allowance",funcParams:[i,r]})}}function Dn({provider:e,chain:t}){return async function({assetAddress:o,spenderAddress:r,from:i,amount:s=K}){let p=await St({chain:t,provider:e})({assetAddress:o,from:i,spenderAddress:r});return ye.fromBigInt(p).gte(ye.fromBigInt(BigInt(s)))}}function Rn({signer:e,isEIP1559Compatible:t=!0,provider:n,chain:o}){return async function({assetAddress:i,spenderAddress:s,feeOptionKey:p=d.Fast,amount:a,gasLimitFallback:c,from:l,nonce:f}){let y=[s,BigInt(a||K)],u=await e?.getAddress()||l,T={abi:I,contractAddress:i,funcName:"approve",funcParams:y,signer:e,txOverrides:{from:u}};if(z(n)){let x=W({chain:o,provider:n}),U=F(n),w=await x(T);return U(w)}return Ee({chain:o,isEIP1559Compatible:t,provider:n,signer:e})({...T,feeOption:p,funcParams:y,txOverrides:{from:u,gasLimit:c?BigInt(c.toString()):void 0,nonce:f}})}}function Bn({signer:e,isEIP1559Compatible:t=!0,provider:n}){return async function({assetValue:r,memo:i,recipient:s,feeOptionKey:p=d.Fast,sender:a,...c}){let{hexlify:l,toUtf8Bytes:f}=await import("ethers"),y=r.getBaseValue("bigint"),u=r.chain,T=a||await e?.getAddress(),H=Rt({chain:u,isEIP1559Compatible:t,provider:n,signer:e});if(!T)throw new g("toolbox_evm_no_from_address");if(r.isGasAsset){let G={...c,data:l(f(i||"")),feeOptionKey:p,from:T,to:s,value:y};return H(G)}if(!X(r,u))throw new g("toolbox_evm_no_contract_address");let{maxFeePerGas:U,maxPriorityFeePerGas:w,gasPrice:L}=(await $({chain:u,isEIP1559Compatible:t,provider:n})())[p],_=await Ye({chain:u,provider:n,signer:e})({assetValue:r,data:l(f(i||"")),gasPrice:L,maxFeePerGas:U,maxPriorityFeePerGas:w,memo:i,recipient:s,sender:T});return H(_)}}function Dt({provider:e,signer:t}){return function({contractAddress:o,abi:r,funcName:i,funcParams:s=[],txOverrides:p}){if(!o)throw new g("toolbox_evm_no_contract_address");let a=ee(o,r,e);return t?a.connect(t).getFunction(i).estimateGas(...s,p):a.getFunction(i).estimateGas(...s,p)}}function hn({provider:e,signer:t}){return async function({assetValue:o,recipient:r,memo:i,data:s,sender:p,funcName:a,funcParams:c,txOverrides:l}){let f=o.bigIntValue,y=o.isGasAsset?null:X(o,o.chain);if(y&&a)return Dt({provider:e,signer:t})({abi:I,contractAddress:y,funcName:a,funcParams:c,txOverrides:l});let{hexlify:u,toUtf8Bytes:T}=await import("ethers");return e.estimateGas({data:s?s:i?u(T(i)):void 0,from:p,to:r,value:f})}}function qn({signer:e}){if(!e)return;return(t)=>Fe(e,t)}function Rt({provider:e,signer:t,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOptionKey:i=d.Fast,...s}){let{from:p,to:a,data:c,value:l,...f}=s;if(!t)throw new g("toolbox_evm_no_signer");if(!a)throw new g("toolbox_evm_no_to_address");let y={...f,data:c||"0x",from:p,to:a,value:BigInt(l||0)};if(z(e))return F(e)(y);let u=p||await t.getAddress(),T=s.nonce||await e.getTransactionCount(u),H=(await e.getNetwork()).chainId,x=Ie(y,n);if(x==="eip7702")Xe(y.authorizations||[],H);let U=wt(x).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),w={...y,chainId:H,nonce:T,type:U,...x==="eip7702"&&{authorizationList:y.authorizations}},L=$({chain:o,isEIP1559Compatible:n,provider:e}),G=x!=="legacy"&&!(y.maxFeePerGas&&y.maxPriorityFeePerGas)||!y.gasPrice?Object.entries((await L())[i]).reduce((R,[ne,lt])=>({...R,[ne]:E(BigInt(lt))}),{}):{},Q;try{Q=E(y.gasLimit||await e.estimateGas(w)*11n/10n)}catch(R){throw new g("toolbox_evm_error_estimating_gas_limit",{error:R})}try{let R={...w,gasLimit:Q,...G};try{return(await t.sendTransaction(R)).hash}catch{let ne=await t.signTransaction({...R,from:u});return(await e.broadcastTransaction(ne)).hash}}catch(R){throw new g("toolbox_evm_error_sending_transaction",{error:R})}}}function Ye({provider:e,signer:t}){return async function({assetValue:o,memo:r,recipient:i,data:s,sender:p,maxFeePerGas:a,maxPriorityFeePerGas:c,gasPrice:l,...f}){let y=o.getBaseValue("bigint"),u=o.chain,T=p||await t?.getAddress();if(!T)throw new g("toolbox_evm_no_from_address");if(xn(o)){let{hexlify:U,toUtf8Bytes:w}=await import("ethers");return{...f,data:s||U(w(r||"")),from:T,to:i,value:y}}let H=X(o,u);if(!H)throw new g("toolbox_evm_no_contract_address");return W({chain:o.chain,provider:e})({abi:I,contractAddress:H,funcName:"transfer",funcParams:[i,y],txOverrides:{from:T,gasPrice:l,maxFeePerGas:a,maxPriorityFeePerGas:c}})}}function Ln({provider:e,signer:t,chain:n}){return async function({assetAddress:r,spenderAddress:i,amount:s,from:p}){let a=await t?.getAddress()||p,c=W({chain:n,provider:e}),l=["bigint","number"].includes(typeof s)?s:s||K;return await c({abi:I,contractAddress:r,funcName:"approve",funcParams:[i,BigInt(l)],txOverrides:{from:a}})}}function kn({provider:e,isEIP1559Compatible:t=!0,chain:n}){return async function({feeOption:r=d.Fast,...i}){let p=await $({chain:n,isEIP1559Compatible:t,provider:e})(),a=await e.estimateGas(i),c=bn.from({chain:n}),{gasPrice:l,maxFeePerGas:f,maxPriorityFeePerGas:y}=p[r];if(!t&&l)return c.set(ye.fromBigInt(l*a,c.decimal));if(f&&y){let u=(f+y)*a;return c.set(ye.fromBigInt(u,c.decimal))}throw new g("toolbox_evm_no_gas_price")}}var K,Un,Mn,Je,Sn,ae=(e)=>e.type===4||(e.authorizations?.length??0)>0,Pe=(e)=>!ae(e)&&(e.type===2||!!e.maxFeePerGas||!!e.maxPriorityFeePerGas),Ie=(e,t=!0)=>{if(ae(e))return"eip7702";if(Pe(e)||t)return"eip1559";return"legacy"};var ue=M(()=>{ie();P();K=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");Un=["payable","nonpayable"];Mn=Hn.reduce((e,t)=>{return e[t]="0x0000000000000000000000000000000000000000",e},{}),Je={...Mn,[B.Optimism]:"0x4200000000000000000000000000000000000042",[B.Polygon]:"0x0000000000000000000000000000000000001010"},Sn=[B.Arbitrum,B.Aurora,B.Base,B.Optimism]});import{Chain as m,FeeOption as _n}from"@swapkit/helpers";import{HDNodeWallet as On}from"ethers";import{match as Gn,P as Bt}from"ts-pattern";function le(e){let t=b(m.Ethereum)(e);async function n(o,r="0x5ba1e12693dc8f9c48aad8770482f4739beed696",i="aggregate",s=_n.Fast){let p=await t.createContractTxObject({abi:mt,contractAddress:r,funcName:i,funcParams:[o]});return t.sendTransaction({...p,feeOptionKey:s})}return{...t,multicall:n}}function b(e){return function({provider:n,...o}){let r=ze(e),i=Gn(o).with({phrase:Bt.string},({phrase:p})=>On.fromPhrase(p).connect(n)).with({signer:Bt.any},({signer:p})=>p).otherwise(()=>{return});return V({chain:e,isEIP1559Compatible:r,provider:n,signer:i})}}var ce,de,Te,fe,ge,Ae,Ce,ht,me,be,He,xe,we,Ue,Me,Se,De,Re,te,Be,he;var Ke=M(()=>{bt();P();ue();ce=b(m.Adi),de=b(m.Arbitrum),Te=b(m.Aurora),fe=b(m.Avalanche),ge=b(m.Base),Ae=b(m.Berachain),Ce=b(m.BinanceSmartChain),ht=b(m.Botanix),me=b(m.Core),be=b(m.Corn),He=b(m.Cronos),xe=b(m.Gnosis),we=b(m.Hyperevm),Ue=b(m.Linea),Me=b(m.Polygon),Se=b(m.MegaETH),De=b(m.Monad),Re=b(m.Plasma),te=b(m.Sonic),Be=b(m.Unichain),he=b(m.XLayer)});var qt;var Lt=M(()=>{qt=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Y,Chain as $n,FeeOption as k,SwapKitError as ve}from"@swapkit/helpers";import{Contract as Nn,HDNodeWallet as Qn}from"ethers";import{match as Vn,P as kt}from"ts-pattern";function et(e){return new Nn(zn,qt,e)}function _t(e){return async function(){let n=et(e);if(n&&"l1BaseFee"in n)return await n?.l1BaseFee();return}}function Ot(e){return async function({from:n,to:o,nonce:r,...i}){let{Transaction:s}=await import("ethers");if(!o)throw new ve("toolbox_evm_invalid_transaction",{error:"Missing to address"});return s.from({...i,authorizationList:i.authorizationList,nonce:r?r:n?await e.getTransactionCount(n):0,to:o}).serialized}}function Gt(e){return async function(n){let o=et(e),r=await Ot(e)(n);if(o&&"getL1Fee"in o)return o.getL1Fee(r)}}function Wt(e){return async function(n){let r=(await e.getFeeData()).gasPrice??0n,i=await e.estimateGas(n);return r*i}}function Fn(e){return async function(n){let o=await Gt(e)(n)??0n,r=await Wt(e)(n);return o+r}}function Xn(e){return async function(n){let o=et(e),r=await Ot(e)(n);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(r)}}function Yn(e){return async function(){try{let{maxFeePerGas:n,maxPriorityFeePerGas:o,gasPrice:r}=await e.getFeeData(),i=await _t(e)(),s=r;if(!(n&&o))throw new ve("toolbox_evm_no_fee_data");return{[k.Average]:{gasPrice:s,l1GasPrice:i,maxFeePerGas:n,maxPriorityFeePerGas:o},[k.Fast]:{gasPrice:Y(s,k.Fast),l1GasPrice:Y(i||0n,k.Fast),maxFeePerGas:n,maxPriorityFeePerGas:Y(o,k.Fast)},[k.Fastest]:{gasPrice:Y(s,k.Fastest),l1GasPrice:Y(i||0n,k.Fastest),maxFeePerGas:n,maxPriorityFeePerGas:Y(o,k.Fastest)}}}catch(n){throw new ve("toolbox_evm_gas_estimation_error",{error:n.msg??n.toString()})}}}function qe({provider:e,...t}){let n=Vn(t).with({phrase:kt.string},({phrase:i})=>Qn.fromPhrase(i).connect(e)).with({signer:kt.any},({signer:i})=>i).otherwise(()=>{return}),o=V({provider:e,signer:n}),r=_t(e);return{...o,estimateGasPrices:Yn(e),estimateL1Gas:Xn(e),estimateL1GasCost:Gt(e),estimateL2GasCost:Wt(e),estimateTotalGasCost:Fn(e),getBalance:J($n.Optimism).getBalance,getL1GasPrice:r}}var zn="0x420000000000000000000000000000000000000f";var tt=M(()=>{ie();Lt();ue()});var Zn={};ke(Zn,{validateEVMAddress:()=>v,toChecksumAddress:()=>Ut,isStateChangingCall:()=>Ze,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Pe,isBrowserProvider:()=>z,getTokenAddress:()=>X,getEvmToolboxAsync:()=>$t,getEvmToolbox:()=>nt,getEstimateGasPrices:()=>$,getEVMTxType:()=>Ie,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>W,getCreateContract:()=>je,getChecksumAddressFromAsset:()=>Mt,createContract:()=>ee,XLayerToolbox:()=>he,UNIToolbox:()=>Be,SONICToolbox:()=>te,PLASMAToolbox:()=>Re,OPToolbox:()=>qe,MONADToolbox:()=>De,MEGAETHToolbox:()=>Se,MAX_APPROVAL:()=>K,MATICToolbox:()=>Me,LINEAToolbox:()=>Ue,HYPEREVMToolbox:()=>we,GNOToolbox:()=>xe,ETHToolbox:()=>le,ContractAddress:()=>Je,CROToolbox:()=>He,CORNToolbox:()=>be,COREToolbox:()=>me,BotanixToolbox:()=>ht,BaseEVMToolbox:()=>V,BSCToolbox:()=>Ce,BERAToolbox:()=>Ae,BASEToolbox:()=>ge,AVAXToolbox:()=>fe,AURORAToolbox:()=>Te,ARBToolbox:()=>de,ADIToolbox:()=>ce});import{Chain as A}from"@swapkit/helpers";import{match as jn}from"ts-pattern";function nt(e,t){return jn(e).with(A.Adi,()=>ce(t)).with(A.Arbitrum,()=>de(t)).with(A.Aurora,()=>Te(t)).with(A.Avalanche,()=>fe(t)).with(A.Base,()=>ge(t)).with(A.Berachain,()=>Ae(t)).with(A.BinanceSmartChain,()=>Ce(t)).with(A.Botanix,()=>te(t)).with(A.Core,()=>me(t)).with(A.Corn,()=>be(t)).with(A.Cronos,()=>He(t)).with(A.Ethereum,()=>le(t)).with(A.Gnosis,()=>xe(t)).with(A.Hyperevm,()=>we(t)).with(A.Linea,()=>Ue(t)).with(A.MegaETH,()=>Se(t)).with(A.Monad,()=>De(t)).with(A.Optimism,()=>qe(t)).with(A.Plasma,()=>Re(t)).with(A.Polygon,()=>Me(t)).with(A.Sonic,()=>te(t)).with(A.Unichain,()=>Be(t)).with(A.XLayer,()=>he(t)).exhaustive()}async function $t(e,t){let n={...t,provider:t?.provider||await Qe(e)};return nt(e,n)}var Nt=M(()=>{P();Ke();tt();ue();Ke();tt()});var Qt;var Vt=M(()=>{((n)=>{n.Test="goerli";n.Main="homestead"})(Qt||={})});var Jn={};ke(Jn,{validateEVMAddress:()=>v,validateAuthorizations:()=>Xe,validateAuthorization:()=>At,toHexString:()=>E,toChecksumAddress:()=>Ut,signAuthorization:()=>Fe,parseEIP712FromEVMTx:()=>mn,isStateChangingCall:()=>Ze,isEIP7702Transaction:()=>ae,isEIP1559Transaction:()=>Pe,isBrowserProvider:()=>z,getTokenAddress:()=>X,getProviderSync:()=>gt,getProvider:()=>Qe,getNetworkParams:()=>Ve,getIsEIP1559Compatible:()=>ze,getEvmToolboxAsync:()=>$t,getEvmToolbox:()=>nt,getEvmApi:()=>J,getEstimateGasPrices:()=>$,getEVMTxType:()=>Ie,getEIP1193SendTransaction:()=>F,getCreateContractTxObject:()=>W,getCreateContract:()=>je,getChecksumAddressFromAsset:()=>Mt,createCustomEvmApi:()=>dn,createContract:()=>ee,buildEIP712DomainType:()=>Ct,XLayerToolbox:()=>he,UNIToolbox:()=>Be,SONICToolbox:()=>te,PLASMAToolbox:()=>Re,OPToolbox:()=>qe,MONADToolbox:()=>De,MEGAETHToolbox:()=>Se,MAX_APPROVAL:()=>K,MATICToolbox:()=>Me,LINEAToolbox:()=>Ue,HYPEREVMToolbox:()=>we,GNOToolbox:()=>xe,EthNetwork:()=>Qt,ETHToolbox:()=>le,ContractAddress:()=>Je,CROToolbox:()=>He,CORNToolbox:()=>be,COREToolbox:()=>me,BotanixToolbox:()=>ht,BaseEVMToolbox:()=>V,BSCToolbox:()=>Ce,BERAToolbox:()=>Ae,BASEToolbox:()=>ge,AVAXToolbox:()=>fe,AURORAToolbox:()=>Te,ARBToolbox:()=>de,ADIToolbox:()=>ce});var zt=M(()=>{ie();P();Nt();Vt()});function En({builder:e,grouping:t="na",orders:n}){return{builder:e,grouping:t,orders:n,type:"order"}}function Pn({cancels:e}){return{cancels:e,type:"cancel"}}function In({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function Kn({oid:e,order:t}){return{oid:e,order:t,type:"modify"}}function vn({modifies:e}){return{modifies:e,type:"batchModify"}}function eo({asset:e,isCross:t,leverage:n}){return{asset:e,isCross:t,leverage:n,type:"updateLeverage"}}function to({asset:e,isBuy:t,ntli:n}){return{asset:e,isBuy:t,ntli:n,type:"updateIsolatedMargin"}}function no({asset:e,leverage:t}){return{asset:e,leverage:t,type:"topUpIsolatedOnlyMargin"}}function oo({time:e}){return{time:e,type:"scheduleCancel"}}function ro({amount:e,hyperliquidChain:t,nonce:n,signatureChainId:o,toPerp:r}){return{amount:e,hyperliquidChain:t,nonce:n,signatureChainId:o,toPerp:r,type:"usdClassTransfer"}}function io({amount:e,destination:t,destinationDex:n,fromSubAccount:o,hyperliquidChain:r,nonce:i,signatureChainId:s,sourceDex:p,token:a}){return{amount:e,destination:t,destinationDex:n,fromSubAccount:o,hyperliquidChain:r,nonce:i,signatureChainId:s,sourceDex:p,token:a,type:"sendAsset"}}function so({agentAddress:e,agentName:t,hyperliquidChain:n,nonce:o,signatureChainId:r}){return{agentAddress:e,agentName:t,hyperliquidChain:n,nonce:o,signatureChainId:r,type:"approveAgent"}}function yo({builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:o,signatureChainId:r}){return{builder:e,hyperliquidChain:t,maxFeeRate:n,nonce:o,signatureChainId:r,type:"approveBuilderFee"}}function po({hyperliquidChain:e,isUndelegate:t,nonce:n,signatureChainId:o,validator:r,wei:i}){return{hyperliquidChain:e,isUndelegate:t,nonce:n,signatureChainId:o,type:"tokenDelegate",validator:r,wei:i}}import{SwapKitError as rt}from"@swapkit/helpers";import{keccak256 as ao,Signature as uo}from"ethers";function D(...e){let t=e.reduce((r,i)=>r+i.length,0),n=new Uint8Array(t),o=0;for(let r of e)n.set(r,o),o+=r.length;return n}function Ao(e,t,n){if(n<t)return new Uint8Array([e+n]);if(n<=255)return new Uint8Array([e+t,n]);if(n<=65535)return new Uint8Array([e+t+1,n>>8,n&255]);return new Uint8Array([e+t+2,n>>>24&255,n>>>16&255,n>>>8&255,n&255])}function O(e,t){let n=new Uint8Array(t),o=e;for(let r=t-1;r>=0;r-=1)n[r]=Number(o&0xffn),o>>=8n;return n}function Ft(e){if(e>=0n){if(e<=0x7fn)return new Uint8Array([Number(e)]);if(e<=0xffn)return new Uint8Array([204,Number(e)]);if(e<=0xffffn)return D(new Uint8Array([205]),O(e,2));if(e<=0xffffffffn)return D(new Uint8Array([206]),O(e,4));return D(new Uint8Array([207]),O(e,8))}if(e>=-32n)return new Uint8Array([256+Number(e)]);if(e>=-128n)return new Uint8Array([208,256+Number(e)]);if(e>=-32768n)return D(new Uint8Array([209]),O(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return D(new Uint8Array([210]),O(BigInt.asUintN(32,e),4));return D(new Uint8Array([211]),O(BigInt.asUintN(64,e),8))}function jt(e){let t=go.encode(e);if(t.length<32)return D(new Uint8Array([160+t.length]),t);return D(Ao(217,0,t.length),t)}function Co(e){let t=e.map((o)=>it(o)),n=e.length<16?new Uint8Array([144+e.length]):e.length<=65535?new Uint8Array([220,e.length>>8,e.length&255]):new Uint8Array([221,e.length>>>24&255,e.length>>>16&255,e.length>>>8&255,e.length&255]);return D(n,...t)}function mo(e){let t=Object.entries(e).filter(([,o])=>typeof o<"u"),n=t.length<16?new Uint8Array([128+t.length]):t.length<=65535?new Uint8Array([222,t.length>>8,t.length&255]):new Uint8Array([223,t.length>>>24&255,t.length>>>16&255,t.length>>>8&255,t.length&255]);return D(n,...t.flatMap(([o,r])=>[jt(o),it(r)]))}function it(e){if(e===null)return new Uint8Array([192]);if(typeof e==="boolean")return new Uint8Array([e?195:194]);if(typeof e==="string")return jt(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new rt("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return Ft(BigInt(e))}if(typeof e==="bigint")return Ft(e);if(e instanceof Uint8Array){let t=e.length<=255?new Uint8Array([196,e.length]):e.length<=65535?new Uint8Array([197,e.length>>8,e.length&255]):new Uint8Array([198,e.length>>>24&255,e.length>>>16&255,e.length>>>8&255,e.length&255]);return D(t,e)}if(Array.isArray(e))return Co(e);if(typeof e==="object")return mo(e);throw new rt("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function bo(e){let t=e.startsWith("0x")?e.slice(2):e;if(t.length%2!==0||/[^a-fA-F0-9]/u.test(t))throw new rt("helpers_invalid_params",{hexValue:e});let n=new Uint8Array(t.length/2);for(let o=0;o<t.length;o+=2)n[o/2]=Number.parseInt(t.slice(o,o+2),16);return n}function Zt(e){return{domain:lo,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...co.Agent]}}}function Jt(e){let t=fo[e.type],n=To[e.type],{type:o,...r}=e;return{domain:{chainId:Number.parseInt(r.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Xt,version:"1"},message:{...r,hyperliquidChain:r.hyperliquidChain||Yt},primaryType:t,types:{[t]:n}}}function Et(e){let t=uo.from(e);return{r:t.r,s:t.s,v:t.v}}function Pt(e,t,{expiresAfter:n,vaultAddress:o}={}){let r=it(e),i=O(BigInt(t),8),s=o?D(new Uint8Array([1]),bo(o.toLowerCase())):new Uint8Array([0]),p=typeof n==="number"?D(new Uint8Array([0]),O(BigInt(n),8)):new Uint8Array;return ao(D(r,i,s,p))}function It(e){let t=e.hyperliquidChain||Yt;switch(e.type){case"approveAgent":return{...e,agentAddress:e.agentAddress.toLowerCase(),hyperliquidChain:t};case"approveBuilderFee":return{...e,builder:e.builder.toLowerCase(),hyperliquidChain:t};case"sendAsset":return{...e,destination:e.destination.toLowerCase(),fromSubAccount:e.fromSubAccount.toLowerCase(),hyperliquidChain:t};case"tokenDelegate":return{...e,hyperliquidChain:t,validator:e.validator.toLowerCase()};case"usdClassTransfer":return{...e,hyperliquidChain:t};default:return e}}var Xt="0x0000000000000000000000000000000000000000",lo,co,Yt="Mainnet",To,fo,go;var Kt=M(()=>{lo={chainId:1337,name:"Exchange",verifyingContract:Xt,version:"1"},co={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},To={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"}]},fo={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},go=new TextEncoder});import{AssetValue as pt,Chain as Ho,derivationPathToString as xo,getChainConfig as tn,getRPCUrl as wo,NetworkDerivationPath as Uo,RequestClient as j,SwapKitError as Z,updateDerivationPath as Mo}from"@swapkit/helpers";import{HDNodeWallet as So}from"ethers";import{match as Do,P as st}from"ts-pattern";function h(e,t){if(!ut(e))throw new Z(t,{address:e});return e.toLowerCase()}async function N(e){let t=await Le();return j.post(`${t}/info`,{json:e})}function _o({dex:e,user:t}){return N({...e?{dex:e}:{},type:"clearinghouseState",user:h(t,"helpers_invalid_params")})}function Oo({user:e}){return N({type:"spotClearinghouseState",user:h(e,"helpers_invalid_params")})}function Go({dex:e,user:t}){return N({...e?{dex:e}:{},type:"openOrders",user:h(t,"helpers_invalid_params")})}function Wo({dex:e,user:t}){return N({...e?{dex:e}:{},type:"frontendOpenOrders",user:h(t,"helpers_invalid_params")})}function $o({oidOrCloid:e,user:t}){return N({oid:e,type:"orderStatus",user:h(t,"helpers_invalid_params")})}function No({aggregateByTime:e,user:t}){return N({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:h(t,"helpers_invalid_params")})}function Qo({aggregateByTime:e,endTime:t,startTime:n,user:o}){return N({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof t==="number"?{endTime:t}:{},startTime:n,type:"userFillsByTime",user:h(o,"helpers_invalid_params")})}function vt({coin:e,token:t,value:n,spotMeta:o}){if(!n||Number(n)<=0)return null;let r=e?.toUpperCase()||`TOKEN-${t||"UNKNOWN"}`,i=Ro[r]||nn,s=o?.tokens?.find((a)=>a.name===e||t!==void 0&&a.index===Number(t)),p=s?`${q}.${r}-${s.name}:${s.tokenId}`:`${q}.${r}`;return new pt({decimal:i,identifier:p,value:n})}function Vo(e){let t=new Map;for(let n of e){let o=n.toString({includeSynthProtocol:!0}),r=t.get(o);t.set(o,r?r.add(n):n)}if(![...t.values()].some((n)=>n.isGasAsset||n.ticker==="HYPE")){let n=pt.from({chain:q,value:0});t.set(n.toString({includeSynthProtocol:!0}),n)}return[...t.values()]}async function Le(){try{return await wo(q)}catch{let[e]=tn(q).rpcUrls;if(!e)throw new Z("helpers_chain_no_public_or_set_rpc_url",{chain:q});return e}}async function at(){return`${await Le()}/exchange`}function zo(e){let t=ko[e.type],{type:n,...o}=e,r=Lo[n];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:qo,version:"1"},message:o,primaryType:t,types:{[t]:r}}}async function on({action:e,expiresAfter:t,nonce:n,vaultAddress:o}){let r=n||Date.now(),i=o?h(o,"helpers_invalid_params"):void 0,s=await at(),p=Pt(e,r,{expiresAfter:t,vaultAddress:i});return{action:e,endpoint:s,expiresAfter:t,nonce:r,typedData:Zt(p),vaultAddress:i}}async function rn({action:e,nonce:t,signatureChainId:n}){let o=t||e.nonce||Date.now(),r=n||e.signatureChainId||"0xa4b1",i=It({...e,nonce:o,signatureChainId:r});return{action:i,endpoint:await at(),nonce:o,typedData:Jt(i)}}async function yt({assetValue:e,recipient:t,sender:n,signatureChainId:o,time:r}){let i=h(t,"core_transaction_invalid_recipient_address"),s=h(n,"core_transaction_invalid_sender_address"),p=await at(),a=e.getValue("string"),c=r||Date.now(),l=e.address;if(!l)throw new Z("helpers_invalid_params",{asset:e.toString(),from:s});let f={amount:a,destination:i,hyperliquidChain:Bo,signatureChainId:o||ho,time:c,token:l,type:"spotSend"};return{action:f,endpoint:p,nonce:c,typedData:zo(f)}}async function en(e){let t=await j.post(e.endpoint,{json:{action:e.action,...typeof e.expiresAfter==="number"?{expiresAfter:e.expiresAfter}:{},nonce:e.nonce,signature:e.signature,...e.vaultAddress?{vaultAddress:e.vaultAddress}:{}}});if(t.status!=="ok")throw new Z("core_transaction_failed",{response:t});return t}async function Fo(e,t){let n=await Le(),o=t-5000;for(let r=0;r<5;r++){if(r>0)await new Promise((i)=>setTimeout(i,1000));try{let i=await j.post(`${n}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:e}}),s=Array.isArray(i)?i.find((p)=>p.time&&p.time>=t&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(s?.hash)return s.hash}catch{}}return""}function ut(e){return e.startsWith("0x")&&v(e)}function Xo(e){let t=re(q),n=e&&"index"in e?e.index||0:0,o=xo(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:Mo(Uo[q],{index:n})),r,i=!1;function s(){if(i)return r;return r=Do(e).with({phrase:st.string},({phrase:y})=>{return So.fromPhrase(y,void 0,o)}).with({signer:st.not(st.nullish)},({signer:y})=>y).otherwise(()=>{return}),i=!0,r}async function p(){let y=s();return y?await y.getAddress():""}async function a(y){let u=s();if(!u)throw new Z("toolbox_hypercore_no_signer");let T=await u.signTypedData(y.typedData.domain,y.typedData.types,y.typedData.message);return{action:y.action,endpoint:y.endpoint,nonce:y.nonce,signature:Et(T),..."expiresAfter"in y?{expiresAfter:y.expiresAfter}:{},..."vaultAddress"in y?{vaultAddress:y.vaultAddress}:{}}}async function c(y){let u=h(y,"helpers_invalid_params");try{let T=await Le(),[H,x,U]=await Promise.all([j.post(`${T}/info`,{json:{type:"spotClearinghouseState",user:u}}),j.post(`${T}/info`,{json:{type:"clearinghouseState",user:u}}),j.post(`${T}/info`,{json:{type:"spotMeta"}})]),w=(H.spotState?.balances||H.balances||[]).map(({coin:_,token:G,total:Q})=>vt({coin:_,spotMeta:U,token:G,value:Q})).filter((_)=>!!_),L=vt({coin:"USDC",spotMeta:U,value:x.withdrawable||x.marginSummary?.accountValue||x.marginSummary?.totalRawUsd});return Vo(L?[...w,L]:w)}catch{return t(u)}}async function l(y){let u=s();if(!u)throw new Z("toolbox_hypercore_no_signer");let T=y.sender||await u.getAddress(),H=await yt({...y,feeRate:0,sender:T}),x=await a(H);return await en(x),Fo(T,H.nonce)}function f(){return pt.from({chain:q,value:0})}return{broadcastTransaction:en,createL1ActionRequest:on,createTransaction:yt,createUserSignedActionRequest:rn,estimateTransactionFee:f,getAddress:p,getBalance:c,getState:{clearinghouse:_o,frontendOpenOrders:Wo,openOrders:Go,orderStatus:$o,spotClearinghouse:Oo,userFills:No,userFillsByTime:Qo},signTransaction:a,transfer:l,validateAddress:ut}}var q,nn,Ro,Bo="Mainnet",ho="0xa4b1",qo="0x0000000000000000000000000000000000000000",Lo,ko;var sn=M(()=>{zt();Oe();Kt();q=Ho.Hype,{baseDecimal:nn}=tn(q),Ro={HYPE:nn,USDC:6,USDT:6},Lo={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},ko={spotSend:"HyperliquidTransaction:SpotSend"}});var Yo={};ke(Yo,{validateHyperCoreAddress:()=>ut,getHyperCoreToolbox:()=>Xo,createUserSignedActionRequest:()=>rn,createTransaction:()=>yt,createL1ActionRequest:()=>on,buildUsdClassTransferAction:()=>ro,buildUpdateLeverageAction:()=>eo,buildUpdateIsolatedMarginAction:()=>to,buildTopUpIsolatedOnlyMarginAction:()=>no,buildTokenDelegateAction:()=>po,buildSendAssetAction:()=>io,buildScheduleCancelAction:()=>oo,buildOrderAction:()=>En,buildModifyAction:()=>Kn,buildCancelByCloidAction:()=>In,buildCancelAction:()=>Pn,buildBatchModifyAction:()=>vn,buildApproveBuilderFeeAction:()=>yo,buildApproveAgentAction:()=>so});var jo=M(()=>{sn()});jo();export{ut as validateHyperCoreAddress,Xo as getHyperCoreToolbox,rn as createUserSignedActionRequest,yt as createTransaction,on as createL1ActionRequest,ro as buildUsdClassTransferAction,eo as buildUpdateLeverageAction,to as buildUpdateIsolatedMarginAction,no as buildTopUpIsolatedOnlyMarginAction,po as buildTokenDelegateAction,io as buildSendAssetAction,oo as buildScheduleCancelAction,En as buildOrderAction,Kn as buildModifyAction,In as buildCancelByCloidAction,Pn as buildCancelAction,vn as buildBatchModifyAction,yo as buildApproveBuilderFeeAction,so as buildApproveAgentAction};
1
+ import"../../chunk-44m22jy1.js";import{q as V}from"../../chunk-4q573g5z.js";import{da as E}from"../../chunk-54gntgt1.js";import"../../chunk-ntbvmmch.js";function Me({builder:e,grouping:r="na",orders:t}){return{builder:e,grouping:r,orders:t,type:"order"}}function ke({cancels:e}){return{cancels:e,type:"cancel"}}function Fe({cancels:e}){return{cancels:e,type:"cancelByCloid"}}function ve({oid:e,order:r}){return{oid:e,order:r,type:"modify"}}function Le({modifies:e}){return{modifies:e,type:"batchModify"}}function Ne({asset:e,isCross:r,leverage:t}){return{asset:e,isCross:r,leverage:t,type:"updateLeverage"}}function je({asset:e,isBuy:r,ntli:t}){return{asset:e,isBuy:r,ntli:t,type:"updateIsolatedMargin"}}function $e({asset:e,leverage:r}){return{asset:e,leverage:r,type:"topUpIsolatedOnlyMargin"}}function ze({time:e}){return{time:e,type:"scheduleCancel"}}function Qe({amount:e,hyperliquidChain:r,nonce:t,signatureChainId:n,toPerp:i}){return{amount:e,hyperliquidChain:r,nonce:t,signatureChainId:n,toPerp:i,type:"usdClassTransfer"}}function We({amount:e,destination:r,destinationDex:t,fromSubAccount:n,hyperliquidChain:i,nonce:o,signatureChainId:a,sourceDex:p,token:g}){return{amount:e,destination:r,destinationDex:t,fromSubAccount:n,hyperliquidChain:i,nonce:o,signatureChainId:a,sourceDex:p,token:g,type:"sendAsset"}}function Ee({agentAddress:e,agentName:r,hyperliquidChain:t,nonce:n,signatureChainId:i}){return{agentAddress:e,agentName:r,hyperliquidChain:t,nonce:n,signatureChainId:i,type:"approveAgent"}}function Ve({builder:e,hyperliquidChain:r,maxFeeRate:t,nonce:n,signatureChainId:i}){return{builder:e,hyperliquidChain:r,maxFeeRate:t,nonce:n,signatureChainId:i,type:"approveBuilderFee"}}function Ge({hyperliquidChain:e,isUndelegate:r,nonce:t,signatureChainId:n,validator:i,wei:o}){return{hyperliquidChain:e,isUndelegate:r,nonce:t,signatureChainId:n,type:"tokenDelegate",validator:i,wei:o}}import{AssetValue as R,Chain as ce,derivationPathToString as de,getChainConfig as G,getRPCUrl as ue,NetworkDerivationPath as ge,RequestClient as A,SwapKitError as m,updateDerivationPath as le}from"@swapkit/helpers";import{HDNodeWallet as Ce}from"ethers";import{match as fe,P as O}from"ts-pattern";import{SwapKitError as w}from"@swapkit/helpers";import{keccak256 as Z,Signature as ee}from"ethers";var M="0x0000000000000000000000000000000000000000",re={chainId:1337,name:"Exchange",verifyingContract:M,version:"1"},te={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},k="Mainnet",ne={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"}]},ie={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},oe=new TextEncoder;function y(...e){let r=e.reduce((i,o)=>i+o.length,0),t=new Uint8Array(r),n=0;for(let i of e)t.set(i,n),n+=i.length;return t}function se(e,r,t){if(t<r)return new Uint8Array([e+t]);if(t<=255)return new Uint8Array([e+r,t]);if(t<=65535)return new Uint8Array([e+r+1,t>>8,t&255]);return new Uint8Array([e+r+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function C(e,r){let t=new Uint8Array(r),n=e;for(let i=r-1;i>=0;i-=1)t[i]=Number(n&0xffn),n>>=8n;return t}function _(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 y(new Uint8Array([205]),C(e,2));if(e<=0xffffffffn)return y(new Uint8Array([206]),C(e,4));return y(new Uint8Array([207]),C(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 y(new Uint8Array([209]),C(BigInt.asUintN(16,e),2));if(e>=-2147483648n)return y(new Uint8Array([210]),C(BigInt.asUintN(32,e),4));return y(new Uint8Array([211]),C(BigInt.asUintN(64,e),8))}function F(e){let r=oe.encode(e);if(r.length<32)return y(new Uint8Array([160+r.length]),r);return y(se(217,0,r.length),r)}function ae(e){let r=e.map((n)=>D(n)),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 y(t,...r)}function pe(e){let r=Object.entries(e).filter(([,n])=>typeof n<"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 y(t,...r.flatMap(([n,i])=>[F(n),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 F(e);if(typeof e==="number"){if(!Number.isFinite(e)||!Number.isInteger(e))throw new w("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return _(BigInt(e))}if(typeof e==="bigint")return _(e);if(e instanceof Uint8Array){let r=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 y(r,e)}if(Array.isArray(e))return ae(e);if(typeof e==="object")return pe(e);throw new w("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(e)}`})}function ye(e){let r=e.startsWith("0x")?e.slice(2):e;if(r.length%2!==0||/[^a-fA-F0-9]/u.test(r))throw new w("helpers_invalid_params",{hexValue:e});let t=new Uint8Array(r.length/2);for(let n=0;n<r.length;n+=2)t[n/2]=Number.parseInt(r.slice(n,n+2),16);return t}function v(e){return{domain:re,message:{connectionId:e,source:"a"},primaryType:"Agent",types:{Agent:[...te.Agent]}}}function L(e){let r=ie[e.type],t=ne[e.type],{type:n,...i}=e;return{domain:{chainId:Number.parseInt(i.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:M,version:"1"},message:{...i,hyperliquidChain:i.hyperliquidChain||k},primaryType:r,types:{[r]:t}}}function N(e){let r=ee.from(e);return{r:r.r,s:r.s,v:r.v}}function j(e,r,{expiresAfter:t,vaultAddress:n}={}){let i=D(e),o=C(BigInt(r),8),a=n?y(new Uint8Array([1]),ye(n.toLowerCase())):new Uint8Array([0]),p=typeof t==="number"?y(new Uint8Array([0]),C(BigInt(t),8)):new Uint8Array;return Z(y(i,o,a,p))}function $(e){let r=e.hyperliquidChain||k;switch(e.type){case"approveAgent":return{...e,agentAddress:e.agentAddress.toLowerCase(),hyperliquidChain:r};case"approveBuilderFee":return{...e,builder:e.builder.toLowerCase(),hyperliquidChain:r};case"sendAsset":return{...e,destination:e.destination.toLowerCase(),fromSubAccount:e.fromSubAccount.toLowerCase(),hyperliquidChain:r};case"tokenDelegate":return{...e,hyperliquidChain:r,validator:e.validator.toLowerCase()};case"usdClassTransfer":return{...e,hyperliquidChain:r};default:return e}}var u=ce.Hype,{baseDecimal:K}=G(u),Ae={HYPE:K,USDC:6,USDT:6},me="Mainnet",He="0xa4b1",he="0x0000000000000000000000000000000000000000",Te={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},xe={spotSend:"HyperliquidTransaction:SpotSend"};function c(e,r){if(!Y(e))throw new m(r,{address:e});return e.toLowerCase()}async function f(e){let r=await S();return A.post(`${r}/info`,{json:e})}function be({dex:e,user:r}){return f({...e?{dex:e}:{},type:"clearinghouseState",user:c(r,"helpers_invalid_params")})}function Se({user:e}){return f({type:"spotClearinghouseState",user:c(e,"helpers_invalid_params")})}function Ue({dex:e,user:r}){return f({...e?{dex:e}:{},type:"openOrders",user:c(r,"helpers_invalid_params")})}function we({dex:e,user:r}){return f({...e?{dex:e}:{},type:"frontendOpenOrders",user:c(r,"helpers_invalid_params")})}function De({oidOrCloid:e,user:r}){return f({oid:e,type:"orderStatus",user:c(r,"helpers_invalid_params")})}function Oe({aggregateByTime:e,user:r}){return f({...typeof e==="boolean"?{aggregateByTime:e}:{},type:"userFills",user:c(r,"helpers_invalid_params")})}function Re({aggregateByTime:e,endTime:r,startTime:t,user:n}){return f({...typeof e==="boolean"?{aggregateByTime:e}:{},...typeof r==="number"?{endTime:r}:{},startTime:t,type:"userFillsByTime",user:c(n,"helpers_invalid_params")})}function z({coin:e,token:r,value:t,spotMeta:n}){if(!t||Number(t)<=0)return null;let i=e?.toUpperCase()||`TOKEN-${r||"UNKNOWN"}`,o=Ae[i]||K,a=n?.tokens?.find((g)=>g.name===e||r!==void 0&&g.index===Number(r)),p=a?`${u}.${i}-${a.name}:${a.tokenId}`:`${u}.${i}`;return new R({decimal:o,identifier:p,value:t})}function Be(e){let r=new Map;for(let t of e){let n=t.toString({includeSynthProtocol:!0}),i=r.get(n);r.set(n,i?i.add(t):t)}if(![...r.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=R.from({chain:u,value:0});r.set(t.toString({includeSynthProtocol:!0}),t)}return[...r.values()]}async function S(){try{return await ue(u)}catch{let[e]=G(u).rpcUrls;if(!e)throw new m("helpers_chain_no_public_or_set_rpc_url",{chain:u});return e}}async function B(){return`${await S()}/exchange`}function Pe(e){let r=xe[e.type],{type:t,...n}=e,i=Te[t];return{domain:{chainId:Number.parseInt(e.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:he,version:"1"},message:n,primaryType:r,types:{[r]:i}}}async function Ie({action:e,expiresAfter:r,nonce:t,vaultAddress:n}){let i=t||Date.now(),o=n?c(n,"helpers_invalid_params"):void 0,a=await B(),p=j(e,i,{expiresAfter:r,vaultAddress:o});return{action:e,endpoint:a,expiresAfter:r,nonce:i,typedData:v(p),vaultAddress:o}}async function qe({action:e,nonce:r,signatureChainId:t}){let n=r||e.nonce||Date.now(),i=t||e.signatureChainId||"0xa4b1",o=$({...e,nonce:n,signatureChainId:i});return{action:o,endpoint:await B(),nonce:n,typedData:L(o)}}async function Q({assetValue:e,recipient:r,sender:t,signatureChainId:n,time:i}){let o=c(r,"core_transaction_invalid_recipient_address"),a=c(t,"core_transaction_invalid_sender_address"),p=await B(),g=e.getValue("string"),T=i||Date.now(),x=e.address;if(!x)throw new m("helpers_invalid_params",{asset:e.toString(),from:a});let b={amount:g,destination:o,hyperliquidChain:me,signatureChainId:n||He,time:T,token:x,type:"spotSend"};return{action:b,endpoint:p,nonce:T,typedData:Pe(b)}}async function W(e){let r=await A.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(r.status!=="ok")throw new m("core_transaction_failed",{response:r});return r}async function _e(e,r){let t=await S(),n=r-5000;for(let i=0;i<5;i++){if(i>0)await new Promise((o)=>setTimeout(o,1000));try{let o=await A.post(`${t}/info`,{json:{startTime:n,type:"userNonFundingLedgerUpdates",user:e}}),a=Array.isArray(o)?o.find((p)=>p.time&&p.time>=r&&(p.delta?.type==="spotTransfer"||p.delta?.type==="internalTransfer")):void 0;if(a?.hash)return a.hash}catch{}}return""}function Y(e){return e.startsWith("0x")&&V(e)}function or(e){let r=E(u),t=e&&"index"in e?e.index||0:0,n=de(e&&"derivationPath"in e&&e.derivationPath?e.derivationPath:le(ge[u],{index:t})),i,o=!1;function a(){if(o)return i;return i=fe(e).with({phrase:O.string},({phrase:s})=>{return Ce.fromPhrase(s,void 0,n)}).with({signer:O.not(O.nullish)},({signer:s})=>s).otherwise(()=>{return}),o=!0,i}async function p(){let s=a();return s?await s.getAddress():""}async function g(s){let d=a();if(!d)throw new m("toolbox_hypercore_no_signer");let l=await d.signTypedData(s.typedData.domain,s.typedData.types,s.typedData.message);return{action:s.action,endpoint:s.endpoint,nonce:s.nonce,signature:N(l),..."expiresAfter"in s?{expiresAfter:s.expiresAfter}:{},..."vaultAddress"in s?{vaultAddress:s.vaultAddress}:{}}}async function T(s){let d=c(s,"helpers_invalid_params");try{let l=await S(),[H,h,P]=await Promise.all([A.post(`${l}/info`,{json:{type:"spotClearinghouseState",user:d}}),A.post(`${l}/info`,{json:{type:"clearinghouseState",user:d}}),A.post(`${l}/info`,{json:{type:"spotMeta"}})]),I=(H.spotState?.balances||H.balances||[]).map(({coin:U,token:J,total:X})=>z({coin:U,spotMeta:P,token:J,value:X})).filter((U)=>!!U),q=z({coin:"USDC",spotMeta:P,value:h.withdrawable||h.marginSummary?.accountValue||h.marginSummary?.totalRawUsd});return Be(q?[...I,q]:I)}catch{return r(d)}}async function x(s){let d=a();if(!d)throw new m("toolbox_hypercore_no_signer");let l=s.sender||await d.getAddress(),H=await Q({...s,feeRate:0,sender:l}),h=await g(H);return await W(h),_e(l,H.nonce)}function b(){return R.from({chain:u,value:0})}return{broadcastTransaction:W,createL1ActionRequest:Ie,createTransaction:Q,createUserSignedActionRequest:qe,estimateTransactionFee:b,getAddress:p,getBalance:T,getState:{clearinghouse:be,frontendOpenOrders:we,openOrders:Ue,orderStatus:De,spotClearinghouse:Se,userFills:Oe,userFillsByTime:Re},signTransaction:g,transfer:x,validateAddress:Y}}export{Y as validateHyperCoreAddress,or as getHyperCoreToolbox,qe as createUserSignedActionRequest,Q as createTransaction,Ie as createL1ActionRequest,Qe as buildUsdClassTransferAction,Ne as buildUpdateLeverageAction,je as buildUpdateIsolatedMarginAction,$e as buildTopUpIsolatedOnlyMarginAction,Ge as buildTokenDelegateAction,We as buildSendAssetAction,ze as buildScheduleCancelAction,Me as buildOrderAction,ve as buildModifyAction,Fe as buildCancelByCloidAction,ke as buildCancelAction,Le as buildBatchModifyAction,Ve as buildApproveBuilderFeeAction,Ee as buildApproveAgentAction};