@swapkit/toolboxes 4.15.0 → 4.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.js CHANGED
@@ -1 +1 @@
1
- var YA=Object.defineProperty;var NA=(n)=>n;function zA(n,y){this[n]=NA.bind(null,y)}var nn=(n,y)=>{for(var t in y)YA(n,t,{get:y[t],enumerable:!0,configurable:!0,set:zA.bind(y,t)})};var F=(n,y)=>()=>(n&&(y=n(n=0)),y);var x=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,t)=>(typeof require<"u"?require:y)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as ny,Chain as $n,derivationPathToString as DA,getChainConfig as At,getRPCUrlSync as N0,NetworkDerivationPath as OA,SwapKitError as fn}from"@swapkit/helpers";import{match as z0,P as _t}from"ts-pattern";function Jo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return RA.test(y)}function D0({derivationPath:n,provider:y,...t}={}){let o,f=DA(n||OA[$n.Aptos],{allHardened:!0});async function T(){if(o)return o;return o=await z0(t).with({phrase:_t.string},async({phrase:l})=>{let{Ed25519Account:L}=await import("@aptos-labs/ts-sdk");return L.fromDerivationPath({mnemonic:l,path:f})}).with({signer:_t.any},({signer:l})=>l).otherwise(()=>{return}),o}async function C(){let{Aptos:l,AptosConfig:L}=await import("@aptos-labs/ts-sdk"),N=new L({fullnode:y||N0($n.Aptos)});return new l(N)}async function H(){return(await T())?.accountAddress.toString()||""}async function A(l){let L=l||await H();if(!L)throw new fn("toolbox_aptos_address_required");let{baseDecimal:N,chain:J}=At($n.Aptos);try{let O=await C(),Y=await O.getAccountAPTAmount({accountAddress:L}),q=[ny.from({chain:J,fromBaseDecimal:N,value:Y.toString()})],M=await O.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:L}}}});for(let G of M){if(G.asset_type===Ao.COIN_TYPE||Number(G.amount)<=0)continue;let Z=G.asset_type;if(Z){let Q=("metadata"in G&&typeof G.metadata==="object"&&G.metadata!==null?G.metadata:void 0)?.decimals??N;q.push(ny.from({asset:`${$n.Aptos}.APT-${Z}`,fromBaseDecimal:Q,value:String(G.amount)}))}}return q}catch{return[ny.from({chain:J})]}}async function _(l){if(!l){let{baseDecimal:M}=At($n.Aptos),G=y||N0($n.Aptos),Z=await fetch(`${G}/estimate_gas_price`),{gas_estimate:D}=await Z.json();return ny.from({chain:$n.Aptos,fromBaseDecimal:M,value:String(D)})}let L=await T();if(!L)throw new fn("toolbox_aptos_no_signer");let N=await X(l),J=await C(),[O]=await J.transaction.simulate.simple({signerPublicKey:L.publicKey,transaction:N});if(!O)throw new fn("toolbox_aptos_transaction_creation_error");let Y=BigInt(O.gas_used)*BigInt(O.gas_unit_price),{baseDecimal:q}=At($n.Aptos);return ny.from({chain:$n.Aptos,fromBaseDecimal:q,value:Y.toString()})}async function X({recipient:l,assetValue:L,maxGasAmount:N,sender:J}){if(!Jo(l))throw new fn("core_transaction_invalid_recipient_address");let O=J||await H();if(!O)throw new fn("toolbox_aptos_no_sender");let{AccountAddress:Y}=await import("@aptos-labs/ts-sdk"),q=await C(),M=Y.from(O);try{let G=L.isGasAsset?Ao.TRANSFER:Ao.FUNGIBLE_STORE_TRANSFER,Z=z0({address:L?.address,isGasAsset:L.isGasAsset}).with({isGasAsset:!0},()=>[Y.from(l),L.getBaseValue("bigint")]).with({address:_t.string},({address:D})=>[Y.from(D),Y.from(l),L.getBaseValue("bigint")]).otherwise(()=>null);if(!Z)throw new fn("toolbox_aptos_missing_asset_type");return q.transaction.build.simple({data:{function:G,functionArguments:Z,typeArguments:L.isGasAsset?[]:[Ao.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:M})}catch(G){if(G instanceof fn)throw G;throw new fn("toolbox_aptos_transaction_creation_error",G)}}async function B(l){let L=await T();if(!L)throw new fn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:L,transaction:l})}async function U({assetValue:l,maxGasAmount:L,recipient:N}){let J=await T();if(!J)throw new fn("toolbox_aptos_no_signer");if(!Jo(N))throw new fn("core_transaction_invalid_recipient_address");try{let O=J.accountAddress.toString(),Y=await X({assetValue:l,maxGasAmount:L,recipient:N,sender:O});return(await(await C()).signAndSubmitTransaction({signer:J,transaction:Y})).hash}catch(O){if(O instanceof fn)throw O;throw new fn("toolbox_aptos_transaction_creation_error",O)}}async function W({senderAuthenticator:l,transaction:L}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:l,transaction:L})).hash}catch(N){throw new fn("toolbox_aptos_broadcast_error",N)}}async function w(l){let L=await B(l);return W({senderAuthenticator:L,transaction:l})}return{broadcastTransaction:W,createTransaction:X,estimateTransactionFee:_,getAddress:H,getBalance:A,signAndBroadcastTransaction:w,signTransaction:B,transfer:U,validateAddress:Jo}}function O0({provider:n}){return async function({assetValue:t,recipient:o}){if(!Jo(o))throw new fn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(t.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),t.getBaseValue("string")],function:Ao.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let T=t.address;if(!T)throw new fn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[T,f.from(o).toString(),t.getBaseValue("string")],function:Ao.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Ao.FUNGIBLE_ASSET_METADATA]})).hash}}var Ao,RA;var R0=F(()=>{Ao={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},RA=/^[0-9a-fA-F]+$/});var Iy={};nn(Iy,{validateAptosAddress:()=>Jo,getAptosToolbox:()=>D0,createAptosExtensionTransfer:()=>O0});var $y=F(()=>{R0()});import{AssetValue as x0,getChainConfig as xA}from"@swapkit/helpers";import{SwapKitApi as SA}from"@swapkit/helpers/api";function S0(){function n(){let y=Date.now(),t=Ut||y;return Ut=t,y>Ut?y:t+1}return FA+n().toString(36)}function qn(n){return async function(t,o=!0){let f=await SA.getChainBalance({address:t,chain:n,scamFilter:o}),{baseDecimal:T}=xA(n),C=f.map(({identifier:A,value:_,decimal:X})=>{return new x0({decimal:X||T,identifier:A,value:_})});if(!C.some((A)=>A.isGasAsset))return[x0.from({chain:n}),...C];return C}}var FA,Ut=0;var En=F(()=>{FA=typeof process<"u"&&process.pid?process.pid.toString(36):""});function oy(n){return{getBalance:qn(n)}}function pA(n){return n}var Ey=F(()=>{En()});import{Chain as h,getChainConfig as Gt,getRPCUrl as kA,SwapKitError as by}from"@swapkit/helpers";import{getAddress as p0,Interface as uA,JsonRpcProvider as PA}from"ethers";import{match as k0}from"ts-pattern";function u0(n){return new PA(n)}async function Xt(n,y){return u0(y||await kA(n))}function yy(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function Wt(n){let{explorerUrl:y,chainIdHex:t,rpcUrls:o}=Gt(n);return function(){return n!==h.Ethereum?{...IA({chain:n}),blockExplorerUrls:[y],chainId:t,rpcUrls:o}:void 0}}function Bt(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function IA({chain:n}){let{name:y,nativeCurrency:t,baseDecimal:o}=Gt(n);return k0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:t,symbol:t}}))}async function Mt(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 P0(n,y){let t=y!==void 0?`index ${y}: `:"",o=(f,T)=>{throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${t}${T}`}})};k0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!$A(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!F0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!F0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function I0(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 wt(n){return n.charAt(0).toUpperCase()+n.slice(1)}function qt(n,y){if(n.isTuple()&&n.components){let t=wt(n.name);return y[t]=n.components.map((o)=>({name:o.name,type:qt(o,y)})),t}if(n.isArray()){let t=n.arrayChildren;if(t?.isTuple()&&t.components){let o=wt(n.name.replace(/s$/,""));return y[o]=t.components.map((f)=>({name:f.name,type:qt(f,y)})),`${o}[]`}return`${t?.type??"bytes"}[]`}return n.type}function lt(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let t=n.toObject(),o={};for(let[f,T]of(y.components??[]).entries())o[T.name]=lt(t[T.name]??n[f],T);return o}if(Array.isArray(n)){let t=y?.arrayChildren;return n.map((o)=>lt(o,t??void 0))}return n}function EA({chain:n,abi:y,data:t,to:o}){let T=new uA(y).parseTransaction({data:t});if(!T)throw new by({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=wt(T.name);C[H]=T.fragment.inputs.map((U)=>({name:U.name,type:qt(U,C)}));let A={};for(let[U,W]of T.fragment.inputs.entries())A[W.name]=lt(T.args[U],W);let{chainId:_}=Gt(n),X={chainId:Number(_),verifyingContract:p0(o)},B=I0(X);return{domain:X,message:A,primaryType:H,types:{EIP712Domain:B,...C}}}function Lt(n,y){if(!Array.isArray(n)||n.length===0)throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[t,o]of n.entries())if(P0(o,t),y!==void 0&&o.chainId!==y)throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${t}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var F0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),$A=(n)=>{try{return typeof n==="string"&&!!p0(n)}catch{return!1}};var fy=()=>{};var $0;var E0=F(()=>{$0=[{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 bA,applyFeeMultiplierToBigInt as ln,Chain as Jn,EVMChains as vA,FeeOption as b,isGasAsset as VA,SwapKitError as i,SwapKitNumber as vy}from"@swapkit/helpers";import{erc20ABI as ty}from"@swapkit/helpers/contracts";import{BrowserProvider as KA,Contract as b0,getAddress as Vy,Interface as v0}from"ethers";import{match as V0}from"ts-pattern";function Yo({chain:n=Jn.Ethereum,provider:y,signer:t,isEIP1559Compatible:o=!0}){return{approve:mA({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),approvedAmount:c0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:Nt({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),createApprovalTx:aA({chain:n,provider:y,signer:t}),createContract:Zt({chain:n,provider:y}),createContractTxObject:_o({chain:n,provider:y}),createTransaction:Qt({chain:n,provider:y,signer:t}),createTransferTx:Qt({chain:n,provider:y,signer:t}),EIP1193SendTransaction:zo(y),estimateCall:i0({provider:y,signer:t}),estimateGasLimit:gA({chain:n,provider:y,signer:t}),estimateGasPrices:Uo({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:sA({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return t?t.getAddress():void 0},getBalance:oy(n).getBalance,getNetworkParams:Wt(n),isApproved:hA({chain:n,provider:y}),sendTransaction:h0({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),signAuthorization:dA({signer:t}),signMessage:t?(f)=>t.signMessage(f):void 0,signTypedData:t?({domain:f,types:T,value:C})=>t.signTypedData(f,T,C):void 0,transfer:rA({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),validateAddress:Cy}}function Cy(n){try{return Vy(n),!0}catch{return!1}}function No(n){return n instanceof KA}function Hy(n,y,t){return new b0(n,v0.from(y),t)}function Zt({provider:n}){return function(t,o){return new b0(t,v0.from(o),n)}}function Jt({abi:n,funcName:y}){let t=n.find((o)=>o.name===y);if(!t)throw new i("toolbox_evm_no_abi_fragment",{funcName:y});return t.stateMutability&&jA.includes(t.stateMutability)}function K0(n){return Vy(n)}function zo(n){return function({value:t,...o}){if(!No(n))throw new i("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:T,maxFeePerGas:C,maxPriorityFeePerGas:H,...A}=o;return n.send("eth_sendTransaction",[{...A,value:yy(BigInt(t||0))}])}}function j0(n,y){let t=Do(n,y);if(t)return Vy(t.toLowerCase());throw new i("toolbox_evm_invalid_gas_asset_address")}function Do({chain:n,symbol:y,ticker:t},o){try{let f=n===Jn.BinanceSmartChain&&y==="BNB"&&t==="BNB",T=n===Jn.Hyperevm&&y==="HYPE"&&t==="HYPE",C=n===o&&y===o&&t===o,H=iA.includes(n)&&y==="ETH"&&t==="ETH";if(C||f||T||H)return Yt[o];return Vy(y.slice(t.length+1).replace(/^0X/,""))}catch{return null}}function _o({provider:n}){return async({contractAddress:y,abi:t,funcName:o,funcParams:f=[],txOverrides:T})=>Hy(y,t,n).getFunction(o).populateTransaction(...f.concat(T).filter((C)=>typeof C<"u"))}function Uo({chain:n,provider:y,isEIP1559Compatible:t=!0}){return V0(n).with(Jn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:T}=await y.getFeeData();if(!f||T===null)throw new i("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:ln(f,b.Average),maxPriorityFeePerGas:ln(T,b.Average)},[b.Fast]:{maxFeePerGas:ln(f,b.Fast),maxPriorityFeePerGas:ln(T,b.Fast)},[b.Fastest]:{maxFeePerGas:ln(f,b.Fastest),maxPriorityFeePerGas:ln(T,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Jn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new i("toolbox_evm_no_fee_data");let T=f*12n/10n;return{[b.Average]:{gasPrice:T},[b.Fast]:{gasPrice:ln(T,b.Fast)},[b.Fastest]:{gasPrice:ln(T,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:T,gasPrice:C}=await y.getFeeData();if(t){if(f===null||T===null)throw new i("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:T},[b.Fast]:{maxFeePerGas:ln(f,b.Fast),maxPriorityFeePerGas:ln(T,b.Fast)},[b.Fastest]:{maxFeePerGas:ln(f,b.Fastest),maxPriorityFeePerGas:ln(T,b.Fastest)}}}if(!C)throw new i("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:C},[b.Fast]:{gasPrice:ln(C,b.Fast)},[b.Fastest]:{gasPrice:ln(C,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function Nt({provider:n,isEIP1559Compatible:y,signer:t,chain:o}){return async function({callProvider:T,contractAddress:C,abi:H,funcName:A,funcParams:_=[],txOverrides:X={},feeOption:B=b.Fast}){let U=T||n;if(!C)throw new i("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=Jt({abi:H,funcName:A});if(W&&No(U)&&t){let L=_o({chain:o,provider:U}),N=X?.from||await t?.getAddress(),J=await L({abi:H,contractAddress:C,funcName:A,funcParams:_,txOverrides:{...X,from:N}});return zo(U)(J)}let w=Hy(C,H,U);if(W){if(!t)throw new i("toolbox_evm_no_signer");let L=X?.from||await t.getAddress();if(!L)throw new i("toolbox_evm_no_signer_address");let N=w.connect(t),J=Uo({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:O,maxPriorityFeePerGas:Y,gasPrice:q}=(await J())[B],M=await w.getFunction(A).estimateGas(..._,X),G=await N[A](..._,{...X,gasLimit:M,gasPrice:q,maxFeePerGas:O,maxPriorityFeePerGas:Y,nonce:X?.nonce||await U.getTransactionCount(L)});return typeof G?.hash==="string"?G?.hash:G}let l=await w[A]?.(..._);return typeof l?.hash==="string"?l?.hash:l}}function c0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:T}){return Nt({chain:y,isEIP1559Compatible:!0,provider:n})({abi:ty,contractAddress:o,funcName:"allowance",funcParams:[T,f]})}}function hA({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:T,amount:C=Ty}){let H=await c0({chain:y,provider:n})({assetAddress:o,from:T,spenderAddress:f});return vy.fromBigInt(H).gte(vy.fromBigInt(BigInt(C)))}}function mA({signer:n,isEIP1559Compatible:y=!0,provider:t,chain:o}){return async function({assetAddress:T,spenderAddress:C,feeOptionKey:H=b.Fast,amount:A,gasLimitFallback:_,from:X,nonce:B}){let U=[C,BigInt(A||Ty)],W=await n?.getAddress()||X,w={abi:ty,contractAddress:T,funcName:"approve",funcParams:U,signer:n,txOverrides:{from:W}};if(No(t)){let L=_o({chain:o,provider:t}),N=zo(t),J=await L(w);return N(J)}return Nt({chain:o,isEIP1559Compatible:y,provider:t,signer:n})({...w,feeOption:H,funcParams:U,txOverrides:{from:W,gasLimit:_?BigInt(_.toString()):void 0,nonce:B}})}}function rA({signer:n,isEIP1559Compatible:y=!0,provider:t}){return async function({assetValue:f,memo:T,recipient:C,feeOptionKey:H=b.Fast,sender:A,..._}){let{hexlify:X,toUtf8Bytes:B}=await import("ethers"),U=f.getBaseValue("bigint"),W=f.chain,w=A||await n?.getAddress(),l=h0({chain:W,isEIP1559Compatible:y,provider:t,signer:n});if(!w)throw new i("toolbox_evm_no_from_address");if(f.isGasAsset){let q={..._,data:X(B(T||"")),feeOptionKey:H,from:w,to:C,value:U};return l(q)}if(!Do(f,W))throw new i("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:J,gasPrice:O}=(await Uo({chain:W,isEIP1559Compatible:y,provider:t})())[H],Y=await Qt({chain:W,provider:t,signer:n})({assetValue:f,data:X(B(T||"")),gasPrice:O,maxFeePerGas:N,maxPriorityFeePerGas:J,memo:T,recipient:C,sender:w});return l(Y)}}function i0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:T,funcParams:C=[],txOverrides:H}){if(!o)throw new i("toolbox_evm_no_contract_address");let A=Hy(o,f,n);return y?A.connect(y).getFunction(T).estimateGas(...C,H):A.getFunction(T).estimateGas(...C,H)}}function gA({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:T,data:C,sender:H,funcName:A,funcParams:_,txOverrides:X}){let B=o.bigIntValue,U=o.isGasAsset?null:Do(o,o.chain);if(U&&A)return i0({provider:n,signer:y})({abi:ty,contractAddress:U,funcName:A,funcParams:_,txOverrides:X});let{hexlify:W,toUtf8Bytes:w}=await import("ethers");return n.estimateGas({data:C?C:T?W(w(T)):void 0,from:H,to:f,value:B})}}function dA({signer:n}){if(!n)return;return(y)=>Mt(n,y)}function h0({provider:n,signer:y,isEIP1559Compatible:t=!0,chain:o}){return async function({feeOptionKey:T=b.Fast,...C}){let{from:H,to:A,data:_,value:X,...B}=C;if(!y)throw new i("toolbox_evm_no_signer");if(!A)throw new i("toolbox_evm_no_to_address");let U={...B,data:_||"0x",from:H,to:A,value:BigInt(X||0)};if(No(n))return zo(n)(U);let W=H||await y.getAddress(),w=C.nonce||await n.getTransactionCount(W),l=(await n.getNetwork()).chainId,L=Dt(U,t);if(L==="eip7702")Lt(U.authorizations||[],l);let N=V0(L).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),J={...U,chainId:l,nonce:w,type:N,...L==="eip7702"&&{authorizationList:U.authorizations}},O=Uo({chain:o,isEIP1559Compatible:t,provider:n}),q=L!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await O())[T]).reduce((G,[Z,D])=>({...G,[Z]:yy(BigInt(D))}),{}):{},M;try{M=yy(U.gasLimit||await n.estimateGas(J)*11n/10n)}catch(G){throw new i("toolbox_evm_error_estimating_gas_limit",{error:G})}try{let G={...J,gasLimit:M,...q};try{return(await y.sendTransaction(G)).hash}catch{let Z=await y.signTransaction({...G,from:W});return(await n.broadcastTransaction(Z)).hash}}catch(G){throw new i("toolbox_evm_error_sending_transaction",{error:G})}}}function Qt({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:T,data:C,sender:H,maxFeePerGas:A,maxPriorityFeePerGas:_,gasPrice:X,...B}){let U=o.getBaseValue("bigint"),W=o.chain,w=H||await y?.getAddress();if(!w)throw new i("toolbox_evm_no_from_address");if(VA(o)){let{hexlify:N,toUtf8Bytes:J}=await import("ethers");return{...B,data:C||N(J(f||"")),from:w,to:T,value:U}}let l=Do(o,W);if(!l)throw new i("toolbox_evm_no_contract_address");return _o({chain:o.chain,provider:n})({abi:ty,contractAddress:l,funcName:"transfer",funcParams:[T,U],txOverrides:{from:w,gasPrice:X,maxFeePerGas:A,maxPriorityFeePerGas:_}})}}function aA({provider:n,signer:y,chain:t}){return async function({assetAddress:f,spenderAddress:T,amount:C,from:H}){let A=await y?.getAddress()||H,_=_o({chain:t,provider:n}),X=["bigint","number"].includes(typeof C)?C:C||Ty;return await _({abi:ty,contractAddress:f,funcName:"approve",funcParams:[T,BigInt(X)],txOverrides:{from:A}})}}function sA({provider:n,isEIP1559Compatible:y=!0,chain:t}){return async function({feeOption:f=b.Fast,...T}){let H=await Uo({chain:t,isEIP1559Compatible:y,provider:n})(),A=await n.estimateGas(T),_=bA.from({chain:t}),{gasPrice:X,maxFeePerGas:B,maxPriorityFeePerGas:U}=H[f];if(!y&&X)return _.set(vy.fromBigInt(X*A,_.decimal));if(B&&U){let W=(B+U)*A;return _.set(vy.fromBigInt(W,_.decimal))}throw new i("toolbox_evm_no_gas_price")}}var Ty,jA,cA,Yt,iA,Ky=(n)=>n.type===4||(n.authorizations?.length??0)>0,zt=(n)=>!Ky(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),Dt=(n,y=!0)=>{if(Ky(n))return"eip7702";if(zt(n)||y)return"eip1559";return"legacy"};var jy=F(()=>{Ey();fy();Ty=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");jA=["payable","nonpayable"];cA=vA.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),Yt={...cA,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},iA=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as eA}from"@swapkit/helpers";import{HDNodeWallet as n_}from"ethers";import{match as o_,P as m0}from"ts-pattern";function cy(n){let y=g(r.Ethereum)(n);async function t(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",C=eA.Fast){let H=await y.createContractTxObject({abi:$0,contractAddress:f,funcName:T,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:t}}function g(n){return function({provider:t,...o}){let f=Bt(n),T=o_(o).with({phrase:m0.string},({phrase:H})=>n_.fromPhrase(H).connect(t)).with({signer:m0.any},({signer:H})=>H).otherwise(()=>{return});return Yo({chain:n,isEIP1559Compatible:f,provider:t,signer:T})}}var iy,hy,my,ry,gy,dy,ay,r0,sy,ey,nf,of,yf,ff,Ay,tf,Tf,Cf,Hf;var Ot=F(()=>{E0();fy();jy();iy=g(r.Adi),hy=g(r.Arbitrum),my=g(r.Aurora),ry=g(r.Avalanche),gy=g(r.Base),dy=g(r.Berachain),ay=g(r.BinanceSmartChain),r0=g(r.Botanix),sy=g(r.Core),ey=g(r.Corn),nf=g(r.Cronos),of=g(r.Gnosis),yf=g(r.Hyperevm),ff=g(r.Polygon),Ay=g(r.Sonic),tf=g(r.Unichain),Tf=g(r.XLayer),Cf=g(r.Monad),Hf=g(r.MegaETH)});var g0;var d0=F(()=>{g0=[{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 Oo,Chain as f_,FeeOption as bn,SwapKitError as Rt}from"@swapkit/helpers";import{Contract as t_,HDNodeWallet as T_}from"ethers";import{match as C_,P as a0}from"ts-pattern";function xt(n){return new t_(H_,g0,n)}function s0(n){return async function(){let t=xt(n);if(t&&"l1BaseFee"in t)return await t?.l1BaseFee();return}}function e0(n){return async function({from:t,to:o,nonce:f,...T}){let{Transaction:C}=await import("ethers");if(!o)throw new Rt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...T,authorizationList:T.authorizationList,nonce:f?f:t?await n.getTransactionCount(t):0,to:o}).serialized}}function nC(n){return async function(t){let o=xt(n),f=await e0(n)(t);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function oC(n){return async function(t){let f=(await n.getFeeData()).gasPrice??0n,T=await n.estimateGas(t);return f*T}}function A_(n){return async function(t){let o=await nC(n)(t)??0n,f=await oC(n)(t);return o+f}}function __(n){return async function(t){let o=xt(n),f=await e0(n)(t);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function U_(n){return async function(){try{let{maxFeePerGas:t,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),T=await s0(n)(),C=f;if(!(t&&o))throw new Rt("toolbox_evm_no_fee_data");return{[bn.Average]:{gasPrice:C,l1GasPrice:T,maxFeePerGas:t,maxPriorityFeePerGas:o},[bn.Fast]:{gasPrice:Oo(C,bn.Fast),l1GasPrice:Oo(T||0n,bn.Fast),maxFeePerGas:t,maxPriorityFeePerGas:Oo(o,bn.Fast)},[bn.Fastest]:{gasPrice:Oo(C,bn.Fastest),l1GasPrice:Oo(T||0n,bn.Fastest),maxFeePerGas:t,maxPriorityFeePerGas:Oo(o,bn.Fastest)}}}catch(t){throw new Rt("toolbox_evm_gas_estimation_error",{error:t.msg??t.toString()})}}}function Af({provider:n,...y}){let t=C_(y).with({phrase:a0.string},({phrase:T})=>T_.fromPhrase(T).connect(n)).with({signer:a0.any},({signer:T})=>T).otherwise(()=>{return}),o=Yo({provider:n,signer:t}),f=s0(n);return{...o,estimateGasPrices:U_(n),estimateL1Gas:__(n),estimateL1GasCost:nC(n),estimateL2GasCost:oC(n),estimateTotalGasCost:A_(n),getBalance:oy(f_.Optimism).getBalance,getL1GasPrice:f}}var H_="0x420000000000000000000000000000000000000f";var St=F(()=>{Ey();d0();jy()});var fC={};nn(fC,{validateEVMAddress:()=>Cy,toChecksumAddress:()=>K0,isStateChangingCall:()=>Jt,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>zt,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getEvmToolboxAsync:()=>yC,getEvmToolbox:()=>Ft,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>Dt,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>Zt,getChecksumAddressFromAsset:()=>j0,createContract:()=>Hy,XLayerToolbox:()=>Tf,UNIToolbox:()=>tf,SONICToolbox:()=>Ay,OPToolbox:()=>Af,MONADToolbox:()=>Cf,MEGAETHToolbox:()=>Hf,MAX_APPROVAL:()=>Ty,MATICToolbox:()=>ff,HYPEREVMToolbox:()=>yf,GNOToolbox:()=>of,ETHToolbox:()=>cy,ContractAddress:()=>Yt,CROToolbox:()=>nf,CORNToolbox:()=>ey,COREToolbox:()=>sy,BotanixToolbox:()=>r0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>ay,BERAToolbox:()=>dy,BASEToolbox:()=>gy,AVAXToolbox:()=>ry,AURORAToolbox:()=>my,ARBToolbox:()=>hy,ADIToolbox:()=>iy});import{Chain as m}from"@swapkit/helpers";import{match as w_}from"ts-pattern";function Ft(n,y){return w_(n).with(m.Adi,()=>iy(y)).with(m.Arbitrum,()=>hy(y)).with(m.Aurora,()=>my(y)).with(m.Avalanche,()=>ry(y)).with(m.Base,()=>gy(y)).with(m.Berachain,()=>dy(y)).with(m.BinanceSmartChain,()=>ay(y)).with(m.Botanix,()=>Ay(y)).with(m.Core,()=>sy(y)).with(m.Corn,()=>ey(y)).with(m.Cronos,()=>nf(y)).with(m.Ethereum,()=>cy(y)).with(m.Gnosis,()=>of(y)).with(m.Hyperevm,()=>yf(y)).with(m.Optimism,()=>Af(y)).with(m.Polygon,()=>ff(y)).with(m.Sonic,()=>Ay(y)).with(m.Unichain,()=>tf(y)).with(m.XLayer,()=>Tf(y)).with(m.Monad,()=>Cf(y)).with(m.MegaETH,()=>Hf(y)).exhaustive()}async function yC(n,y){let t={...y,provider:y?.provider||await Xt(n)};return Ft(n,t)}var pt=F(()=>{fy();Ot();St();jy();Ot();St()});var tC;var TC=F(()=>{((t)=>{t.Test="goerli";t.Main="homestead"})(tC||={})});var CC={};nn(CC,{validateEVMAddress:()=>Cy,validateAuthorizations:()=>Lt,validateAuthorization:()=>P0,toHexString:()=>yy,toChecksumAddress:()=>K0,signAuthorization:()=>Mt,parseEIP712FromEVMTx:()=>EA,isStateChangingCall:()=>Jt,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>zt,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getProviderSync:()=>u0,getProvider:()=>Xt,getNetworkParams:()=>Wt,getIsEIP1559Compatible:()=>Bt,getEvmToolboxAsync:()=>yC,getEvmToolbox:()=>Ft,getEvmApi:()=>oy,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>Dt,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>Zt,getChecksumAddressFromAsset:()=>j0,createCustomEvmApi:()=>pA,createContract:()=>Hy,buildEIP712DomainType:()=>I0,XLayerToolbox:()=>Tf,UNIToolbox:()=>tf,SONICToolbox:()=>Ay,OPToolbox:()=>Af,MONADToolbox:()=>Cf,MEGAETHToolbox:()=>Hf,MAX_APPROVAL:()=>Ty,MATICToolbox:()=>ff,HYPEREVMToolbox:()=>yf,GNOToolbox:()=>of,EthNetwork:()=>tC,ETHToolbox:()=>cy,ContractAddress:()=>Yt,CROToolbox:()=>nf,CORNToolbox:()=>ey,COREToolbox:()=>sy,BotanixToolbox:()=>r0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>ay,BERAToolbox:()=>dy,BASEToolbox:()=>gy,AVAXToolbox:()=>ry,AURORAToolbox:()=>my,ARBToolbox:()=>hy,ADIToolbox:()=>iy});var kt=F(()=>{Ey();fy();pt();TC()});import{bech32 as q_}from"@scure/base";import{mnemonicToSeed as l_}from"@scure/bip39";import{Bip32PrivateKey as G_}from"@stricahq/bip32ed25519";import{Transaction as X_,types as It,address as W_,crypto as ut,utils as HC}from"@stricahq/typhonjs";import{AssetValue as Ro,Chain as wo,getChainConfig as B_,SwapKitError as _y}from"@swapkit/helpers";import Wn from"bignumber.js";async function $t(n,y){let t=await fetch(`${wC}${n}`,{...y,headers:{project_id:UC,...y?.headers}});if(!t.ok)throw Error(`Blockfrost API error: ${t.status} ${t.statusText}`);return t.json()}async function qC(n){try{return await $t(`/addresses/${n}/utxos`)}catch{return[]}}async function L_(){return(await $t("/blocks/latest")).slot}async function Q_(){let n=await $t("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new Wn(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new Wn(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new Wn(n.min_fee_a),minFeeB:new Wn(n.min_fee_b),minFeeRefScriptCostPerByte:new Wn(15),priceMem:new Wn(n.price_mem),priceSteps:new Wn(n.price_step),stakeKeyDeposit:new Wn(2000000),utxoCostPerByte:new Wn(n.coins_per_utxo_size)}}async function _C(n){let y=await fetch(`${wC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:UC},method:"POST"});if(!y.ok){let t=await y.text();throw Error(`Transaction submission failed: ${t}`)}return y.json()}function Z_(n,y){return n.map((t)=>{let o=t.amount.find((C)=>C.unit==="lovelace"),f=o?new Wn(o.quantity):new Wn(0),T=t.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new Wn(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:t.output_index,tokens:T,txId:t.tx_hash}})}async function J_(n){try{let y=await qC(n),t=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:A,quantity:_}=H;if(A==="lovelace")t+=BigInt(_);else{let X=o.get(A)||0n;o.set(A,X+BigInt(_))}}}let f=[],{baseDecimal:T}=B_(wo.Cardano);if(t>0n)f.push(Ro.from({chain:wo.Cardano,fromBaseDecimal:T,value:t.toString()}));for(let[C,H]of o)f.push(Ro.from({asset:`${wo.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[Ro.from({chain:wo.Cardano})];return f}catch(y){let t=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${t}`),[Ro.from({chain:wo.Cardano})]}}function lC(n){if(!n||typeof n!=="string")return!1;try{let y=q_.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function Y_(n,y=0,t=0){let o=await l_(n,""),T=(await G_.fromEntropy(Buffer.from(o.slice(0,64)))).derive(Pt+1852).derive(Pt+1815).derive(Pt+y),C=T.derive(0).derive(t),H=C.toBip32PublicKey().toPublicKey().toBytes(),A=ut.hash28(H),X=T.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),B=ut.hash28(X),U={hash:A,type:It.HashType.ADDRESS},W={hash:B,type:It.HashType.ADDRESS},l=new W_.BaseAddress(M_,U,W).getBech32(),L=C.toPrivateKey();return{getAddress:()=>l,publicKey:H,publicKeyHash:A,signTransaction:async(N)=>{try{let J=await import("@stricahq/cbors"),O=Buffer.from(N,"hex"),Y=J.Decoder.decode(O),[q,M,G,Z]=Y.value,D=J.Encoder.encode(q),Q=ut.hash32(D),z=L.sign(Q),R=M instanceof Map?M:new Map,p=R.get(AC)||[];p.push([H,z]),R.set(AC,p);let k=[q,R,G,Z];return J.Encoder.encode(k).toString("hex")}catch(J){throw new _y("toolbox_cardano_sign_transaction_failed",{message:String(J)})}}}}function N_(n){let y,t,o;async function f(){if(!o)o=await Q_();return o}async function T(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let W=n.index??0;return y=await Y_(n.phrase,0,W),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(t)return t;let W=await T();if(!W)return"";if("getAddress"in W)return t=await W.getAddress(),t;return""}async function H(W){let w=W||await C();if(!w)throw new _y("core_wallet_connection_not_found");return J_(w)}async function A(W){if(W)try{let{tx:N}=await _(W),J=N.getFee();return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:J.toString()})}catch{}let w=await f(),l=400,L=w.minFeeB.plus(w.minFeeA.times(l));return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:L.toString()})}async function _({sender:W="",recipient:w,assetValue:l,memo:L,pureLovelaceOnly:N=!1}){let J=W||await C();if(!J)throw new _y("core_wallet_connection_not_found");let[O,Y,q]=await Promise.all([qC(J),L_(),f()]),M=O.filter((c)=>N?c.amount.every((V)=>V.unit==="lovelace"):c.amount.some((V)=>V.unit==="lovelace")).sort((c,V)=>{let yn=c.amount.some((Un)=>Un.unit!=="lovelace"),a=V.amount.some((Un)=>Un.unit!=="lovelace");if(yn===a)return 0;return yn?1:-1}),G=HC.getAddressFromString(J),Z=HC.getAddressFromString(w),D=Z_(M,G),Q=new Wn(l.getBaseValue("string")),z=[{address:Z,amount:Q,tokens:[]}],R;if(L){let c=new Map;c.set("msg",[L]),R={metadata:[{data:c,label:674}]}}let p={...q,minFeeB:q.minFeeB.plus(q.minFeeA.times(4))},I=new X_({protocolParams:p}).paymentTransaction({auxiliaryData:R,changeAddress:G,inputs:D,outputs:z,ttl:Y+3600}),{payload:v}=I.buildTransaction();return{tx:I,unsignedTx:v}}async function X(W){let w=await T();if(!w||!("signTransaction"in w))throw new _y("core_wallet_connection_not_found");return w.signTransaction(W)}async function B({recipient:W,assetValue:w,memo:l}){let L=await T();if(!L||!("signTransaction"in L))throw new _y("core_wallet_connection_not_found");let{unsignedTx:N}=await _({assetValue:w,memo:l,recipient:W,sender:await C()}),J=await X(N);return await _C(J)}async function U(W){let w=await X(W);return await _C(w)}return{createTransaction:_,estimateTransactionFee:A,getAddress:C,getBalance:H,signAndBroadcastTransaction:U,signTransaction:X,transfer:B,validateAddress:lC}}var UC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",wC="https://cardano-mainnet.blockfrost.io/api/v0",M_,Pt=2147483648,AC=0;var GC=F(()=>{M_=It.NetworkId.MAINNET});var Et={};nn(Et,{validateCardanoAddress:()=>lC,getCardanoToolbox:()=>N_});var bt=F(()=>{GC()});import{base64 as Uf,bech32 as _f}from"@scure/base";import{SwapKitError as z_}from"@swapkit/helpers";function Uy(n){return Uf.encode(Uint8Array.from(_f.fromWords(_f.decode(n).words)))}function wy(n,y="thor"){return _f.encode(y,_f.toWords(Uf.decode(n)))}function D_(n){return Uf.encode(n)}function O_(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new z_("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return Uf.decode(n)}var vt=()=>{};import{AssetValue as Vt,Chain as E,getChainConfig as pn,getRPCUrl as R_,SwapKitError as XC}from"@swapkit/helpers";function vn(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return MC;case E.Noble:return LC;default:return BC}}async function Vn(n){let y=await import("@cosmjs/stargate"),t=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return t.connect({headers:o,url:n})}async function qo(n,y,t={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,T=o.GasPrice??o.default?.GasPrice,C=typeof t==="string"?t:"0.0003uatom",H=typeof t==="string"?{}:t;return f.connectWithSigner(n,y,{gasPrice:T.fromString(C),...H})}async function jt(n,y){let t=await import("@cosmjs/stargate");return(t.SigningStargateClient??t.default?.SigningStargateClient).offline(n,y)}async function ct({sender:n,recipient:y,assetValue:t,memo:o="",feeRate:f,sequence:T,accountNumber:C}){let{chain:H,chainId:A}=t,_=await R_(H),B=await(await Vn(_)).getAccount(n);if(!B)throw new XC("toolbox_cosmos_account_not_found",{sender:n});let U=Vt.from({chain:H}),W=rn(U.symbol),w=vn(H),l=W&&f?{amount:[{amount:f.toString(),denom:W}],gas:w.gas}:w,L={amount:[{amount:t.getBaseValue("string"),denom:rn(t.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??B.accountNumber,chainId:A,fee:l,memo:o,msgs:[{typeUrl:x_(H),value:L}],sequence:T??B.sequence}}var Kt="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",WC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",BC,MC,LC,rn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return Kt;case"uYUM":case"YUM":return WC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},qy=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return rn(n,!1)},x_=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new XC("toolbox_cosmos_not_supported",{chain:n})}},S_,it=(n,y)=>{let t=S_[n.toLowerCase()];if(!t)return Vt.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:T}=t,C=o?{chain:o}:{asset:f};return Vt.from({...C,fromBaseDecimal:T,value:y})};var ly=F(()=>{BC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},MC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},LC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};S_={atom:{chain:E.Cosmos,decimals:pn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:pn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:pn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:pn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:pn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:pn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:pn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:pn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:pn(E.THORChain).baseDecimal},[Kt.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:pn(E.Kujira).baseDecimal}}});var QC={};nn(QC,{$root:()=>S});import on from"protobufjs/minimal.js";var P,Mn,u,S;var ZC=F(()=>{P=on.Reader,Mn=on.Writer,u=on.util,S=on.roots.default||(on.roots.default={});S.common=(()=>{let n={};return n.Asset=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Asset;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!u.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!u.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Asset)return o;let f=new S.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.chain="",T.symbol="",T.ticker="",T.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))T.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))T.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))T.synth=o.synth;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=u.Long?u.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))S.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Coin;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.asset=S.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=S.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!u.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!u.isInteger(o.decimals)&&!(o.decimals&&u.isInteger(o.decimals.low)&&u.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Coin)return o;let f=new S.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=S.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(u.Long)(f.decimals=u.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)if(T.asset=null,T.amount="",u.Long){let C=new u.Long(0,0,!1);T.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else T.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))T.asset=S.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))T.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")T.decimals=f.longs===String?String(o.decimals):o.decimals;else T.decimals=f.longs===String?u.Long.prototype.toString.call(o.decimals):f.longs===Number?new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.PubKeySet;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!u.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!u.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.PubKeySet)return o;let f=new S.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.secp256k1="",T.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))T.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))T.ed25519=o.ed25519;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(t){if(this.coins=[],this.gas=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=u.emptyArray,y.prototype.gas=u.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let T=0;T<o.gas.length;++T)S.common.Coin.encode(o.gas[T],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Tx;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(S.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!u.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!u.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!u.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let T=S.common.Coin.verify(o.gas[f]);if(T)return"gas."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Tx)return o;let f=new S.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let T=0;T<o.gas.length;++T){if(typeof o.gas[T]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[T]=S.common.Coin.fromObject(o.gas[T])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[],T.gas=[];if(f.defaults)T.id="",T.chain="",T.fromAddress="",T.toAddress="",T.memo="";if(o.id!=null&&o.hasOwnProperty("id"))T.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=o.toAddress;if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){T.gas=[];for(let C=0;C<o.gas.length;++C)T.gas[C]=S.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Fee;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!u.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Fee)return o;let f=new S.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults)T.poolDeduct="";if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))T.poolDeduct=o.poolDeduct;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.ProtoUint;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!u.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.ProtoUint)return o;let f=new S.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.value="";if(o.value!=null&&o.hasOwnProperty("value"))T.value=o.value;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.memo="",y.prototype.signer=u.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgDeposit;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||u.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof S.types.MsgDeposit)return o;let f=new S.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")u.base64.decode(o.signer,f.signer=u.newBuffer(u.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults){if(T.memo="",f.bytes===String)T.signer="";else if(T.signer=[],f.bytes!==Array)T.signer=u.newBuffer(T.signer)}if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))T.signer=f.bytes===String?u.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(t){if(this.amount=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.fromAddress=u.newBuffer([]),y.prototype.toAddress=u.newBuffer([]),y.prototype.amount=u.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let T=0;T<o.amount.length;++T)S.cosmos.base.v1beta1.Coin.encode(o.amount[T],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgSend;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(S.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||u.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||u.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let T=S.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(T)return"amount."+T}}return null},y.fromObject=function(o){if(o instanceof S.types.MsgSend)return o;let f=new S.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")u.base64.decode(o.fromAddress,f.fromAddress=u.newBuffer(u.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")u.base64.decode(o.toAddress,f.toAddress=u.newBuffer(u.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let T=0;T<o.amount.length;++T){if(typeof o.amount[T]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[T]=S.cosmos.base.v1beta1.Coin.fromObject(o.amount[T])}}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.amount=[];if(f.defaults){if(f.bytes===String)T.fromAddress="";else if(T.fromAddress=[],f.bytes!==Array)T.fromAddress=u.newBuffer(T.fromAddress);if(f.bytes===String)T.toAddress="";else if(T.toAddress=[],f.bytes!==Array)T.toAddress=u.newBuffer(T.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=f.bytes===String?u.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=f.bytes===String?u.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){T.amount=[];for(let C=0;C<o.amount.length;++C)T.amount[C]=S.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let t={};return t.Coin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Mn.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof P))T=P.create(T);let H=C===void 0?T.len:T.pos+C,A=new S.cosmos.base.v1beta1.Coin;while(T.pos<H){let _=T.uint32();switch(_>>>3){case 1:A.denom=T.string();break;case 2:A.amount=T.string();break;default:T.skipType(_&7);break}}return A},o.decodeDelimited=function(T){if(!(T instanceof P))T=new P(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!u.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!u.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.Coin)return T;let C=new S.cosmos.base.v1beta1.Coin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecCoin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Mn.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof P))T=P.create(T);let H=C===void 0?T.len:T.pos+C,A=new S.cosmos.base.v1beta1.DecCoin;while(T.pos<H){let _=T.uint32();switch(_>>>3){case 1:A.denom=T.string();break;case 2:A.amount=T.string();break;default:T.skipType(_&7);break}}return A},o.decodeDelimited=function(T){if(!(T instanceof P))T=new P(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!u.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!u.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecCoin)return T;let C=new S.cosmos.base.v1beta1.DecCoin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.IntProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.int="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Mn.create();if(T.int!=null&&Object.hasOwnProperty.call(T,"int"))C.uint32(10).string(T.int);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof P))T=P.create(T);let H=C===void 0?T.len:T.pos+C,A=new S.cosmos.base.v1beta1.IntProto;while(T.pos<H){let _=T.uint32();switch(_>>>3){case 1:A.int=T.string();break;default:T.skipType(_&7);break}}return A},o.decodeDelimited=function(T){if(!(T instanceof P))T=new P(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.int!=null&&T.hasOwnProperty("int")){if(!u.isString(T.int))return"int: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.IntProto)return T;let C=new S.cosmos.base.v1beta1.IntProto;if(T.int!=null)C.int=String(T.int);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(T.int!=null&&T.hasOwnProperty("int"))H.int=T.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.dec="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Mn.create();if(T.dec!=null&&Object.hasOwnProperty.call(T,"dec"))C.uint32(10).string(T.dec);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof P))T=P.create(T);let H=C===void 0?T.len:T.pos+C,A=new S.cosmos.base.v1beta1.DecProto;while(T.pos<H){let _=T.uint32();switch(_>>>3){case 1:A.dec=T.string();break;default:T.skipType(_&7);break}}return A},o.decodeDelimited=function(T){if(!(T instanceof P))T=new P(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.dec!=null&&T.hasOwnProperty("dec")){if(!u.isString(T.dec))return"dec: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecProto)return T;let C=new S.cosmos.base.v1beta1.DecProto;if(T.dec!=null)C.dec=String(T.dec);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(T.dec!=null&&T.hasOwnProperty("dec"))H.dec=T.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t})(),y})(),n})()});import{Chain as F_}from"@swapkit/helpers";async function lo(){let{$root:n}=await Promise.resolve().then(() => (ZC(),QC)),y=await import("@cosmjs/proto-signing"),t=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new t([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function gn(n){let y=await import("@cosmjs/stargate"),t=y.AminoTypes??y.default?.AminoTypes,o=n===F_.THORChain?"thorchain":"mayachain";return new t({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...T})=>({...T,signer:Uy(f)}),toAmino:({signer:f,...T})=>({...T,signer:wy(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:T,...C})=>({...C,fromAddress:Uy(f),toAddress:Uy(T)}),toAmino:({fromAddress:f,toAddress:T,...C})=>({...C,from_address:wy(f),to_address:wy(T)})}})}var ht=F(()=>{vt()});import{AssetValue as p_,Chain as wf,getChainConfig as JC,getRPCUrl as YC,SwapKitError as k_}from"@swapkit/helpers";function gt(n){let{assetValue:y,recipient:t,memo:o,sender:f,asSignable:T,asAminoMessage:C}=n;if(t)return zC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,recipient:t,sender:f});return DC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,sender:f})}async function zC({sender:n,recipient:y,assetValue:t,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let A=t.chain,_=await YC(A),X=await NC({rpcUrl:_,sender:n}),{chainId:B}=JC(A),U=mt({assetValue:t,recipient:y,sender:n}),W=f?await dn(T?U:an(U),A):U;return{accountNumber:H||X.accountNumber,chainId:B,fee:vn(A),memo:o,msgs:[W],sequence:C||X.sequence}}async function DC({sender:n,assetValue:y,memo:t="",asSignable:o=!0,asAminoMessage:f=!1,sequence:T,accountNumber:C}){let H=y.chain,A=await YC(H),_=await NC({rpcUrl:A,sender:n}),{chainId:X}=JC(H),B=rt({assetValue:y,memo:t,sender:n}),U=o?await dn(f?B:an(B),H):B;return{accountNumber:C||_.accountNumber,chainId:X,fee:vn(H),memo:t,msgs:[U],sequence:T||_.sequence}}function an(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let t=p_.from({asset:y.asset}),o=(t.isSynthetic?t.symbol.split("/")?.[1]:t.symbol)?.toUpperCase(),f=(t.isSynthetic?t.symbol.split("/")?.[0]:t.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:t.isSynthetic,ticker:t.ticker}}})}}}async function Gy({chain:n,memo:y,msgs:t}){let o=await lo(),f=await gn(n),T={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:t.map((C)=>f.fromAmino(C))}};return o.encode(T)}var u_,P_,mt=({sender:n,recipient:y,assetValue:t})=>{return{type:`${t.chain===wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:t.getBaseValue("string"),denom:rn(t.symbol,!0)}],from_address:n,to_address:y}}},rt=({sender:n,assetValue:y,memo:t=""})=>{return{type:`${y.chain===wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:qy(y)}],memo:t,signer:n}}},qf=({sender:n,recipient:y,assetValue:t,memo:o})=>{return!y?rt({assetValue:t,memo:o,sender:n}):mt({assetValue:t,recipient:y,sender:n})},dn=async(n,y)=>{return(await gn(y)).fromAmino(n)},NC=async({rpcUrl:n,sender:y})=>{let o=await(await Vn(n)).getAccount(y);if(!o)throw new k_("toolbox_cosmos_account_not_found",{sender:y});return o};var OC=F(()=>{ly();ht();u_=vn(wf.THORChain).gas,P_=vn(wf.Maya).gas});var RC=()=>{};var xC=F(()=>{RC()});var dt=F(()=>{vt();OC();ht();xC()});import{stringToPath as I_}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as $_}from"@cosmjs/proto-signing";import{base64 as et,bech32 as at}from"@scure/base";import{AssetValue as nT,applyFeeMultiplier as SC,Chain as tn,CosmosChainPrefixes as IC,DerivationPath as E_,derivationPathToString as FC,FeeOption as oT,getChainConfig as b_,getRPCUrl as Xy,NetworkDerivationPath as v_,SwapKitError as xo,SwapKitNumber as st,updateDerivationPath as V_}from"@swapkit/helpers";import{SwapKitApi as $C}from"@swapkit/helpers/api";import{match as K_,P as pC}from"ts-pattern";async function fT(n,y){try{let o=(await $C.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function yT({phrase:n,prefix:y,...t}){let o="derivationPath"in t?t.derivationPath:`${E_[t.chain]}/${t.index}`;return await $_.fromMnemonic(n,{hdPaths:[I_(o)],prefix:y})}async function j_({privateKey:n,prefix:y}){let t=await import("@cosmjs/proto-signing");return(t.DirectSecp256k1Wallet??t.default?.DirectSecp256k1Wallet).fromKey(n,y)}function EC(n){return async function({signature:t,message:o,address:f}){let T=await n(f);if(!T?.pubkey)throw new xo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,A=C.Secp256k1??C.default?.Secp256k1,_=H.fromFixedLength(et.decode(t));return A.verifySignature(_,et.decode(o),T.pubkey.value)}}function Wy({chain:n,...y}){let t=IC[n],o="index"in y?y.index||0:0,f=FC("derivationPath"in y&&y.derivationPath?y.derivationPath:V_(v_[n],{index:o})),T;async function C(){if(T)return T;return T=await K_(y).with({phrase:pC.string},({phrase:W})=>yT({derivationPath:f,phrase:W,prefix:t})).with({signer:pC.any},({signer:W})=>W).otherwise(()=>{return}),T}async function H(W){let w=await Xy(n);return(await Vn(w)).getAccount(W)}async function A(){let W=await C(),[w]=await W?.getAccounts()||[];return w?.address}async function _(){let W=await C(),[w]=await W?.getAccounts()||[];if(!w?.pubkey)throw new xo("toolbox_cosmos_signer_not_defined");return et.encode(w?.pubkey)}async function X(W){let w=await C(),l=await A(),L=await Xy(n);if(!(w&&l))throw new xo("toolbox_cosmos_signer_not_defined");return await(await qo(L,w)).sign(l,W.msgs,W.fee,W.memo,{accountNumber:W.accountNumber,chainId:W.chainId,sequence:W.sequence})}async function B(W){let w=await C(),l=await A(),L=await Xy(n);if(!(w&&l))throw new xo("toolbox_cosmos_signer_not_defined");let J=await(await qo(L,w)).signAndBroadcast(l,W.msgs,W.fee,W.memo);if(J.code!==0)throw new xo("core_swap_transaction_error",{code:J.code,message:J.rawLog});return J.transactionHash}async function U({recipient:W,assetValue:w,memo:l="",feeRate:L,feeOptionKey:N=oT.Fast}){let J=await C(),O=await A();if(!(J&&O))throw new xo("toolbox_cosmos_signer_not_defined");let Y=await Xy(n),q=nT.from({chain:n}),M=qy(q),G=L||h_((await uC(n,kC[n]))[N],M),Z=await qo(Y,J),D=rn(w.symbol),Q=[{amount:w.getBaseValue("string"),denom:D}],{transactionHash:z}=await Z.sendTokens(O,W,Q,G,l);return z}return{createPrivateKeyFromPhrase:r_(f),createTransaction:ct,fetchFeeRateFromSwapKit:fT,getAccount:H,getAddress:A,getBalance:async(W,w)=>{let l=await PC(n)(W),L=await Promise.all(l.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([tn.THORChain,tn.Maya].includes(n)&&N.split("-").length>2)).map(({denom:N,amount:J})=>{let O=[tn.THORChain,tn.Maya].includes(n)&&(N.includes("/")||N.includes("˜"))?`${n}.${N}`:N;return it(O,J)}));if(L.length===0)return[nT.from({chain:n})];return L},getBalanceAsDenoms:PC(n),getFees:()=>uC(n,kC[n]),getPubKey:_,getSignerFromPhrase:({phrase:W,derivationPath:w})=>yT({derivationPath:FC(w),index:o,phrase:W,prefix:t}),getSignerFromPrivateKey:async(W)=>{let w=await import("@cosmjs/proto-signing");return(w.DirectSecp256k1Wallet??w.default?.DirectSecp256k1Wallet).fromKey(W,t)},signAndBroadcastTransaction:B,signTransaction:X,transfer:U,validateAddress:bC(n),verifySignature:EC(H)}}async function c_(n,y){try{let o=(await $C.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function i_({assetValue:{chain:n}}){return nT.from({chain:n,value:m_(n)})}async function uC(n,y){let{chainId:t,baseDecimal:o}=b_(n),f=await fT(t,y);return{average:st.fromBigInt(BigInt(f),o),fast:st.fromBigInt(BigInt(SC(f,oT.Fast,!0)),o),fastest:st.fromBigInt(BigInt(SC(f,oT.Fastest,!0)),o)}}function h_(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function m_(n){return{[tn.Cosmos]:0.007,[tn.Kujira]:0.02,[tn.Noble]:0.01,[tn.THORChain]:0.02,[tn.Maya]:0.02,[tn.Harbor]:0.02}[n]||0}function bC(n){let y=IC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:T}=at.decode(o);return at.encode(f,T)===o.toLocaleLowerCase()}catch{return!1}}}function PC(n){return async function(t){let o=await Xy(n);return(await(await Vn(o)).getAllBalances(t)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function r_(n){return async function(t){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,T=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,A=o.Bip39??o.default?.Bip39,_=new H(t),X=await A.mnemonicToSeed(_),{privkey:B}=C.derivePath(T.Secp256k1,X,f(n));return B}}var kC;var lf=F(()=>{ly();kC={[tn.Cosmos]:1000,[tn.Kujira]:1000,[tn.Noble]:1000,[tn.THORChain]:5000000,[tn.Maya]:5000000,[tn.Harbor]:5000000}});import{base64 as Go}from"@scure/base";import{Chain as g_,CosmosChainPrefixes as d_,derivationPathToString as a_,FeeOption as tT,getChainConfig as vC,getRPCUrl as cC,NetworkDerivationPath as s_,RequestClient as e_,SKConfig as n5,SwapKitError as VC,SwapKitNumber as KC,updateDerivationPath as o5}from"@swapkit/helpers";import{match as y5,P as jC}from"ts-pattern";function f5({prefix:n,derivationPath:y}){return async function(o,f=0){let T=await import("@cosmjs/amino"),C=T.Secp256k1HdWallet??T.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),A=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[A(`${y}/${f}`)],prefix:n})}}function t5(n){return Go.encode(n)}function T5(n){return async function({wallet:t,tx:o}){let{msgs:f,accountNumber:T,sequence:C,chainId:H,fee:A,memo:_}=typeof o==="string"?JSON.parse(o):o,X=(await t.getAccounts())?.[0]?.address||"",B=await gn(n),U=await lo(),W=await jt(t,{aminoTypes:B,registry:U}),w=[];for(let N of f){let J=await dn(N,n);w.push(J)}let{signatures:[l]}=await W.sign(X,w,A,_,{accountNumber:T,chainId:H,sequence:C});return{bodyBytes:await Gy({chain:n,memo:_,msgs:f.map(an)}),signature:t5(l)}}}function C5({prefix:n,chain:y}){return async function(o,f,T,C,H){let A=await cC(y),{encodeSecp256k1Pubkey:_,pubkeyToAddress:X}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:B}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:W}=JSON.parse(o),w=await iC(T,C),l=f.map((J)=>[X(_(Go.decode(J.pubKey)),n),Go.decode(J.signature)]),L=await Vn(A),{transactionHash:N}=await L.broadcastTx(B(w,U,W,H,new Map(l)));return N}}async function iC(n,y,t=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((T)=>f(Go.decode(T))),y,t)}function H5(n){return Go.decode(n)}async function A5({privateKey:n,message:y}){let{Secp256k1:t}=(await import("@cosmjs/crypto")).default,o=await t.createSignature(Go.decode(y),n);return Go.encode(Buffer.concat([o.r(32),o.s(32)]))}function TT({chain:n,...y}){let{nodeUrl:t}=vC(n),{isStagenet:o}=n5.get("envs"),f=n===g_.THORChain,T=`${o?"s":""}${d_[n]}`,C="index"in y?y.index||0:0,H="derivationPath"in y&&y.derivationPath?y.derivationPath:o5(s_[n],{index:C}),A=Wy({chain:n,...y}),_=vn(n);async function X(){let U,W=`${t}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:w}}=await e_.get(W);if(!w||Number.isNaN(w)||w<0)throw new VC("toolbox_cosmos_invalid_fee",{nativeFee:w.toString()});U=new KC(w)}catch{U=new KC({decimal:vC(n).baseDecimal,value:f?0.02:1})}return{[tT.Average]:U,[tT.Fast]:U,[tT.Fastest]:U}}async function B({assetValue:U,memo:W="",recipient:w}){let l=await cC(n),L=await y5(y).with({phrase:jC.string},({phrase:z})=>A.getSignerFromPhrase({derivationPath:H,phrase:z})).with({signer:jC.any},({signer:z})=>z).otherwise(()=>{return}),{TxRaw:N}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),J=(await L?.getAccounts())?.[0]?.address;if(!(J&&L))throw new VC("toolbox_cosmos_no_signer");let O="signAmino"in L,Y=await lo(),q=await gn(n),M=await qo(l,L,{aminoTypes:q,registry:Y}),G=qf({assetValue:U,memo:W,recipient:w,sender:J});if(O){let z=await dn(G,n),{signatures:R,authInfoBytes:p}=await M.sign(J,[z],_,W),k=N.encode({authInfoBytes:p,bodyBytes:await Gy({chain:n,memo:W,msgs:[G].map(an)}),signatures:R}).finish();return(await M.broadcastTx(k)).transactionHash}let Z=an(G),D=await dn(Z,n);return(await M.signAndBroadcast(J,[D],_,W)).transactionHash}return{...A,broadcastMultisigTx:C5({chain:n,prefix:T}),buildAminoMsg:qf,buildEncodedTxBody:Gy,convertToSignable:dn,createDefaultAminoTypes:()=>gn(n),createDefaultRegistry:lo,createMultisig:iC,createTransaction:gt,deposit:B,getFees:X,importSignature:H5,parseAminoMessageForDirectSigning:an,pubkeyToAddress:async(U)=>{let{pubkeyToAddress:W}=(await import("@cosmjs/amino")).default;return W(U,T)},secp256k1HdWalletFromMnemonic:f5({derivationPath:a_(H),prefix:T}),signMultisigTx:T5(n),signWithPrivateKey:A5,transfer:B}}var CT=F(()=>{dt();ly();lf()});import{Chain as By,SwapKitError as _5}from"@swapkit/helpers";var U5=(n,y)=>{switch(n){case By.Cosmos:case By.Kujira:case By.Noble:return Wy({chain:n,...y});case By.Maya:case By.THORChain:return TT({chain:n,...y});default:throw new _5("toolbox_cosmos_not_supported",{chain:n})}};var hC=F(()=>{lf();CT();lf();CT()});var Gf={};nn(Gf,{verifySignature:()=>EC,transferMsgAmino:()=>mt,toBase64:()=>D_,parseAminoMessageForDirectSigning:()=>an,getSignerFromPrivateKey:()=>j_,getSignerFromPhrase:()=>yT,getMsgSendDenom:()=>rn,getFeeRateFromSwapKit:()=>c_,getDenomWithChain:()=>qy,getDefaultChainFee:()=>vn,getCosmosToolbox:()=>U5,getCosmosAddressValidator:()=>bC,getAssetFromDenom:()=>it,fromBase64:()=>O_,fetchFeeRateFromSwapKit:()=>fT,estimateTransactionFee:()=>i_,depositMsgAmino:()=>rt,createTransaction:()=>gt,createThorchainToolbox:()=>TT,createStargateClient:()=>Vn,createSigningStargateClient:()=>qo,createOfflineStargateClient:()=>jt,createDefaultRegistry:()=>lo,createDefaultAminoTypes:()=>gn,createCosmosToolbox:()=>Wy,cosmosCreateTransaction:()=>ct,convertToSignable:()=>dn,buildTransferTx:()=>zC,buildEncodedTxBody:()=>Gy,buildDepositTx:()=>DC,buildAminoMsg:()=>qf,bech32ToBase64:()=>Uy,base64ToBech32:()=>wy,YUM_KUJIRA_FACTORY_DENOM:()=>WC,USK_KUJIRA_FACTORY_DENOM:()=>Kt,THORCHAIN_GAS_VALUE:()=>u_,MAYA_GAS_VALUE:()=>P_,DEFAULT_NOBLE_FEE_MAINNET:()=>LC,DEFAULT_KUJI_FEE_MAINNET:()=>MC,DEFAULT_COSMOS_FEE_MAINNET:()=>BC});var Xf=F(()=>{dt();hC();ly()});function w5({builder:n,grouping:y="na",orders:t}){return{builder:n,grouping:y,orders:t,type:"order"}}function q5({cancels:n}){return{cancels:n,type:"cancel"}}function l5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function G5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function X5({modifies:n}){return{modifies:n,type:"batchModify"}}function W5({asset:n,isCross:y,leverage:t}){return{asset:n,isCross:y,leverage:t,type:"updateLeverage"}}function B5({asset:n,isBuy:y,ntli:t}){return{asset:n,isBuy:y,ntli:t,type:"updateIsolatedMargin"}}function M5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function L5({time:n}){return{time:n,type:"scheduleCancel"}}function Q5({amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function Z5({amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:A}){return{amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:A,type:"sendAsset"}}function J5({agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f,type:"approveAgent"}}function Y5({builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function N5({hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,validator:f,wei:T}){return{hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,type:"tokenDelegate",validator:f,wei:T}}import{SwapKitError as HT}from"@swapkit/helpers";import{keccak256 as z5,Signature as D5}from"ethers";function Gn(...n){let y=n.reduce((f,T)=>f+T.length,0),t=new Uint8Array(y),o=0;for(let f of n)t.set(f,o),o+=f.length;return t}function p5(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 sn(n,y){let t=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)t[f]=Number(o&0xffn),o>>=8n;return t}function mC(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 Gn(new Uint8Array([205]),sn(n,2));if(n<=0xffffffffn)return Gn(new Uint8Array([206]),sn(n,4));return Gn(new Uint8Array([207]),sn(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 Gn(new Uint8Array([209]),sn(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return Gn(new Uint8Array([210]),sn(BigInt.asUintN(32,n),4));return Gn(new Uint8Array([211]),sn(BigInt.asUintN(64,n),8))}function dC(n){let y=F5.encode(n);if(y.length<32)return Gn(new Uint8Array([160+y.length]),y);return Gn(p5(217,0,y.length),y)}function k5(n){let y=n.map((o)=>AT(o)),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 Gn(t,...y)}function u5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"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 Gn(t,...y.flatMap(([o,f])=>[dC(o),AT(f)]))}function AT(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return dC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new HT("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return mC(BigInt(n))}if(typeof n==="bigint")return mC(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 Gn(y,n)}if(Array.isArray(n))return k5(n);if(typeof n==="object")return u5(n);throw new HT("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function P5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new HT("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)t[o/2]=Number.parseInt(y.slice(o,o+2),16);return t}function aC(n){return{domain:O5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...R5.Agent]}}}function sC(n){let y=S5[n.type],t=x5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:rC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||gC},primaryType:y,types:{[y]:t}}}function eC(n){let y=D5.from(n);return{r:y.r,s:y.s,v:y.v}}function n1(n,y,{expiresAfter:t,vaultAddress:o}={}){let f=AT(n),T=sn(BigInt(y),8),C=o?Gn(new Uint8Array([1]),P5(o.toLowerCase())):new Uint8Array([0]),H=typeof t==="number"?Gn(new Uint8Array([0]),sn(BigInt(t),8)):new Uint8Array;return z5(Gn(f,T,C,H))}function o1(n){let y=n.hyperliquidChain||gC;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 rC="0x0000000000000000000000000000000000000000",O5,R5,gC="Mainnet",x5,S5,F5;var y1=F(()=>{O5={chainId:1337,name:"Exchange",verifyingContract:rC,version:"1"},R5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},x5={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"}]},S5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},F5=new TextEncoder});import{AssetValue as wT,Chain as I5,derivationPathToString as $5,getChainConfig as T1,getRPCUrl as E5,NetworkDerivationPath as b5,RequestClient as So,SwapKitError as Fo,updateDerivationPath as v5}from"@swapkit/helpers";import{HDNodeWallet as V5}from"ethers";import{match as K5,P as _T}from"ts-pattern";function Yn(n,y){if(!lT(n))throw new Fo(y,{address:n});return n.toLowerCase()}async function Xo(n){let y=await Wf();return So.post(`${y}/info`,{json:n})}function g5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function d5({user:n}){return Xo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function a5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function s5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function e5({oidOrCloid:n,user:y}){return Xo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function nU({aggregateByTime:n,user:y}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function oU({aggregateByTime:n,endTime:y,startTime:t,user:o}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:t,type:"userFillsByTime",user:Yn(o,"helpers_invalid_params")})}function f1({coin:n,token:y,value:t,spotMeta:o}){if(!t||Number(t)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,T=j5[f]||C1,C=o?.tokens?.find((A)=>A.name===n||y!==void 0&&A.index===Number(y)),H=C?`${kn}.${f}-${C.name}:${C.tokenId}`:`${kn}.${f}`;return new wT({decimal:T,identifier:H,value:t})}function yU(n){let y=new Map;for(let t of n){let o=t.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(t):t)}if(![...y.values()].some((t)=>t.isGasAsset||t.ticker==="HYPE")){let t=wT.from({chain:kn,value:0});y.set(t.toString({includeSynthProtocol:!0}),t)}return[...y.values()]}async function Wf(){try{return await E5(kn)}catch{let[n]=T1(kn).rpcUrls;if(!n)throw new Fo("helpers_chain_no_public_or_set_rpc_url",{chain:kn});return n}}async function qT(){return`${await Wf()}/exchange`}function fU(n){let y=r5[n.type],{type:t,...o}=n,f=m5[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:h5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function H1({action:n,expiresAfter:y,nonce:t,vaultAddress:o}){let f=t||Date.now(),T=o?Yn(o,"helpers_invalid_params"):void 0,C=await qT(),H=n1(n,f,{expiresAfter:y,vaultAddress:T});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:aC(H),vaultAddress:T}}async function A1({action:n,nonce:y,signatureChainId:t}){let o=y||n.nonce||Date.now(),f=t||n.signatureChainId||"0xa4b1",T=o1({...n,nonce:o,signatureChainId:f});return{action:T,endpoint:await qT(),nonce:o,typedData:sC(T)}}async function UT({assetValue:n,recipient:y,sender:t,signatureChainId:o,time:f}){let T=Yn(y,"core_transaction_invalid_recipient_address"),C=Yn(t,"core_transaction_invalid_sender_address"),H=await qT(),A=n.getValue("string"),_=f||Date.now(),X=n.address;if(!X)throw new Fo("helpers_invalid_params",{asset:n.toString(),from:C});let B={amount:A,destination:T,hyperliquidChain:c5,signatureChainId:o||i5,time:_,token:X,type:"spotSend"};return{action:B,endpoint:H,nonce:_,typedData:fU(B)}}async function t1(n){let y=await So.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 Fo("core_transaction_failed",{response:y});return y}async function tU(n,y){let t=await Wf(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((T)=>setTimeout(T,1000));try{let T=await So.post(`${t}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(T)?T.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function lT(n){return n.startsWith("0x")&&Cy(n)}function TU(n){let y=qn(kn),t=n&&"index"in n?n.index||0:0,o=$5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:v5(b5[kn],{index:t})),f,T=!1;function C(){if(T)return f;return f=K5(n).with({phrase:_T.string},({phrase:U})=>{return V5.fromPhrase(U,void 0,o)}).with({signer:_T.not(_T.nullish)},({signer:U})=>U).otherwise(()=>{return}),T=!0,f}async function H(){let U=C();return U?await U.getAddress():""}async function A(U){let W=C();if(!W)throw new Fo("toolbox_hypercore_no_signer");let w=await W.signTypedData(U.typedData.domain,U.typedData.types,U.typedData.message);return{action:U.action,endpoint:U.endpoint,nonce:U.nonce,signature:eC(w),..."expiresAfter"in U?{expiresAfter:U.expiresAfter}:{},..."vaultAddress"in U?{vaultAddress:U.vaultAddress}:{}}}async function _(U){let W=Yn(U,"helpers_invalid_params");try{let w=await Wf(),[l,L,N]=await Promise.all([So.post(`${w}/info`,{json:{type:"spotClearinghouseState",user:W}}),So.post(`${w}/info`,{json:{type:"clearinghouseState",user:W}}),So.post(`${w}/info`,{json:{type:"spotMeta"}})]),J=(l.spotState?.balances||l.balances||[]).map(({coin:Y,token:q,total:M})=>f1({coin:Y,spotMeta:N,token:q,value:M})).filter((Y)=>!!Y),O=f1({coin:"USDC",spotMeta:N,value:L.withdrawable||L.marginSummary?.accountValue||L.marginSummary?.totalRawUsd});return yU(O?[...J,O]:J)}catch{return y(W)}}async function X(U){let W=C();if(!W)throw new Fo("toolbox_hypercore_no_signer");let w=U.sender||await W.getAddress(),l=await UT({...U,feeRate:0,sender:w}),L=await A(l);return await t1(L),tU(w,l.nonce)}function B(){return wT.from({chain:kn,value:0})}return{broadcastTransaction:t1,createL1ActionRequest:H1,createTransaction:UT,createUserSignedActionRequest:A1,estimateTransactionFee:B,getAddress:H,getBalance:_,getState:{clearinghouse:g5,frontendOpenOrders:s5,openOrders:a5,orderStatus:e5,spotClearinghouse:d5,userFills:nU,userFillsByTime:oU},signTransaction:A,transfer:X,validateAddress:lT}}var kn,C1,j5,c5="Mainnet",i5="0xa4b1",h5="0x0000000000000000000000000000000000000000",m5,r5;var _1=F(()=>{kt();En();y1();kn=I5.HyperCore,{baseDecimal:C1}=T1(kn),j5={HYPE:C1,USDC:6,USDT:6},m5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},r5={spotSend:"HyperliquidTransaction:SpotSend"}});var GT={};nn(GT,{validateHyperCoreAddress:()=>lT,getHyperCoreToolbox:()=>TU,createUserSignedActionRequest:()=>A1,createTransaction:()=>UT,createL1ActionRequest:()=>H1,buildUsdClassTransferAction:()=>Q5,buildUpdateLeverageAction:()=>W5,buildUpdateIsolatedMarginAction:()=>B5,buildTopUpIsolatedOnlyMarginAction:()=>M5,buildTokenDelegateAction:()=>N5,buildSendAssetAction:()=>Z5,buildScheduleCancelAction:()=>L5,buildOrderAction:()=>w5,buildModifyAction:()=>G5,buildCancelByCloidAction:()=>l5,buildCancelAction:()=>q5,buildBatchModifyAction:()=>X5,buildApproveBuilderFeeAction:()=>Y5,buildApproveAgentAction:()=>J5});var XT=F(()=>{_1()});import{PublicKey as en}from"@solana/web3.js";import{AssetValue as Bf,Chain as jn,DerivationPath as CU,derivationPathToString as HU,getChainConfig as l1,getRPCUrl as AU,NetworkDerivationPath as _U,SwapKitError as po,updateDerivationPath as UU}from"@swapkit/helpers";import{match as wU,P as U1}from"ts-pattern";async function G1(n){let y=Bf.from({address:n,chain:jn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let t=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(t);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function qU(n){let y=await Kn(),{PublicKey:t}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new t(n),{baseDecimal:T}=l1(jn.Solana),C=await y.getBalance(f),H=[Bf.from({chain:jn.Solana,fromBaseDecimal:T,value:C||0})],A=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:_}of A.value){let X=_.data.parsed.info,B=X.mint,U=X.tokenAmount.amount;if(Number(U)===0)continue;let W=await G1(B),w=W?.symbol||"UNKNOWN",l=W?.decimals||X.tokenAmount.decimals;H.push(Bf.from({asset:`${jn.Solana}.${w}-${B}`,fromBaseDecimal:l,value:U}))}return H}function BT(n){try{let y=new en(n);return en.isOnCurve(y.toBytes())}catch{return!1}}function lU(n){let y=n&&"index"in n?n.index||0:0,t=HU(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:UU(_U[jn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await wU(n).with({phrase:U1.string},({phrase:C})=>WT({derivationPath:t,phrase:C})).with({signer:U1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function T(){let C=await f();return C?.publicKey?q1(C.publicKey):""}return{broadcastTransaction:Mf(Kn),createKeysForPath:WT,createTransaction:MT(Kn),createTransactionFromInstructions:BU,estimateTransactionFee:GU(Kn),getAddress:T,getAddressFromPubKey:q1,getBalance:qn(jn.Solana),getBalanceFromRPC:qU,getConnection:Kn,getPubkeyFromAddress:(C)=>new en(C),signAndBroadcastTransaction:async(C)=>{let H=await w1(Kn,f)(C);return Mf(Kn)(H)},signTransaction:w1(Kn,f),transfer:MU(Kn,f),validateAddress:BT}}function GU(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let C=await n(),A=(await MT(n)({assetValue:t,isProgramDerivedAddress:f,memo:o,recipient:y,sender:T})).compileMessage(),_=await C.getFeeForMessage(A);if(_.value===null)throw new po("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:X}=l1(jn.Solana);return Bf.from({chain:jn.Solana,fromBaseDecimal:X,value:_.value})}}async function Kn(){let{Connection:n}=await import("@solana/web3.js"),y=await AU(jn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(t,o,f)=>{let T={};for(let[C,H]of Object.entries(o?.headers??{})){let A=C.toLowerCase();if(A!=="pragma"&&A!=="solana-client")T[C]=H}f(t,{...o,headers:T})}})}function XU(n){return async({assetValue:y,recipient:t,sender:o,isProgramDerivedAddress:f})=>{let T=await n(),C=new en(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:A}=await import("@solana/web3.js");return new H().add(A.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new en(t)}))}if(y.address)return WU({amount:y.getBaseValue("number"),connection:T,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:t,tokenAddress:y.address});return}}async function WU({tokenAddress:n,recipient:y,from:t,connection:o,amount:f,decimals:T,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:A,createAssociatedTokenAccountInstruction:_,createTransferCheckedInstruction:X}=await import("@solana/spl-token"),{Transaction:B}=await import("@solana/web3.js"),U=new B,W=new en(n),w=await H(W,t),l=new en(y),L=await H(W,l,C),N=!1;try{await A(o,L),N=!0}catch{}if(!N)U.add(_(t,L,l,W));return U.add(X(w,W,L,t,f,T)),U}function MT(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new en(T);if(!(f||BT(y)))throw new po("core_transaction_invalid_recipient_address");let A=await n(),_=await XU(n)({assetValue:t,isProgramDerivedAddress:f,recipient:y,sender:T});if(!_)throw new po("core_transaction_invalid_sender_address");if(o)_.add(C(o));let X=await A.getLatestBlockhash();return _.recentBlockhash=X.blockhash,_.feePayer=H,_}}async function BU({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),t=new y().add(...n);if(!t)throw new po("core_transaction_invalid_sender_address");return t}function MU(n,y){return async({recipient:t,assetValue:o,memo:f,isProgramDerivedAddress:T})=>{let C=await y();if(!C)throw new po("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),A=await MT(n)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:t,sender:H});if("signTransaction"in C){let _=await C.signTransaction(A);return Mf(n)(_)}return A.sign(C),Mf(n)(A)}}function Mf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function w1(n,y){return async(t)=>{let o=await y();if(!o)throw new po("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(t instanceof f)){let C=await(await n()).getLatestBlockhash();t.recentBlockhash=C.blockhash,t.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(t);return t.sign([o]),t}}async function WT({phrase:n,derivationPath:y=CU.SOL}){let{HDKey:t}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),T=o(n),C=t.fromMasterSeed(T);return f.fromSeed(C.derive(y,!0).privateKey)}function q1(n){return n.toString()}var X1=F(()=>{En()});var LT={};nn(LT,{validateSolanaAddress:()=>BT,getSolanaToolbox:()=>lU,fetchTokenMetaData:()=>G1,createKeysForPath:()=>WT});var QT=F(()=>{X1()});import{AssetValue as Lf,Chain as Qf,DerivationPath as B1,derivationPathToString as LU,getChainConfig as QU,getRPCUrl as YT,NetworkDerivationPath as ZU,SwapKitError as Ln,updateDerivationPath as JU}from"@swapkit/helpers";import{match as ZT,P as ko}from"ts-pattern";function Zf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function Jf({phrase:n,derivationPath:y=B1.STRK}){let{HDKey:t}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:T,encode:C,CallData:H}=await import("starknet"),A=o(n),X=t.fromMasterSeed(A).derive(y);if(!X.privateKey)throw new Ln("toolbox_starknet_no_signer");let B=C.addHexPrefix(Buffer.from(X.privateKey).toString("hex")),U=f.starkCurve.grindKey(B),W=C.addHexPrefix(U),w=f.starkCurve.getStarkKey(W),l=H.compile([w,0]);return{address:T.calculateContractAddressFromHash(w,NT,l,0),privateKey:W,publicKey:w}}async function zT({phrase:n,derivationPath:y=B1.STRK}){let{Account:t,RpcProvider:o}=await import("starknet"),{privateKey:f,address:T}=await Jf({derivationPath:y,phrase:n}),C=await YT(Qf.Starknet),H=new o({nodeUrl:C});return new t({address:T,provider:H,signer:f})}function M1(n){let y=Qf.Starknet,t=n&&"index"in n?n.index||0:0,o=LU(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:JU(ZU[y],{index:t})),f,T,C;async function H(){if(T)return T;let{RpcProvider:q}=await import("starknet"),M=await YT(y);return T=new q({nodeUrl:M}),T}async function A(q){let M=await H(),G=q||await U();if(!G)return!1;try{return await M.getClassHashAt(G),!0}catch(Z){if(Z instanceof Error&&Z.message.includes("Contract not found"))return!1;let D=Z;if(D?.code===20||D?.code===19)return!1;throw Z}}async function _(){let{CallData:q,hash:M}=await import("starknet"),G=await H(),Z=await B();if(!Z)throw new Ln("toolbox_starknet_no_signer");if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await A())return Z.address;let Q=q.compile([C,0]);if(M.calculateContractAddressFromHash(C,NT,Q,0).toLowerCase()!==Z.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let R={addressSalt:C,classHash:NT,constructorCalldata:Q},{transaction_hash:p}=await Z.deployAccount(R);return await G.waitForTransaction(p),p}async function X(){if(!await A()){if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await _()}}async function B(){if(f)return f;return f=await ZT(n).with({phrase:ko.string},async({phrase:q})=>{let{Account:M,RpcProvider:G}=await import("starknet"),{privateKey:Z,address:D,publicKey:Q}=await Jf({derivationPath:o,phrase:q});C=Q;let z=await YT(Qf.Starknet),R=new G({nodeUrl:z});return new M({address:D,provider:R,signer:Z})}).with({address:ko.string,privateKey:ko.string},async({privateKey:q,address:M})=>{let{Account:G}=await import("starknet"),Z=await H();return new G({address:M,provider:Z,signer:q})}).with({signer:ko.instanceOf(Object)},({signer:q})=>q).otherwise(()=>{return}),f}async function U(){return(await B())?.address??""}async function W(q){let M=await H(),{uint256:G,CallData:Z}=await import("starknet"),D=[],Q=[JT,W1];for(let z of Q)try{let[R="0",p="0"]=await M.callContract({calldata:Z.compile({account:q}),contractAddress:z,entrypoint:"balanceOf"}),k=G.uint256ToBN({high:R,low:p});ZT(z).with(JT,()=>{D.push(Lf.from({chain:y,value:k}))}).with(W1,()=>{if(k>0n)D.push(Lf.from({asset:`${y}.ETH-${z}`,value:k}))}).otherwise(()=>{})}catch{}return D}async function w({recipient:q,assetValue:M}){let{CallData:G,uint256:Z}=await import("starknet");if(!Zf(q))throw new Ln("core_transaction_invalid_recipient_address",{address:q});let D=M.isGasAsset?JT:M.address;if(!D)throw new Ln("toolbox_starknet_invalid_address",{address:D,assetValue:M});let Q=Z.bnToUint256(M.getBaseValue("bigint"));return[{calldata:G.compile([q,Q]),contractAddress:D,entrypoint:"transfer"}]}async function l({recipient:q,assetValue:M,sender:G}){let{baseDecimal:Z}=QU(Qf.Starknet),D=await B(),Q=await ZT({sender:G,signer:D}).with({sender:ko.string},async({sender:z})=>{let{Account:R}=await import("starknet"),p=await H();return new R({address:z,provider:p,signer:"0x0"})}).with({signer:ko.nonNullable},({signer:z})=>z).otherwise((z)=>{throw new Ln({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:z}})});try{let z=await w({assetValue:M,recipient:q}),R=await Q.estimateInvokeFee(z);if(R?.overall_fee)return Lf.from({chain:y,fromBaseDecimal:Z,value:R.overall_fee})}catch(z){throw new Ln("toolbox_starknet_fee_estimation_failed",z)}return Lf.from({chain:y,value:"0.00001"})}async function L({recipient:q,assetValue:M,memo:G}){let Z=await B();if(!Z)throw new Ln("toolbox_starknet_no_signer");await X();let D=await w({assetValue:M,memo:G,recipient:q});return(await Z.execute(D)).transaction_hash}async function N(q){let M=await B();if(!M)throw new Ln("toolbox_starknet_no_signer");let G=await M.signMessage(q);return Array.isArray(G)?G:[G.r.toString(),G.s.toString()]}async function J(q){let M=await B();if(!M)throw new Ln("toolbox_starknet_no_signer");return await X(),(await M.execute(q)).transaction_hash}function O(q){return J(q)}function Y(q,M=!0){try{return qn(y)(q,M)}catch{return W(q)}}return{broadcastTransaction:J,createKeysForPath:zT,createTransaction:w,deployAccount:_,estimateTransactionFee:l,getAddress:U,getBalance:Y,getProvider:H,isAccountDeployed:A,signAndBroadcastTransaction:O,signMessage:N,transfer:L,validateAddress:Zf}}var JT="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",W1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",NT="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var L1=F(()=>{En()});var Yf={};nn(Yf,{validateStarknetAddress:()=>Zf,starknetCreateKeysForPath:()=>zT,getStarknetToolbox:()=>M1,deriveStarknetKeys:()=>Jf});var Nf=F(()=>{L1()});import{isValidSuiAddress as YU}from"@mysten/sui/utils";import{AssetValue as uo,Chain as zf,getChainConfig as NU,SwapKitError as Nn}from"@swapkit/helpers";import{match as zU,P as Q1}from"ts-pattern";async function J1(n,y,t,o=[],f){let T=await n.getCoins({coinType:t,cursor:f,owner:y}),C=[...o,...T.data];return T.hasNextPage?J1(n,y,t,C,T.nextCursor):C}function DU(n,y,t){let o=y.reduce((A,_)=>A+BigInt(_.balance),0n);if(o<t)throw new Nn("toolbox_sui_insufficient_balance",{available:o.toString(),required:t.toString()});let{ids:f}=y.reduce((A,_)=>{if(A.total>=t)return A;return{ids:[...A.ids,_.coinObjectId],total:A.total+BigInt(_.balance)}},{ids:[],total:0n}),T=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(T,C);let[H]=n.splitCoins(T,[t]);return H}function Y1(n){try{return YU(n)}catch{return!1}}function Z1(n){return"signWithIntent"in n}function OU({provider:n,...y}={}){let t;async function o(){if(t)return t;return t=await zU(y).with({phrase:Q1.string},async({phrase:w})=>{let{Ed25519Keypair:l}=await import("@mysten/sui/keypairs/ed25519");return l.deriveKeypair(w)}).with({signer:Q1.any},({signer:w})=>w).otherwise(()=>{return}),t}async function f(w=n){let{SuiClient:l,getFullnodeUrl:L}=await import("@mysten/sui/client");return new l({url:w||L("mainnet")})}async function T(){return(await o())?.toSuiAddress()||""}function C(w){try{let l=uo.from({address:w,chain:zf.Sui});return{asset:l.toString(),decimals:l.decimal}}catch{}return null}async function H(w){let l=w||await T();if(!l)throw new Nn("toolbox_sui_address_required");let{baseDecimal:L,chain:N}=NU(zf.Sui);try{let J=await f(),{totalBalance:O}=await J.getBalance({owner:l}),Y=[uo.from({chain:N,fromBaseDecimal:L,value:O})],q=await J.getAllBalances({owner:l});for(let{coinType:M,totalBalance:G}of q){if(M==="0x2::sui::SUI"||Number(G)<=0)continue;let Z=C(M);if(Z)Y.push(uo.from({asset:Z.asset,fromBaseDecimal:Z.decimals,value:G}))}return Y}catch{return[uo.from({chain:N})]}}async function A(w){let l=uo.from({chain:zf.Sui,value:"0.01"});if(!w)return l;try{let L=await f(),{txBytes:N}=await _(w),{effects:{status:J,gasUsed:O}}=await L.dryRunTransactionBlock({transactionBlock:N});if(J.status!=="success")return l;let Y=Number(O.computationCost)+Number(O.storageCost)-Number(O.storageRebate);return uo.from({chain:zf.Sui,value:Y.toString()})}catch{return l}}async function _({recipient:w,assetValue:l,gasBudget:L,sender:N}){let{Transaction:J}=await import("@mysten/sui/transactions"),O=N||await T();if(!O)throw new Nn("toolbox_sui_no_sender");try{let Y=new J;if(Y.setSender(O),l.isGasAsset||l.symbol==="SUI"){let[G]=Y.splitCoins(Y.gas,[l.getBaseValue("string")]);Y.transferObjects([G],w)}else{let G=l.address;if(!G)throw new Nn("toolbox_sui_missing_coin_type");let Z=await f(),D=l.getBaseValue("bigint"),Q=await J1(Z,O,G);if(!Q.length)throw new Nn("toolbox_sui_no_coins_found",{coinType:G});let z=DU(Y,Q,D);Y.transferObjects([z],w)}if(L)Y.setGasBudget(L);let q=await f(),M=await Y.build({client:q});return{tx:Y,txBytes:M}}catch(Y){if(Y instanceof Nn)throw Y;throw new Nn("toolbox_sui_transaction_creation_error",{error:Y})}}async function X(w){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");if(w instanceof Uint8Array)return l.signTransaction(w);let{txBytes:L}="tx"in w?w:await _(w);return l.signTransaction(L)}async function B({assetValue:w,gasBudget:l,recipient:L}){let N=await o();if(!N)throw new Nn("toolbox_sui_no_signer");let J=N.toSuiAddress()||await T();if(!J)throw new Nn("toolbox_sui_no_sender");let{txBytes:O}=await _({assetValue:w,gasBudget:l,recipient:L,sender:J}),Y=await f();if(!Z1(N)){let M=await N.signTransaction(O),{digest:G}=await Y.executeTransactionBlock({signature:M.signature,transactionBlock:M.bytes});return G}let{digest:q}=await Y.signAndExecuteTransaction({signer:N,transaction:O});return q}async function U(w){let l=await f(),{digest:L}=await l.executeTransactionBlock({signature:w.signature,transactionBlock:w.bytes});return L}async function W(w){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");let L=await f(),N;if(typeof w==="string")N=Uint8Array.from(Buffer.from(w,"base64"));else if(w instanceof Uint8Array)N=w;else N=await w.build({client:L});if(!Z1(l)){let O=await l.signTransaction(N),{digest:Y}=await L.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return Y}let{digest:J}=await L.signAndExecuteTransaction({signer:l,transaction:N});return J}return{broadcastTransaction:U,createTransaction:_,estimateTransactionFee:A,getAddress:T,getBalance:H,signAndBroadcastTransaction:W,signTransaction:X,transfer:B,validateAddress:Y1}}var N1=()=>{};var Df={};nn(Df,{validateSuiAddress:()=>Y1,getSuiToolbox:()=>OU});var Of=F(()=>{N1()});import{getHttpEndpoint as RU}from"@orbs-network/ton-access";import{AssetValue as xU,Chain as Ly,getChainConfig as SU,getRPCUrl as FU,SwapKitError as My,SwapKitNumber as pU}from"@swapkit/helpers";import{mnemonicToWalletKey as kU}from"@ton/crypto";import{Address as cn,beginCell as DT,Cell as z1,external as uU,internal as PU,JettonMaster as IU,loadStateInit as $U,SendMode as D1,storeMessage as EU,TonClient as bU,toNano as S1,WalletContractV4 as vU}from"@ton/ton";import{match as O1,P as OT}from"ts-pattern";async function iU(){let n=Date.now();if(Rf&&n-x1<cU)return Rf;try{return Rf=await RU(),x1=n,Rf}catch{return FU(Ly.Ton)}}function hU(n={}){let y,t,o;async function f(){if(!y){let Y=n.provider??await iU();y=new bU({endpoint:Y})}return y}async function T(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await O1(n).with({phrase:OT.string},async({phrase:Y})=>kU(Y.split(" "))).with({signer:OT.any},({signer:Y})=>Y).otherwise(()=>{return}),o}async function H(Y){if(!t||Y){let q=await C(),M=await f(),G=Y||q;if(!G)throw new My("core_wallet_connection_not_found");let Z=vU.create({publicKey:G.publicKey,workchain:0});t=M.open(Z)}return t}let A=qn(Ly.Ton);async function _({assetValue:Y,recipient:q,memo:M,sender:G}){if(Y.isGasAsset){let v=M?O(M).toBoc().toString("base64"):void 0;return[{address:q,amount:Y.getBaseValue("string"),payload:v}]}let Z=Y.address;if(!Z)throw new My({errorKey:"core_swap_contract_not_found",info:{asset:Y.toString()}});let D=G??await T(),Q=await N({jettonMasterAddress:Z,ownerAddress:D}),z=cn.parse(q),R=cn.parse(D),p=Y.getBaseValue("bigint"),k=M?O(M):void 0,I=J({destinationAddress:z,forwardPayload:k,jettonAmount:p,responseAddress:R});return[{address:Q.toString(),amount:jU.toString(),payload:I.toBoc().toString("base64")}]}function X({sender:Y,...q}){return _({...q,sender:Y})}function B(Y){return Y.map((q)=>{let M=q.payload?z1.fromBase64(q.payload):void 0,G=q.stateInit?$U(z1.fromBase64(q.stateInit).asSlice()):void 0,Z=cn.parse(q.address),D=cn.isFriendly(q.address)?cn.parseFriendly(q.address).isBounceable:!0;return PU({body:M,bounce:D,init:G,to:Z,value:BigInt(q.amount)})})}async function U(Y){let q=await C(),M=await H();if(!M||!q)throw new My("core_wallet_connection_not_found");let G=await f(),{state:Z}=await G.getContractState(M.address),D=Z==="active",Q=D?await M.getSeqno():0,z=M.createTransfer({messages:B(Y),secretKey:q.secretKey,sendMode:R1,seqno:Q}),R=uU({body:z,init:D?void 0:M.init,to:M.address});return DT().store(EU(R)).endCell()}async function W(Y){return await(await f()).sendFile(Y.toBoc()),Y.hash().toString("hex")}async function w(Y){let q=await U(Y);return W(q)}async function l({assetValue:Y,recipient:q,memo:M}){let G=await X({assetValue:Y,memo:M,recipient:q});return w(G)}async function L({sender:Y,...q}){let{baseDecimal:M}=SU(Ly.Ton),G=await O1(Y).with(OT.string,(Q)=>{return cn.parseFriendly(Q).address}).otherwise(async()=>{return(await H()).address});if(!G)throw new My("toolbox_fee_estimation_failed",{chain:Ly.Ton});let Z=xU.from({chain:Ly.Ton,value:"0.01"}),D=await f();try{let Q=await X({sender:Y,...q}),z=await C(),R=await H();if(!R||!z)return Z;let p=await R.getSeqno(),k=R.createTransfer({messages:B(Q),secretKey:z.secretKey,sendMode:R1,seqno:p}),{source_fees:I}=await D.estimateExternalMessageFee(G,{body:k,ignoreSignature:!0,initCode:null,initData:null}),v=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return Z.set(pU.fromBigInt(BigInt(v),M))}catch{return Z}}async function N({jettonMasterAddress:Y,ownerAddress:q}){try{let M=await f(),G=cn.parse(Y),Z=cn.parse(q);return await M.open(IU.create(G)).getWalletAddress(Z)}catch{throw new My({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:Y,ownerAddress:q}})}}function J({jettonAmount:Y,destinationAddress:q,responseAddress:M,forwardAmount:G=KU,forwardPayload:Z}){let D=DT().storeUint(VU,32).storeUint(0,64).storeCoins(Y).storeAddress(q).storeAddress(M).storeBit(0).storeCoins(G);if(Z)D.storeBit(1).storeRef(Z);else D.storeBit(0);return D.endCell()}function O(Y){return DT().storeUint(0,32).storeStringTail(Y).endCell()}return{broadcastTransaction:W,createTransaction:X,estimateTransactionFee:L,getAddress:T,getBalance:A,getJettonWalletAddress:N,sign:U,signAndBroadcastTransaction:w,transfer:l,validateAddress:F1}}function F1(n){try{return cn.parse(n),!0}catch{return!1}}var VU=260734629,KU,jU,R1,cU=60000,Rf,x1=0;var p1=F(()=>{En();KU=S1("0.01"),jU=S1("0.05"),R1=D1.PAY_GAS_SEPARATELY+D1.IGNORE_ERRORS});var xf={};nn(xf,{validateTonAddress:()=>F1,getTONToolbox:()=>hU});var Sf=F(()=>{p1()});import{NetworkDerivationPath as mU}from"@swapkit/helpers";function zn(n,y){if(!Number.isInteger(y)||y<0)throw RangeError(`${n} must be a non-negative integer, got: ${y}`)}function no({accountIndex:n,chain:y,derivationPath:t}){if(n!==void 0)zn("accountIndex",n);let o=[...t?.slice(0,3)??mU[y].slice(0,3)];if(n!==void 0)o[2]=n;return o}function Po({accountIndex:n,change:y=!1,chain:t,derivationPath:o,index:f}){return zn("index",f),[...no({accountIndex:n,chain:t,derivationPath:o}),Number(y),f]}function Wo(n){return n[2]??0}function k1({deriveAddress:n,getBalance:y,getUtxos:t}){async function o(H){let{accountIndex:A,count:_,startIndex:X=0,change:B=!1}=H;if(zn("count",_),_<1)throw RangeError("count must be at least 1");zn("startIndex",X);let U=[];for(let W=0;W<_;W++){let w=await n({accountIndex:A,change:B,index:X+W});if(w)U.push(w)}return U}async function f(H){let{gapLimit:A=20,change:_=!1}=H??{},X=[],B=0,U=0;while(B<A){let W=await n({change:_,index:U});if(!W)break;if((await y(W.address)).some((L)=>L.getValue("number")>0))X.push(W),B=0;else B++;U++}return X}async function T(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[...A,..._],B=await Promise.all(X.map(async(W)=>{let l=(await y(W.address)).reduce((L,N)=>L+N.getValue("number"),0);return{...W,balance:l}})),U=B.reduce((W,w)=>W+w.balance,0);return{addresses:B,total:U}}async function C(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[...A,..._];return(await Promise.all(X.map(async(U)=>{return(await t(U.address)).map((w)=>({...w,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:T,getAggregatedUtxos:C,scanForAddresses:f}}var Qy=()=>{};import{Chain as Tn,getRPCUrl as rU,RequestClient as Ff,SKConfig as gU,SwapKitError as un,warnOnce as dU}from"@swapkit/helpers";import{NETWORKS as Io}from"@swapkit/utxo-signer";async function aU({chain:n,txHash:y}){let t=`${Zy(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Ff.post(t,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new un("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let T=await rU(n);if(T){let C=JSON.stringify({id:S0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Ff.post(T,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new un("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new un("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function Zy(n){return`https://api.blockchair.com/${sU(n)}`}function u1(n){switch(n){case Tn.Bitcoin:return 5;case Tn.Dogecoin:return 1e4;case Tn.Litecoin:return 1;case Tn.Zcash:return 1;default:return 2}}function sU(n){switch(n){case Tn.BitcoinCash:return"bitcoin-cash";case Tn.Litecoin:return"litecoin";case Tn.Dash:return"dash";case Tn.Dogecoin:return"dogecoin";case Tn.Zcash:return"zcash";case Tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function eU(n){try{let{feePerKb:y}=await Ff.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),t=y/1000;return Math.max(t,u1(n))}catch{return u1(n)}}async function pf(n,y){let t=await Ff.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!t||t.context.code!==200)throw new un("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return t.data}async function I1({address:n,chain:y,apiKey:t}){if(!n)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await pf(`${Zy(y)}/dashboards/address/${n}?transaction_details=true`,t))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function n2({address:n,chain:y,apiKey:t}){return(await I1({address:n,apiKey:t,chain:y}))?.address.balance||0}async function $1({chain:n,apiKey:y,txHash:t}){if(!t)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await pf(`${Zy(n)}/raw/transaction/${t}`,y))?.[t]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function y2({chain:n,apiKey:y,txHash:t}){if(!t)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await pf(`${Zy(n)}/dashboards/transaction/${t}`,y))?.[t];if(!f)throw new un("toolbox_utxo_tx_not_found",{txHash:t});let{transaction:T,inputs:C,outputs:H}=f,A=C.map((X)=>X.spending_sequence),_=T.is_rbf===!0||A.some((X)=>X<o2);return{blockId:T.block_id,confirmed:T.block_id!==-1,fee:T.fee,inputs:C,isRBF:_,outputs:H,sequences:A,size:T.size,txid:T.hash,weight:T.weight}}async function f2({chain:n,address:y,apiKey:t,offset:o=0,limit:f=30}){return(await pf(`${Zy(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,t)).map(({is_spent:A,script_hex:_,block_id:X,transaction_hash:B,index:U,value:W,spending_signature_hex:w})=>({hash:B,index:U,is_confirmed:X!==-1,is_spent:A,script_hex:_,txHex:w,value:W}))}function t2(n){return n.reduce((y,t)=>y+t.value,0)}function P1(n,y){let t=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let T of t)if(o.push(T),f+=T.value,f>=y)break;return o}return t}async function E1({chain:n,address:y,apiKey:t,targetValue:o,accumulativeValue:f=0,offset:T=0,limit:C=30}){if(!y)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await f2({address:y,apiKey:t,chain:n,limit:C,offset:T,targetValue:o}),_=H.length<C,X=H.filter(({is_spent:L})=>!L),B=t2(X),U=f+B,W=o&&U>=o;if(_||W)return P1(X,o);let w=await E1({accumulativeValue:U,address:y,apiKey:t,chain:n,limit:C,offset:T+C,targetValue:o}),l=[...X,...w];return P1(l,o)}catch(H){let A=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${A}`),[]}}async function T2({address:n,chain:y,apiKey:t,fetchTxHex:o=!0,targetValue:f}){let T=await E1({address:n,apiKey:t,chain:y,targetValue:f}),C=[];for(let{hash:H,index:A,script_hex:_,value:X}of T){let B;if(o)B=await $1({apiKey:t,chain:y,txHash:H});C.push({address:n,hash:H,index:A,txHex:B,value:X,witnessUtxo:{script:Buffer.from(_,"hex"),value:X}})}return C}function s(n){let y=gU.get("apiKeys").blockchair||"";return dU({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(t)=>aU({chain:n,txHash:t}),getAddressData:(t)=>I1({address:t,apiKey:y,chain:n}),getBalance:(t)=>n2({address:t,apiKey:y,chain:n}),getRawTx:(t)=>$1({apiKey:y,chain:n,txHash:t}),getSuggestedTxFee:()=>eU(n),getTransactionDetails:(t)=>y2({apiKey:y,chain:n,txHash:t}),getUtxos:(t)=>T2({...t,apiKey:y,chain:n})}}function C2(n){return n}function H2(){return function(y){switch(y){case Tn.Bitcoin:return Io.bitcoin;case Tn.BitcoinCash:return Io.bitcoinCash;case Tn.Dash:return Io.dash;case Tn.Litecoin:return Io.litecoin;case Tn.Dogecoin:return Io.dogecoin;case Tn.Zcash:return Io.zcash;default:throw new un("toolbox_utxo_not_supported",{chain:y})}}}var o2=4294967294;var b1=F(()=>{En()});import{CashAddrType as kf,decodeCashAddr as A2,encodeCashAddr as _2}from"@swapkit/utxo-signer";function q2(n,y,t){return _2({hash:t,prefix:n,type:U2[y]})}function l2(n){let y=A2(n),t=w2[y.type];if(!t)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:t}}var U2,w2,RT;var v1=F(()=>{U2={P2PKH:kf.P2PKH,P2SH:kf.P2SH},w2={[kf.P2PKH]:"P2PKH",[kf.P2SH]:"P2SH"};RT={decode:l2,encode:q2}});import{sha256 as G2}from"@noble/hashes/sha2.js";import{createBase58check as X2}from"@scure/base";import{SwapKitError as K1}from"@swapkit/helpers";function ST(n){try{return uf(n),!0}catch{return!1}}function FT(n){return uf(n)?.network}function hn(n){let y=uf(n);if(y?.format==="legacy")return n;return M2(y)}function Jy(n){let y=uf(n);return L2(y)}function uf(n){try{let y=W2(n);if(y)return y}catch{}try{let y=B2(n);if(y)return y}catch{}throw new K1("toolbox_utxo_invalid_address",{address:n})}function W2(n){try{let y=j1.decode(n);if(y.length!==21)throw new K1("toolbox_utxo_invalid_address",{address:n});let t=y[0],o=Array.prototype.slice.call(y,1);switch(t){case Bo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case Bo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case Bo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case Bo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case Bo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case Bo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function B2(n){if(n.indexOf(":")!==-1)try{return V1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let t of y)try{return V1(`${t}:${n}`)}catch{}}return}function V1(n){try{let{hash:y,prefix:t,type:o}=RT.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:t==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function M2(n){let y=Bo.legacy[n.network][n.type],t=Buffer.alloc(1+n.hash.length);return t[0]=y,t.set(n.hash,1),j1.encode(t)}function L2(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",t=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return RT.encode(y,t,o)}var j1,xT,Bo;var c1=F(()=>{v1();j1=X2(G2);((t)=>{t.Mainnet="mainnet";t.Testnet="testnet"})(xT||={});Bo={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as Q2}from"@swapkit/helpers";import{Script as Z2}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return Z2.encode(["RETURN",y])}var J2=1000,If=10,$f=2,i1=10,Y2=41,N2=107,Ef,Pf,Yy,$o=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new Q2("toolbox_utxo_invalid_address",{address:n})},Mo=({inputs:n,outputs:y,feeRate:t})=>{let o=n[0]&&"address"in n[0]&&n[0].address?$o(n[0].address):"P2PKH",T=(t?n.filter((_)=>_.value>=Pf["type"in _&&_.type?_.type:"P2PKH"]*Math.ceil(t)):n).reduce((_,X)=>_+oo(X),0),C=y?.reduce((_,X)=>_+Ny(X),0)||Yy[o],H=If+T+C;return o==="P2WPKH"?Math.ceil(H+$f/4):H},oo=(n)=>{if("type"in n&&n.type)return Pf[n.type];if("address"in n&&n.address)return Pf[$o(n.address)];return Y2+N2},Ny=(n,y)=>{if(n?.script)return i1+n.script.length+(n.script.length>=74?2:1);if(y)return Yy[y];if("address"in n&&n.address)return Yy[$o(n.address)];return Yy.P2PKH};var pT=F(()=>{((t)=>{t.P2PKH="P2PKH";t.P2WPKH="P2WPKH"})(Ef||={});Pf={["P2PKH"]:148,["P2WPKH"]:68},Yy={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Lo,SwapKitError as z2}from"@swapkit/helpers";function zy(n){switch(n){case Lo.Bitcoin:case Lo.BitcoinCash:return 550;case Lo.Dash:case Lo.Litecoin:return 5500;case Lo.Dogecoin:return 1e5;case Lo.Zcash:return 546;default:throw new z2("toolbox_utxo_not_supported",{chain:n})}}function Dn({inputs:n,outputs:y,feeRate:t=1,chain:o=Lo.Bitcoin,changeAddress:f=""}){let T=n[0]&&"address"in n[0]&&n[0].address?$o(n[0].address):"P2PKH",C=n.filter((w)=>oo(w)*t<=w.value),A=T==="P2WPKH"?Math.ceil($f/4):0,_=If+A+y.reduce((w,l)=>w+Ny(l),0),X=y.reduce((w,l)=>w+l.value,0),B=_*t,U=0,W=[];for(let w of C){let l=oo(w),L=t*l;B+=L,U+=w.value,W.push(w);let N=B+X;if(U<N)continue;let J=U-N,O=t*Ny({address:f,value:0});if(J>O){let Y=O+B,q=U-(X+Math.ceil(Y));if(q>Math.max(oo({value:0})*t,zy(o)))return{fee:Math.ceil(Y),inputs:W,outputs:y.concat({address:f,value:q})}}return{fee:Math.ceil(B),inputs:W,outputs:y}}return{fee:Math.ceil(t*Mo({inputs:n,outputs:y}))}}var h1=F(()=>{pT()});var Eo=F(()=>{b1();c1();h1();pT()});import{Address as D2,ZCASH_NETWORK as O2}from"@swapkit/utxo-signer";function Qo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function yo(n){let y=Qo(n);return ST(y)&&FT(y)==="mainnet"}function bo(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let t=D2(O2).decode(n);return t.type==="pkh"||t.type==="sh"}catch{return!1}}var Dy=F(()=>{Eo()});import{secp256k1 as R2}from"@noble/curves/secp256k1.js";import{hex as Zo}from"@scure/base";import{HDKey as d1}from"@scure/bip32";import{mnemonicToSeedSync as uT}from"@scure/bip39";import{AssetValue as bf,applyFeeMultiplier as m1,Chain as e,derivationPathToString as Oy,FeeOption as Pn,NetworkDerivationPath as a1,SwapKitError as j,SwapKitNumber as x2,updateDerivationPath as S2,warnOnce as F2}from"@swapkit/helpers";import{Address as p2,BCHSigHash as PT,CashAddrPrefix as k2,CashAddrType as u2,encodeCashAddr as P2,NETWORKS as vo,p2pkh as r1,p2wpkh as I2,RBF_SEQUENCE as $2,SigHash as s1,Transaction as kT,WIF as e1}from"@swapkit/utxo-signer";import{match as nH}from"ts-pattern";function IT({address:n,chain:y}){return nH(y).with(e.BitcoinCash,()=>yo(n)).with(e.Zcash,()=>bo(n)).otherwise(()=>{try{return p2(An(y)).decode(n),!0}catch{return!1}})}function An(n){return nH(n).with(e.Bitcoin,()=>vo.bitcoin).with(e.BitcoinCash,()=>vo.bitcoinCash).with(e.Dash,()=>vo.dash).with(e.Dogecoin,()=>vo.dogecoin).with(e.Litecoin,()=>vo.litecoin).with(e.Zcash,()=>vo.zcash).exhaustive()}function E2({phrase:n,derivationPath:y,network:t,seed:o}){let f=o??uT(n),C=d1.fromMasterSeed(f,t.bip32).derive(y);if(!C.privateKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function g1(n){return R2.getPublicKey(n,!0)}function xy({publicKey:n,chain:y,network:t}){if(y===e.BitcoinCash){let T=r1(n,t);if(!T.hash)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return P2({hash:T.hash,prefix:k2.MAINNET,type:u2.P2PKH}).replace(/^bitcoincash:/,"")}let f=!Ry.includes(y)?I2(n,t):r1(n,t);if(!f.address)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Vo({phrase:n,derivationPath:y,chain:t,wif:o,seed:f}){let T=An(t);if(o){let _=e1(T).decode(o),X=g1(_);return{privateKey:_,publicKey:X}}if(!n)throw new j("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||Oy(a1[t]),H=E2({derivationPath:C,network:T,phrase:n,seed:f}),A=g1(H);return{privateKey:H,publicKey:A}}function b2(n,y){return e1(An(y)).encode(n)}function v2({phrase:n,derivationPath:y,chain:t,seed:o}){let f=y.split("/");if(f.length<4)throw new j("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let T=An(t),C=o??uT(n),H=d1.fromMasterSeed(C,T.bip32),A=f.slice(0,4).join("/");return H.derive(A)}function fo({inputs:n,outputs:y,chain:t,tx:o,sender:f,compiledMemo:T,enableRBF:C=!1}){let H=An(t),A=!Ry.includes(t),_=C?$2:void 0,X=new Set;for(let B of n){let U=`${B.hash}:${B.index}`;if(X.has(U))throw new j("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});X.add(U);let W=typeof B.hash==="string"?Zo.decode(B.hash):B.hash;if(A&&B.witnessUtxo)o.addInput({index:B.index,sequence:_,txid:W,witnessUtxo:{amount:BigInt(B.witnessUtxo.value),script:B.witnessUtxo.script}});else if(B.txHex)o.addInput({index:B.index,nonWitnessUtxo:Zo.decode(B.txHex),sequence:_,txid:W,...t===e.BitcoinCash?{sighashType:PT.ALL}:{}});else throw new j("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let B of y){let U="address"in B&&B.address?B.address:f;if(t===e.BitcoinCash)U=hn(U);if(B.script){if(T)o.addOutput({amount:0n,script:T})}else o.addOutputAddress(U,BigInt(B.value),H)}return{inputs:n,tx:o}}async function Ko(n){let y=await s(n).getSuggestedTxFee();return{[Pn.Average]:y,[Pn.Fast]:m1(y,Pn.Fast),[Pn.Fastest]:m1(y,Pn.Fastest)}}async function oH({assetValue:n,recipient:y,memo:t,sender:o,fetchTxHex:f=!1}){let T=n.chain,C=(await Ko(T))[Pn.Fastest],H=f||Ry.includes(T),A=n.getBaseValue("number"),_=Math.ceil(A+C*5000);return{inputs:await s(T).getUtxos({address:o,fetchTxHex:H,targetValue:_}),outputs:[{address:y,value:A},...t?[{address:"",script:Bn(t),value:0}]:[]]}}async function yH({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f,fetchTxHex:T=!1,enableRBF:C=!1}){let H=n.chain,A=t?Bn(t):null,_=await oH({assetValue:n,fetchTxHex:T,memo:t,recipient:y,sender:f}),{inputs:X,outputs:B}=Dn({..._,chain:H,feeRate:o});if(!(X&&B))throw new j("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let U=new kT({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:w}=fo({chain:H,compiledMemo:A,enableRBF:C,inputs:X,outputs:B,sender:f,tx:U});return{inputs:W,tx:w,utxos:_.inputs}}async function fH({assetValue:n,feeOptionKey:y=Pn.Fast,feeRate:t,memo:o,sender:f,recipient:T}){let C=n.chain,H=await oH({assetValue:n,memo:o,recipient:T,sender:f}),A=t?Math.floor(t):(await Ko(C))[y];return Dn({...H,chain:C,feeRate:A})}function V2(n){return async function({from:t,memo:o,feeRate:f,feeOptionKey:T=Pn.Fast,recipients:C=1}){let H=await s(n).getAddressData(t),A=f?Math.ceil(f):(await Ko(n))[T],_=H?.utxo.map((l)=>({...l,hash:"",type:"P2PKH"})).filter((l)=>l.value>Math.max(zy(n),oo(l)*A));if(!_?.length)return bf.from({chain:n});let X=BigInt(_.reduce((l,L)=>l+L.value,0)),B=bf.from({chain:n,value:X}),U=typeof C==="number"?Array.from({length:C},()=>({address:t,value:0})):C;if(o)U.push({address:t,script:Bn(o),value:0});let W=Mo({inputs:_,outputs:U}),w=bf.from({chain:n,value:BigInt(W*A)});return B.sub(w)}}function K2(n){return async function(t){let{fee:o}=await fH(t);return bf.from({chain:n,value:x2.fromBigInt(BigInt(o),8).getValue("string")})}}function j2({chain:n,phrase:y,derivationPath:t,seed:o}){let f=An(n),{privateKey:T,publicKey:C}=Vo({chain:n,derivationPath:t,phrase:y,seed:o}),H=n===e.BitcoinCash?[PT.ALL]:[s1.ALL];return{getAddress:()=>xy({chain:n,network:f,publicKey:C}),privateKey:T,publicKey:C,signTransaction:(A)=>{return A.sign(T,H),A}}}function c2(n,y){return async function({memo:o,recipient:f,feeOptionKey:T,feeRate:C,assetValue:H,enableRBF:A=!1}){let _=y?.getAddress();if(!(y&&_))throw new j("toolbox_utxo_no_signer");if(!f)throw new j("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});F2({condition:A&&!vf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let X=A&&vf.includes(n),B=C||(await Ko(n))[T||Pn.Fast],{tx:U}=await yH({assetValue:H,enableRBF:X,feeRate:B,memo:o,recipient:f,sender:_});return y.signTransaction(U),U.finalize(),s(n).broadcastTx(Zo.encode(U.extract()))}}function $T(n){return(y)=>IT({address:y,chain:n})}function ET(n){let y=An(n);return function(o){if(!o)throw new j("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return xy({chain:n,network:y,publicKey:o.publicKey})}}function to({chain:n,...y}){let t="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=t?uT(t):void 0,T="derivationPath"in y&&y.derivationPath?y.derivationPath:S2(a1[n],{index:o}),C=Oy(T),H=t?j2({chain:n,derivationPath:C,phrase:t,seed:f}):void 0,A="signer"in y?y.signer:void 0,_=t?Vo({chain:n,derivationPath:C,phrase:t,seed:f}):void 0;function X(){if(H)return Promise.resolve(H.getAddress());if(A)return A.getAddress();return Promise.resolve(void 0)}function B(G){if(!t)return;let Z=no({accountIndex:G,chain:n,derivationPath:T});return v2({chain:n,derivationPath:Oy(Z),phrase:t,seed:f})}let U=B();function W(){if(!U)return;return U.publicExtendedKey}function w({accountIndex:G}={}){let Z=G===void 0?U:B(G);if(!Z)return;let D=no({accountIndex:G,chain:n,derivationPath:T});return{accountIndex:Wo(D),path:Oy(D),xpub:Z.publicExtendedKey}}function l({accountIndex:G,index:Z,change:D=!1}){let Q=G===void 0?U:B(G);if(!Q)return;let z=Po({accountIndex:G,chain:n,change:D,derivationPath:T,index:Z}),R=An(n),p=Q.deriveChild(Number(D)).deriveChild(Z);if(!p.publicKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let k=xy({chain:n,network:R,publicKey:p.publicKey}),I=Zo.encode(p.publicKey);return{accountIndex:Wo(z),address:k,change:D,index:Z,path:Oy(z),pubkey:I}}async function L(G){if(!vf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let Z=await s(n).getTransactionDetails(G);return{canReplace:Z.isRBF&&!Z.confirmed,confirmed:Z.confirmed,enabled:Z.isRBF,fee:Z.fee,sequences:Z.sequences,supported:!0}}async function N({txid:G,newFeeRate:Z,recipient:D,memo:Q}){if(!vf.includes(n))throw new j("toolbox_utxo_rbf_not_supported",{chain:n});let z=await s(n).getTransactionDetails(G);if(!z.isRBF)throw new j("toolbox_utxo_tx_not_replaceable",{txid:G});if(z.confirmed)throw new j("toolbox_utxo_tx_already_confirmed",{blockId:z.blockId,txid:G});let R=z.inputs.reduce((d,Zn)=>d+Zn.value,0),k=z.outputs.find((d)=>d.recipient===D)?.value||0;if(k===0)throw new j("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let I=await Promise.all(z.inputs.map(async(d)=>{let Zn=await s(n).getRawTx(d.transaction_hash);return{hash:d.transaction_hash,index:d.index,txHex:Zn,value:d.value,witnessUtxo:void 0}})),v=Q?Bn(Q):null,c=Mo({feeRate:Z,inputs:I.map((d)=>({...d,type:"P2WPKH"})),outputs:[{address:D,value:k}]}),V=Math.ceil(c*Z);if(V<=z.fee)throw new j("toolbox_utxo_rbf_fee_too_low",{newFee:V,originalFee:z.fee});let yn=V-z.fee,a=k-yn;if(a<=0)throw new j("toolbox_utxo_rbf_insufficient_change");let Un=new kT({allowLegacyWitnessUtxo:!0,version:1}),Sn=[{address:D,value:a},...Q?[{address:"",script:Bn(Q),value:0}]:[]],Fn=R-a-V,wn=await X();if(Fn>zy(n)&&wn)Sn.push({address:wn,value:Fn});return fo({chain:n,compiledMemo:v,inputs:I,outputs:Sn,sender:wn||D,tx:Un}),{feeDelta:yn,newFee:V,originalFee:z.fee,tx:Un}}async function J({txid:G,newFeeRate:Z,recipient:D,memo:Q}){if(!H)throw new j("toolbox_utxo_no_signer");let{tx:z,originalFee:R,newFee:p}=await N({memo:Q,newFeeRate:Z,recipient:D,txid:G});H.signTransaction(z),z.finalize();let k=await s(n).broadcastTx(Zo.encode(z.extract()));return{newFee:p,originalFee:R,txid:k}}function O({accountIndex:G,index:Z,change:D=!1}){zn("index",Z);let Q=G===void 0?U:B(G);if(!Q)return;return Q.deriveChild(Number(D)).deriveChild(Z).privateKey||void 0}function Y({tx:G,inputDerivations:Z}){if(!U)throw new j("toolbox_utxo_no_signer");let D=n===e.BitcoinCash?[PT.ALL]:[s1.ALL];for(let Q=0;Q<Z.length;Q++){let z=Z[Q];if(!z)continue;let{derivationIndex:R,isChange:p}=z,k=O({change:p,index:R});if(!k)throw new j("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${Q} at index ${R}`});G.signIdx(k,Q,D)}return G}async function q({utxos:G,recipient:Z,assetValue:D,memo:Q,feeRate:z,feeOptionKey:R,changeAddress:p}){if(!U)throw new j("toolbox_utxo_no_signer");let k=z||(await Ko(n))[R||Pn.Fast],I=Q?Bn(Q):null,v=[{address:Z,value:D.getBaseValue("number")}];if(I)v.push({address:"",script:I,value:0});let c=G.map(({hash:wn,index:d,value:Zn,txHex:JA,witnessUtxo:Ht})=>({hash:wn,index:d,txHex:JA,value:Zn,witnessUtxo:Ht?{script:Ht.script,value:Ht.value}:void 0})),{inputs:V,outputs:yn}=Dn({chain:n,feeRate:k,inputs:c,outputs:v});if(!(V&&yn))throw new j("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let a=new kT({allowLegacyWitnessUtxo:!0,version:1}),Un=G[0]?.address,Sn=p||await X()||Un||Z;fo({chain:n,compiledMemo:I,inputs:V,outputs:yn,sender:Sn,tx:a});let Fn=V.map((wn)=>{let d=G.find((Zn)=>Zn.hash===wn.hash&&Zn.index===wn.index);return d?{derivationIndex:d.derivationIndex,isChange:d.isChange}:{derivationIndex:0,isChange:!1}});return Y({inputDerivations:Fn,tx:a}),a.finalize(),s(n).broadcastTx(Zo.encode(a.extract()))}function M({address:G,gapLimit:Z=20}){if(!U)return;for(let D=0;D<Z;D++){let Q=l({change:!1,index:D}),z=l({change:!0,index:D}),R=Q?.address===G?!1:z?.address===G;if(Q?.address===G||z?.address===G)return{change:R,index:D}}return}return{accumulative:Dn,broadcastTx:(G)=>s(n).broadcastTx(G),bumpFee:J,calculateTxSize:Mo,createKeysForPath:(G)=>Vo({...G,chain:n}),createReplacementTransaction:N,createTransaction:yH,deriveAddressAtIndex:l,derivePrivateKeyAtIndex:O,estimateMaxSendableAmount:V2(n),estimateTransactionFee:K2(n),getAddress:X,getAddressFromKeys:ET(n),getBalance:qn(n),getExtendedPublicKey:W,getExtendedPublicKeyInfo:w,getFeeRates:()=>Ko(n),getInputsOutputsFee:fH,getNetworkForChain:()=>An(n),getPrivateKeyFromMnemonic:(G)=>b2(Vo({...G,chain:n}).privateKey,n),isRBFEnabled:L,keys:_,resolveDerivationIndex:M,signAndBroadcastTransaction:async(G)=>{if(!H)throw new j("toolbox_utxo_no_signer");return H.signTransaction(G),G.finalize(),await s(n).broadcastTx(Zo.encode(G.extract()))},signTransactionWithMultipleKeys:Y,transfer:c2(n,H),transferFromMultipleAddresses:q,validateAddress:$T(n)}}var Ry,vf;var jo=F(()=>{En();Qy();Eo();Dy();Ry=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],vf=[e.Bitcoin]});import{hex as i2}from"@scure/base";import{Chain as h2,derivationPathToString as m2,FeeOption as r2,NetworkDerivationPath as g2,SwapKitError as To,updateDerivationPath as d2}from"@swapkit/helpers";import{BCHSigHash as a2,CashAddrPrefix as tH,CashAddrType as TH,encodeCashAddr as CH,NETWORKS as s2,p2pkh as HH,Transaction as AH}from"@swapkit/utxo-signer";function Sy(n){return Qo(Jy(n))}function e2(n){let y=An(In);function t(f){return f.sign(n.privateKey,[a2.ALL]),f}function o(){let f=HH(n.publicKey,y);if(!f.hash)throw new To("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let T=CH({hash:f.hash,prefix:tH.MAINNET,type:TH.P2PKH});return Promise.resolve(T.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:t}}function bT(n){let y="phrase"in n?n.phrase:void 0,t="index"in n?n.index||0:0,o=m2("derivationPath"in n&&n.derivationPath?n.derivationPath:d2(g2[In],{index:t})),f=y?Vo({chain:In,derivationPath:o,phrase:y}):void 0,T=f?e2(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(T?.getAddress())}let{getBalance:H,getFeeRates:A,broadcastTx:_,...X}=to({chain:In});function B(U,W=!0){return H(Qo(Jy(U)))}return{...X,broadcastTx:_,buildTx:o8,createTransaction:_H,getAddress:C,getAddressFromKeys:y8,getBalance:B,getFeeRates:A,stripPrefix:Qo,stripToCashAddress:Sy,transfer:n8({broadcastTx:_,getFeeRates:A,signer:T}),validateAddress:yo}}async function _H({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){if(!yo(y))throw new To("toolbox_utxo_invalid_address",{address:y});let T=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(In).getUtxos({address:Sy(f),fetchTxHex:!0,targetValue:T}),H=t?Bn(t):null,A=[],_=hn(y);if(A.push({address:_,value:n.getBaseValue("number")}),H)A.push({script:H,value:0});let{inputs:X,outputs:B}=Dn({chain:In,feeRate:o,inputs:C,outputs:A});if(!(X&&B))throw new To("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let U=new AH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),W=hn(f),{inputs:w,tx:l}=fo({chain:In,compiledMemo:H,inputs:X,outputs:B.map((L)=>("address"in L)&&L.address?{...L,address:hn(L.address)}:L),sender:W,tx:U});return{inputs:w,tx:l,utxos:X}}function n8({broadcastTx:n,getFeeRates:y,signer:t}){return async function({recipient:f,assetValue:T,feeOptionKey:C=r2.Fast,...H}){let A=await t?.getAddress();if(!(t&&A))throw new To("toolbox_utxo_no_signer");if(!f)throw new To("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let _=H.feeRate||(await y())[C],{tx:X}=await _H({...H,assetValue:T,feeRate:_,recipient:f,sender:A}),B=await t.signTransaction(X);return B.finalize(),n(i2.encode(B.extract()))}}async function o8({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){let T=Jy(y);if(!yo(T))throw new To("toolbox_utxo_invalid_address",{address:T});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(In).getUtxos({address:Sy(f),fetchTxHex:!0,targetValue:C}),A=Number(o.toFixed(0)),_=t?Bn(t):null,X=[];if(X.push({address:hn(y),value:n.getBaseValue("number")}),_)X.push({script:_,value:0});let{inputs:B,outputs:U}=Dn({chain:In,feeRate:A,inputs:H,outputs:X});if(!(B&&U))throw new To("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let W=new AH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:w,tx:l}=fo({chain:In,compiledMemo:_,inputs:B,outputs:U,sender:hn(f),tx:W});return{inputs:w,tx:l,utxos:H}}function y8(n){let y=s2.bitcoinCash,t=HH(n.publicKey,y);if(!t.hash)throw new To("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return CH({hash:t.hash,prefix:tH.MAINNET,type:TH.P2PKH}).replace(/^bitcoincash:/,"")}var In;var Vf=F(()=>{Eo();jo();Dy();In=h2.BitcoinCash});import{createBase58check as f8,hex as t8}from"@scure/base";import{HDKey as qH}from"@scure/bip32";import{mnemonicToSeedSync as lH}from"@scure/bip39";import{Chain as Kf,derivationPathToString as T8,FeeOption as C8,NetworkDerivationPath as H8,SKConfig as GH,SwapKitError as co,updateDerivationPath as A8}from"@swapkit/helpers";import{Address as _8,createZcashTransaction as U8,OutScript as w8,PCZT as q8,utils as XH,WIF as l8,ZCASH_NETWORK as G8,ZCASH_TEST_NETWORK as X8,ZcashConsensusBranchId as W8,ZcashSigHash as UH,ZcashVersionGroupId as B8}from"@swapkit/utxo-signer";import{match as M8,P as vT}from"ts-pattern";function WH(){let{isStagenet:n}=GH.get("envs");return n?X8:G8}function Q8(n){return L8.encode(n)}function Z8({phrase:n,derivationPath:y}){let t=lH(n),f=qH.fromMasterSeed(t).derive(y);if(!f.privateKey||!f.publicKey)throw new co("toolbox_utxo_invalid_params");let{privateKey:T,publicKey:C}=f,H=XH.hash160(C),{isStagenet:A}=GH.get("envs"),_=A?new Uint8Array([29,37]):new Uint8Array([28,184]),X=new Uint8Array(_.length+H.length);X.set(_,0),X.set(H,_.length);let B=Q8(X);return{getAddress:()=>Promise.resolve(B),signTransaction:(U)=>{if(U instanceof q8)return U.signAllInputs(T,C,UH.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(T,C,UH.ALL),Promise.resolve(U)}}}function J8({inputs:n,outputs:y,tx:t,sender:o,compiledMemo:f}){let T=WH();for(let C of n){let H=_8(T).decode(o),A=w8.encode(H);t.addInput({index:C.index,script:A,sequence:4294967295,txid:t8.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,A=C.script;if(A&&!f)continue;if(A&&f)t.addOutput({amount:0n,script:f});else t.addOutputAddress(H,BigInt(C.value),T)}return{inputs:n,tx:t}}async function wH(n){let{assetValue:y,recipient:t,memo:o,feeRate:f,sender:T,fetchTxHex:C}=n,H=o?Bn(o):null,A=await s(Kf.Zcash).getUtxos({address:T,fetchTxHex:C!==!1}),_=[{address:t,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:X,outputs:B}=Dn({chain:Kf.Zcash,changeAddress:T,feeRate:f,inputs:A,outputs:_});if(!(X&&B))throw new co("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let U=U8({consensusBranchId:W8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:B8.SAPLING}),{tx:W,inputs:w}=J8({compiledMemo:H,inputs:X,outputs:B,sender:T,tx:U});return{inputs:w,outputs:B,tx:W}}function VT(n){let y=M8(n).with({signer:vT.not(vT.nullish)},({signer:A})=>A).with({phrase:vT.string},({phrase:A,derivationPath:_,index:X=0})=>{let B=_||H8[Kf.Zcash]||[44,133,0,0,0],U=A8(B,{index:X}),W=T8(U);return Z8({derivationPath:W,phrase:A})}).otherwise(()=>{return}),t=to({chain:Kf.Zcash,signer:y});async function o({recipient:A,assetValue:_,feeOptionKey:X=C8.Fast,...B}){let U=await y?.getAddress();if(!(y&&U))throw new co("toolbox_utxo_no_signer");let W=B.feeRate||(await t.getFeeRates())[X],{tx:w}=await wH({...B,assetValue:_,feeRate:W,recipient:A,sender:U}),L=(await y.signTransaction(w)).toHex();return t.broadcastTx(L)}function f({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let X=lH(A),U=qH.fromMasterSeed(X).derive(_);if(!U.privateKey||!U.publicKey)throw new co("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function T({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let X=f({derivationPath:_,phrase:A}),B=WH();return l8(B).encode(X.privateKey)}function C(A){return async function(X){if(!A)throw new co("toolbox_utxo_no_signer");return await A.signTransaction(X)}}function H(A){return async function(X){if(!A)throw new co("toolbox_utxo_no_signer");let B=await A.signTransaction(X);return t.broadcastTx(B.toHex())}}return{...t,createKeysForPath:f,createTransaction:wH,getPrivateKeyFromMnemonic:T,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:bo}}var L8;var KT=F(()=>{Eo();jo();Dy();L8=f8(XH.sha256)});import{hex as Y8}from"@scure/base";import{HDKey as N8}from"@scure/bip32";import{derivationPathToString as z8}from"@swapkit/helpers";function BH({xpub:n,chain:y,count:t,startIndex:o=0,accountIndex:f}){if(zn("count",t),t<1)throw RangeError("count must be at least 1");zn("startIndex",o);let T=An(y),C=N8.fromExtendedKey(n,T.bip32),H=no({accountIndex:f,chain:y}),A=Wo(H),_=[];for(let X of[!1,!0]){let B=C.deriveChild(Number(X));for(let U=0;U<t;U++){let W=o+U,w=B.deriveChild(W);if(!w.publicKey)continue;let l=Po({accountIndex:f,chain:y,change:X,index:W});_.push({accountIndex:A,address:xy({chain:y,network:T,publicKey:w.publicKey}),change:X,index:W,path:z8(l),pubkey:Y8.encode(w.publicKey)})}}return _}var MH=F(()=>{Qy();jo()});import{Chain as io,SwapKitError as D8}from"@swapkit/helpers";function O8(n,y){switch(n){case io.BitcoinCash:return bT(y||{});case io.Zcash:return VT(y);case io.Bitcoin:case io.Dogecoin:case io.Litecoin:case io.Dash:return to({chain:n,...y});default:throw new D8("toolbox_utxo_not_supported",{chain:n})}}var LH=F(()=>{Vf();jo();KT();Qy();MH();Vf();Dy()});var jT={};nn(jT,{validateZcashAddress:()=>bo,validateUtxoAddress:()=>IT,validateBchAddress:()=>yo,toLegacyAddress:()=>hn,toCashAddress:()=>Jy,stripToCashAddress:()=>Sy,stripPrefix:()=>Qo,nonSegwitChains:()=>Ry,isValidAddress:()=>ST,getUtxoToolbox:()=>O8,getUtxoNetwork:()=>H2,getUtxoApi:()=>s,getUTXOAddressValidator:()=>$T,getUTXOAddressPath:()=>Po,getUTXOAccountPath:()=>no,getUTXOAccountIndexFromPath:()=>Wo,getScriptTypeForAddress:()=>$o,getOutputSize:()=>Ny,getNetworkForChain:()=>An,getInputSize:()=>oo,getDustThreshold:()=>zy,detectAddressNetwork:()=>FT,deriveAddressesFromXpub:()=>BH,createZcashToolbox:()=>VT,createUTXOToolbox:()=>to,createHDWalletHelpers:()=>k1,createCustomUtxoApi:()=>C2,createBCHToolbox:()=>bT,compileMemo:()=>Bn,calculateTxSize:()=>Mo,assertDerivationIndex:()=>zn,addressFromKeysGetter:()=>ET,addInputsAndOutputs:()=>fo,accumulative:()=>Dn,UtxoNetwork:()=>xT,UTXOScriptType:()=>Ef,TX_OVERHEAD:()=>If,SEGWIT_MARKER_FLAG_WEIGHT:()=>$f,OutputSizes:()=>Yy,OP_RETURN_OVERHEAD:()=>i1,MIN_TX_FEE:()=>J2,InputSizes:()=>Pf});var cT=F(()=>{jo();Qy();Eo();LH();Vf();KT()});import{KeyPairSigner as R8}from"@near-js/signers";import{derivationPathToString as x8,SwapKitError as S8}from"@swapkit/helpers";function Fy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function jf(n){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:t}=await import("@near-js/crypto"),o=n.index||0,f=n.derivationPath?x8(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=y(n.phrase,f),C=t.fromString(T);return ZH(C)}async function iT(n){let{KeyPair:y}=await import("@near-js/crypto"),t=y.fromString(n);return ZH(t)}function ZH(n){return new QH(n)}async function cf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new S8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),T=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:T}}var QH;var hT=F(()=>{QH=class QH extends R8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function mT(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function rT(n){return"contractId"in n&&"methodName"in n}function gT(n){return"actions"in n}function dT(n){return"newAccountId"in n}function aT(n){return"contractCode"in n}function sT(n){return"customEstimator"in n}function eT(n){let y=0;for(let t of n)switch(t.enum){case"transfer":y+=Number(Cn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Cn.CONTRACT_CALL);break;case"createAccount":y+=Number(Cn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Cn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Cn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Cn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Cn.STAKE);break;default:y+=Number(Cn.CONTRACT_CALL)}return y.toString()}function n0(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Cn.TOKEN_TRANSFER;if(n==="storage_deposit")return Cn.STORAGE_DEPOSIT;return Cn.CONTRACT_CALL}function F8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function p8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Cn;var o0=F(()=>{Cn={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function y0({account:n,contractId:y,viewMethods:t,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:t})}import{JsonRpcProvider as k8}from"@near-js/providers";import{AssetValue as f0,Chain as ho,getRPCUrl as JH,SwapKitError as Xn}from"@swapkit/helpers";import{match as YH,P as NH}from"ts-pattern";function u8(n){let y;async function t(){if(y)return y;return y=await YH(n).with({phrase:NH.string},async(Q)=>{return await jf(Q)}).with({signer:NH.any},({signer:Q})=>Q).otherwise(()=>{return}),y}async function o(){let Q=await JH(ho.Near);return new k8({url:Q})}async function f(Q){let{Account:z}=await import("@near-js/accounts"),R=await o(),p=await t(),k=Q||await T();return new z(k,R,p)}async function T(){let Q=await t();if(!Q)throw new Xn("toolbox_near_no_signer");return await Q.getAddress()}async function C(Q){return(await Y({changeMethods:[],contractId:Q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:Q.accountId})}async function H(Q){let R=[await U({args:{account_id:Q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:Q.assetValue.getBaseValue("string"),memo:Q.memo||null,receiver_id:Q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return q({actions:R,receiverId:Q.contractId})}async function A(Q){if(!await t())throw new Xn("toolbox_near_no_signer");let{assetValue:R,recipient:p,memo:k}=Q,I=await T();if(!R.isGasAsset&&R.address){if(!await C({accountId:p,contractId:R.address}))return H({assetValue:R,contractId:R.address,memo:k,recipient:p})}let v=await _({...Q,sender:I});return l(v)}async function _({recipient:Q,assetValue:z,memo:R,attachedDeposit:p,sender:k,functionCall:I}){let v=await o();if(!Fy(Q))throw new Xn("toolbox_near_invalid_address",{recipient:Q});if(!Fy(k))throw new Xn("toolbox_near_invalid_address",{sender:k});if(I)return B({...I,sender:k});if(!z.isGasAsset){let Zn=z.address;if(!Zn)throw new Xn("toolbox_near_missing_contract_address");return B({args:{amount:z.getBaseValue("string"),memo:R||null,receiver_id:Q},attachedDeposit:p||"1",contractId:Zn,gas:"250000000000000",methodName:"ft_transfer",sender:k})}let{publicKey:c,nonce:V}=await cf(v,k),yn=z.getBaseValue("bigint"),{actionCreators:a,createTransaction:Un}=await import("@near-js/transactions"),{baseDecode:Sn}=await import("@near-js/utils"),Fn=[a.transfer(yn)];if(R&&p)Fn.push(a.functionCall("memo",{memo:R},BigInt("250000000000000"),BigInt(p)));let wn=await v.block({finality:"final"}),d=Sn(wn.header.hash);return Un(k,c,Q,V+1,Fn,d)}function X(Q){let z=Q.encode();return Buffer.from(z).toString("base64")}async function B({args:Q,attachedDeposit:z,contractId:R,gas:p,methodName:k,sender:I}){let v=await o(),{publicKey:c,nonce:V}=await cf(v,I),{createTransaction:yn,actionCreators:a}=await import("@near-js/transactions"),{baseDecode:Un}=await import("@near-js/utils"),Sn=await v.block({finality:"final"}),Fn=Un(Sn.header.hash),wn=[a.functionCall(k,Buffer.from(JSON.stringify(Q)),BigInt(p),BigInt(z))];return yn(I,c,R,V+1,wn,Fn)}async function U(Q){let{actionCreators:z}=await import("@near-js/transactions");return z.functionCall(Q.methodName,Buffer.from(JSON.stringify(Q.args)),BigInt(Q.gas),BigInt(Q.attachedDeposit))}async function W(Q){let z=await t();if(!z)throw new Xn("toolbox_near_no_signer");let[R,p]=await z.signTransaction(Q);return p}async function w(Q){return(await(await o()).sendTransaction(Q)).transaction.hash}async function l(Q){let z=await t();if(!z)throw new Xn("toolbox_near_no_signer");try{let R=await W(Q);return await w(R)}catch{return z.signAndSendTransactions?.({transactions:[Q]})}}async function L(Q){let z=await t();if("assetValue"in Q){let p=await N();try{let k=await JH(ho.Near),I=await fetch(k,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:v}}=await I.json(),{execution:c,send_sir:V}=v.transaction_costs.action_receipt_creation_config,{execution:yn,send_sir:a}=v.transaction_costs.action_creation_config.transfer_cost,Un=BigInt(a)+BigInt(yn),Sn=BigInt(V)+BigInt(c),wn=(Un+Sn)*BigInt(p.toString());return f0.from({chain:ho.Near,value:wn})}catch(k){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",k);let I=BigInt("115123062500"),v=BigInt("108059500000"),V=(I+v)*BigInt(p.toString());return f0.from({chain:ho.Near,value:V})}}let R=z?await f():void 0;return M(Q,R)}async function N(){let Q=await o();try{return await Q.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function J(Q,z,R){if(!await t())throw new Xn("toolbox_near_no_signer");let k=await f(),{formatNearAmount:I}=await import("@near-js/utils"),{PublicKey:v}=await import("@near-js/crypto"),c=I(R)||"0";return(await k.createAccount(Q,v.fromString(z),BigInt(c))).transaction.hash}async function O(Q){let z=await t();try{if(!z)throw new Xn("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:p,methodName:k,args:I,deposit:v}=Q,c=await f(),V=await M({args:I||{},contractId:p,methodName:k}),yn=R.functionCall(k,I||{},V.getBaseValue("bigint"),BigInt(v||"1"));return(await c.signAndSendTransaction({actions:[yn],receiverId:p})).transaction_outcome.id}catch(R){throw new Xn("toolbox_near_transfer_failed",{error:R})}}async function Y(Q){let z=await f();return y0({account:z,changeMethods:Q.changeMethods,contractId:Q.contractId,viewMethods:Q.viewMethods})}async function q(Q){if(!await t())throw new Xn("toolbox_near_no_signer");if(Q.actions.length===0)throw new Xn("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:Q.actions,receiverId:Q.receiverId})).transaction.hash}async function M(Q,z){let R=await YH(Q).when(mT,()=>Cn.SIMPLE_TRANSFER).when(rT,(k)=>n0(k.methodName)).when(gT,(k)=>eT(k.actions)).when(dT,()=>Cn.ACCOUNT_CREATION).when(aT,()=>Cn.CONTRACT_DEPLOYMENT).when(sT,(k)=>{if(!z)throw new Xn("toolbox_near_no_account");return k.customEstimator(z)}).otherwise(()=>{throw new Xn("toolbox_near_invalid_gas_params")}),p=BigInt(R)*BigInt(1000000000000);return f0.from({chain:ho.Near,value:p})}function G(Q,z){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),M(Q,z)}async function Z(){let Q=await o();try{return(await Q.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let Q=await t();return Q?(await Q.getPublicKey()).toString():""}return{broadcastTransaction:w,callFunction:O,createAction:U,createContract:Y,createContractFunctionCall:B,createSubAccount:J,createTransaction:_,estimateGas:G,estimateGasLimit:M,estimateTransactionFee:L,executeBatchTransaction:q,getAddress:T,getBalance:qn(ho.Near),getGasPrice:Z,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:jf,getSignerFromPrivateKey:iT,serializeTransaction:X,signAndBroadcastTransaction:l,signTransaction:W,transfer:A,validateAddress:Fy}}var t0=F(()=>{En();hT();o0()});var zH=F(()=>{t0()});var T0={};nn(T0,{validateNearAddress:()=>Fy,tgasToGas:()=>F8,isSimpleTransfer:()=>mT,isCustomEstimator:()=>sT,isContractDeployment:()=>aT,isContractCall:()=>rT,isBatchTransaction:()=>gT,isAccountCreation:()=>dT,getNearToolbox:()=>u8,getNearSignerFromPrivateKey:()=>iT,getNearSignerFromPhrase:()=>jf,getFullAccessPublicKey:()=>cf,getContractMethodGas:()=>n0,gasToTGas:()=>p8,estimateBatchGas:()=>eT,createNearContract:()=>y0,GAS_COSTS:()=>Cn});var C0=F(()=>{hT();o0();t0();zH()});var A0={};nn(A0,{validateRadixAddress:()=>OH,getRadixToolbox:()=>j8});import{GatewayApiClient as P8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as I8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as DH,Chain as H0,SKConfig as $8,SwapKitError as E8}from"@swapkit/helpers";function OH(n){return n.startsWith("account_rdx1")&&n.length===66}function b8({networkApi:n}){return async function(t){let o=await v8({address:t,networkApi:n}),f=await V8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[DH.from({chain:H0.Radix}),...f];return f}}async function v8({address:n,networkApi:y}){let t=!0,o,f=[],T=await K8(y);while(t){let C={address:n,at_ledger_state:{state_version:T},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else t=!1}return f}async function V8({resources:n,networkApi:y}){let t=[],o=50,f=[];for(let T=0;T<n.length;T+=50)f.push(n.slice(T,T+50));for(let T of f){let C=T.map((_)=>_.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),A=new Map;for(let _ of H)if(_.details!==void 0){let X=_.metadata?.items.find((U)=>U.key==="symbol"),B=X?.value.typed.type==="String"?X.value.typed.value:"?";if(_.details.type==="FungibleResource")A.set(_.address,{decimals:_.details.divisibility,symbol:B})}for(let _ of T)if(_.aggregation_level==="Global"){let X=A.get(_.resource_address)||{decimals:0,symbol:"?"},B=DH.from({asset:X.symbol!==H0.Radix?`${H0.Radix}.${X.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});t.push(B)}}return t}async function K8(n){return(await n.status.getCurrent()).ledger_state.state_version}function j8({dappConfig:n}={}){let y=n||$8.get("integrations").radix,t=I8({...y,networkId:y.network?.networkId||1}),o=P8.initialize(t.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:b8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new E8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:OH}}var _0=()=>{};import{SwapKitError as c8}from"@swapkit/helpers";function hf(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function py(n){if(hf(n))return n.toUpperCase();if(n.length<=3){let t=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${t}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new c8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function i8(n){if(!hf(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let t=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(t)&&t.length>0)return t}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),t=y.length%2===0?y:`${y}0`,o=Buffer.from(t,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function mo(n){if(hf(n))return n.toUpperCase();if(n.length<=3)return n;return py(n)}var mf=()=>{};import{RequestClient as h8,warnOnce as m8}from"@swapkit/helpers";async function r8(n,y){let t=mo(n),o=rf.find((f)=>mo(f.currency)===t&&f.issuer===y);if(o)return o;try{let f=await h8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){m8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function g8(n){return rf.filter((y)=>y.issuer===n)}function d8(n,y){let t=mo(n);return rf.some((o)=>mo(o.currency)===t&&o.issuer===y)}var rf;var RH=F(()=>{mf();rf=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var U0={};nn(U0,{validateRippleAddress:()=>af,parseXrplTokenIdentifier:()=>PH,normalizeCurrency:()=>mo,isKnownToken:()=>d8,isHexCurrency:()=>hf,hexToCurrency:()=>i8,hashes:()=>fw,getXrplTokenInfo:()=>r8,getRippleToolbox:()=>yw,getKnownTokensByIssuer:()=>g8,formatXrplTokenIdentifier:()=>IH,currencyToHex:()=>py,XRPL_TOKEN_ERROR_CODES:()=>df,XRPL_KNOWN_TOKENS:()=>rf});import{AssetValue as gf,Chain as On,getChainConfig as xH,getRPCUrl as a8,SwapKitError as _n}from"@swapkit/helpers";import{match as SH,P as FH}from"ts-pattern";import{Client as s8,isValidAddress as uH,Wallet as e8,xrpToDrops as nw}from"xrpl";import{hashes as fw}from"xrpl";function PH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!uH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function IH(n,y){return`${On.Ripple}.${n}-${y}`}function ow(n){if(n.isGasAsset)return nw(n.getValue("string"));let y=PH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function kH(n){let y=e8.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(t)=>Promise.resolve(y.sign(t))}}function af(n){return uH(n)}function yw(n={}){let y=SH(n).with({phrase:FH.string},({phrase:J})=>kH(J)).with({signer:FH.any},({signer:J})=>J).otherwise(()=>{return}),t;async function o(){let J=await a8(On.Ripple);if(!J)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let O=new s8(J);return await O.connect(),O}async function f(){if(t){let J=await t.catch(()=>null);if(J?.isConnected())return J}return t=o(),t}let T=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(J)=>{let O=J||await T(),{baseDecimal:Y}=xH(On.Ripple),q=await f();try{let[M,G]=await Promise.all([q.request({account:O,command:"account_info"}),q.request({account:O,command:"account_lines"})]),Z=M.result.account_data.Balance,D=[gf.from({chain:On.Ripple,fromBaseDecimal:Y,value:Z})];for(let Q of G.result.lines){let z=IH(Q.currency,Q.account);if(Number.parseFloat(Q.balance)!==0)D.push(gf.from({asset:z,asyncTokenLookup:!1,value:Q.balance}))}return D}catch(M){if(M.data?.error_code===pH.ACCOUNT_NOT_FOUND)return[gf.from({chain:On.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:M}})}},H=async()=>{let{baseDecimal:J}=xH(On.Ripple),q=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return gf.from({chain:On.Ripple,fromBaseDecimal:J,value:q})};async function A(J){let O=J||await T(),Y=await f();try{return(await Y.request({account:O,command:"account_lines"})).result.lines.map((M)=>({account:M.account,authorized:M.authorized??!1,balance:M.balance,currency:M.currency,freeze:M.freeze??!1,freezePeer:M.freeze_peer??!1,limit:M.limit,limitPeer:M.limit_peer,noRipple:M.no_ripple??!1,noRipplePeer:M.no_ripple_peer??!1,peerAuthorized:M.peer_authorized??!1,qualityIn:M.quality_in??0,qualityOut:M.quality_out??0}))}catch(q){if(q.data?.error_code===pH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:q}})}}async function _({address:J,currency:O,issuer:Y}){let q=await A(J),M=py(O);return q.some((G)=>{return py(G.currency)===M&&G.account===Y})}async function X({currency:J,issuer:O,limit:Y,sender:q}){let M=q||await T();if(!af(O))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let G=Number.parseFloat(Y);if(Number.isNaN(G)||G<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:Y}});let Z=await f(),D={Account:M,LimitAmount:{currency:J,issuer:O,value:Y},TransactionType:"TrustSet"};return Z.autofill(D)}async function B({assetValue:J,recipient:O,memo:Y,sender:q,destinationTag:M,extendBySeconds:G=150}){if(!af(O))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Z=q||await T();if(J.chain!==On.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let D=ow(J),Q={Account:Z,Amount:D,Destination:O,TransactionType:"Payment",...M!==void 0&&{DestinationTag:M}};if(Y)Q.Memos=[{Memo:{MemoData:Buffer.from(Y).toString("hex")}}];let R=await(await f()).autofill(Q);if(R.LastLedgerSequence&&G>0)R.LastLedgerSequence+=Math.ceil(G/4);return R}function U(J){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(J)}async function W(J){let Y=await(await f()).submitAndWait(J),{result:q}=Y;if(q.validated)return q.hash;let M=q.meta?.TransactionResult,G=SH(M).with(df.tecNO_LINE,()=>"No trust line exists for this token").with(df.tecPATH_DRY,()=>"Payment path could not deliver funds").with(df.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,...G?{reason:G}:{txResult:M}}})}let w=async(J)=>{try{let O=await U(J);return W(O.tx_blob)}catch(O){if(O instanceof _n)throw O;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,error:O}})}};async function l(J){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let O=await y.getAddress(),Y=await B({...J,sender:O}),q=await U(Y);return W(q.tx_blob)}async function L(J){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let O=await y.getAddress(),Y=await X({...J,sender:O}),q=await U(Y);return W(q.tx_blob)}function N(){let J=t;if(t=null,J)J.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:W,createSigner:kH,createTransaction:B,disconnect:N,estimateTransactionFee:H,getAddress:T,getBalance:C,getTrustLines:A,hasTrustLine:_,setTrustLine:X,setTrustLineAndBroadcast:L,signAndBroadcastTransaction:w,signTransaction:U,transfer:l,validateAddress:af}}var pH,df;var w0=F(()=>{mf();mf();RH();pH={ACCOUNT_NOT_FOUND:19},df={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as tw}from"@noble/hashes/sha2.js";import{bytesToHex as $H,hexToBytes as EH}from"@noble/hashes/utils.js";import{SwapKitError as ro}from"@swapkit/helpers";function q0(n,y){let t=0n,o=0n,f=y;while(f<n.length&&f-y<10){let T=n[f++];if(T===void 0)break;if(t|=BigInt(T&127)<<o,o+=7n,(T&128)===0)return[t,f]}throw new ro("toolbox_tron_transaction_creation_failed")}function ky(n){let y=[],t=n<0n?n+2n**64n:n;while(t>=128n)y.push(Number(t&0x7fn)|128),t>>=7n;return y.push(Number(t)),y}function sf(n,y,t){let o=n.get(y);if(o)o.push(t);else n.set(y,[t])}function Aw(n){let y=new Map,t=0;while(t<n.length){let[o,f]=q0(n,t);t=f;let T=Number(o>>3n),C=Number(o&7n);if(C===ef){let[H,A]=q0(n,t);t=A,sf(y,T,{data:new Uint8Array(ky(H)),wireType:ef})}else if(C===nt){let[H,A]=q0(n,t);t=A;let _=Number(H);if(_<0||t+_>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let X=n.slice(t,t+_);t+=_,sf(y,T,{data:X,wireType:nt})}else if(C===bH){if(t+8>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+8);t+=8,sf(y,T,{data:H,wireType:bH})}else if(C===vH){if(t+4>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+4);t+=4,sf(y,T,{data:H,wireType:vH})}else throw new ro("toolbox_tron_transaction_creation_failed")}return y}function _w(n){let y=[];for(let[T,C]of[...n.entries()].sort(([H],[A])=>H-A))for(let{wireType:H,data:A}of C){let _=BigInt(T<<3|H);if(y.push(new Uint8Array(ky(_))),H===nt)y.push(new Uint8Array(ky(BigInt(A.length))));y.push(A)}let t=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(t),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function VH(n,y){if(!n||n.length%2!==0)throw new ro("toolbox_tron_transaction_creation_failed");let t=EH(n),o=Aw(t);if(y.expiration!==void 0)o.set(Tw,[{data:new Uint8Array(ky(BigInt(y.expiration))),wireType:ef}]);if(y.data!==void 0)o.set(Cw,[{data:EH(y.data),wireType:nt}]);if(y.fee_limit!==void 0)o.set(Hw,[{data:new Uint8Array(ky(BigInt(y.fee_limit))),wireType:ef}]);let f=_w(o),T=$H(f),C=$H(tw(f));return{raw_data_hex:T,txID:C}}var ef=0,bH=1,nt=2,vH=5,Tw=8,Cw=10,Hw=18;var KH=()=>{};import{secp256k1 as jH}from"@noble/curves/secp256k1.js";import{sha256 as cH}from"@noble/hashes/sha2.js";import{keccak_256 as Uw}from"@noble/hashes/sha3.js";import{bytesToHex as go,hexToBytes as ot}from"@noble/hashes/utils.js";import{createBase58check as ww}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=yt.decode(n);return y.length===21&&y[0]===hH}catch{return!1}}function mH(n){return go(yt.decode(n))}function lw(n){return yt.decode(n).slice(1)}function rH(n){let y=jH.getPublicKey(ot(n),!1),t=Uw(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=hH,o.set(t,1),yt.encode(o)}function gH({txID:n,privateKey:y}){let t=jH.sign(ot(n),ot(y),{format:"recovered",prehash:!1}),o=t[0]??0,f=go(t.slice(1,33)),T=go(t.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+T+C}function ao({txID:n,raw_data_hex:y}){let t=go(cH(ot(y)));if(n!==t)throw new iH("toolbox_tron_invalid_transaction_integrity",{expected:t,txID:n})}function Gw(n){return`000000000000000000000000${go(lw(n))}`}function Xw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=qw)throw new iH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function so(n){return n.map(({type:y,value:t})=>y==="address"?Gw(t):Xw(BigInt(t))).join("")}function dH(n){return go(new TextEncoder().encode(n))}var yt,hH=65,qw;var l0=F(()=>{yt=ww(cH),qw=2n**256n});import{Chain as Ww,getRPCUrlSync as Bw,SwapKitError as xn,warnOnce as G0}from"@swapkit/helpers";function sH(){try{return Bw(Ww.Tron)}catch{return aH}}function eH(){let n=new AbortController,y=setTimeout(()=>n.abort(),Zw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function eo(n,y){let{signal:t,cleanup:o}=eH();try{let f=await fetch(`${sH()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:t});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function nA(n,y){let{signal:t,cleanup:o}=eH();try{let f=await fetch(`${y??sH()}${n}`,{headers:{"Content-Type":"application/json"},signal:t});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function oA(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await nA(`/v1/accounts/${n}`,aH);if(!(y.success&&y.data)||y.data.length===0)return;let t;try{t=mH(n).toLowerCase()}catch{t=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===t);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof xn)throw y;throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function yA({from:n,to:y,amount:t}){let f=await eo("/wallet/createtransaction",{amount:t,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new xn("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==t)throw new xn("toolbox_tron_transaction_creation_failed");return ao(f),f}async function fA({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o,feeLimit:f,callValue:T=0}){let C=await eo("/wallet/triggersmartcontract",{call_value:T,contract_address:y,fee_limit:f,function_selector:t,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new xn("toolbox_tron_transaction_creation_failed");let A=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(A?.contract_address!==y||A?.owner_address!==n)throw new xn("toolbox_tron_transaction_creation_failed");return ao(C.transaction),C.transaction}function tA({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o}){return eo("/wallet/triggerconstantcontract",{contract_address:y,function_selector:t,owner_address:n,parameter:o,visible:!0})}async function uy(n){try{let{result:y,txid:t}=await eo("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!t)throw new xn("toolbox_tron_token_transfer_failed");return t}catch(y){throw new xn("toolbox_tron_broadcast_failed",{error:y})}}async function ft(){let n={};try{let{chainParameter:y}=await nA("/wallet/getchainparameters");for(let t of y)n[t.key]=t.value}catch(y){G0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Mw,createAccountFee:n.getCreateAccountFee??Lw,energyFee:n.getEnergyFee??Qw}}async function X0(n){try{let y=await eo("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return G0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function W0(n){try{let y=await eo("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function B0(n){try{let{energy_used:y}=await tA({...n,ownerAddress:n.sender});return y}catch(y){return G0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function TA({assetAddress:n,owner:y,spender:t}){let o=so([{type:"address",value:y},{type:"address",value:t}]),T=(await tA({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:t,parameter:o})).constant_result?.[0];if(!T)return 0n;try{return BigInt(`0x${T}`)}catch{return 0n}}var aH="https://api.trongrid.io",Mw=1000,Lw=1e5,Qw=420,Zw=30000;var CA=F(()=>{l0()});import{bytesToHex as Jw}from"@noble/hashes/utils.js";import{HDKey as Yw}from"@scure/bip32";import{mnemonicToSeedSync as Nw}from"@scure/bip39";import{AssetValue as mn,BaseDecimal as HA,Chain as Qn,derivationPathToString as UA,getRPCUrl as zw,NetworkDerivationPath as wA,SwapKitError as Hn,updateDerivationPath as qA,warnOnce as AA}from"@swapkit/helpers";import{match as Dw,P as M0}from"ts-pattern";function GA({phrase:n,derivationPath:y}){let t=Yw.fromMasterSeed(Nw(n)).derive(y);if(!t.privateKey)throw new Hn("toolbox_tron_no_signer");return Jw(t.privateKey)}function XA({phrase:n,derivationPath:y,index:t}){let o=y||UA(qA(wA[Qn.Tron],{index:t||0}));return GA({derivationPath:o,phrase:n})}function Fw({phrase:n,derivationPath:y}){let t=GA({derivationPath:y,phrase:n}),o=rH(t);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{ao(f);let T=gH({privateKey:t,txID:f.txID});return Promise.resolve({...f,signature:[T]})}}}function _A({transaction:n,memo:y,expiration:t,feeLimit:o}){let f={},T={};if(o!==void 0&&n.raw_data)f.fee_limit=o,T.fee_limit=o;if(y){let A=dH(y);f.data=A,T.data=A}if(t){let A=n.raw_data.expiration+t*1000;f.expiration=A,T.expiration=A}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=VH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...T},raw_data_hex:C,txID:H}}function WA(n={}){let y="index"in n?n.index||0:0,t=UA("derivationPath"in n&&n.derivationPath?n.derivationPath:qA(wA[Qn.Tron],{index:y})),o,f=!1;function T(){if(f)return Promise.resolve(o);return o=Dw(n).with({phrase:M0.string},({phrase:q})=>Fw({derivationPath:t,phrase:q})).with({signer:M0.not(M0.nullish)},({signer:q})=>q).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let q=await T();if(!q)throw new Hn("toolbox_tron_no_signer");return q.getAddress()}async function H(q){let M=q||Rw,G=await ft(),Z=M*G.energyFee,D=Math.ceil(Z*1.5);return Math.min(Math.max(D,1e7),150000000)}async function A({contractAddress:q,functionSelector:M,parameter:G,sender:Z,memo:D,expiration:Q}){let z=await B0({contractAddress:q,functionSelector:M,parameter:G,sender:Z}),R=await H(z),p=await fA({contractAddress:q,feeLimit:R,functionSelector:M,ownerAddress:Z,parameter:G});return _A({expiration:Q,feeLimit:R,memo:D,transaction:p})}async function _(q){if(!Rn(q))return[mn.from({chain:Qn.Tron})];try{let M=await oA(q);if(!M)return[mn.from({chain:Qn.Tron})];let G=[mn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(M.balance)})],Z=M.trc20?.find((D)=>(L0 in D));if(Z){let D=Z[L0];G.push(mn.from({asset:`TRON.USDT-${L0}`,fromBaseDecimal:6,value:D}))}return G}catch(M){return AA({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${M instanceof Error?M.message:M}`}),[mn.from({chain:Qn.Tron})]}}async function X({recipient:q,assetValue:M,memo:G,expiration:Z}){if(!Rn(q))throw new Hn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await T();if(!D)throw new Hn("toolbox_tron_no_signer");try{let Q=await C(),z=await l({assetValue:M,expiration:Z,memo:G,recipient:q,sender:Q}),R=await D.signTransaction(z),p=await uy(R);if(!p)throw new Hn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return p}catch(Q){throw new Hn("toolbox_tron_token_transfer_failed",{message:Q instanceof Error?Q.message:String(Q)})}}function B({requiredBandwidth:q,resources:M,feePerUnit:G}){let Z=Math.max(0,M.free+M.total-M.used);return q>Z?(q-Z)*G:0}async function U({recipient:q,senderAddress:M}){let[G,Z,D]=await Promise.all([ft(),W0(q),X0(M)]),Q=Z?0:G.createAccountFee,z=B({feePerUnit:G.bandwidthFee,requiredBandwidth:Ow,resources:D.bandwidth});return mn.from({chain:Qn.Tron,fromBaseDecimal:HA.TRON,value:Q+z})}async function W({assetValue:q,recipient:M,senderAddress:G}){let Z=q.address;if(!Z)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});let[D,Q,z,R]=await Promise.all([ft(),W0(M),X0(G),B0({contractAddress:Z,functionSelector:"transfer(address,uint256)",parameter:so([{type:"address",value:M},{type:"uint256",value:q.getBaseValue("string")}]),sender:G})]),p=Q?0:D.createAccountFee,k=B({feePerUnit:D.bandwidthFee,requiredBandwidth:xw,resources:z.bandwidth}),I=Math.max(0,z.energy.total-z.energy.used),v=R>I?(R-I)*D.energyFee:0;return mn.from({chain:Qn.Tron,fromBaseDecimal:HA.TRON,value:p+k+v})}async function w({assetValue:q,recipient:M,sender:G}){let Z=await T();try{let D=G?G:Z?await C():void 0;if(!D)return q.isGasAsset?mn.from({chain:Qn.Tron,value:0.1}):mn.from({chain:Qn.Tron,value:15});return q.isGasAsset?U({recipient:M,senderAddress:D}):W({assetValue:q,recipient:M,senderAddress:D})}catch(D){throw AA({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Hn("toolbox_fee_estimation_failed",{chain:Qn.Tron,error:D})}}async function l({recipient:q,assetValue:M,memo:G,sender:Z,expiration:D}){if(!Rn(q)||!Rn(Z))throw new Hn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(M.isGasAsset){let z=await yA({amount:M.getBaseValue("number"),from:Z,to:q});return _A({expiration:D,memo:G,transaction:z})}let Q=M.address;if(!Q)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:M.toString()});return A({contractAddress:Q,expiration:D,functionSelector:"transfer(address,uint256)",memo:G,parameter:so([{type:"address",value:q},{type:"uint256",value:M.getBaseValue("string")}]),sender:Z})}async function L(q){ao(q);let M=await T();if(!M)throw new Hn("toolbox_tron_no_signer");return M.signTransaction(q)}async function N(q){let M=await L(q);return uy(M)}function J({assetAddress:q,spenderAddress:M,from:G}){return TA({assetAddress:q,owner:G,spender:M})}async function O({assetAddress:q,spenderAddress:M,from:G,amount:Z}){let D=await J({assetAddress:q,from:G,spenderAddress:M});if(!Z)return D>0n;return D>=BigInt(Z)}async function Y({assetAddress:q,spenderAddress:M,amount:G,from:Z}){if(!Rn(q)||!Rn(M))throw new Hn("toolbox_tron_approve_failed");let D=await T();if(!D)throw new Hn("toolbox_tron_no_signer");let Q=Z||await C(),z=G!==void 0?BigInt(G).toString():Sw;try{let R=await A({contractAddress:q,functionSelector:"approve(address,uint256)",parameter:so([{type:"address",value:M},{type:"uint256",value:z}]),sender:Q}),p=await D.signTransaction(R),k=await uy(p);if(!k)throw new Hn("toolbox_tron_approve_failed");return k}catch(R){if(R instanceof Hn)throw R;throw new Hn("toolbox_tron_approve_failed",{error:R})}}return{approve:Y,broadcastTransaction:uy,createTransaction:l,estimateTransactionFee:w,getAddress:C,getApprovedAmount:J,getBalance:_,getRpcUrl:()=>zw(Qn.Tron),isApproved:O,signAndBroadcastTransaction:N,signTransaction:L,transfer:X,validateAddress:Rn}}var lA,Ow=268,Rw=65000,xw=345,L0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Sw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var BA=F(()=>{KH();CA();l0();lA=Rn});var Q0={};nn(Q0,{validateTronAddress:()=>lA,getTronToolbox:()=>WA,getTronPrivateKeyFromMnemonic:()=>XA});var Z0=F(()=>{BA()});import{AssetValue as Py,Chain as Co,derivationPathToString as pw,getChainConfig as kw,getRPCUrl as uw,NetworkDerivationPath as Pw,SwapKitError as Ho}from"@swapkit/helpers";import{match as Iw,P as $w}from"ts-pattern";function tt(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return Ew.test(n)}async function bw(n){if(!tt(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function MA(n={}){let y,t=n.derivationPath||Pw[Co.Stellar],o=pw(t.slice(0,3));async function f({phrase:l,path:L}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:J}=await import("@scure/bip39"),{Keypair:O}=await import("@stellar/stellar-sdk"),Y=J(l),M=N.fromMasterSeed(Y).derive(L,!0);return O.fromRawEd25519Seed(Buffer.from(M.privateKey))}async function T(){if(y)return y;let l=Iw(n).with({phrase:$w.string},({phrase:L})=>L).otherwise(()=>{return});if(!l)throw new Ho("toolbox_stellar_no_signer");return y=await f({path:o,phrase:l}),y}async function C(){let{Horizon:l}=await import("@stellar/stellar-sdk"),L=await uw(Co.Stellar);return new l.Server(L)}async function H(){try{return(await T()).publicKey()}catch{return""}}async function A(l){let L=l||await H();if(!L)throw new Ho("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(L)).balances.map((O)=>{if(O.asset_type==="native")return Py.from({chain:Co.Stellar,value:O.balance});let Y="asset_code"in O?O.asset_code:"",q="asset_issuer"in O?O.asset_issuer:"";return Py.from({asset:`${Co.Stellar}.${Y}-${q}`,asyncTokenLookup:!1,value:O.balance})})}catch{return[Py.from({chain:Co.Stellar,value:0})]}}async function _({recipient:l,assetValue:L,memo:N,sender:J}){if(N){if(new TextEncoder().encode(N).length>28)throw new Ho("helpers_invalid_memo_type")}if(!await bw(l))throw new Ho("core_transaction_invalid_recipient_address");let Y=J||await H();if(!Y)throw new Ho("toolbox_stellar_no_signer");let{Asset:q,Memo:M,Networks:G,Operation:Z,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),Q=await C(),z=await Q.fetchBaseFee(),R=await Q.loadAccount(Y),p=new D(R,{fee:String(z),networkPassphrase:G.PUBLIC});if(L.isGasAsset)try{await Q.loadAccount(l),p.addOperation(Z.payment({amount:L.getValue("string"),asset:q.native(),destination:l}))}catch{p.addOperation(Z.createAccount({destination:l,startingBalance:L.getValue("string")}))}else p.addOperation(Z.payment({amount:L.getValue("string"),asset:new q(L.symbol,L.address),destination:l}));if(N)p.addMemo(M.text(N));return p.setTimeout(30).build()}async function X(l){let{TransactionBuilder:L,Networks:N}=await import("@stellar/stellar-sdk"),J=await T(),O=L.fromXDR(l.toXDR(),N.PUBLIC);return O.sign(J),O}async function B(l){try{let L=await C(),{hash:N}=await L.submitTransaction(l);return N}catch(L){throw new Ho("toolbox_stellar_broadcast_error",L)}}async function U({recipient:l,assetValue:L,memo:N}){let J=await T(),O=J.publicKey(),Y=await _({assetValue:L,memo:N,recipient:l,sender:O});Y.sign(J);try{return(await(await C()).submitTransaction(Y)).hash}catch(q){if(q instanceof Ho)throw q;throw new Ho("toolbox_stellar_transaction_failed",q)}}async function W(l){let L=await X(l);return B(L)}async function w(){let{baseDecimal:l}=kw(Co.Stellar);try{let J=(await(await C()).feeStats()).fee_charged.p50;return Py.from({chain:Co.Stellar,fromBaseDecimal:l,value:J})}catch{return Py.from({chain:Co.Stellar,fromBaseDecimal:l,value:"100"})}}return{broadcastTransaction:B,createTransaction:_,estimateTransactionFee:w,getAddress:H,getBalance:A,signAndBroadcastTransaction:W,signTransaction:X,transfer:U,validateAddress:tt}}var Ew;var LA=F(()=>{Ew=/^G[A-Z2-7]{55}$/});var Tt={};nn(Tt,{validateStellarAddress:()=>tt,getStellarToolbox:()=>MA});var Ct=F(()=>{LA()});import{AssetValue as vw,Chain as $,CosmosChains as J0,EVMChains as Y0,FeeOption as Vw,SwapKitError as Kw,UTXOChains as ZA}from"@swapkit/helpers";async function HX(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => ($y(),Iy)),{validateEVMAddress:t}=await Promise.resolve().then(() => (kt(),CC)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (bt(),Et)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Xf(),Gf)),{validateHyperCoreAddress:T}=await Promise.resolve().then(() => (XT(),GT)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (QT(),LT)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Nf(),Yf)),{validateSuiAddress:A}=await Promise.resolve().then(() => (Of(),Df)),{validateTonAddress:_}=await Promise.resolve().then(() => (Sf(),xf)),{getUTXOAddressValidator:X}=await Promise.resolve().then(() => (cT(),jT)),{validateNearAddress:B}=await Promise.resolve().then(() => (C0(),T0)),{validateRadixAddress:U}=await Promise.resolve().then(() => (_0(),A0)),{validateRippleAddress:W}=await Promise.resolve().then(() => (w0(),U0)),{validateTronAddress:w}=await Promise.resolve().then(() => (Z0(),Q0)),{validateStellarAddress:l}=await Promise.resolve().then(() => (Ct(),Tt));return function({address:N,chain:J}){return n(J).with(...Y0,()=>t(N)).with(...ZA,(Y)=>{return X(Y)(N)}).with(...J0,(Y)=>{return f(Y)(N)}).with($.Aptos,()=>y(N)).with($.Radix,()=>U(N)).with($.HyperCore,()=>T(N)).with($.Near,()=>B(N)).with($.Ripple,()=>W(N)).with($.Solana,()=>C(N)).with($.Stellar,()=>l(N)).with($.Starknet,()=>H(N)).with($.Sui,()=>A(N)).with($.Ton,()=>_(N)).with($.Tron,()=>w(N)).with($.Cardano,()=>o(N)).otherwise(()=>!1)}}function AX(n){return async function(t){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...Y0,async(f)=>{let T=await QA(f),C=await T.createTransaction(t),H="feeOptionKey"in t?t.feeOptionKey:Vw.Fast;return T.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await QA(f)).estimateTransactionFee(t)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => ($y(),Iy));return f().estimateTransactionFee(t)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Nf(),Yf));return(await f()).estimateTransactionFee(t)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (Ct(),Tt));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Of(),Df));return f().estimateTransactionFee(t)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Sf(),xf));return f().estimateTransactionFee(t)}).with(...J0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Xf(),Gf));return f(t)}).otherwise(async()=>vw.from({chain:n}))}}async function QA(n,y){let{match:t}=await import("ts-pattern");return t(n).returnType().with(...Y0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (pt(),fC));return await o(n,y)}).with(...ZA,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (cT(),jT));return o(n,y)}).with(...J0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Xf(),Gf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => ($y(),Iy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (XT(),GT));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (_0(),A0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (w0(),U0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (QT(),LT));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (Ct(),Tt));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Nf(),Yf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Of(),Df));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (Z0(),Q0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (C0(),T0));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (bt(),Et));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (Sf(),xf));return o(y)}).otherwise(()=>{throw new Kw("toolbox_not_supported",{chain:n})})}export{QA as getToolbox,AX as getFeeEstimator,HX as getAddressValidator};
1
+ var NA=Object.defineProperty;var zA=(n)=>n;function DA(n,y){this[n]=zA.bind(null,y)}var nn=(n,y)=>{for(var T in y)NA(n,T,{get:y[T],enumerable:!0,configurable:!0,set:DA.bind(y,T)})};var S=(n,y)=>()=>(n&&(y=n(n=0)),y);var x=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,T)=>(typeof require<"u"?require:y)[T]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as ny,Chain as $n,derivationPathToString as OA,getChainConfig as AT,getRPCUrlSync as N0,NetworkDerivationPath as RA,SwapKitError as fn}from"@swapkit/helpers";import{match as z0,P as _T}from"ts-pattern";function Jo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return xA.test(y)}function D0({derivationPath:n,provider:y,...T}={}){let o,f=OA(n||RA[$n.Aptos],{allHardened:!0});async function t(){if(o)return o;return o=await z0(T).with({phrase:_T.string},async({phrase:w})=>{let{Ed25519Account:Q}=await import("@aptos-labs/ts-sdk");return Q.fromDerivationPath({mnemonic:w,path:f})}).with({signer:_T.any},({signer:w})=>w).otherwise(()=>{return}),o}async function C(){let{Aptos:w,AptosConfig:Q}=await import("@aptos-labs/ts-sdk"),N=new Q({fullnode:y||N0($n.Aptos)});return new w(N)}async function H(){return(await t())?.accountAddress.toString()||""}async function A(w){let Q=w||await H();if(!Q)throw new fn("toolbox_aptos_address_required");let{baseDecimal:N,chain:Y}=AT($n.Aptos);try{let z=await C(),J=await z.getAccountAPTAmount({accountAddress:Q}),l=[ny.from({chain:Y,fromBaseDecimal:N,value:J.toString()})],M=await z.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Q}}}});for(let W of M){if(W.asset_type===Ao.COIN_TYPE||Number(W.amount)<=0)continue;let Z=W.asset_type;if(Z){let L=("metadata"in W&&typeof W.metadata==="object"&&W.metadata!==null?W.metadata:void 0)?.decimals??N;l.push(ny.from({asset:`${$n.Aptos}.APT-${Z}`,fromBaseDecimal:L,value:String(W.amount)}))}}return l}catch{return[ny.from({chain:Y})]}}async function _(w){if(!w){let{baseDecimal:M}=AT($n.Aptos),W=y||N0($n.Aptos),Z=await fetch(`${W}/estimate_gas_price`),{gas_estimate:D}=await Z.json();return ny.from({chain:$n.Aptos,fromBaseDecimal:M,value:String(D)})}let Q=await t();if(!Q)throw new fn("toolbox_aptos_no_signer");let N=await X(w),Y=await C(),[z]=await Y.transaction.simulate.simple({signerPublicKey:Q.publicKey,transaction:N});if(!z)throw new fn("toolbox_aptos_transaction_creation_error");let J=BigInt(z.gas_used)*BigInt(z.gas_unit_price),{baseDecimal:l}=AT($n.Aptos);return ny.from({chain:$n.Aptos,fromBaseDecimal:l,value:J.toString()})}async function X({recipient:w,assetValue:Q,maxGasAmount:N,sender:Y}){if(!Jo(w))throw new fn("core_transaction_invalid_recipient_address");let z=Y||await H();if(!z)throw new fn("toolbox_aptos_no_sender");let{AccountAddress:J}=await import("@aptos-labs/ts-sdk"),l=await C(),M=J.from(z);try{let W=Q.isGasAsset?Ao.TRANSFER:Ao.FUNGIBLE_STORE_TRANSFER,Z=z0({address:Q?.address,isGasAsset:Q.isGasAsset}).with({isGasAsset:!0},()=>[J.from(w),Q.getBaseValue("bigint")]).with({address:_T.string},({address:D})=>[J.from(D),J.from(w),Q.getBaseValue("bigint")]).otherwise(()=>null);if(!Z)throw new fn("toolbox_aptos_missing_asset_type");return l.transaction.build.simple({data:{function:W,functionArguments:Z,typeArguments:Q.isGasAsset?[]:[Ao.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:M})}catch(W){if(W instanceof fn)throw W;throw new fn("toolbox_aptos_transaction_creation_error",W)}}async function B(w){let Q=await t();if(!Q)throw new fn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:Q,transaction:w})}async function U({assetValue:w,maxGasAmount:Q,recipient:N}){let Y=await t();if(!Y)throw new fn("toolbox_aptos_no_signer");if(!Jo(N))throw new fn("core_transaction_invalid_recipient_address");try{let z=Y.accountAddress.toString(),J=await X({assetValue:w,maxGasAmount:Q,recipient:N,sender:z});return(await(await C()).signAndSubmitTransaction({signer:Y,transaction:J})).hash}catch(z){if(z instanceof fn)throw z;throw new fn("toolbox_aptos_transaction_creation_error",z)}}async function q({senderAuthenticator:w,transaction:Q}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:w,transaction:Q})).hash}catch(N){throw new fn("toolbox_aptos_broadcast_error",N)}}async function G(w){let Q=await B(w);return q({senderAuthenticator:Q,transaction:w})}return{broadcastTransaction:q,createTransaction:X,estimateTransactionFee:_,getAddress:H,getBalance:A,signAndBroadcastTransaction:G,signTransaction:B,transfer:U,validateAddress:Jo}}function O0({provider:n}){return async function({assetValue:T,recipient:o}){if(!Jo(o))throw new fn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(T.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),T.getBaseValue("string")],function:Ao.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let t=T.address;if(!t)throw new fn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[t,f.from(o).toString(),T.getBaseValue("string")],function:Ao.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Ao.FUNGIBLE_ASSET_METADATA]})).hash}}var Ao,xA;var R0=S(()=>{Ao={COIN_TYPE:"0x1::aptos_coin::AptosCoin",FUNGIBLE_ASSET_METADATA:"0x1::fungible_asset::Metadata",FUNGIBLE_STORE_TRANSFER:"0x1::primary_fungible_store::transfer",TRANSFER:"0x1::aptos_account::transfer"},xA=/^[0-9a-fA-F]+$/});var Iy={};nn(Iy,{validateAptosAddress:()=>Jo,getAptosToolbox:()=>D0,createAptosExtensionTransfer:()=>O0});var $y=S(()=>{R0()});import{AssetValue as x0,getChainConfig as FA}from"@swapkit/helpers";import{SwapKitApi as SA}from"@swapkit/helpers/api";function F0(){function n(){let y=Date.now(),T=UT||y;return UT=T,y>UT?y:T+1}return pA+n().toString(36)}function qn(n){return async function(T,o=!0){let f=await SA.getChainBalance({address:T,chain:n,scamFilter:o}),{baseDecimal:t}=FA(n),C=f.map(({identifier:A,value:_,decimal:X})=>{return new x0({decimal:X||t,identifier:A,value:_})});if(!C.some((A)=>A.isGasAsset))return[x0.from({chain:n}),...C];return C}}var pA,UT=0;var En=S(()=>{pA=typeof process<"u"&&process.pid?process.pid.toString(36):""});function oy(n){return{getBalance:qn(n)}}function kA(n){return n}var Ey=S(()=>{En()});import{Chain as h,getChainConfig as lT,getRPCUrl as uA,SwapKitError as by}from"@swapkit/helpers";import{getAddress as p0,Interface as PA,JsonRpcProvider as IA}from"ethers";import{match as k0}from"ts-pattern";function u0(n){return new IA(n)}async function XT(n,y){return u0(y||await uA(n))}function yy(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function WT(n){let{explorerUrl:y,chainIdHex:T,rpcUrls:o}=lT(n);return function(){return n!==h.Ethereum?{...$A({chain:n}),blockExplorerUrls:[y],chainId:T,rpcUrls:o}:void 0}}function BT(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function $A({chain:n}){let{name:y,nativeCurrency:T,baseDecimal:o}=lT(n);return k0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:T,symbol:T}}))}async function MT(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 P0(n,y){let T=y!==void 0?`index ${y}: `:"",o=(f,t)=>{throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${T}${t}`}})};k0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!EA(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!S0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!S0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function I0(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 wT(n){return n.charAt(0).toUpperCase()+n.slice(1)}function qT(n,y){if(n.isTuple()&&n.components){let T=wT(n.name);return y[T]=n.components.map((o)=>({name:o.name,type:qT(o,y)})),T}if(n.isArray()){let T=n.arrayChildren;if(T?.isTuple()&&T.components){let o=wT(n.name.replace(/s$/,""));return y[o]=T.components.map((f)=>({name:f.name,type:qT(f,y)})),`${o}[]`}return`${T?.type??"bytes"}[]`}return n.type}function GT(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let T=n.toObject(),o={};for(let[f,t]of(y.components??[]).entries())o[t.name]=GT(T[t.name]??n[f],t);return o}if(Array.isArray(n)){let T=y?.arrayChildren;return n.map((o)=>GT(o,T??void 0))}return n}function bA({chain:n,abi:y,data:T,to:o}){let t=new PA(y).parseTransaction({data:T});if(!t)throw new by({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=wT(t.name);C[H]=t.fragment.inputs.map((U)=>({name:U.name,type:qT(U,C)}));let A={};for(let[U,q]of t.fragment.inputs.entries())A[q.name]=GT(t.args[U],q);let{chainId:_}=lT(n),X={chainId:Number(_),verifyingContract:p0(o)},B=I0(X);return{domain:X,message:A,primaryType:H,types:{EIP712Domain:B,...C}}}function LT(n,y){if(!Array.isArray(n)||n.length===0)throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[T,o]of n.entries())if(P0(o,T),y!==void 0&&o.chainId!==y)throw new by({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${T}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var S0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),EA=(n)=>{try{return typeof n==="string"&&!!p0(n)}catch{return!1}};var fy=()=>{};var $0;var E0=S(()=>{$0=[{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 vA,applyFeeMultiplierToBigInt as Gn,Chain as Jn,EVMChains as VA,FeeOption as b,isGasAsset as KA,SwapKitError as i,SwapKitNumber as vy}from"@swapkit/helpers";import{erc20ABI as Ty}from"@swapkit/helpers/contracts";import{BrowserProvider as jA,Contract as b0,getAddress as Vy,Interface as v0}from"ethers";import{match as V0}from"ts-pattern";function Yo({chain:n=Jn.Ethereum,provider:y,signer:T,isEIP1559Compatible:o=!0}){return{approve:rA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),approvedAmount:c0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:NT({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),createApprovalTx:sA({chain:n,provider:y,signer:T}),createContract:ZT({chain:n,provider:y}),createContractTxObject:_o({chain:n,provider:y}),createTransaction:QT({chain:n,provider:y,signer:T}),createTransferTx:QT({chain:n,provider:y,signer:T}),EIP1193SendTransaction:zo(y),estimateCall:i0({provider:y,signer:T}),estimateGasLimit:dA({chain:n,provider:y,signer:T}),estimateGasPrices:Uo({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:eA({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return T?T.getAddress():void 0},getBalance:oy(n).getBalance,getNetworkParams:WT(n),isApproved:mA({chain:n,provider:y}),sendTransaction:h0({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),signAuthorization:aA({signer:T}),signMessage:T?(f)=>T.signMessage(f):void 0,signTypedData:T?({domain:f,types:t,value:C})=>T.signTypedData(f,t,C):void 0,transfer:gA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),validateAddress:Cy}}function Cy(n){try{return Vy(n),!0}catch{return!1}}function No(n){return n instanceof jA}function Hy(n,y,T){return new b0(n,v0.from(y),T)}function ZT({provider:n}){return function(T,o){return new b0(T,v0.from(o),n)}}function JT({abi:n,funcName:y}){let T=n.find((o)=>o.name===y);if(!T)throw new i("toolbox_evm_no_abi_fragment",{funcName:y});return T.stateMutability&&cA.includes(T.stateMutability)}function K0(n){return Vy(n)}function zo(n){return function({value:T,...o}){if(!No(n))throw new i("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:t,maxFeePerGas:C,maxPriorityFeePerGas:H,...A}=o;return n.send("eth_sendTransaction",[{...A,value:yy(BigInt(T||0))}])}}function j0(n,y){let T=Do(n,y);if(T)return Vy(T.toLowerCase());throw new i("toolbox_evm_invalid_gas_asset_address")}function Do({chain:n,symbol:y,ticker:T},o){try{let f=n===Jn.BinanceSmartChain&&y==="BNB"&&T==="BNB",t=n===Jn.Hyperevm&&y==="HYPE"&&T==="HYPE",C=n===o&&y===o&&T===o,H=hA.includes(n)&&y==="ETH"&&T==="ETH";if(C||f||t||H)return YT[o];return Vy(y.slice(T.length+1).replace(/^0X/,""))}catch{return null}}function _o({provider:n}){return async({contractAddress:y,abi:T,funcName:o,funcParams:f=[],txOverrides:t})=>Hy(y,T,n).getFunction(o).populateTransaction(...f.concat(t).filter((C)=>typeof C<"u"))}function Uo({chain:n,provider:y,isEIP1559Compatible:T=!0}){return V0(n).with(Jn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:t}=await y.getFeeData();if(!f||t===null)throw new i("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:Gn(f,b.Average),maxPriorityFeePerGas:Gn(t,b.Average)},[b.Fast]:{maxFeePerGas:Gn(f,b.Fast),maxPriorityFeePerGas:Gn(t,b.Fast)},[b.Fastest]:{maxFeePerGas:Gn(f,b.Fastest),maxPriorityFeePerGas:Gn(t,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Jn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new i("toolbox_evm_no_fee_data");let t=f*12n/10n;return{[b.Average]:{gasPrice:t},[b.Fast]:{gasPrice:Gn(t,b.Fast)},[b.Fastest]:{gasPrice:Gn(t,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:t,gasPrice:C}=await y.getFeeData();if(T){if(f===null||t===null)throw new i("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:t},[b.Fast]:{maxFeePerGas:Gn(f,b.Fast),maxPriorityFeePerGas:Gn(t,b.Fast)},[b.Fastest]:{maxFeePerGas:Gn(f,b.Fastest),maxPriorityFeePerGas:Gn(t,b.Fastest)}}}if(!C)throw new i("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:C},[b.Fast]:{gasPrice:Gn(C,b.Fast)},[b.Fastest]:{gasPrice:Gn(C,b.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function NT({provider:n,isEIP1559Compatible:y,signer:T,chain:o}){return async function({callProvider:t,contractAddress:C,abi:H,funcName:A,funcParams:_=[],txOverrides:X={},feeOption:B=b.Fast}){let U=t||n;if(!C)throw new i("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=JT({abi:H,funcName:A});if(q&&No(U)&&T){let Q=_o({chain:o,provider:U}),N=X?.from||await T?.getAddress(),Y=await Q({abi:H,contractAddress:C,funcName:A,funcParams:_,txOverrides:{...X,from:N}});return zo(U)(Y)}let G=Hy(C,H,U);if(q){if(!T)throw new i("toolbox_evm_no_signer");let Q=X?.from||await T.getAddress();if(!Q)throw new i("toolbox_evm_no_signer_address");let N=G.connect(T),Y=Uo({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:z,maxPriorityFeePerGas:J,gasPrice:l}=(await Y())[B],M=await G.getFunction(A).estimateGas(..._,X),W=await N[A](..._,{...X,gasLimit:M,gasPrice:l,maxFeePerGas:z,maxPriorityFeePerGas:J,nonce:X?.nonce||await U.getTransactionCount(Q)});return typeof W?.hash==="string"?W?.hash:W}let w=await G[A]?.(..._);return typeof w?.hash==="string"?w?.hash:w}}function c0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:t}){return NT({chain:y,isEIP1559Compatible:!0,provider:n})({abi:Ty,contractAddress:o,funcName:"allowance",funcParams:[t,f]})}}function mA({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:t,amount:C=ty}){let H=await c0({chain:y,provider:n})({assetAddress:o,from:t,spenderAddress:f});return vy.fromBigInt(H).gte(vy.fromBigInt(BigInt(C)))}}function rA({signer:n,isEIP1559Compatible:y=!0,provider:T,chain:o}){return async function({assetAddress:t,spenderAddress:C,feeOptionKey:H=b.Fast,amount:A,gasLimitFallback:_,from:X,nonce:B}){let U=[C,BigInt(A||ty)],q=await n?.getAddress()||X,G={abi:Ty,contractAddress:t,funcName:"approve",funcParams:U,signer:n,txOverrides:{from:q}};if(No(T)){let Q=_o({chain:o,provider:T}),N=zo(T),Y=await Q(G);return N(Y)}return NT({chain:o,isEIP1559Compatible:y,provider:T,signer:n})({...G,feeOption:H,funcParams:U,txOverrides:{from:q,gasLimit:_?BigInt(_.toString()):void 0,nonce:B}})}}function gA({signer:n,isEIP1559Compatible:y=!0,provider:T}){return async function({assetValue:f,memo:t,recipient:C,feeOptionKey:H=b.Fast,sender:A,..._}){let{hexlify:X,toUtf8Bytes:B}=await import("ethers"),U=f.getBaseValue("bigint"),q=f.chain,G=A||await n?.getAddress(),w=h0({chain:q,isEIP1559Compatible:y,provider:T,signer:n});if(!G)throw new i("toolbox_evm_no_from_address");if(f.isGasAsset){let l={..._,data:X(B(t||"")),feeOptionKey:H,from:G,to:C,value:U};return w(l)}if(!Do(f,q))throw new i("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Y,gasPrice:z}=(await Uo({chain:q,isEIP1559Compatible:y,provider:T})())[H],J=await QT({chain:q,provider:T,signer:n})({assetValue:f,data:X(B(t||"")),gasPrice:z,maxFeePerGas:N,maxPriorityFeePerGas:Y,memo:t,recipient:C,sender:G});return w(J)}}function i0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:t,funcParams:C=[],txOverrides:H}){if(!o)throw new i("toolbox_evm_no_contract_address");let A=Hy(o,f,n);return y?A.connect(y).getFunction(t).estimateGas(...C,H):A.getFunction(t).estimateGas(...C,H)}}function dA({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:t,data:C,sender:H,funcName:A,funcParams:_,txOverrides:X}){let B=o.bigIntValue,U=o.isGasAsset?null:Do(o,o.chain);if(U&&A)return i0({provider:n,signer:y})({abi:Ty,contractAddress:U,funcName:A,funcParams:_,txOverrides:X});let{hexlify:q,toUtf8Bytes:G}=await import("ethers");return n.estimateGas({data:C?C:t?q(G(t)):void 0,from:H,to:f,value:B})}}function aA({signer:n}){if(!n)return;return(y)=>MT(n,y)}function h0({provider:n,signer:y,isEIP1559Compatible:T=!0,chain:o}){return async function({feeOptionKey:t=b.Fast,...C}){let{from:H,to:A,data:_,value:X,...B}=C;if(!y)throw new i("toolbox_evm_no_signer");if(!A)throw new i("toolbox_evm_no_to_address");let U={...B,data:_||"0x",from:H,to:A,value:BigInt(X||0)};if(No(n))return zo(n)(U);let q=H||await y.getAddress(),G=C.nonce||await n.getTransactionCount(q),w=(await n.getNetwork()).chainId,Q=DT(U,T);if(Q==="eip7702")LT(U.authorizations||[],w);let N=V0(Q).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Y={...U,chainId:w,nonce:G,type:N,...Q==="eip7702"&&{authorizationList:U.authorizations}},z=Uo({chain:o,isEIP1559Compatible:T,provider:n}),l=Q!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await z())[t]).reduce((W,[Z,D])=>({...W,[Z]:yy(BigInt(D))}),{}):{},M;try{M=yy(U.gasLimit||await n.estimateGas(Y)*11n/10n)}catch(W){throw new i("toolbox_evm_error_estimating_gas_limit",{error:W})}try{let W={...Y,gasLimit:M,...l};try{return(await y.sendTransaction(W)).hash}catch{let Z=await y.signTransaction({...W,from:q});return(await n.broadcastTransaction(Z)).hash}}catch(W){throw new i("toolbox_evm_error_sending_transaction",{error:W})}}}function QT({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:t,data:C,sender:H,maxFeePerGas:A,maxPriorityFeePerGas:_,gasPrice:X,...B}){let U=o.getBaseValue("bigint"),q=o.chain,G=H||await y?.getAddress();if(!G)throw new i("toolbox_evm_no_from_address");if(KA(o)){let{hexlify:N,toUtf8Bytes:Y}=await import("ethers");return{...B,data:C||N(Y(f||"")),from:G,to:t,value:U}}let w=Do(o,q);if(!w)throw new i("toolbox_evm_no_contract_address");return _o({chain:o.chain,provider:n})({abi:Ty,contractAddress:w,funcName:"transfer",funcParams:[t,U],txOverrides:{from:G,gasPrice:X,maxFeePerGas:A,maxPriorityFeePerGas:_}})}}function sA({provider:n,signer:y,chain:T}){return async function({assetAddress:f,spenderAddress:t,amount:C,from:H}){let A=await y?.getAddress()||H,_=_o({chain:T,provider:n}),X=["bigint","number"].includes(typeof C)?C:C||ty;return await _({abi:Ty,contractAddress:f,funcName:"approve",funcParams:[t,BigInt(X)],txOverrides:{from:A}})}}function eA({provider:n,isEIP1559Compatible:y=!0,chain:T}){return async function({feeOption:f=b.Fast,...t}){let H=await Uo({chain:T,isEIP1559Compatible:y,provider:n})(),A=await n.estimateGas(t),_=vA.from({chain:T}),{gasPrice:X,maxFeePerGas:B,maxPriorityFeePerGas:U}=H[f];if(!y&&X)return _.set(vy.fromBigInt(X*A,_.decimal));if(B&&U){let q=(B+U)*A;return _.set(vy.fromBigInt(q,_.decimal))}throw new i("toolbox_evm_no_gas_price")}}var ty,cA,iA,YT,hA,Ky=(n)=>n.type===4||(n.authorizations?.length??0)>0,zT=(n)=>!Ky(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),DT=(n,y=!0)=>{if(Ky(n))return"eip7702";if(zT(n)||y)return"eip1559";return"legacy"};var jy=S(()=>{Ey();fy();ty=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");cA=["payable","nonpayable"];iA=VA.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),YT={...iA,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},hA=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as n_}from"@swapkit/helpers";import{HDNodeWallet as o_}from"ethers";import{match as y_,P as m0}from"ts-pattern";function cy(n){let y=g(r.Ethereum)(n);async function T(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",t="aggregate",C=n_.Fast){let H=await y.createContractTxObject({abi:$0,contractAddress:f,funcName:t,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:T}}function g(n){return function({provider:T,...o}){let f=BT(n),t=y_(o).with({phrase:m0.string},({phrase:H})=>o_.fromPhrase(H).connect(T)).with({signer:m0.any},({signer:H})=>H).otherwise(()=>{return});return Yo({chain:n,isEIP1559Compatible:f,provider:T,signer:t})}}var iy,hy,my,ry,gy,dy,ay,r0,sy,ey,nf,of,yf,ff,Ay,Tf,tf,Cf,Hf;var OT=S(()=>{E0();fy();jy();iy=g(r.Adi),hy=g(r.Arbitrum),my=g(r.Aurora),ry=g(r.Avalanche),gy=g(r.Base),dy=g(r.Berachain),ay=g(r.BinanceSmartChain),r0=g(r.Botanix),sy=g(r.Core),ey=g(r.Corn),nf=g(r.Cronos),of=g(r.Gnosis),yf=g(r.Hyperevm),ff=g(r.Polygon),Ay=g(r.Sonic),Tf=g(r.Unichain),tf=g(r.XLayer),Cf=g(r.Monad),Hf=g(r.MegaETH)});var g0;var d0=S(()=>{g0=[{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 Oo,Chain as T_,FeeOption as bn,SwapKitError as RT}from"@swapkit/helpers";import{Contract as t_,HDNodeWallet as C_}from"ethers";import{match as H_,P as a0}from"ts-pattern";function xT(n){return new t_(A_,g0,n)}function s0(n){return async function(){let T=xT(n);if(T&&"l1BaseFee"in T)return await T?.l1BaseFee();return}}function e0(n){return async function({from:T,to:o,nonce:f,...t}){let{Transaction:C}=await import("ethers");if(!o)throw new RT("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...t,authorizationList:t.authorizationList,nonce:f?f:T?await n.getTransactionCount(T):0,to:o}).serialized}}function nC(n){return async function(T){let o=xT(n),f=await e0(n)(T);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function oC(n){return async function(T){let f=(await n.getFeeData()).gasPrice??0n,t=await n.estimateGas(T);return f*t}}function __(n){return async function(T){let o=await nC(n)(T)??0n,f=await oC(n)(T);return o+f}}function U_(n){return async function(T){let o=xT(n),f=await e0(n)(T);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function w_(n){return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),t=await s0(n)(),C=f;if(!(T&&o))throw new RT("toolbox_evm_no_fee_data");return{[bn.Average]:{gasPrice:C,l1GasPrice:t,maxFeePerGas:T,maxPriorityFeePerGas:o},[bn.Fast]:{gasPrice:Oo(C,bn.Fast),l1GasPrice:Oo(t||0n,bn.Fast),maxFeePerGas:T,maxPriorityFeePerGas:Oo(o,bn.Fast)},[bn.Fastest]:{gasPrice:Oo(C,bn.Fastest),l1GasPrice:Oo(t||0n,bn.Fastest),maxFeePerGas:T,maxPriorityFeePerGas:Oo(o,bn.Fastest)}}}catch(T){throw new RT("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}function Af({provider:n,...y}){let T=H_(y).with({phrase:a0.string},({phrase:t})=>C_.fromPhrase(t).connect(n)).with({signer:a0.any},({signer:t})=>t).otherwise(()=>{return}),o=Yo({provider:n,signer:T}),f=s0(n);return{...o,estimateGasPrices:w_(n),estimateL1Gas:U_(n),estimateL1GasCost:nC(n),estimateL2GasCost:oC(n),estimateTotalGasCost:__(n),getBalance:oy(T_.Optimism).getBalance,getL1GasPrice:f}}var A_="0x420000000000000000000000000000000000000f";var FT=S(()=>{Ey();d0();jy()});var fC={};nn(fC,{validateEVMAddress:()=>Cy,toChecksumAddress:()=>K0,isStateChangingCall:()=>JT,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>zT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getEvmToolboxAsync:()=>yC,getEvmToolbox:()=>ST,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>DT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>ZT,getChecksumAddressFromAsset:()=>j0,createContract:()=>Hy,XLayerToolbox:()=>tf,UNIToolbox:()=>Tf,SONICToolbox:()=>Ay,OPToolbox:()=>Af,MONADToolbox:()=>Cf,MEGAETHToolbox:()=>Hf,MAX_APPROVAL:()=>ty,MATICToolbox:()=>ff,HYPEREVMToolbox:()=>yf,GNOToolbox:()=>of,ETHToolbox:()=>cy,ContractAddress:()=>YT,CROToolbox:()=>nf,CORNToolbox:()=>ey,COREToolbox:()=>sy,BotanixToolbox:()=>r0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>ay,BERAToolbox:()=>dy,BASEToolbox:()=>gy,AVAXToolbox:()=>ry,AURORAToolbox:()=>my,ARBToolbox:()=>hy,ADIToolbox:()=>iy});import{Chain as m}from"@swapkit/helpers";import{match as q_}from"ts-pattern";function ST(n,y){return q_(n).with(m.Adi,()=>iy(y)).with(m.Arbitrum,()=>hy(y)).with(m.Aurora,()=>my(y)).with(m.Avalanche,()=>ry(y)).with(m.Base,()=>gy(y)).with(m.Berachain,()=>dy(y)).with(m.BinanceSmartChain,()=>ay(y)).with(m.Botanix,()=>Ay(y)).with(m.Core,()=>sy(y)).with(m.Corn,()=>ey(y)).with(m.Cronos,()=>nf(y)).with(m.Ethereum,()=>cy(y)).with(m.Gnosis,()=>of(y)).with(m.Hyperevm,()=>yf(y)).with(m.Optimism,()=>Af(y)).with(m.Polygon,()=>ff(y)).with(m.Sonic,()=>Ay(y)).with(m.Unichain,()=>Tf(y)).with(m.XLayer,()=>tf(y)).with(m.Monad,()=>Cf(y)).with(m.MegaETH,()=>Hf(y)).exhaustive()}async function yC(n,y){let T={...y,provider:y?.provider||await XT(n)};return ST(n,T)}var pT=S(()=>{fy();OT();FT();jy();OT();FT()});var TC;var tC=S(()=>{((T)=>{T.Test="goerli";T.Main="homestead"})(TC||={})});var CC={};nn(CC,{validateEVMAddress:()=>Cy,validateAuthorizations:()=>LT,validateAuthorization:()=>P0,toHexString:()=>yy,toChecksumAddress:()=>K0,signAuthorization:()=>MT,parseEIP712FromEVMTx:()=>bA,isStateChangingCall:()=>JT,isEIP7702Transaction:()=>Ky,isEIP1559Transaction:()=>zT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getProviderSync:()=>u0,getProvider:()=>XT,getNetworkParams:()=>WT,getIsEIP1559Compatible:()=>BT,getEvmToolboxAsync:()=>yC,getEvmToolbox:()=>ST,getEvmApi:()=>oy,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>DT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>ZT,getChecksumAddressFromAsset:()=>j0,createCustomEvmApi:()=>kA,createContract:()=>Hy,buildEIP712DomainType:()=>I0,XLayerToolbox:()=>tf,UNIToolbox:()=>Tf,SONICToolbox:()=>Ay,OPToolbox:()=>Af,MONADToolbox:()=>Cf,MEGAETHToolbox:()=>Hf,MAX_APPROVAL:()=>ty,MATICToolbox:()=>ff,HYPEREVMToolbox:()=>yf,GNOToolbox:()=>of,EthNetwork:()=>TC,ETHToolbox:()=>cy,ContractAddress:()=>YT,CROToolbox:()=>nf,CORNToolbox:()=>ey,COREToolbox:()=>sy,BotanixToolbox:()=>r0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>ay,BERAToolbox:()=>dy,BASEToolbox:()=>gy,AVAXToolbox:()=>ry,AURORAToolbox:()=>my,ARBToolbox:()=>hy,ADIToolbox:()=>iy});var kT=S(()=>{Ey();fy();pT();tC()});import{bech32 as G_}from"@scure/base";import{mnemonicToSeed as l_}from"@scure/bip39";import{Bip32PrivateKey as X_}from"@stricahq/bip32ed25519";import{Transaction as W_,types as IT,address as B_,crypto as uT,utils as HC}from"@stricahq/typhonjs";import{AssetValue as Ro,Chain as wo,getChainConfig as M_,SwapKitError as _y}from"@swapkit/helpers";import Wn from"bignumber.js";async function $T(n,y){let T=await fetch(`${wC}${n}`,{...y,headers:{project_id:UC,...y?.headers}});if(!T.ok)throw Error(`Blockfrost API error: ${T.status} ${T.statusText}`);return T.json()}async function qC(n){try{return await $T(`/addresses/${n}/utxos`)}catch{return[]}}async function Q_(){return(await $T("/blocks/latest")).slot}async function Z_(){let n=await $T("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new Wn(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new Wn(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new Wn(n.min_fee_a),minFeeB:new Wn(n.min_fee_b),minFeeRefScriptCostPerByte:new Wn(15),priceMem:new Wn(n.price_mem),priceSteps:new Wn(n.price_step),stakeKeyDeposit:new Wn(2000000),utxoCostPerByte:new Wn(n.coins_per_utxo_size)}}async function _C(n){let y=await fetch(`${wC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:UC},method:"POST"});if(!y.ok){let T=await y.text();throw Error(`Transaction submission failed: ${T}`)}return y.json()}function J_(n,y){return n.map((T)=>{let o=T.amount.find((C)=>C.unit==="lovelace"),f=o?new Wn(o.quantity):new Wn(0),t=T.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new Wn(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:T.output_index,tokens:t,txId:T.tx_hash}})}async function Y_(n){try{let y=await qC(n),T=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:A,quantity:_}=H;if(A==="lovelace")T+=BigInt(_);else{let X=o.get(A)||0n;o.set(A,X+BigInt(_))}}}let f=[],{baseDecimal:t}=M_(wo.Cardano);if(T>0n)f.push(Ro.from({chain:wo.Cardano,fromBaseDecimal:t,value:T.toString()}));for(let[C,H]of o)f.push(Ro.from({asset:`${wo.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[Ro.from({chain:wo.Cardano})];return f}catch(y){let T=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${T}`),[Ro.from({chain:wo.Cardano})]}}function GC(n){if(!n||typeof n!=="string")return!1;try{let y=G_.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function N_(n,y=0,T=0){let o=await l_(n,""),t=(await X_.fromEntropy(Buffer.from(o.slice(0,64)))).derive(PT+1852).derive(PT+1815).derive(PT+y),C=t.derive(0).derive(T),H=C.toBip32PublicKey().toPublicKey().toBytes(),A=uT.hash28(H),X=t.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),B=uT.hash28(X),U={hash:A,type:IT.HashType.ADDRESS},q={hash:B,type:IT.HashType.ADDRESS},w=new B_.BaseAddress(L_,U,q).getBech32(),Q=C.toPrivateKey();return{getAddress:()=>w,publicKey:H,publicKeyHash:A,signTransaction:async(N)=>{try{let Y=await import("@stricahq/cbors"),z=Buffer.from(N,"hex"),J=Y.Decoder.decode(z),[l,M,W,Z]=J.value,D=Y.Encoder.encode(l),L=uT.hash32(D),O=Q.sign(L),R=M instanceof Map?M:new Map,p=R.get(AC)||[];p.push([H,O]),R.set(AC,p);let k=[l,R,W,Z];return Y.Encoder.encode(k).toString("hex")}catch(Y){throw new _y("toolbox_cardano_sign_transaction_failed",{message:String(Y)})}}}}function z_(n){let y,T,o;async function f(){if(!o)o=await Z_();return o}async function t(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let q=n.index??0;return y=await N_(n.phrase,0,q),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(T)return T;let q=await t();if(!q)return"";if("getAddress"in q)return T=await q.getAddress(),T;return""}async function H(q){let G=q||await C();if(!G)throw new _y("core_wallet_connection_not_found");return Y_(G)}async function A(q){if(q)try{let{tx:N}=await _(q),Y=N.getFee();return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:Y.toString()})}catch{}let G=await f(),w=400,Q=G.minFeeB.plus(G.minFeeA.times(w));return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:Q.toString()})}async function _({sender:q="",recipient:G,assetValue:w,memo:Q,pureLovelaceOnly:N=!1}){let Y=q||await C();if(!Y)throw new _y("core_wallet_connection_not_found");let[z,J,l]=await Promise.all([qC(Y),Q_(),f()]),M=z.filter((c)=>N?c.amount.every((V)=>V.unit==="lovelace"):c.amount.some((V)=>V.unit==="lovelace")).sort((c,V)=>{let yn=c.amount.some((Un)=>Un.unit!=="lovelace"),a=V.amount.some((Un)=>Un.unit!=="lovelace");if(yn===a)return 0;return yn?1:-1}),W=HC.getAddressFromString(Y),Z=HC.getAddressFromString(G),D=J_(M,W),L=new Wn(w.getBaseValue("string")),O=[{address:Z,amount:L,tokens:[]}],R;if(Q){let c=new Map;c.set("msg",[Q]),R={metadata:[{data:c,label:674}]}}let p={...l,minFeeB:l.minFeeB.plus(l.minFeeA.times(4))},I=new W_({protocolParams:p}).paymentTransaction({auxiliaryData:R,changeAddress:W,inputs:D,outputs:O,ttl:J+3600}),{payload:v}=I.buildTransaction();return{tx:I,unsignedTx:v}}async function X(q){let G=await t();if(!G||!("signTransaction"in G))throw new _y("core_wallet_connection_not_found");return G.signTransaction(q)}async function B({recipient:q,assetValue:G,memo:w}){let Q=await t();if(!Q||!("signTransaction"in Q))throw new _y("core_wallet_connection_not_found");let{unsignedTx:N}=await _({assetValue:G,memo:w,recipient:q,sender:await C()}),Y=await X(N);return await _C(Y)}async function U(q){let G=await X(q);return await _C(G)}return{createTransaction:_,estimateTransactionFee:A,getAddress:C,getBalance:H,signAndBroadcastTransaction:U,signTransaction:X,transfer:B,validateAddress:GC}}var UC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",wC="https://cardano-mainnet.blockfrost.io/api/v0",L_,PT=2147483648,AC=0;var lC=S(()=>{L_=IT.NetworkId.MAINNET});var ET={};nn(ET,{validateCardanoAddress:()=>GC,getCardanoToolbox:()=>z_});var bT=S(()=>{lC()});import{base64 as Uf,bech32 as _f}from"@scure/base";import{SwapKitError as D_}from"@swapkit/helpers";function Uy(n){return Uf.encode(Uint8Array.from(_f.fromWords(_f.decode(n).words)))}function wy(n,y="thor"){return _f.encode(y,_f.toWords(Uf.decode(n)))}function O_(n){return Uf.encode(n)}function R_(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new D_("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return Uf.decode(n)}var vT=()=>{};import{AssetValue as VT,Chain as E,getChainConfig as pn,getRPCUrl as x_,SwapKitError as XC}from"@swapkit/helpers";function vn(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return MC;case E.Noble:return LC;default:return BC}}async function Vn(n){let y=await import("@cosmjs/stargate"),T=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return T.connect({headers:o,url:n})}async function qo(n,y,T={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,t=o.GasPrice??o.default?.GasPrice,C=typeof T==="string"?T:"0.0003uatom",H=typeof T==="string"?{}:T;return f.connectWithSigner(n,y,{gasPrice:t.fromString(C),...H})}async function jT(n,y){let T=await import("@cosmjs/stargate");return(T.SigningStargateClient??T.default?.SigningStargateClient).offline(n,y)}async function cT({sender:n,recipient:y,assetValue:T,memo:o="",feeRate:f,sequence:t,accountNumber:C}){let{chain:H,chainId:A}=T,_=await x_(H),B=await(await Vn(_)).getAccount(n);if(!B)throw new XC("toolbox_cosmos_account_not_found",{sender:n});let U=VT.from({chain:H}),q=rn(U.symbol),G=vn(H),w=q&&f?{amount:[{amount:f.toString(),denom:q}],gas:G.gas}:G,Q={amount:[{amount:T.getBaseValue("string"),denom:rn(T.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??B.accountNumber,chainId:A,fee:w,memo:o,msgs:[{typeUrl:F_(H),value:Q}],sequence:t??B.sequence}}var KT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",WC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",BC,MC,LC,rn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return KT;case"uYUM":case"YUM":return WC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},qy=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return rn(n,!1)},F_=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new XC("toolbox_cosmos_not_supported",{chain:n})}},S_,iT=(n,y)=>{let T=S_[n.toLowerCase()];if(!T)return VT.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:t}=T,C=o?{chain:o}:{asset:f};return VT.from({...C,fromBaseDecimal:t,value:y})};var Gy=S(()=>{BC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},MC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},LC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};S_={atom:{chain:E.Cosmos,decimals:pn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:pn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:pn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:pn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:pn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:pn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:pn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:pn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:pn(E.THORChain).baseDecimal},[KT.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:pn(E.Kujira).baseDecimal}}});var QC={};nn(QC,{$root:()=>F});import on from"protobufjs/minimal.js";var P,Mn,u,F;var ZC=S(()=>{P=on.Reader,Mn=on.Writer,u=on.util,F=on.roots.default||(on.roots.default={});F.common=(()=>{let n={};return n.Asset=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Asset;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!u.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!u.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Asset)return o;let f=new F.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.chain="",t.symbol="",t.ticker="",t.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))t.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))t.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))t.synth=o.synth;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=u.Long?u.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))F.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Coin;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.asset=F.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=F.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!u.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!u.isInteger(o.decimals)&&!(o.decimals&&u.isInteger(o.decimals.low)&&u.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Coin)return o;let f=new F.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=F.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(u.Long)(f.decimals=u.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)if(t.asset=null,t.amount="",u.Long){let C=new u.Long(0,0,!1);t.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else t.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))t.asset=F.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))t.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")t.decimals=f.longs===String?String(o.decimals):o.decimals;else t.decimals=f.longs===String?u.Long.prototype.toString.call(o.decimals):f.longs===Number?new u.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.PubKeySet;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!u.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!u.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.PubKeySet)return o;let f=new F.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.secp256k1="",t.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))t.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))t.ed25519=o.ed25519;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(T){if(this.coins=[],this.gas=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=u.emptyArray,y.prototype.gas=u.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let t=0;t<o.gas.length;++t)F.common.Coin.encode(o.gas[t],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Tx;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(F.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!u.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!u.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!u.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!u.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let t=F.common.Coin.verify(o.gas[f]);if(t)return"gas."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Tx)return o;let f=new F.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let t=0;t<o.gas.length;++t){if(typeof o.gas[t]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[t]=F.common.Coin.fromObject(o.gas[t])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[],t.gas=[];if(f.defaults)t.id="",t.chain="",t.fromAddress="",t.toAddress="",t.memo="";if(o.id!=null&&o.hasOwnProperty("id"))t.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))t.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=o.toAddress;if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){t.gas=[];for(let C=0;C<o.gas.length;++C)t.gas[C]=F.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.Fee;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!u.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.Fee)return o;let f=new F.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults)t.poolDeduct="";if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))t.poolDeduct=o.poolDeduct;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(T){if(T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.common.ProtoUint;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!u.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof F.common.ProtoUint)return o;let f=new F.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.defaults)t.value="";if(o.value!=null&&o.hasOwnProperty("value"))t.value=o.value;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();F.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(T){if(this.coins=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.coins=u.emptyArray,y.prototype.memo="",y.prototype.signer=u.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.coins?.length)for(let t=0;t<o.coins.length;++t)F.common.Coin.encode(o.coins[t],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.types.MsgDeposit;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(F.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let t=F.common.Coin.verify(o.coins[f]);if(t)return"coins."+t}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!u.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||u.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof F.types.MsgDeposit)return o;let f=new F.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let t=0;t<o.coins.length;++t){if(typeof o.coins[t]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[t]=F.common.Coin.fromObject(o.coins[t])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")u.base64.decode(o.signer,f.signer=u.newBuffer(u.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.coins=[];if(f.defaults){if(t.memo="",f.bytes===String)t.signer="";else if(t.signer=[],f.bytes!==Array)t.signer=u.newBuffer(t.signer)}if(o.coins?.length){t.coins=[];for(let C=0;C<o.coins.length;++C)t.coins[C]=F.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))t.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))t.signer=f.bytes===String?u.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(T){if(this.amount=[],T){for(let o=Object.keys(T),f=0;f<o.length;++f)if(T[o[f]]!=null)this[o[f]]=T[o[f]]}}return y.prototype.fromAddress=u.newBuffer([]),y.prototype.toAddress=u.newBuffer([]),y.prototype.amount=u.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Mn.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let t=0;t<o.amount.length;++t)F.cosmos.base.v1beta1.Coin.encode(o.amount[t],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof P))o=P.create(o);let t=f===void 0?o.len:o.pos+f,C=new F.types.MsgSend;while(o.pos<t){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(F.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof P))o=new P(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||u.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||u.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let t=F.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(t)return"amount."+t}}return null},y.fromObject=function(o){if(o instanceof F.types.MsgSend)return o;let f=new F.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")u.base64.decode(o.fromAddress,f.fromAddress=u.newBuffer(u.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")u.base64.decode(o.toAddress,f.toAddress=u.newBuffer(u.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let t=0;t<o.amount.length;++t){if(typeof o.amount[t]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[t]=F.cosmos.base.v1beta1.Coin.fromObject(o.amount[t])}}return f},y.toObject=function(o,f){if(!f)f={};let t={};if(f.arrays||f.defaults)t.amount=[];if(f.defaults){if(f.bytes===String)t.fromAddress="";else if(t.fromAddress=[],f.bytes!==Array)t.fromAddress=u.newBuffer(t.fromAddress);if(f.bytes===String)t.toAddress="";else if(t.toAddress=[],f.bytes!==Array)t.toAddress=u.newBuffer(t.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))t.fromAddress=f.bytes===String?u.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))t.toAddress=f.bytes===String?u.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){t.amount=[];for(let C=0;C<o.amount.length;++C)t.amount[C]=F.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return t},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();F.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let T={};return T.Coin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.Coin;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.denom=t.string();break;case 2:A.amount=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.Coin)return t;let C=new F.cosmos.base.v1beta1.Coin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.DecCoin=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.denom!=null&&Object.hasOwnProperty.call(t,"denom"))C.uint32(10).string(t.denom);if(t.amount!=null&&Object.hasOwnProperty.call(t,"amount"))C.uint32(18).string(t.amount);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.DecCoin;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.denom=t.string();break;case 2:A.amount=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.denom!=null&&t.hasOwnProperty("denom")){if(!u.isString(t.denom))return"denom: string expected"}if(t.amount!=null&&t.hasOwnProperty("amount")){if(!u.isString(t.amount))return"amount: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.DecCoin)return t;let C=new F.cosmos.base.v1beta1.DecCoin;if(t.denom!=null)C.denom=String(t.denom);if(t.amount!=null)C.amount=String(t.amount);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(t.denom!=null&&t.hasOwnProperty("denom"))H.denom=t.denom;if(t.amount!=null&&t.hasOwnProperty("amount"))H.amount=t.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.IntProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.int="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.int!=null&&Object.hasOwnProperty.call(t,"int"))C.uint32(10).string(t.int);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.IntProto;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.int=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.int!=null&&t.hasOwnProperty("int")){if(!u.isString(t.int))return"int: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.IntProto)return t;let C=new F.cosmos.base.v1beta1.IntProto;if(t.int!=null)C.int=String(t.int);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(t.int!=null&&t.hasOwnProperty("int"))H.int=t.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T.DecProto=(()=>{function o(f){if(f){for(let t=Object.keys(f),C=0;C<t.length;++C)if(f[t[C]]!=null)this[t[C]]=f[t[C]]}}return o.prototype.dec="",o.create=function(t){return new o(t)},o.encode=function(t,C){if(!C)C=Mn.create();if(t.dec!=null&&Object.hasOwnProperty.call(t,"dec"))C.uint32(10).string(t.dec);return C},o.encodeDelimited=function(t,C){return this.encode(t,C).ldelim()},o.decode=function(t,C){if(!(t instanceof P))t=P.create(t);let H=C===void 0?t.len:t.pos+C,A=new F.cosmos.base.v1beta1.DecProto;while(t.pos<H){let _=t.uint32();switch(_>>>3){case 1:A.dec=t.string();break;default:t.skipType(_&7);break}}return A},o.decodeDelimited=function(t){if(!(t instanceof P))t=new P(t);return this.decode(t,t.uint32())},o.verify=function(t){if(typeof t!=="object"||t===null)return"object expected";if(t.dec!=null&&t.hasOwnProperty("dec")){if(!u.isString(t.dec))return"dec: string expected"}return null},o.fromObject=function(t){if(t instanceof F.cosmos.base.v1beta1.DecProto)return t;let C=new F.cosmos.base.v1beta1.DecProto;if(t.dec!=null)C.dec=String(t.dec);return C},o.toObject=function(t,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(t.dec!=null&&t.hasOwnProperty("dec"))H.dec=t.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),T})(),y})(),n})()});import{Chain as p_}from"@swapkit/helpers";async function Go(){let{$root:n}=await Promise.resolve().then(() => (ZC(),QC)),y=await import("@cosmjs/proto-signing"),T=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new T([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function gn(n){let y=await import("@cosmjs/stargate"),T=y.AminoTypes??y.default?.AminoTypes,o=n===p_.THORChain?"thorchain":"mayachain";return new T({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...t})=>({...t,signer:Uy(f)}),toAmino:({signer:f,...t})=>({...t,signer:wy(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:t,...C})=>({...C,fromAddress:Uy(f),toAddress:Uy(t)}),toAmino:({fromAddress:f,toAddress:t,...C})=>({...C,from_address:wy(f),to_address:wy(t)})}})}var hT=S(()=>{vT()});import{AssetValue as k_,Chain as wf,getChainConfig as JC,getRPCUrl as YC,SwapKitError as u_}from"@swapkit/helpers";function gT(n){let{assetValue:y,recipient:T,memo:o,sender:f,asSignable:t,asAminoMessage:C}=n;if(T)return zC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,recipient:T,sender:f});return DC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,sender:f})}async function zC({sender:n,recipient:y,assetValue:T,memo:o="",asSignable:f=!0,asAminoMessage:t=!1,sequence:C,accountNumber:H}){let A=T.chain,_=await YC(A),X=await NC({rpcUrl:_,sender:n}),{chainId:B}=JC(A),U=mT({assetValue:T,recipient:y,sender:n}),q=f?await dn(t?U:an(U),A):U;return{accountNumber:H||X.accountNumber,chainId:B,fee:vn(A),memo:o,msgs:[q],sequence:C||X.sequence}}async function DC({sender:n,assetValue:y,memo:T="",asSignable:o=!0,asAminoMessage:f=!1,sequence:t,accountNumber:C}){let H=y.chain,A=await YC(H),_=await NC({rpcUrl:A,sender:n}),{chainId:X}=JC(H),B=rT({assetValue:y,memo:T,sender:n}),U=o?await dn(f?B:an(B),H):B;return{accountNumber:C||_.accountNumber,chainId:X,fee:vn(H),memo:T,msgs:[U],sequence:t||_.sequence}}function an(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let T=k_.from({asset:y.asset}),o=(T.isSynthetic?T.symbol.split("/")?.[1]:T.symbol)?.toUpperCase(),f=(T.isSynthetic?T.symbol.split("/")?.[0]:T.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:T.isSynthetic,ticker:T.ticker}}})}}}async function ly({chain:n,memo:y,msgs:T}){let o=await Go(),f=await gn(n),t={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:T.map((C)=>f.fromAmino(C))}};return o.encode(t)}var P_,I_,mT=({sender:n,recipient:y,assetValue:T})=>{return{type:`${T.chain===wf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:T.getBaseValue("string"),denom:rn(T.symbol,!0)}],from_address:n,to_address:y}}},rT=({sender:n,assetValue:y,memo:T=""})=>{return{type:`${y.chain===wf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:qy(y)}],memo:T,signer:n}}},qf=({sender:n,recipient:y,assetValue:T,memo:o})=>{return!y?rT({assetValue:T,memo:o,sender:n}):mT({assetValue:T,recipient:y,sender:n})},dn=async(n,y)=>{return(await gn(y)).fromAmino(n)},NC=async({rpcUrl:n,sender:y})=>{let o=await(await Vn(n)).getAccount(y);if(!o)throw new u_("toolbox_cosmos_account_not_found",{sender:y});return o};var OC=S(()=>{Gy();hT();P_=vn(wf.THORChain).gas,I_=vn(wf.Maya).gas});var RC=()=>{};var xC=S(()=>{RC()});var dT=S(()=>{vT();OC();hT();xC()});import{stringToPath as $_}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as E_}from"@cosmjs/proto-signing";import{base64 as eT,bech32 as aT}from"@scure/base";import{AssetValue as nt,applyFeeMultiplier as FC,Chain as Tn,CosmosChainPrefixes as IC,DerivationPath as b_,derivationPathToString as SC,FeeOption as ot,getChainConfig as v_,getRPCUrl as Xy,NetworkDerivationPath as V_,SwapKitError as xo,SwapKitNumber as sT,updateDerivationPath as K_}from"@swapkit/helpers";import{SwapKitApi as $C}from"@swapkit/helpers/api";import{match as j_,P as pC}from"ts-pattern";async function ft(n,y){try{let o=(await $C.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function yt({phrase:n,prefix:y,...T}){let o="derivationPath"in T?T.derivationPath:`${b_[T.chain]}/${T.index}`;return await E_.fromMnemonic(n,{hdPaths:[$_(o)],prefix:y})}async function c_({privateKey:n,prefix:y}){let T=await import("@cosmjs/proto-signing");return(T.DirectSecp256k1Wallet??T.default?.DirectSecp256k1Wallet).fromKey(n,y)}function EC(n){return async function({signature:T,message:o,address:f}){let t=await n(f);if(!t?.pubkey)throw new xo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,A=C.Secp256k1??C.default?.Secp256k1,_=H.fromFixedLength(eT.decode(T));return A.verifySignature(_,eT.decode(o),t.pubkey.value)}}function Wy({chain:n,...y}){let T=IC[n],o="index"in y?y.index||0:0,f=SC("derivationPath"in y&&y.derivationPath?y.derivationPath:K_(V_[n],{index:o})),t;async function C(){if(t)return t;return t=await j_(y).with({phrase:pC.string},({phrase:q})=>yt({derivationPath:f,phrase:q,prefix:T})).with({signer:pC.any},({signer:q})=>q).otherwise(()=>{return}),t}async function H(q){let G=await Xy(n);return(await Vn(G)).getAccount(q)}async function A(){let q=await C(),[G]=await q?.getAccounts()||[];return G?.address}async function _(){let q=await C(),[G]=await q?.getAccounts()||[];if(!G?.pubkey)throw new xo("toolbox_cosmos_signer_not_defined");return eT.encode(G?.pubkey)}async function X(q){let G=await C(),w=await A(),Q=await Xy(n);if(!(G&&w))throw new xo("toolbox_cosmos_signer_not_defined");return await(await qo(Q,G)).sign(w,q.msgs,q.fee,q.memo,{accountNumber:q.accountNumber,chainId:q.chainId,sequence:q.sequence})}async function B(q){let G=await C(),w=await A(),Q=await Xy(n);if(!(G&&w))throw new xo("toolbox_cosmos_signer_not_defined");let Y=await(await qo(Q,G)).signAndBroadcast(w,q.msgs,q.fee,q.memo);if(Y.code!==0)throw new xo("core_swap_transaction_error",{code:Y.code,message:Y.rawLog});return Y.transactionHash}async function U({recipient:q,assetValue:G,memo:w="",feeRate:Q,feeOptionKey:N=ot.Fast}){let Y=await C(),z=await A();if(!(Y&&z))throw new xo("toolbox_cosmos_signer_not_defined");let J=await Xy(n),l=nt.from({chain:n}),M=qy(l),W=Q||m_((await uC(n,kC[n]))[N],M),Z=await qo(J,Y),D=rn(G.symbol),L=[{amount:G.getBaseValue("string"),denom:D}],{transactionHash:O}=await Z.sendTokens(z,q,L,W,w);return O}return{createPrivateKeyFromPhrase:g_(f),createTransaction:cT,fetchFeeRateFromSwapKit:ft,getAccount:H,getAddress:A,getBalance:async(q,G)=>{let w=await PC(n)(q),Q=await Promise.all(w.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([Tn.THORChain,Tn.Maya].includes(n)&&N.split("-").length>2)).map(({denom:N,amount:Y})=>{let z=[Tn.THORChain,Tn.Maya].includes(n)&&(N.includes("/")||N.includes("˜"))?`${n}.${N}`:N;return iT(z,Y)}));if(Q.length===0)return[nt.from({chain:n})];return Q},getBalanceAsDenoms:PC(n),getFees:()=>uC(n,kC[n]),getPubKey:_,getSignerFromPhrase:({phrase:q,derivationPath:G})=>yt({derivationPath:SC(G),index:o,phrase:q,prefix:T}),getSignerFromPrivateKey:async(q)=>{let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(q,T)},signAndBroadcastTransaction:B,signTransaction:X,transfer:U,validateAddress:bC(n),verifySignature:EC(H)}}async function i_(n,y){try{let o=(await $C.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function h_({assetValue:{chain:n}}){return nt.from({chain:n,value:r_(n)})}async function uC(n,y){let{chainId:T,baseDecimal:o}=v_(n),f=await ft(T,y);return{average:sT.fromBigInt(BigInt(f),o),fast:sT.fromBigInt(BigInt(FC(f,ot.Fast,!0)),o),fastest:sT.fromBigInt(BigInt(FC(f,ot.Fastest,!0)),o)}}function m_(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function r_(n){return{[Tn.Cosmos]:0.007,[Tn.Kujira]:0.02,[Tn.Noble]:0.01,[Tn.THORChain]:0.02,[Tn.Maya]:0.02,[Tn.Harbor]:0.02}[n]||0}function bC(n){let y=IC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:t}=aT.decode(o);return aT.encode(f,t)===o.toLocaleLowerCase()}catch{return!1}}}function PC(n){return async function(T){let o=await Xy(n);return(await(await Vn(o)).getAllBalances(T)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function g_(n){return async function(T){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,t=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,A=o.Bip39??o.default?.Bip39,_=new H(T),X=await A.mnemonicToSeed(_),{privkey:B}=C.derivePath(t.Secp256k1,X,f(n));return B}}var kC;var Gf=S(()=>{Gy();kC={[Tn.Cosmos]:1000,[Tn.Kujira]:1000,[Tn.Noble]:1000,[Tn.THORChain]:5000000,[Tn.Maya]:5000000,[Tn.Harbor]:5000000}});import{base64 as lo}from"@scure/base";import{Chain as d_,CosmosChainPrefixes as a_,derivationPathToString as s_,FeeOption as Tt,getChainConfig as e_,getRPCUrl as iC,NetworkDerivationPath as n5,RequestClient as o5,SKConfig as vC,SwapKitError as VC,SwapKitNumber as KC,updateDerivationPath as y5}from"@swapkit/helpers";import{match as jC,P as cC}from"ts-pattern";function f5({prefix:n,derivationPath:y}){return async function(o,f=0){let t=await import("@cosmjs/amino"),C=t.Secp256k1HdWallet??t.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),A=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[A(`${y}/${f}`)],prefix:n})}}function T5(n){return lo.encode(n)}function t5(n){return async function({wallet:T,tx:o}){let{msgs:f,accountNumber:t,sequence:C,chainId:H,fee:A,memo:_}=typeof o==="string"?JSON.parse(o):o,X=(await T.getAccounts())?.[0]?.address||"",B=await gn(n),U=await Go(),q=await jT(T,{aminoTypes:B,registry:U}),G=[];for(let N of f){let Y=await dn(N,n);G.push(Y)}let{signatures:[w]}=await q.sign(X,G,A,_,{accountNumber:t,chainId:H,sequence:C});return{bodyBytes:await ly({chain:n,memo:_,msgs:f.map(an)}),signature:T5(w)}}}function C5({prefix:n,chain:y}){return async function(o,f,t,C,H){let A=await iC(y),{encodeSecp256k1Pubkey:_,pubkeyToAddress:X}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:B}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:q}=JSON.parse(o),G=await hC(t,C),w=f.map((Y)=>[X(_(lo.decode(Y.pubKey)),n),lo.decode(Y.signature)]),Q=await Vn(A),{transactionHash:N}=await Q.broadcastTx(B(G,U,q,H,new Map(w)));return N}}async function hC(n,y,T=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((t)=>f(lo.decode(t))),y,T)}function H5(n){return lo.decode(n)}async function A5({privateKey:n,message:y}){let{Secp256k1:T}=(await import("@cosmjs/crypto")).default,o=await T.createSignature(lo.decode(y),n);return lo.encode(Buffer.concat([o.r(32),o.s(32)]))}function tt({chain:n,...y}){let{isStagenet:T}=vC.get("envs"),o=vC.get("thornodeUrls"),f=n===d_.Maya,t=jC({isMayachain:f,isStagenet:T}).with({isMayachain:!0},({isStagenet:q})=>q?o.MAYA_STAGENET:o.MAYA).otherwise(({isStagenet:q})=>q?o.THOR_STAGENET:o.THOR),C=`${T?"s":""}${a_[n]}`,H="index"in y?y.index||0:0,A="derivationPath"in y&&y.derivationPath?y.derivationPath:y5(n5[n],{index:H}),_=Wy({chain:n,...y}),X=vn(n);async function B(){let q,G=`${t}/${f?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:w}}=await o5.get(G);if(!w||Number.isNaN(w)||w<0)throw new VC("toolbox_cosmos_invalid_fee",{nativeFee:w.toString()});q=new KC(w)}catch{q=new KC({decimal:e_(n).baseDecimal,value:f?1:0.02})}return{[Tt.Average]:q,[Tt.Fast]:q,[Tt.Fastest]:q}}async function U({assetValue:q,memo:G="",recipient:w}){let Q=await iC(n),N=await jC(y).with({phrase:cC.string},({phrase:R})=>_.getSignerFromPhrase({derivationPath:A,phrase:R})).with({signer:cC.any},({signer:R})=>R).otherwise(()=>{return}),{TxRaw:Y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),z=(await N?.getAccounts())?.[0]?.address;if(!(z&&N))throw new VC("toolbox_cosmos_no_signer");let J="signAmino"in N,l=await Go(),M=await gn(n),W=await qo(Q,N,{aminoTypes:M,registry:l}),Z=qf({assetValue:q,memo:G,recipient:w,sender:z});if(J){let R=await dn(Z,n),{signatures:p,authInfoBytes:k}=await W.sign(z,[R],X,G),I=Y.encode({authInfoBytes:k,bodyBytes:await ly({chain:n,memo:G,msgs:[Z].map(an)}),signatures:p}).finish();return(await W.broadcastTx(I)).transactionHash}let D=an(Z),L=await dn(D,n);return(await W.signAndBroadcast(z,[L],X,G)).transactionHash}return{..._,broadcastMultisigTx:C5({chain:n,prefix:C}),buildAminoMsg:qf,buildEncodedTxBody:ly,convertToSignable:dn,createDefaultAminoTypes:()=>gn(n),createDefaultRegistry:Go,createMultisig:hC,createTransaction:gT,deposit:U,getFees:B,importSignature:H5,parseAminoMessageForDirectSigning:an,pubkeyToAddress:async(q)=>{let{pubkeyToAddress:G}=(await import("@cosmjs/amino")).default;return G(q,C)},secp256k1HdWalletFromMnemonic:f5({derivationPath:s_(A),prefix:C}),signMultisigTx:t5(n),signWithPrivateKey:A5,transfer:U}}var Ct=S(()=>{dT();Gy();Gf()});import{Chain as By,SwapKitError as _5}from"@swapkit/helpers";var U5=(n,y)=>{switch(n){case By.Cosmos:case By.Kujira:case By.Noble:return Wy({chain:n,...y});case By.Maya:case By.THORChain:return tt({chain:n,...y});default:throw new _5("toolbox_cosmos_not_supported",{chain:n})}};var mC=S(()=>{Gf();Ct();Gf();Ct()});var lf={};nn(lf,{verifySignature:()=>EC,transferMsgAmino:()=>mT,toBase64:()=>O_,parseAminoMessageForDirectSigning:()=>an,getSignerFromPrivateKey:()=>c_,getSignerFromPhrase:()=>yt,getMsgSendDenom:()=>rn,getFeeRateFromSwapKit:()=>i_,getDenomWithChain:()=>qy,getDefaultChainFee:()=>vn,getCosmosToolbox:()=>U5,getCosmosAddressValidator:()=>bC,getAssetFromDenom:()=>iT,fromBase64:()=>R_,fetchFeeRateFromSwapKit:()=>ft,estimateTransactionFee:()=>h_,depositMsgAmino:()=>rT,createTransaction:()=>gT,createThorchainToolbox:()=>tt,createStargateClient:()=>Vn,createSigningStargateClient:()=>qo,createOfflineStargateClient:()=>jT,createDefaultRegistry:()=>Go,createDefaultAminoTypes:()=>gn,createCosmosToolbox:()=>Wy,cosmosCreateTransaction:()=>cT,convertToSignable:()=>dn,buildTransferTx:()=>zC,buildEncodedTxBody:()=>ly,buildDepositTx:()=>DC,buildAminoMsg:()=>qf,bech32ToBase64:()=>Uy,base64ToBech32:()=>wy,YUM_KUJIRA_FACTORY_DENOM:()=>WC,USK_KUJIRA_FACTORY_DENOM:()=>KT,THORCHAIN_GAS_VALUE:()=>P_,MAYA_GAS_VALUE:()=>I_,DEFAULT_NOBLE_FEE_MAINNET:()=>LC,DEFAULT_KUJI_FEE_MAINNET:()=>MC,DEFAULT_COSMOS_FEE_MAINNET:()=>BC});var Xf=S(()=>{dT();mC();Gy()});function w5({builder:n,grouping:y="na",orders:T}){return{builder:n,grouping:y,orders:T,type:"order"}}function q5({cancels:n}){return{cancels:n,type:"cancel"}}function G5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function l5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function X5({modifies:n}){return{modifies:n,type:"batchModify"}}function W5({asset:n,isCross:y,leverage:T}){return{asset:n,isCross:y,leverage:T,type:"updateLeverage"}}function B5({asset:n,isBuy:y,ntli:T}){return{asset:n,isBuy:y,ntli:T,type:"updateIsolatedMargin"}}function M5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function L5({time:n}){return{time:n,type:"scheduleCancel"}}function Q5({amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function Z5({amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:A}){return{amount:n,destination:y,destinationDex:T,fromSubAccount:o,hyperliquidChain:f,nonce:t,signatureChainId:C,sourceDex:H,token:A,type:"sendAsset"}}function J5({agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f,type:"approveAgent"}}function Y5({builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function N5({hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,validator:f,wei:t}){return{hyperliquidChain:n,isUndelegate:y,nonce:T,signatureChainId:o,type:"tokenDelegate",validator:f,wei:t}}import{SwapKitError as Ht}from"@swapkit/helpers";import{keccak256 as z5,Signature as D5}from"ethers";function ln(...n){let y=n.reduce((f,t)=>f+t.length,0),T=new Uint8Array(y),o=0;for(let f of n)T.set(f,o),o+=f.length;return T}function p5(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 sn(n,y){let T=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)T[f]=Number(o&0xffn),o>>=8n;return T}function rC(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 ln(new Uint8Array([205]),sn(n,2));if(n<=0xffffffffn)return ln(new Uint8Array([206]),sn(n,4));return ln(new Uint8Array([207]),sn(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 ln(new Uint8Array([209]),sn(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return ln(new Uint8Array([210]),sn(BigInt.asUintN(32,n),4));return ln(new Uint8Array([211]),sn(BigInt.asUintN(64,n),8))}function aC(n){let y=S5.encode(n);if(y.length<32)return ln(new Uint8Array([160+y.length]),y);return ln(p5(217,0,y.length),y)}function k5(n){let y=n.map((o)=>At(o)),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 ln(T,...y)}function u5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"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 ln(T,...y.flatMap(([o,f])=>[aC(o),At(f)]))}function At(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return aC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new Ht("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return rC(BigInt(n))}if(typeof n==="bigint")return rC(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 ln(y,n)}if(Array.isArray(n))return k5(n);if(typeof n==="object")return u5(n);throw new Ht("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function P5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new Ht("helpers_invalid_params",{hexValue:n});let T=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)T[o/2]=Number.parseInt(y.slice(o,o+2),16);return T}function sC(n){return{domain:O5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...R5.Agent]}}}function eC(n){let y=F5[n.type],T=x5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:gC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||dC},primaryType:y,types:{[y]:T}}}function n1(n){let y=D5.from(n);return{r:y.r,s:y.s,v:y.v}}function o1(n,y,{expiresAfter:T,vaultAddress:o}={}){let f=At(n),t=sn(BigInt(y),8),C=o?ln(new Uint8Array([1]),P5(o.toLowerCase())):new Uint8Array([0]),H=typeof T==="number"?ln(new Uint8Array([0]),sn(BigInt(T),8)):new Uint8Array;return z5(ln(f,t,C,H))}function y1(n){let y=n.hyperliquidChain||dC;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 gC="0x0000000000000000000000000000000000000000",O5,R5,dC="Mainnet",x5,F5,S5;var f1=S(()=>{O5={chainId:1337,name:"Exchange",verifyingContract:gC,version:"1"},R5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},x5={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"}]},F5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},S5=new TextEncoder});import{AssetValue as wt,Chain as I5,derivationPathToString as $5,getChainConfig as C1,getRPCUrl as E5,NetworkDerivationPath as b5,RequestClient as Fo,SwapKitError as So,updateDerivationPath as v5}from"@swapkit/helpers";import{HDNodeWallet as V5}from"ethers";import{match as K5,P as _t}from"ts-pattern";function Yn(n,y){if(!Gt(n))throw new So(y,{address:n});return n.toLowerCase()}async function Xo(n){let y=await Wf();return Fo.post(`${y}/info`,{json:n})}function g5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function d5({user:n}){return Xo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function a5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function s5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function e5({oidOrCloid:n,user:y}){return Xo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function n2({aggregateByTime:n,user:y}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function o2({aggregateByTime:n,endTime:y,startTime:T,user:o}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:T,type:"userFillsByTime",user:Yn(o,"helpers_invalid_params")})}function T1({coin:n,token:y,value:T,spotMeta:o}){if(!T||Number(T)<=0)return null;let f=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,t=j5[f]||H1,C=o?.tokens?.find((A)=>A.name===n||y!==void 0&&A.index===Number(y)),H=C?`${kn}.${f}-${C.name}:${C.tokenId}`:`${kn}.${f}`;return new wt({decimal:t,identifier:H,value:T})}function y2(n){let y=new Map;for(let T of n){let o=T.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(T):T)}if(![...y.values()].some((T)=>T.isGasAsset||T.ticker==="HYPE")){let T=wt.from({chain:kn,value:0});y.set(T.toString({includeSynthProtocol:!0}),T)}return[...y.values()]}async function Wf(){try{return await E5(kn)}catch{let[n]=C1(kn).rpcUrls;if(!n)throw new So("helpers_chain_no_public_or_set_rpc_url",{chain:kn});return n}}async function qt(){return`${await Wf()}/exchange`}function f2(n){let y=r5[n.type],{type:T,...o}=n,f=m5[T];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:h5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function A1({action:n,expiresAfter:y,nonce:T,vaultAddress:o}){let f=T||Date.now(),t=o?Yn(o,"helpers_invalid_params"):void 0,C=await qt(),H=o1(n,f,{expiresAfter:y,vaultAddress:t});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:sC(H),vaultAddress:t}}async function _1({action:n,nonce:y,signatureChainId:T}){let o=y||n.nonce||Date.now(),f=T||n.signatureChainId||"0xa4b1",t=y1({...n,nonce:o,signatureChainId:f});return{action:t,endpoint:await qt(),nonce:o,typedData:eC(t)}}async function Ut({assetValue:n,recipient:y,sender:T,signatureChainId:o,time:f}){let t=Yn(y,"core_transaction_invalid_recipient_address"),C=Yn(T,"core_transaction_invalid_sender_address"),H=await qt(),A=n.getValue("string"),_=f||Date.now(),X=n.address;if(!X)throw new So("helpers_invalid_params",{asset:n.toString(),from:C});let B={amount:A,destination:t,hyperliquidChain:c5,signatureChainId:o||i5,time:_,token:X,type:"spotSend"};return{action:B,endpoint:H,nonce:_,typedData:f2(B)}}async function t1(n){let y=await Fo.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 So("core_transaction_failed",{response:y});return y}async function T2(n,y){let T=await Wf(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((t)=>setTimeout(t,1000));try{let t=await Fo.post(`${T}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(t)?t.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function Gt(n){return n.startsWith("0x")&&Cy(n)}function t2(n){let y=qn(kn),T=n&&"index"in n?n.index||0:0,o=$5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:v5(b5[kn],{index:T})),f,t=!1;function C(){if(t)return f;return f=K5(n).with({phrase:_t.string},({phrase:U})=>{return V5.fromPhrase(U,void 0,o)}).with({signer:_t.not(_t.nullish)},({signer:U})=>U).otherwise(()=>{return}),t=!0,f}async function H(){let U=C();return U?await U.getAddress():""}async function A(U){let q=C();if(!q)throw new So("toolbox_hypercore_no_signer");let G=await q.signTypedData(U.typedData.domain,U.typedData.types,U.typedData.message);return{action:U.action,endpoint:U.endpoint,nonce:U.nonce,signature:n1(G),..."expiresAfter"in U?{expiresAfter:U.expiresAfter}:{},..."vaultAddress"in U?{vaultAddress:U.vaultAddress}:{}}}async function _(U){let q=Yn(U,"helpers_invalid_params");try{let G=await Wf(),[w,Q,N]=await Promise.all([Fo.post(`${G}/info`,{json:{type:"spotClearinghouseState",user:q}}),Fo.post(`${G}/info`,{json:{type:"clearinghouseState",user:q}}),Fo.post(`${G}/info`,{json:{type:"spotMeta"}})]),Y=(w.spotState?.balances||w.balances||[]).map(({coin:J,token:l,total:M})=>T1({coin:J,spotMeta:N,token:l,value:M})).filter((J)=>!!J),z=T1({coin:"USDC",spotMeta:N,value:Q.withdrawable||Q.marginSummary?.accountValue||Q.marginSummary?.totalRawUsd});return y2(z?[...Y,z]:Y)}catch{return y(q)}}async function X(U){let q=C();if(!q)throw new So("toolbox_hypercore_no_signer");let G=U.sender||await q.getAddress(),w=await Ut({...U,feeRate:0,sender:G}),Q=await A(w);return await t1(Q),T2(G,w.nonce)}function B(){return wt.from({chain:kn,value:0})}return{broadcastTransaction:t1,createL1ActionRequest:A1,createTransaction:Ut,createUserSignedActionRequest:_1,estimateTransactionFee:B,getAddress:H,getBalance:_,getState:{clearinghouse:g5,frontendOpenOrders:s5,openOrders:a5,orderStatus:e5,spotClearinghouse:d5,userFills:n2,userFillsByTime:o2},signTransaction:A,transfer:X,validateAddress:Gt}}var kn,H1,j5,c5="Mainnet",i5="0xa4b1",h5="0x0000000000000000000000000000000000000000",m5,r5;var U1=S(()=>{kT();En();f1();kn=I5.HyperCore,{baseDecimal:H1}=C1(kn),j5={HYPE:H1,USDC:6,USDT:6},m5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},r5={spotSend:"HyperliquidTransaction:SpotSend"}});var lt={};nn(lt,{validateHyperCoreAddress:()=>Gt,getHyperCoreToolbox:()=>t2,createUserSignedActionRequest:()=>_1,createTransaction:()=>Ut,createL1ActionRequest:()=>A1,buildUsdClassTransferAction:()=>Q5,buildUpdateLeverageAction:()=>W5,buildUpdateIsolatedMarginAction:()=>B5,buildTopUpIsolatedOnlyMarginAction:()=>M5,buildTokenDelegateAction:()=>N5,buildSendAssetAction:()=>Z5,buildScheduleCancelAction:()=>L5,buildOrderAction:()=>w5,buildModifyAction:()=>l5,buildCancelByCloidAction:()=>G5,buildCancelAction:()=>q5,buildBatchModifyAction:()=>X5,buildApproveBuilderFeeAction:()=>Y5,buildApproveAgentAction:()=>J5});var Xt=S(()=>{U1()});import{PublicKey as en}from"@solana/web3.js";import{AssetValue as Bf,Chain as jn,DerivationPath as C2,derivationPathToString as H2,getChainConfig as l1,getRPCUrl as A2,NetworkDerivationPath as _2,SwapKitError as po,updateDerivationPath as U2}from"@swapkit/helpers";import{match as w2,P as w1}from"ts-pattern";async function X1(n){let y=Bf.from({address:n,chain:jn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let T=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(T);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function q2(n){let y=await Kn(),{PublicKey:T}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new T(n),{baseDecimal:t}=l1(jn.Solana),C=await y.getBalance(f),H=[Bf.from({chain:jn.Solana,fromBaseDecimal:t,value:C||0})],A=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:_}of A.value){let X=_.data.parsed.info,B=X.mint,U=X.tokenAmount.amount;if(Number(U)===0)continue;let q=await X1(B),G=q?.symbol||"UNKNOWN",w=q?.decimals||X.tokenAmount.decimals;H.push(Bf.from({asset:`${jn.Solana}.${G}-${B}`,fromBaseDecimal:w,value:U}))}return H}function Bt(n){try{let y=new en(n);return en.isOnCurve(y.toBytes())}catch{return!1}}function G2(n){let y=n&&"index"in n?n.index||0:0,T=H2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:U2(_2[jn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await w2(n).with({phrase:w1.string},({phrase:C})=>Wt({derivationPath:T,phrase:C})).with({signer:w1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function t(){let C=await f();return C?.publicKey?G1(C.publicKey):""}return{broadcastTransaction:Mf(Kn),createKeysForPath:Wt,createTransaction:Mt(Kn),createTransactionFromInstructions:B2,estimateTransactionFee:l2(Kn),getAddress:t,getAddressFromPubKey:G1,getBalance:qn(jn.Solana),getBalanceFromRPC:q2,getConnection:Kn,getPubkeyFromAddress:(C)=>new en(C),signAndBroadcastTransaction:async(C)=>{let H=await q1(Kn,f)(C);return Mf(Kn)(H)},signTransaction:q1(Kn,f),transfer:M2(Kn,f),validateAddress:Bt}}function l2(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let C=await n(),A=(await Mt(n)({assetValue:T,isProgramDerivedAddress:f,memo:o,recipient:y,sender:t})).compileMessage(),_=await C.getFeeForMessage(A);if(_.value===null)throw new po("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:X}=l1(jn.Solana);return Bf.from({chain:jn.Solana,fromBaseDecimal:X,value:_.value})}}async function Kn(){let{Connection:n}=await import("@solana/web3.js"),y=await A2(jn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(T,o,f)=>{let t={};for(let[C,H]of Object.entries(o?.headers??{})){let A=C.toLowerCase();if(A!=="pragma"&&A!=="solana-client")t[C]=H}f(T,{...o,headers:t})}})}function X2(n){return async({assetValue:y,recipient:T,sender:o,isProgramDerivedAddress:f})=>{let t=await n(),C=new en(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:A}=await import("@solana/web3.js");return new H().add(A.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new en(T)}))}if(y.address)return W2({amount:y.getBaseValue("number"),connection:t,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:T,tokenAddress:y.address});return}}async function W2({tokenAddress:n,recipient:y,from:T,connection:o,amount:f,decimals:t,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:A,createAssociatedTokenAccountInstruction:_,createTransferCheckedInstruction:X}=await import("@solana/spl-token"),{Transaction:B}=await import("@solana/web3.js"),U=new B,q=new en(n),G=await H(q,T),w=new en(y),Q=await H(q,w,C),N=!1;try{await A(o,Q),N=!0}catch{}if(!N)U.add(_(T,Q,w,q));return U.add(X(G,q,Q,T,f,t)),U}function Mt(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new en(t);if(!(f||Bt(y)))throw new po("core_transaction_invalid_recipient_address");let A=await n(),_=await X2(n)({assetValue:T,isProgramDerivedAddress:f,recipient:y,sender:t});if(!_)throw new po("core_transaction_invalid_sender_address");if(o)_.add(C(o));let X=await A.getLatestBlockhash();return _.recentBlockhash=X.blockhash,_.feePayer=H,_}}async function B2({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),T=new y().add(...n);if(!T)throw new po("core_transaction_invalid_sender_address");return T}function M2(n,y){return async({recipient:T,assetValue:o,memo:f,isProgramDerivedAddress:t})=>{let C=await y();if(!C)throw new po("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),A=await Mt(n)({assetValue:o,isProgramDerivedAddress:t,memo:f,recipient:T,sender:H});if("signTransaction"in C){let _=await C.signTransaction(A);return Mf(n)(_)}return A.sign(C),Mf(n)(A)}}function Mf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function q1(n,y){return async(T)=>{let o=await y();if(!o)throw new po("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(T instanceof f)){let C=await(await n()).getLatestBlockhash();T.recentBlockhash=C.blockhash,T.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(T);return T.sign([o]),T}}async function Wt({phrase:n,derivationPath:y=C2.SOL}){let{HDKey:T}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),t=o(n),C=T.fromMasterSeed(t);return f.fromSeed(C.derive(y,!0).privateKey)}function G1(n){return n.toString()}var W1=S(()=>{En()});var Lt={};nn(Lt,{validateSolanaAddress:()=>Bt,getSolanaToolbox:()=>G2,fetchTokenMetaData:()=>X1,createKeysForPath:()=>Wt});var Qt=S(()=>{W1()});import{AssetValue as Lf,Chain as Qf,DerivationPath as M1,derivationPathToString as L2,getChainConfig as Q2,getRPCUrl as Yt,NetworkDerivationPath as Z2,SwapKitError as Ln,updateDerivationPath as J2}from"@swapkit/helpers";import{match as Zt,P as ko}from"ts-pattern";function Zf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function Jf({phrase:n,derivationPath:y=M1.STRK}){let{HDKey:T}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:t,encode:C,CallData:H}=await import("starknet"),A=o(n),X=T.fromMasterSeed(A).derive(y);if(!X.privateKey)throw new Ln("toolbox_starknet_no_signer");let B=C.addHexPrefix(Buffer.from(X.privateKey).toString("hex")),U=f.starkCurve.grindKey(B),q=C.addHexPrefix(U),G=f.starkCurve.getStarkKey(q),w=H.compile([G,0]);return{address:t.calculateContractAddressFromHash(G,Nt,w,0),privateKey:q,publicKey:G}}async function zt({phrase:n,derivationPath:y=M1.STRK}){let{Account:T,RpcProvider:o}=await import("starknet"),{privateKey:f,address:t}=await Jf({derivationPath:y,phrase:n}),C=await Yt(Qf.Starknet),H=new o({nodeUrl:C});return new T({address:t,provider:H,signer:f})}function L1(n){let y=Qf.Starknet,T=n&&"index"in n?n.index||0:0,o=L2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:J2(Z2[y],{index:T})),f,t,C;async function H(){if(t)return t;let{RpcProvider:l}=await import("starknet"),M=await Yt(y);return t=new l({nodeUrl:M}),t}async function A(l){let M=await H(),W=l||await U();if(!W)return!1;try{return await M.getClassHashAt(W),!0}catch(Z){if(Z instanceof Error&&Z.message.includes("Contract not found"))return!1;let D=Z;if(D?.code===20||D?.code===19)return!1;throw Z}}async function _(){let{CallData:l,hash:M}=await import("starknet"),W=await H(),Z=await B();if(!Z)throw new Ln("toolbox_starknet_no_signer");if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await A())return Z.address;let L=l.compile([C,0]);if(M.calculateContractAddressFromHash(C,Nt,L,0).toLowerCase()!==Z.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let R={addressSalt:C,classHash:Nt,constructorCalldata:L},{transaction_hash:p}=await Z.deployAccount(R);return await W.waitForTransaction(p),p}async function X(){if(!await A()){if(!C)throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await _()}}async function B(){if(f)return f;return f=await Zt(n).with({phrase:ko.string},async({phrase:l})=>{let{Account:M,RpcProvider:W}=await import("starknet"),{privateKey:Z,address:D,publicKey:L}=await Jf({derivationPath:o,phrase:l});C=L;let O=await Yt(Qf.Starknet),R=new W({nodeUrl:O});return new M({address:D,provider:R,signer:Z})}).with({address:ko.string,privateKey:ko.string},async({privateKey:l,address:M})=>{let{Account:W}=await import("starknet"),Z=await H();return new W({address:M,provider:Z,signer:l})}).with({signer:ko.instanceOf(Object)},({signer:l})=>l).otherwise(()=>{return}),f}async function U(){return(await B())?.address??""}async function q(l){let M=await H(),{uint256:W,CallData:Z}=await import("starknet"),D=[],L=[Jt,B1];for(let O of L)try{let[R="0",p="0"]=await M.callContract({calldata:Z.compile({account:l}),contractAddress:O,entrypoint:"balanceOf"}),k=W.uint256ToBN({high:R,low:p});Zt(O).with(Jt,()=>{D.push(Lf.from({chain:y,value:k}))}).with(B1,()=>{if(k>0n)D.push(Lf.from({asset:`${y}.ETH-${O}`,value:k}))}).otherwise(()=>{})}catch{}return D}async function G({recipient:l,assetValue:M}){let{CallData:W,uint256:Z}=await import("starknet");if(!Zf(l))throw new Ln("core_transaction_invalid_recipient_address",{address:l});let D=M.isGasAsset?Jt:M.address;if(!D)throw new Ln("toolbox_starknet_invalid_address",{address:D,assetValue:M});let L=Z.bnToUint256(M.getBaseValue("bigint"));return[{calldata:W.compile([l,L]),contractAddress:D,entrypoint:"transfer"}]}async function w({recipient:l,assetValue:M,sender:W}){let{baseDecimal:Z}=Q2(Qf.Starknet),D=await B(),L=await Zt({sender:W,signer:D}).with({sender:ko.string},async({sender:O})=>{let{Account:R}=await import("starknet"),p=await H();return new R({address:O,provider:p,signer:"0x0"})}).with({signer:ko.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new Ln({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await G({assetValue:M,recipient:l}),R=await L.estimateInvokeFee(O);if(R?.overall_fee)return Lf.from({chain:y,fromBaseDecimal:Z,value:R.overall_fee})}catch(O){throw new Ln("toolbox_starknet_fee_estimation_failed",O)}return Lf.from({chain:y,value:"0.00001"})}async function Q({recipient:l,assetValue:M,memo:W}){let Z=await B();if(!Z)throw new Ln("toolbox_starknet_no_signer");await X();let D=await G({assetValue:M,memo:W,recipient:l});return(await Z.execute(D)).transaction_hash}async function N(l){let M=await B();if(!M)throw new Ln("toolbox_starknet_no_signer");let W=await M.signMessage(l);return Array.isArray(W)?W:[W.r.toString(),W.s.toString()]}async function Y(l){let M=await B();if(!M)throw new Ln("toolbox_starknet_no_signer");return await X(),(await M.execute(l)).transaction_hash}function z(l){return Y(l)}function J(l,M=!0){try{return qn(y)(l,M)}catch{return q(l)}}return{broadcastTransaction:Y,createKeysForPath:zt,createTransaction:G,deployAccount:_,estimateTransactionFee:w,getAddress:U,getBalance:J,getProvider:H,isAccountDeployed:A,signAndBroadcastTransaction:z,signMessage:N,transfer:Q,validateAddress:Zf}}var Jt="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",B1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Nt="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var Q1=S(()=>{En()});var Yf={};nn(Yf,{validateStarknetAddress:()=>Zf,starknetCreateKeysForPath:()=>zt,getStarknetToolbox:()=>L1,deriveStarknetKeys:()=>Jf});var Nf=S(()=>{Q1()});import{isValidSuiAddress as Y2}from"@mysten/sui/utils";import{AssetValue as uo,Chain as zf,getChainConfig as N2,SwapKitError as Nn}from"@swapkit/helpers";import{match as z2,P as Z1}from"ts-pattern";async function Y1(n,y,T,o=[],f){let t=await n.getCoins({coinType:T,cursor:f,owner:y}),C=[...o,...t.data];return t.hasNextPage?Y1(n,y,T,C,t.nextCursor):C}function D2(n,y,T){let o=y.reduce((A,_)=>A+BigInt(_.balance),0n);if(o<T)throw new Nn("toolbox_sui_insufficient_balance",{available:o.toString(),required:T.toString()});let{ids:f}=y.reduce((A,_)=>{if(A.total>=T)return A;return{ids:[...A.ids,_.coinObjectId],total:A.total+BigInt(_.balance)}},{ids:[],total:0n}),t=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(t,C);let[H]=n.splitCoins(t,[T]);return H}function N1(n){try{return Y2(n)}catch{return!1}}function J1(n){return"signWithIntent"in n}function O2({provider:n,...y}={}){let T;async function o(){if(T)return T;return T=await z2(y).with({phrase:Z1.string},async({phrase:G})=>{let{Ed25519Keypair:w}=await import("@mysten/sui/keypairs/ed25519");return w.deriveKeypair(G)}).with({signer:Z1.any},({signer:G})=>G).otherwise(()=>{return}),T}async function f(G=n){let{SuiClient:w,getFullnodeUrl:Q}=await import("@mysten/sui/client");return new w({url:G||Q("mainnet")})}async function t(){return(await o())?.toSuiAddress()||""}function C(G){try{let w=uo.from({address:G,chain:zf.Sui});return{asset:w.toString(),decimals:w.decimal}}catch{}return null}async function H(G){let w=G||await t();if(!w)throw new Nn("toolbox_sui_address_required");let{baseDecimal:Q,chain:N}=N2(zf.Sui);try{let Y=await f(),{totalBalance:z}=await Y.getBalance({owner:w}),J=[uo.from({chain:N,fromBaseDecimal:Q,value:z})],l=await Y.getAllBalances({owner:w});for(let{coinType:M,totalBalance:W}of l){if(M==="0x2::sui::SUI"||Number(W)<=0)continue;let Z=C(M);if(Z)J.push(uo.from({asset:Z.asset,fromBaseDecimal:Z.decimals,value:W}))}return J}catch{return[uo.from({chain:N})]}}async function A(G){let w=uo.from({chain:zf.Sui,value:"0.01"});if(!G)return w;try{let Q=await f(),{txBytes:N}=await _(G),{effects:{status:Y,gasUsed:z}}=await Q.dryRunTransactionBlock({transactionBlock:N});if(Y.status!=="success")return w;let J=Number(z.computationCost)+Number(z.storageCost)-Number(z.storageRebate);return uo.from({chain:zf.Sui,value:J.toString()})}catch{return w}}async function _({recipient:G,assetValue:w,gasBudget:Q,sender:N}){let{Transaction:Y}=await import("@mysten/sui/transactions"),z=N||await t();if(!z)throw new Nn("toolbox_sui_no_sender");try{let J=new Y;if(J.setSender(z),w.isGasAsset||w.symbol==="SUI"){let[W]=J.splitCoins(J.gas,[w.getBaseValue("string")]);J.transferObjects([W],G)}else{let W=w.address;if(!W)throw new Nn("toolbox_sui_missing_coin_type");let Z=await f(),D=w.getBaseValue("bigint"),L=await Y1(Z,z,W);if(!L.length)throw new Nn("toolbox_sui_no_coins_found",{coinType:W});let O=D2(J,L,D);J.transferObjects([O],G)}if(Q)J.setGasBudget(Q);let l=await f(),M=await J.build({client:l});return{tx:J,txBytes:M}}catch(J){if(J instanceof Nn)throw J;throw new Nn("toolbox_sui_transaction_creation_error",{error:J})}}async function X(G){let w=await o();if(!w)throw new Nn("toolbox_sui_no_signer");if(G instanceof Uint8Array)return w.signTransaction(G);let{txBytes:Q}="tx"in G?G:await _(G);return w.signTransaction(Q)}async function B({assetValue:G,gasBudget:w,recipient:Q}){let N=await o();if(!N)throw new Nn("toolbox_sui_no_signer");let Y=N.toSuiAddress()||await t();if(!Y)throw new Nn("toolbox_sui_no_sender");let{txBytes:z}=await _({assetValue:G,gasBudget:w,recipient:Q,sender:Y}),J=await f();if(!J1(N)){let M=await N.signTransaction(z),{digest:W}=await J.executeTransactionBlock({signature:M.signature,transactionBlock:M.bytes});return W}let{digest:l}=await J.signAndExecuteTransaction({signer:N,transaction:z});return l}async function U(G){let w=await f(),{digest:Q}=await w.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return Q}async function q(G){let w=await o();if(!w)throw new Nn("toolbox_sui_no_signer");let Q=await f(),N;if(typeof G==="string")N=Uint8Array.from(Buffer.from(G,"base64"));else if(G instanceof Uint8Array)N=G;else N=await G.build({client:Q});if(!J1(w)){let z=await w.signTransaction(N),{digest:J}=await Q.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return J}let{digest:Y}=await Q.signAndExecuteTransaction({signer:w,transaction:N});return Y}return{broadcastTransaction:U,createTransaction:_,estimateTransactionFee:A,getAddress:t,getBalance:H,signAndBroadcastTransaction:q,signTransaction:X,transfer:B,validateAddress:N1}}var z1=()=>{};var Df={};nn(Df,{validateSuiAddress:()=>N1,getSuiToolbox:()=>O2});var Of=S(()=>{z1()});import{getHttpEndpoint as R2}from"@orbs-network/ton-access";import{AssetValue as x2,Chain as Ly,getChainConfig as F2,getRPCUrl as S2,SwapKitError as My,SwapKitNumber as p2}from"@swapkit/helpers";import{mnemonicToWalletKey as k2}from"@ton/crypto";import{Address as cn,beginCell as Dt,Cell as D1,external as u2,internal as P2,JettonMaster as I2,loadStateInit as $2,SendMode as O1,storeMessage as E2,TonClient as b2,toNano as S1,WalletContractV4 as v2}from"@ton/ton";import{match as R1,P as Ot}from"ts-pattern";async function i2(){let n=Date.now();if(Rf&&n-F1<c2)return Rf;try{return Rf=await R2(),F1=n,Rf}catch{return S2(Ly.Ton)}}function h2(n={}){let y,T,o;async function f(){if(!y){let J=n.provider??await i2();y=new b2({endpoint:J})}return y}async function t(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await R1(n).with({phrase:Ot.string},async({phrase:J})=>k2(J.split(" "))).with({signer:Ot.any},({signer:J})=>J).otherwise(()=>{return}),o}async function H(J){if(!T||J){let l=await C(),M=await f(),W=J||l;if(!W)throw new My("core_wallet_connection_not_found");let Z=v2.create({publicKey:W.publicKey,workchain:0});T=M.open(Z)}return T}let A=qn(Ly.Ton);async function _({assetValue:J,recipient:l,memo:M,sender:W}){if(J.isGasAsset){let v=M?z(M).toBoc().toString("base64"):void 0;return[{address:l,amount:J.getBaseValue("string"),payload:v}]}let Z=J.address;if(!Z)throw new My({errorKey:"core_swap_contract_not_found",info:{asset:J.toString()}});let D=W??await t(),L=await N({jettonMasterAddress:Z,ownerAddress:D}),O=cn.parse(l),R=cn.parse(D),p=J.getBaseValue("bigint"),k=M?z(M):void 0,I=Y({destinationAddress:O,forwardPayload:k,jettonAmount:p,responseAddress:R});return[{address:L.toString(),amount:j2.toString(),payload:I.toBoc().toString("base64")}]}function X({sender:J,...l}){return _({...l,sender:J})}function B(J){return J.map((l)=>{let M=l.payload?D1.fromBase64(l.payload):void 0,W=l.stateInit?$2(D1.fromBase64(l.stateInit).asSlice()):void 0,Z=cn.parse(l.address),D=cn.isFriendly(l.address)?cn.parseFriendly(l.address).isBounceable:!0;return P2({body:M,bounce:D,init:W,to:Z,value:BigInt(l.amount)})})}async function U(J){let l=await C(),M=await H();if(!M||!l)throw new My("core_wallet_connection_not_found");let W=await f(),{state:Z}=await W.getContractState(M.address),D=Z==="active",L=D?await M.getSeqno():0,O=M.createTransfer({messages:B(J),secretKey:l.secretKey,sendMode:x1,seqno:L}),R=u2({body:O,init:D?void 0:M.init,to:M.address});return Dt().store(E2(R)).endCell()}async function q(J){return await(await f()).sendFile(J.toBoc()),J.hash().toString("hex")}async function G(J){let l=await U(J);return q(l)}async function w({assetValue:J,recipient:l,memo:M}){let W=await X({assetValue:J,memo:M,recipient:l});return G(W)}async function Q({sender:J,...l}){let{baseDecimal:M}=F2(Ly.Ton),W=await R1(J).with(Ot.string,(L)=>{return cn.parseFriendly(L).address}).otherwise(async()=>{return(await H()).address});if(!W)throw new My("toolbox_fee_estimation_failed",{chain:Ly.Ton});let Z=x2.from({chain:Ly.Ton,value:"0.01"}),D=await f();try{let L=await X({sender:J,...l}),O=await C(),R=await H();if(!R||!O)return Z;let p=await R.getSeqno(),k=R.createTransfer({messages:B(L),secretKey:O.secretKey,sendMode:x1,seqno:p}),{source_fees:I}=await D.estimateExternalMessageFee(W,{body:k,ignoreSignature:!0,initCode:null,initData:null}),v=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return Z.set(p2.fromBigInt(BigInt(v),M))}catch{return Z}}async function N({jettonMasterAddress:J,ownerAddress:l}){try{let M=await f(),W=cn.parse(J),Z=cn.parse(l);return await M.open(I2.create(W)).getWalletAddress(Z)}catch{throw new My({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:J,ownerAddress:l}})}}function Y({jettonAmount:J,destinationAddress:l,responseAddress:M,forwardAmount:W=K2,forwardPayload:Z}){let D=Dt().storeUint(V2,32).storeUint(0,64).storeCoins(J).storeAddress(l).storeAddress(M).storeBit(0).storeCoins(W);if(Z)D.storeBit(1).storeRef(Z);else D.storeBit(0);return D.endCell()}function z(J){return Dt().storeUint(0,32).storeStringTail(J).endCell()}return{broadcastTransaction:q,createTransaction:X,estimateTransactionFee:Q,getAddress:t,getBalance:A,getJettonWalletAddress:N,sign:U,signAndBroadcastTransaction:G,transfer:w,validateAddress:p1}}function p1(n){try{return cn.parse(n),!0}catch{return!1}}var V2=260734629,K2,j2,x1,c2=60000,Rf,F1=0;var k1=S(()=>{En();K2=S1("0.01"),j2=S1("0.05"),x1=O1.PAY_GAS_SEPARATELY+O1.IGNORE_ERRORS});var xf={};nn(xf,{validateTonAddress:()=>p1,getTONToolbox:()=>h2});var Ff=S(()=>{k1()});import{NetworkDerivationPath as m2}from"@swapkit/helpers";function zn(n,y){if(!Number.isInteger(y)||y<0)throw RangeError(`${n} must be a non-negative integer, got: ${y}`)}function no({accountIndex:n,chain:y,derivationPath:T}){if(n!==void 0)zn("accountIndex",n);let o=[...T?.slice(0,3)??m2[y].slice(0,3)];if(n!==void 0)o[2]=n;return o}function Po({accountIndex:n,change:y=!1,chain:T,derivationPath:o,index:f}){return zn("index",f),[...no({accountIndex:n,chain:T,derivationPath:o}),Number(y),f]}function Wo(n){return n[2]??0}function u1({deriveAddress:n,getBalance:y,getUtxos:T}){async function o(H){let{accountIndex:A,count:_,startIndex:X=0,change:B=!1}=H;if(zn("count",_),_<1)throw RangeError("count must be at least 1");zn("startIndex",X);let U=[];for(let q=0;q<_;q++){let G=await n({accountIndex:A,change:B,index:X+q});if(G)U.push(G)}return U}async function f(H){let{gapLimit:A=20,change:_=!1}=H??{},X=[],B=0,U=0;while(B<A){let q=await n({change:_,index:U});if(!q)break;if((await y(q.address)).some((Q)=>Q.getValue("number")>0))X.push(q),B=0;else B++;U++}return X}async function t(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[...A,..._],B=await Promise.all(X.map(async(q)=>{let w=(await y(q.address)).reduce((Q,N)=>Q+N.getValue("number"),0);return{...q,balance:w}})),U=B.reduce((q,G)=>q+G.balance,0);return{addresses:B,total:U}}async function C(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),X=[...A,..._];return(await Promise.all(X.map(async(U)=>{return(await T(U.address)).map((G)=>({...G,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:t,getAggregatedUtxos:C,scanForAddresses:f}}var Qy=()=>{};import{Chain as tn,getRPCUrl as r2,RequestClient as Sf,SKConfig as g2,SwapKitError as un,warnOnce as d2}from"@swapkit/helpers";import{NETWORKS as Io}from"@swapkit/utxo-signer";async function a2({chain:n,txHash:y}){let T=`${Zy(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Sf.post(T,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new un("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let t=await r2(n);if(t){let C=JSON.stringify({id:F0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Sf.post(t,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new un("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new un("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function Zy(n){return`https://api.blockchair.com/${s2(n)}`}function P1(n){switch(n){case tn.Bitcoin:return 5;case tn.Dogecoin:return 1e4;case tn.Litecoin:return 1;case tn.Zcash:return 1;default:return 2}}function s2(n){switch(n){case tn.BitcoinCash:return"bitcoin-cash";case tn.Litecoin:return"litecoin";case tn.Dash:return"dash";case tn.Dogecoin:return"dogecoin";case tn.Zcash:return"zcash";case tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function e2(n){try{let{feePerKb:y}=await Sf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),T=y/1000;return Math.max(T,P1(n))}catch{return P1(n)}}async function pf(n,y){let T=await Sf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!T||T.context.code!==200)throw new un("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return T.data}async function $1({address:n,chain:y,apiKey:T}){if(!n)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await pf(`${Zy(y)}/dashboards/address/${n}?transaction_details=true`,T))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function nU({address:n,chain:y,apiKey:T}){return(await $1({address:n,apiKey:T,chain:y}))?.address.balance||0}async function E1({chain:n,apiKey:y,txHash:T}){if(!T)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await pf(`${Zy(n)}/raw/transaction/${T}`,y))?.[T]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function yU({chain:n,apiKey:y,txHash:T}){if(!T)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await pf(`${Zy(n)}/dashboards/transaction/${T}`,y))?.[T];if(!f)throw new un("toolbox_utxo_tx_not_found",{txHash:T});let{transaction:t,inputs:C,outputs:H}=f,A=C.map((X)=>X.spending_sequence),_=t.is_rbf===!0||A.some((X)=>X<oU);return{blockId:t.block_id,confirmed:t.block_id!==-1,fee:t.fee,inputs:C,isRBF:_,outputs:H,sequences:A,size:t.size,txid:t.hash,weight:t.weight}}async function fU({chain:n,address:y,apiKey:T,offset:o=0,limit:f=30}){return(await pf(`${Zy(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,T)).map(({is_spent:A,script_hex:_,block_id:X,transaction_hash:B,index:U,value:q,spending_signature_hex:G})=>({hash:B,index:U,is_confirmed:X!==-1,is_spent:A,script_hex:_,txHex:G,value:q}))}function TU(n){return n.reduce((y,T)=>y+T.value,0)}function I1(n,y){let T=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let t of T)if(o.push(t),f+=t.value,f>=y)break;return o}return T}async function b1({chain:n,address:y,apiKey:T,targetValue:o,accumulativeValue:f=0,offset:t=0,limit:C=30}){if(!y)throw new un("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await fU({address:y,apiKey:T,chain:n,limit:C,offset:t,targetValue:o}),_=H.length<C,X=H.filter(({is_spent:Q})=>!Q),B=TU(X),U=f+B,q=o&&U>=o;if(_||q)return I1(X,o);let G=await b1({accumulativeValue:U,address:y,apiKey:T,chain:n,limit:C,offset:t+C,targetValue:o}),w=[...X,...G];return I1(w,o)}catch(H){let A=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${A}`),[]}}async function tU({address:n,chain:y,apiKey:T,fetchTxHex:o=!0,targetValue:f}){let t=await b1({address:n,apiKey:T,chain:y,targetValue:f}),C=[];for(let{hash:H,index:A,script_hex:_,value:X}of t){let B;if(o)B=await E1({apiKey:T,chain:y,txHash:H});C.push({address:n,hash:H,index:A,txHex:B,value:X,witnessUtxo:{script:Buffer.from(_,"hex"),value:X}})}return C}function s(n){let y=g2.get("apiKeys").blockchair||"";return d2({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(T)=>a2({chain:n,txHash:T}),getAddressData:(T)=>$1({address:T,apiKey:y,chain:n}),getBalance:(T)=>nU({address:T,apiKey:y,chain:n}),getRawTx:(T)=>E1({apiKey:y,chain:n,txHash:T}),getSuggestedTxFee:()=>e2(n),getTransactionDetails:(T)=>yU({apiKey:y,chain:n,txHash:T}),getUtxos:(T)=>tU({...T,apiKey:y,chain:n})}}function CU(n){return n}function HU(){return function(y){switch(y){case tn.Bitcoin:return Io.bitcoin;case tn.BitcoinCash:return Io.bitcoinCash;case tn.Dash:return Io.dash;case tn.Litecoin:return Io.litecoin;case tn.Dogecoin:return Io.dogecoin;case tn.Zcash:return Io.zcash;default:throw new un("toolbox_utxo_not_supported",{chain:y})}}}var oU=4294967294;var v1=S(()=>{En()});import{CashAddrType as kf,decodeCashAddr as AU,encodeCashAddr as _U}from"@swapkit/utxo-signer";function qU(n,y,T){return _U({hash:T,prefix:n,type:UU[y]})}function GU(n){let y=AU(n),T=wU[y.type];if(!T)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:T}}var UU,wU,Rt;var V1=S(()=>{UU={P2PKH:kf.P2PKH,P2SH:kf.P2SH},wU={[kf.P2PKH]:"P2PKH",[kf.P2SH]:"P2SH"};Rt={decode:GU,encode:qU}});import{sha256 as lU}from"@noble/hashes/sha2.js";import{createBase58check as XU}from"@scure/base";import{SwapKitError as j1}from"@swapkit/helpers";function Ft(n){try{return uf(n),!0}catch{return!1}}function St(n){return uf(n)?.network}function hn(n){let y=uf(n);if(y?.format==="legacy")return n;return MU(y)}function Jy(n){let y=uf(n);return LU(y)}function uf(n){try{let y=WU(n);if(y)return y}catch{}try{let y=BU(n);if(y)return y}catch{}throw new j1("toolbox_utxo_invalid_address",{address:n})}function WU(n){try{let y=c1.decode(n);if(y.length!==21)throw new j1("toolbox_utxo_invalid_address",{address:n});let T=y[0],o=Array.prototype.slice.call(y,1);switch(T){case Bo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case Bo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case Bo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case Bo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case Bo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case Bo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function BU(n){if(n.indexOf(":")!==-1)try{return K1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let T of y)try{return K1(`${T}:${n}`)}catch{}}return}function K1(n){try{let{hash:y,prefix:T,type:o}=Rt.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:T==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function MU(n){let y=Bo.legacy[n.network][n.type],T=Buffer.alloc(1+n.hash.length);return T[0]=y,T.set(n.hash,1),c1.encode(T)}function LU(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",T=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return Rt.encode(y,T,o)}var c1,xt,Bo;var i1=S(()=>{V1();c1=XU(lU);((T)=>{T.Mainnet="mainnet";T.Testnet="testnet"})(xt||={});Bo={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as QU}from"@swapkit/helpers";import{Script as ZU}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return ZU.encode(["RETURN",y])}var JU=1000,If=10,$f=2,h1=10,YU=41,NU=107,Ef,Pf,Yy,$o=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new QU("toolbox_utxo_invalid_address",{address:n})},Mo=({inputs:n,outputs:y,feeRate:T})=>{let o=n[0]&&"address"in n[0]&&n[0].address?$o(n[0].address):"P2PKH",t=(T?n.filter((_)=>_.value>=Pf["type"in _&&_.type?_.type:"P2PKH"]*Math.ceil(T)):n).reduce((_,X)=>_+oo(X),0),C=y?.reduce((_,X)=>_+Ny(X),0)||Yy[o],H=If+t+C;return o==="P2WPKH"?Math.ceil(H+$f/4):H},oo=(n)=>{if("type"in n&&n.type)return Pf[n.type];if("address"in n&&n.address)return Pf[$o(n.address)];return YU+NU},Ny=(n,y)=>{if(n?.script)return h1+n.script.length+(n.script.length>=74?2:1);if(y)return Yy[y];if("address"in n&&n.address)return Yy[$o(n.address)];return Yy.P2PKH};var pt=S(()=>{((T)=>{T.P2PKH="P2PKH";T.P2WPKH="P2WPKH"})(Ef||={});Pf={["P2PKH"]:148,["P2WPKH"]:68},Yy={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Lo,SwapKitError as zU}from"@swapkit/helpers";function zy(n){switch(n){case Lo.Bitcoin:case Lo.BitcoinCash:return 550;case Lo.Dash:case Lo.Litecoin:return 5500;case Lo.Dogecoin:return 1e5;case Lo.Zcash:return 546;default:throw new zU("toolbox_utxo_not_supported",{chain:n})}}function Dn({inputs:n,outputs:y,feeRate:T=1,chain:o=Lo.Bitcoin,changeAddress:f=""}){let t=n[0]&&"address"in n[0]&&n[0].address?$o(n[0].address):"P2PKH",C=n.filter((G)=>oo(G)*T<=G.value),A=t==="P2WPKH"?Math.ceil($f/4):0,_=If+A+y.reduce((G,w)=>G+Ny(w),0),X=y.reduce((G,w)=>G+w.value,0),B=_*T,U=0,q=[];for(let G of C){let w=oo(G),Q=T*w;B+=Q,U+=G.value,q.push(G);let N=B+X;if(U<N)continue;let Y=U-N,z=T*Ny({address:f,value:0});if(Y>z){let J=z+B,l=U-(X+Math.ceil(J));if(l>Math.max(oo({value:0})*T,zy(o)))return{fee:Math.ceil(J),inputs:q,outputs:y.concat({address:f,value:l})}}return{fee:Math.ceil(B),inputs:q,outputs:y}}return{fee:Math.ceil(T*Mo({inputs:n,outputs:y}))}}var m1=S(()=>{pt()});var Eo=S(()=>{v1();i1();m1();pt()});import{Address as DU,ZCASH_NETWORK as OU}from"@swapkit/utxo-signer";function Qo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function yo(n){let y=Qo(n);return Ft(y)&&St(y)==="mainnet"}function bo(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let T=DU(OU).decode(n);return T.type==="pkh"||T.type==="sh"}catch{return!1}}var Dy=S(()=>{Eo()});import{secp256k1 as RU}from"@noble/curves/secp256k1.js";import{hex as Zo}from"@scure/base";import{HDKey as a1}from"@scure/bip32";import{mnemonicToSeedSync as ut}from"@scure/bip39";import{AssetValue as bf,applyFeeMultiplier as r1,Chain as e,derivationPathToString as Oy,FeeOption as Pn,NetworkDerivationPath as s1,SwapKitError as j,SwapKitNumber as xU,updateDerivationPath as FU,warnOnce as SU}from"@swapkit/helpers";import{Address as pU,BCHSigHash as Pt,CashAddrPrefix as kU,CashAddrType as uU,encodeCashAddr as PU,NETWORKS as vo,p2pkh as g1,p2wpkh as IU,RBF_SEQUENCE as $U,SigHash as e1,Transaction as kt,WIF as nH}from"@swapkit/utxo-signer";import{match as oH}from"ts-pattern";function It({address:n,chain:y}){return oH(y).with(e.BitcoinCash,()=>yo(n)).with(e.Zcash,()=>bo(n)).otherwise(()=>{try{return pU(An(y)).decode(n),!0}catch{return!1}})}function An(n){return oH(n).with(e.Bitcoin,()=>vo.bitcoin).with(e.BitcoinCash,()=>vo.bitcoinCash).with(e.Dash,()=>vo.dash).with(e.Dogecoin,()=>vo.dogecoin).with(e.Litecoin,()=>vo.litecoin).with(e.Zcash,()=>vo.zcash).exhaustive()}function EU({phrase:n,derivationPath:y,network:T,seed:o}){let f=o??ut(n),C=a1.fromMasterSeed(f,T.bip32).derive(y);if(!C.privateKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function d1(n){return RU.getPublicKey(n,!0)}function xy({publicKey:n,chain:y,network:T}){if(y===e.BitcoinCash){let t=g1(n,T);if(!t.hash)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return PU({hash:t.hash,prefix:kU.MAINNET,type:uU.P2PKH}).replace(/^bitcoincash:/,"")}let f=!Ry.includes(y)?IU(n,T):g1(n,T);if(!f.address)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Vo({phrase:n,derivationPath:y,chain:T,wif:o,seed:f}){let t=An(T);if(o){let _=nH(t).decode(o),X=d1(_);return{privateKey:_,publicKey:X}}if(!n)throw new j("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||Oy(s1[T]),H=EU({derivationPath:C,network:t,phrase:n,seed:f}),A=d1(H);return{privateKey:H,publicKey:A}}function bU(n,y){return nH(An(y)).encode(n)}function vU({phrase:n,derivationPath:y,chain:T,seed:o}){let f=y.split("/");if(f.length<4)throw new j("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let t=An(T),C=o??ut(n),H=a1.fromMasterSeed(C,t.bip32),A=f.slice(0,4).join("/");return H.derive(A)}function fo({inputs:n,outputs:y,chain:T,tx:o,sender:f,compiledMemo:t,enableRBF:C=!1}){let H=An(T),A=!Ry.includes(T),_=C?$U:void 0,X=new Set;for(let B of n){let U=`${B.hash}:${B.index}`;if(X.has(U))throw new j("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});X.add(U);let q=typeof B.hash==="string"?Zo.decode(B.hash):B.hash;if(A&&B.witnessUtxo)o.addInput({index:B.index,sequence:_,txid:q,witnessUtxo:{amount:BigInt(B.witnessUtxo.value),script:B.witnessUtxo.script}});else if(B.txHex)o.addInput({index:B.index,nonWitnessUtxo:Zo.decode(B.txHex),sequence:_,txid:q,...T===e.BitcoinCash?{sighashType:Pt.ALL}:{}});else throw new j("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let B of y){let U="address"in B&&B.address?B.address:f;if(T===e.BitcoinCash)U=hn(U);if(B.script){if(t)o.addOutput({amount:0n,script:t})}else o.addOutputAddress(U,BigInt(B.value),H)}return{inputs:n,tx:o}}async function Ko(n){let y=await s(n).getSuggestedTxFee();return{[Pn.Average]:y,[Pn.Fast]:r1(y,Pn.Fast),[Pn.Fastest]:r1(y,Pn.Fastest)}}async function yH({assetValue:n,recipient:y,memo:T,sender:o,fetchTxHex:f=!1}){let t=n.chain,C=(await Ko(t))[Pn.Fastest],H=f||Ry.includes(t),A=n.getBaseValue("number"),_=Math.ceil(A+C*5000);return{inputs:await s(t).getUtxos({address:o,fetchTxHex:H,targetValue:_}),outputs:[{address:y,value:A},...T?[{address:"",script:Bn(T),value:0}]:[]]}}async function fH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f,fetchTxHex:t=!1,enableRBF:C=!1}){let H=n.chain,A=T?Bn(T):null,_=await yH({assetValue:n,fetchTxHex:t,memo:T,recipient:y,sender:f}),{inputs:X,outputs:B}=Dn({..._,chain:H,feeRate:o});if(!(X&&B))throw new j("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let U=new kt({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:q,tx:G}=fo({chain:H,compiledMemo:A,enableRBF:C,inputs:X,outputs:B,sender:f,tx:U});return{inputs:q,tx:G,utxos:_.inputs}}async function TH({assetValue:n,feeOptionKey:y=Pn.Fast,feeRate:T,memo:o,sender:f,recipient:t}){let C=n.chain,H=await yH({assetValue:n,memo:o,recipient:t,sender:f}),A=T?Math.floor(T):(await Ko(C))[y];return Dn({...H,chain:C,feeRate:A})}function VU(n){return async function({from:T,memo:o,feeRate:f,feeOptionKey:t=Pn.Fast,recipients:C=1}){let H=await s(n).getAddressData(T),A=f?Math.ceil(f):(await Ko(n))[t],_=H?.utxo.map((w)=>({...w,hash:"",type:"P2PKH"})).filter((w)=>w.value>Math.max(zy(n),oo(w)*A));if(!_?.length)return bf.from({chain:n});let X=BigInt(_.reduce((w,Q)=>w+Q.value,0)),B=bf.from({chain:n,value:X}),U=typeof C==="number"?Array.from({length:C},()=>({address:T,value:0})):C;if(o)U.push({address:T,script:Bn(o),value:0});let q=Mo({inputs:_,outputs:U}),G=bf.from({chain:n,value:BigInt(q*A)});return B.sub(G)}}function KU(n){return async function(T){let{fee:o}=await TH(T);return bf.from({chain:n,value:xU.fromBigInt(BigInt(o),8).getValue("string")})}}function jU({chain:n,phrase:y,derivationPath:T,seed:o}){let f=An(n),{privateKey:t,publicKey:C}=Vo({chain:n,derivationPath:T,phrase:y,seed:o}),H=n===e.BitcoinCash?[Pt.ALL]:[e1.ALL];return{getAddress:()=>xy({chain:n,network:f,publicKey:C}),privateKey:t,publicKey:C,signTransaction:(A)=>{return A.sign(t,H),A}}}function cU(n,y){return async function({memo:o,recipient:f,feeOptionKey:t,feeRate:C,assetValue:H,enableRBF:A=!1}){let _=y?.getAddress();if(!(y&&_))throw new j("toolbox_utxo_no_signer");if(!f)throw new j("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});SU({condition:A&&!vf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let X=A&&vf.includes(n),B=C||(await Ko(n))[t||Pn.Fast],{tx:U}=await fH({assetValue:H,enableRBF:X,feeRate:B,memo:o,recipient:f,sender:_});return y.signTransaction(U),U.finalize(),s(n).broadcastTx(Zo.encode(U.extract()))}}function $t(n){return(y)=>It({address:y,chain:n})}function Et(n){let y=An(n);return function(o){if(!o)throw new j("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return xy({chain:n,network:y,publicKey:o.publicKey})}}function To({chain:n,...y}){let T="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=T?ut(T):void 0,t="derivationPath"in y&&y.derivationPath?y.derivationPath:FU(s1[n],{index:o}),C=Oy(t),H=T?jU({chain:n,derivationPath:C,phrase:T,seed:f}):void 0,A="signer"in y?y.signer:void 0,_=T?Vo({chain:n,derivationPath:C,phrase:T,seed:f}):void 0;function X(){if(H)return Promise.resolve(H.getAddress());if(A)return A.getAddress();return Promise.resolve(void 0)}function B(W){if(!T)return;let Z=no({accountIndex:W,chain:n,derivationPath:t});return vU({chain:n,derivationPath:Oy(Z),phrase:T,seed:f})}let U=B();function q(){if(!U)return;return U.publicExtendedKey}function G({accountIndex:W}={}){let Z=W===void 0?U:B(W);if(!Z)return;let D=no({accountIndex:W,chain:n,derivationPath:t});return{accountIndex:Wo(D),path:Oy(D),xpub:Z.publicExtendedKey}}function w({accountIndex:W,index:Z,change:D=!1}){let L=W===void 0?U:B(W);if(!L)return;let O=Po({accountIndex:W,chain:n,change:D,derivationPath:t,index:Z}),R=An(n),p=L.deriveChild(Number(D)).deriveChild(Z);if(!p.publicKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let k=xy({chain:n,network:R,publicKey:p.publicKey}),I=Zo.encode(p.publicKey);return{accountIndex:Wo(O),address:k,change:D,index:Z,path:Oy(O),pubkey:I}}async function Q(W){if(!vf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let Z=await s(n).getTransactionDetails(W);return{canReplace:Z.isRBF&&!Z.confirmed,confirmed:Z.confirmed,enabled:Z.isRBF,fee:Z.fee,sequences:Z.sequences,supported:!0}}async function N({txid:W,newFeeRate:Z,recipient:D,memo:L}){if(!vf.includes(n))throw new j("toolbox_utxo_rbf_not_supported",{chain:n});let O=await s(n).getTransactionDetails(W);if(!O.isRBF)throw new j("toolbox_utxo_tx_not_replaceable",{txid:W});if(O.confirmed)throw new j("toolbox_utxo_tx_already_confirmed",{blockId:O.blockId,txid:W});let R=O.inputs.reduce((d,Zn)=>d+Zn.value,0),k=O.outputs.find((d)=>d.recipient===D)?.value||0;if(k===0)throw new j("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let I=await Promise.all(O.inputs.map(async(d)=>{let Zn=await s(n).getRawTx(d.transaction_hash);return{hash:d.transaction_hash,index:d.index,txHex:Zn,value:d.value,witnessUtxo:void 0}})),v=L?Bn(L):null,c=Mo({feeRate:Z,inputs:I.map((d)=>({...d,type:"P2WPKH"})),outputs:[{address:D,value:k}]}),V=Math.ceil(c*Z);if(V<=O.fee)throw new j("toolbox_utxo_rbf_fee_too_low",{newFee:V,originalFee:O.fee});let yn=V-O.fee,a=k-yn;if(a<=0)throw new j("toolbox_utxo_rbf_insufficient_change");let Un=new kt({allowLegacyWitnessUtxo:!0,version:1}),Fn=[{address:D,value:a},...L?[{address:"",script:Bn(L),value:0}]:[]],Sn=R-a-V,wn=await X();if(Sn>zy(n)&&wn)Fn.push({address:wn,value:Sn});return fo({chain:n,compiledMemo:v,inputs:I,outputs:Fn,sender:wn||D,tx:Un}),{feeDelta:yn,newFee:V,originalFee:O.fee,tx:Un}}async function Y({txid:W,newFeeRate:Z,recipient:D,memo:L}){if(!H)throw new j("toolbox_utxo_no_signer");let{tx:O,originalFee:R,newFee:p}=await N({memo:L,newFeeRate:Z,recipient:D,txid:W});H.signTransaction(O),O.finalize();let k=await s(n).broadcastTx(Zo.encode(O.extract()));return{newFee:p,originalFee:R,txid:k}}function z({accountIndex:W,index:Z,change:D=!1}){zn("index",Z);let L=W===void 0?U:B(W);if(!L)return;return L.deriveChild(Number(D)).deriveChild(Z).privateKey||void 0}function J({tx:W,inputDerivations:Z}){if(!U)throw new j("toolbox_utxo_no_signer");let D=n===e.BitcoinCash?[Pt.ALL]:[e1.ALL];for(let L=0;L<Z.length;L++){let O=Z[L];if(!O)continue;let{derivationIndex:R,isChange:p}=O,k=z({change:p,index:R});if(!k)throw new j("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${L} at index ${R}`});W.signIdx(k,L,D)}return W}async function l({utxos:W,recipient:Z,assetValue:D,memo:L,feeRate:O,feeOptionKey:R,changeAddress:p}){if(!U)throw new j("toolbox_utxo_no_signer");let k=O||(await Ko(n))[R||Pn.Fast],I=L?Bn(L):null,v=[{address:Z,value:D.getBaseValue("number")}];if(I)v.push({address:"",script:I,value:0});let c=W.map(({hash:wn,index:d,value:Zn,txHex:YA,witnessUtxo:HT})=>({hash:wn,index:d,txHex:YA,value:Zn,witnessUtxo:HT?{script:HT.script,value:HT.value}:void 0})),{inputs:V,outputs:yn}=Dn({chain:n,feeRate:k,inputs:c,outputs:v});if(!(V&&yn))throw new j("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let a=new kt({allowLegacyWitnessUtxo:!0,version:1}),Un=W[0]?.address,Fn=p||await X()||Un||Z;fo({chain:n,compiledMemo:I,inputs:V,outputs:yn,sender:Fn,tx:a});let Sn=V.map((wn)=>{let d=W.find((Zn)=>Zn.hash===wn.hash&&Zn.index===wn.index);return d?{derivationIndex:d.derivationIndex,isChange:d.isChange}:{derivationIndex:0,isChange:!1}});return J({inputDerivations:Sn,tx:a}),a.finalize(),s(n).broadcastTx(Zo.encode(a.extract()))}function M({address:W,gapLimit:Z=20}){if(!U)return;for(let D=0;D<Z;D++){let L=w({change:!1,index:D}),O=w({change:!0,index:D}),R=L?.address===W?!1:O?.address===W;if(L?.address===W||O?.address===W)return{change:R,index:D}}return}return{accumulative:Dn,broadcastTx:(W)=>s(n).broadcastTx(W),bumpFee:Y,calculateTxSize:Mo,createKeysForPath:(W)=>Vo({...W,chain:n}),createReplacementTransaction:N,createTransaction:fH,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:z,estimateMaxSendableAmount:VU(n),estimateTransactionFee:KU(n),getAddress:X,getAddressFromKeys:Et(n),getBalance:qn(n),getExtendedPublicKey:q,getExtendedPublicKeyInfo:G,getFeeRates:()=>Ko(n),getInputsOutputsFee:TH,getNetworkForChain:()=>An(n),getPrivateKeyFromMnemonic:(W)=>bU(Vo({...W,chain:n}).privateKey,n),isRBFEnabled:Q,keys:_,resolveDerivationIndex:M,signAndBroadcastTransaction:async(W)=>{if(!H)throw new j("toolbox_utxo_no_signer");return H.signTransaction(W),W.finalize(),await s(n).broadcastTx(Zo.encode(W.extract()))},signTransactionWithMultipleKeys:J,transfer:cU(n,H),transferFromMultipleAddresses:l,validateAddress:$t(n)}}var Ry,vf;var jo=S(()=>{En();Qy();Eo();Dy();Ry=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],vf=[e.Bitcoin]});import{hex as iU}from"@scure/base";import{Chain as hU,derivationPathToString as mU,FeeOption as rU,NetworkDerivationPath as gU,SwapKitError as to,updateDerivationPath as dU}from"@swapkit/helpers";import{BCHSigHash as aU,CashAddrPrefix as tH,CashAddrType as CH,encodeCashAddr as HH,NETWORKS as sU,p2pkh as AH,Transaction as _H}from"@swapkit/utxo-signer";function Fy(n){return Qo(Jy(n))}function eU(n){let y=An(In);function T(f){return f.sign(n.privateKey,[aU.ALL]),f}function o(){let f=AH(n.publicKey,y);if(!f.hash)throw new to("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let t=HH({hash:f.hash,prefix:tH.MAINNET,type:CH.P2PKH});return Promise.resolve(t.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:T}}function bt(n){let y="phrase"in n?n.phrase:void 0,T="index"in n?n.index||0:0,o=mU("derivationPath"in n&&n.derivationPath?n.derivationPath:dU(gU[In],{index:T})),f=y?Vo({chain:In,derivationPath:o,phrase:y}):void 0,t=f?eU(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(t?.getAddress())}let{getBalance:H,getFeeRates:A,broadcastTx:_,...X}=To({chain:In});function B(U,q=!0){return H(Qo(Jy(U)))}return{...X,broadcastTx:_,buildTx:o8,createTransaction:UH,getAddress:C,getAddressFromKeys:y8,getBalance:B,getFeeRates:A,stripPrefix:Qo,stripToCashAddress:Fy,transfer:n8({broadcastTx:_,getFeeRates:A,signer:t}),validateAddress:yo}}async function UH({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){if(!yo(y))throw new to("toolbox_utxo_invalid_address",{address:y});let t=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(In).getUtxos({address:Fy(f),fetchTxHex:!0,targetValue:t}),H=T?Bn(T):null,A=[],_=hn(y);if(A.push({address:_,value:n.getBaseValue("number")}),H)A.push({script:H,value:0});let{inputs:X,outputs:B}=Dn({chain:In,feeRate:o,inputs:C,outputs:A});if(!(X&&B))throw new to("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let U=new _H({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),q=hn(f),{inputs:G,tx:w}=fo({chain:In,compiledMemo:H,inputs:X,outputs:B.map((Q)=>("address"in Q)&&Q.address?{...Q,address:hn(Q.address)}:Q),sender:q,tx:U});return{inputs:G,tx:w,utxos:X}}function n8({broadcastTx:n,getFeeRates:y,signer:T}){return async function({recipient:f,assetValue:t,feeOptionKey:C=rU.Fast,...H}){let A=await T?.getAddress();if(!(T&&A))throw new to("toolbox_utxo_no_signer");if(!f)throw new to("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let _=H.feeRate||(await y())[C],{tx:X}=await UH({...H,assetValue:t,feeRate:_,recipient:f,sender:A}),B=await T.signTransaction(X);return B.finalize(),n(iU.encode(B.extract()))}}async function o8({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){let t=Jy(y);if(!yo(t))throw new to("toolbox_utxo_invalid_address",{address:t});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(In).getUtxos({address:Fy(f),fetchTxHex:!0,targetValue:C}),A=Number(o.toFixed(0)),_=T?Bn(T):null,X=[];if(X.push({address:hn(y),value:n.getBaseValue("number")}),_)X.push({script:_,value:0});let{inputs:B,outputs:U}=Dn({chain:In,feeRate:A,inputs:H,outputs:X});if(!(B&&U))throw new to("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let q=new _H({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:G,tx:w}=fo({chain:In,compiledMemo:_,inputs:B,outputs:U,sender:hn(f),tx:q});return{inputs:G,tx:w,utxos:H}}function y8(n){let y=sU.bitcoinCash,T=AH(n.publicKey,y);if(!T.hash)throw new to("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return HH({hash:T.hash,prefix:tH.MAINNET,type:CH.P2PKH}).replace(/^bitcoincash:/,"")}var In;var Vf=S(()=>{Eo();jo();Dy();In=hU.BitcoinCash});import{createBase58check as f8,hex as T8}from"@scure/base";import{HDKey as GH}from"@scure/bip32";import{mnemonicToSeedSync as lH}from"@scure/bip39";import{Chain as Kf,derivationPathToString as t8,FeeOption as C8,NetworkDerivationPath as H8,SKConfig as XH,SwapKitError as co,updateDerivationPath as A8}from"@swapkit/helpers";import{Address as _8,createZcashTransaction as U8,OutScript as w8,PCZT as q8,utils as WH,WIF as G8,ZCASH_NETWORK as l8,ZCASH_TEST_NETWORK as X8,ZcashConsensusBranchId as W8,ZcashSigHash as wH,ZcashVersionGroupId as B8}from"@swapkit/utxo-signer";import{match as M8,P as vt}from"ts-pattern";function BH(){let{isStagenet:n}=XH.get("envs");return n?X8:l8}function Q8(n){return L8.encode(n)}function Z8({phrase:n,derivationPath:y}){let T=lH(n),f=GH.fromMasterSeed(T).derive(y);if(!f.privateKey||!f.publicKey)throw new co("toolbox_utxo_invalid_params");let{privateKey:t,publicKey:C}=f,H=WH.hash160(C),{isStagenet:A}=XH.get("envs"),_=A?new Uint8Array([29,37]):new Uint8Array([28,184]),X=new Uint8Array(_.length+H.length);X.set(_,0),X.set(H,_.length);let B=Q8(X);return{getAddress:()=>Promise.resolve(B),signTransaction:(U)=>{if(U instanceof q8)return U.signAllInputs(t,C,wH.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(t,C,wH.ALL),Promise.resolve(U)}}}function J8({inputs:n,outputs:y,tx:T,sender:o,compiledMemo:f}){let t=BH();for(let C of n){let H=_8(t).decode(o),A=w8.encode(H);T.addInput({index:C.index,script:A,sequence:4294967295,txid:T8.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,A=C.script;if(A&&!f)continue;if(A&&f)T.addOutput({amount:0n,script:f});else T.addOutputAddress(H,BigInt(C.value),t)}return{inputs:n,tx:T}}async function qH(n){let{assetValue:y,recipient:T,memo:o,feeRate:f,sender:t,fetchTxHex:C}=n,H=o?Bn(o):null,A=await s(Kf.Zcash).getUtxos({address:t,fetchTxHex:C!==!1}),_=[{address:T,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:X,outputs:B}=Dn({chain:Kf.Zcash,changeAddress:t,feeRate:f,inputs:A,outputs:_});if(!(X&&B))throw new co("toolbox_utxo_insufficient_balance",{assetValue:y,sender:t});let U=U8({consensusBranchId:W8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:B8.SAPLING}),{tx:q,inputs:G}=J8({compiledMemo:H,inputs:X,outputs:B,sender:t,tx:U});return{inputs:G,outputs:B,tx:q}}function Vt(n){let y=M8(n).with({signer:vt.not(vt.nullish)},({signer:A})=>A).with({phrase:vt.string},({phrase:A,derivationPath:_,index:X=0})=>{let B=_||H8[Kf.Zcash]||[44,133,0,0,0],U=A8(B,{index:X}),q=t8(U);return Z8({derivationPath:q,phrase:A})}).otherwise(()=>{return}),T=To({chain:Kf.Zcash,signer:y});async function o({recipient:A,assetValue:_,feeOptionKey:X=C8.Fast,...B}){let U=await y?.getAddress();if(!(y&&U))throw new co("toolbox_utxo_no_signer");let q=B.feeRate||(await T.getFeeRates())[X],{tx:G}=await qH({...B,assetValue:_,feeRate:q,recipient:A,sender:U}),Q=(await y.signTransaction(G)).toHex();return T.broadcastTx(Q)}function f({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let X=lH(A),U=GH.fromMasterSeed(X).derive(_);if(!U.privateKey||!U.publicKey)throw new co("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function t({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let X=f({derivationPath:_,phrase:A}),B=BH();return G8(B).encode(X.privateKey)}function C(A){return async function(X){if(!A)throw new co("toolbox_utxo_no_signer");return await A.signTransaction(X)}}function H(A){return async function(X){if(!A)throw new co("toolbox_utxo_no_signer");let B=await A.signTransaction(X);return T.broadcastTx(B.toHex())}}return{...T,createKeysForPath:f,createTransaction:qH,getPrivateKeyFromMnemonic:t,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:bo}}var L8;var Kt=S(()=>{Eo();jo();Dy();L8=f8(WH.sha256)});import{hex as Y8}from"@scure/base";import{HDKey as N8}from"@scure/bip32";import{derivationPathToString as z8}from"@swapkit/helpers";function MH({xpub:n,chain:y,count:T,startIndex:o=0,accountIndex:f}){if(zn("count",T),T<1)throw RangeError("count must be at least 1");zn("startIndex",o);let t=An(y),C=N8.fromExtendedKey(n,t.bip32),H=no({accountIndex:f,chain:y}),A=Wo(H),_=[];for(let X of[!1,!0]){let B=C.deriveChild(Number(X));for(let U=0;U<T;U++){let q=o+U,G=B.deriveChild(q);if(!G.publicKey)continue;let w=Po({accountIndex:f,chain:y,change:X,index:q});_.push({accountIndex:A,address:xy({chain:y,network:t,publicKey:G.publicKey}),change:X,index:q,path:z8(w),pubkey:Y8.encode(G.publicKey)})}}return _}var LH=S(()=>{Qy();jo()});import{Chain as io,SwapKitError as D8}from"@swapkit/helpers";function O8(n,y){switch(n){case io.BitcoinCash:return bt(y||{});case io.Zcash:return Vt(y);case io.Bitcoin:case io.Dogecoin:case io.Litecoin:case io.Dash:return To({chain:n,...y});default:throw new D8("toolbox_utxo_not_supported",{chain:n})}}var QH=S(()=>{Vf();jo();Kt();Qy();LH();Vf();Dy()});var jt={};nn(jt,{validateZcashAddress:()=>bo,validateUtxoAddress:()=>It,validateBchAddress:()=>yo,toLegacyAddress:()=>hn,toCashAddress:()=>Jy,stripToCashAddress:()=>Fy,stripPrefix:()=>Qo,nonSegwitChains:()=>Ry,isValidAddress:()=>Ft,getUtxoToolbox:()=>O8,getUtxoNetwork:()=>HU,getUtxoApi:()=>s,getUTXOAddressValidator:()=>$t,getUTXOAddressPath:()=>Po,getUTXOAccountPath:()=>no,getUTXOAccountIndexFromPath:()=>Wo,getScriptTypeForAddress:()=>$o,getOutputSize:()=>Ny,getNetworkForChain:()=>An,getInputSize:()=>oo,getDustThreshold:()=>zy,detectAddressNetwork:()=>St,deriveAddressesFromXpub:()=>MH,createZcashToolbox:()=>Vt,createUTXOToolbox:()=>To,createHDWalletHelpers:()=>u1,createCustomUtxoApi:()=>CU,createBCHToolbox:()=>bt,compileMemo:()=>Bn,calculateTxSize:()=>Mo,assertDerivationIndex:()=>zn,addressFromKeysGetter:()=>Et,addInputsAndOutputs:()=>fo,accumulative:()=>Dn,UtxoNetwork:()=>xt,UTXOScriptType:()=>Ef,TX_OVERHEAD:()=>If,SEGWIT_MARKER_FLAG_WEIGHT:()=>$f,OutputSizes:()=>Yy,OP_RETURN_OVERHEAD:()=>h1,MIN_TX_FEE:()=>JU,InputSizes:()=>Pf});var ct=S(()=>{jo();Qy();Eo();QH();Vf();Kt()});import{KeyPairSigner as R8}from"@near-js/signers";import{derivationPathToString as x8,SwapKitError as F8}from"@swapkit/helpers";function Sy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function jf(n){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:T}=await import("@near-js/crypto"),o=n.index||0,f=n.derivationPath?x8(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:t}=y(n.phrase,f),C=T.fromString(t);return JH(C)}async function it(n){let{KeyPair:y}=await import("@near-js/crypto"),T=y.fromString(n);return JH(T)}function JH(n){return new ZH(n)}async function cf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new F8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),t=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:t}}var ZH;var ht=S(()=>{ZH=class ZH extends R8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function mt(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function rt(n){return"contractId"in n&&"methodName"in n}function gt(n){return"actions"in n}function dt(n){return"newAccountId"in n}function at(n){return"contractCode"in n}function st(n){return"customEstimator"in n}function et(n){let y=0;for(let T of n)switch(T.enum){case"transfer":y+=Number(Cn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Cn.CONTRACT_CALL);break;case"createAccount":y+=Number(Cn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Cn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Cn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Cn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Cn.STAKE);break;default:y+=Number(Cn.CONTRACT_CALL)}return y.toString()}function n0(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Cn.TOKEN_TRANSFER;if(n==="storage_deposit")return Cn.STORAGE_DEPOSIT;return Cn.CONTRACT_CALL}function S8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function p8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Cn;var o0=S(()=>{Cn={ACCESS_KEY_ADDITION:"5",ACCESS_KEY_DELETION:"5",ACCOUNT_CREATION:"30",CONTRACT_CALL:"150",CONTRACT_DEPLOYMENT:"200",SIMPLE_TRANSFER:"1",STAKE:"10",STORAGE_DEPOSIT:"150",TOKEN_TRANSFER:"150"}});async function y0({account:n,contractId:y,viewMethods:T,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:T})}import{JsonRpcProvider as k8}from"@near-js/providers";import{AssetValue as f0,Chain as ho,getRPCUrl as YH,SwapKitError as Xn}from"@swapkit/helpers";import{match as NH,P as zH}from"ts-pattern";function u8(n){let y;async function T(){if(y)return y;return y=await NH(n).with({phrase:zH.string},async(L)=>{return await jf(L)}).with({signer:zH.any},({signer:L})=>L).otherwise(()=>{return}),y}async function o(){let L=await YH(ho.Near);return new k8({url:L})}async function f(L){let{Account:O}=await import("@near-js/accounts"),R=await o(),p=await T(),k=L||await t();return new O(k,R,p)}async function t(){let L=await T();if(!L)throw new Xn("toolbox_near_no_signer");return await L.getAddress()}async function C(L){return(await J({changeMethods:[],contractId:L.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:L.accountId})}async function H(L){let R=[await U({args:{account_id:L.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:L.assetValue.getBaseValue("string"),memo:L.memo||null,receiver_id:L.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return l({actions:R,receiverId:L.contractId})}async function A(L){if(!await T())throw new Xn("toolbox_near_no_signer");let{assetValue:R,recipient:p,memo:k}=L,I=await t();if(!R.isGasAsset&&R.address){if(!await C({accountId:p,contractId:R.address}))return H({assetValue:R,contractId:R.address,memo:k,recipient:p})}let v=await _({...L,sender:I});return w(v)}async function _({recipient:L,assetValue:O,memo:R,attachedDeposit:p,sender:k,functionCall:I}){let v=await o();if(!Sy(L))throw new Xn("toolbox_near_invalid_address",{recipient:L});if(!Sy(k))throw new Xn("toolbox_near_invalid_address",{sender:k});if(I)return B({...I,sender:k});if(!O.isGasAsset){let Zn=O.address;if(!Zn)throw new Xn("toolbox_near_missing_contract_address");return B({args:{amount:O.getBaseValue("string"),memo:R||null,receiver_id:L},attachedDeposit:p||"1",contractId:Zn,gas:"250000000000000",methodName:"ft_transfer",sender:k})}let{publicKey:c,nonce:V}=await cf(v,k),yn=O.getBaseValue("bigint"),{actionCreators:a,createTransaction:Un}=await import("@near-js/transactions"),{baseDecode:Fn}=await import("@near-js/utils"),Sn=[a.transfer(yn)];if(R&&p)Sn.push(a.functionCall("memo",{memo:R},BigInt("250000000000000"),BigInt(p)));let wn=await v.block({finality:"final"}),d=Fn(wn.header.hash);return Un(k,c,L,V+1,Sn,d)}function X(L){let O=L.encode();return Buffer.from(O).toString("base64")}async function B({args:L,attachedDeposit:O,contractId:R,gas:p,methodName:k,sender:I}){let v=await o(),{publicKey:c,nonce:V}=await cf(v,I),{createTransaction:yn,actionCreators:a}=await import("@near-js/transactions"),{baseDecode:Un}=await import("@near-js/utils"),Fn=await v.block({finality:"final"}),Sn=Un(Fn.header.hash),wn=[a.functionCall(k,Buffer.from(JSON.stringify(L)),BigInt(p),BigInt(O))];return yn(I,c,R,V+1,wn,Sn)}async function U(L){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(L.methodName,Buffer.from(JSON.stringify(L.args)),BigInt(L.gas),BigInt(L.attachedDeposit))}async function q(L){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");let[R,p]=await O.signTransaction(L);return p}async function G(L){return(await(await o()).sendTransaction(L)).transaction.hash}async function w(L){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");try{let R=await q(L);return await G(R)}catch{return O.signAndSendTransactions?.({transactions:[L]})}}async function Q(L){let O=await T();if("assetValue"in L){let p=await N();try{let k=await YH(ho.Near),I=await fetch(k,{body:JSON.stringify({id:"dontcare",jsonrpc:"2.0",method:"EXPERIMENTAL_protocol_config",params:{finality:"final"}}),headers:{"Content-Type":"application/json"},method:"POST"}),{result:{runtime_config:v}}=await I.json(),{execution:c,send_sir:V}=v.transaction_costs.action_receipt_creation_config,{execution:yn,send_sir:a}=v.transaction_costs.action_creation_config.transfer_cost,Un=BigInt(a)+BigInt(yn),Fn=BigInt(V)+BigInt(c),wn=(Un+Fn)*BigInt(p.toString());return f0.from({chain:ho.Near,value:wn})}catch(k){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",k);let I=BigInt("115123062500"),v=BigInt("108059500000"),V=(I+v)*BigInt(p.toString());return f0.from({chain:ho.Near,value:V})}}let R=O?await f():void 0;return M(L,R)}async function N(){let L=await o();try{return await L.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(L,O,R){if(!await T())throw new Xn("toolbox_near_no_signer");let k=await f(),{formatNearAmount:I}=await import("@near-js/utils"),{PublicKey:v}=await import("@near-js/crypto"),c=I(R)||"0";return(await k.createAccount(L,v.fromString(O),BigInt(c))).transaction.hash}async function z(L){let O=await T();try{if(!O)throw new Xn("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:p,methodName:k,args:I,deposit:v}=L,c=await f(),V=await M({args:I||{},contractId:p,methodName:k}),yn=R.functionCall(k,I||{},V.getBaseValue("bigint"),BigInt(v||"1"));return(await c.signAndSendTransaction({actions:[yn],receiverId:p})).transaction_outcome.id}catch(R){throw new Xn("toolbox_near_transfer_failed",{error:R})}}async function J(L){let O=await f();return y0({account:O,changeMethods:L.changeMethods,contractId:L.contractId,viewMethods:L.viewMethods})}async function l(L){if(!await T())throw new Xn("toolbox_near_no_signer");if(L.actions.length===0)throw new Xn("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:L.actions,receiverId:L.receiverId})).transaction.hash}async function M(L,O){let R=await NH(L).when(mt,()=>Cn.SIMPLE_TRANSFER).when(rt,(k)=>n0(k.methodName)).when(gt,(k)=>et(k.actions)).when(dt,()=>Cn.ACCOUNT_CREATION).when(at,()=>Cn.CONTRACT_DEPLOYMENT).when(st,(k)=>{if(!O)throw new Xn("toolbox_near_no_account");return k.customEstimator(O)}).otherwise(()=>{throw new Xn("toolbox_near_invalid_gas_params")}),p=BigInt(R)*BigInt(1000000000000);return f0.from({chain:ho.Near,value:p})}function W(L,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),M(L,O)}async function Z(){let L=await o();try{return(await L.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let L=await T();return L?(await L.getPublicKey()).toString():""}return{broadcastTransaction:G,callFunction:z,createAction:U,createContract:J,createContractFunctionCall:B,createSubAccount:Y,createTransaction:_,estimateGas:W,estimateGasLimit:M,estimateTransactionFee:Q,executeBatchTransaction:l,getAddress:t,getBalance:qn(ho.Near),getGasPrice:Z,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:jf,getSignerFromPrivateKey:it,serializeTransaction:X,signAndBroadcastTransaction:w,signTransaction:q,transfer:A,validateAddress:Sy}}var T0=S(()=>{En();ht();o0()});var DH=S(()=>{T0()});var t0={};nn(t0,{validateNearAddress:()=>Sy,tgasToGas:()=>S8,isSimpleTransfer:()=>mt,isCustomEstimator:()=>st,isContractDeployment:()=>at,isContractCall:()=>rt,isBatchTransaction:()=>gt,isAccountCreation:()=>dt,getNearToolbox:()=>u8,getNearSignerFromPrivateKey:()=>it,getNearSignerFromPhrase:()=>jf,getFullAccessPublicKey:()=>cf,getContractMethodGas:()=>n0,gasToTGas:()=>p8,estimateBatchGas:()=>et,createNearContract:()=>y0,GAS_COSTS:()=>Cn});var C0=S(()=>{ht();o0();T0();DH()});var A0={};nn(A0,{validateRadixAddress:()=>RH,getRadixToolbox:()=>j8});import{GatewayApiClient as P8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as I8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as OH,Chain as H0,SKConfig as $8,SwapKitError as E8}from"@swapkit/helpers";function RH(n){return n.startsWith("account_rdx1")&&n.length===66}function b8({networkApi:n}){return async function(T){let o=await v8({address:T,networkApi:n}),f=await V8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[OH.from({chain:H0.Radix}),...f];return f}}async function v8({address:n,networkApi:y}){let T=!0,o,f=[],t=await K8(y);while(T){let C={address:n,at_ledger_state:{state_version:t},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else T=!1}return f}async function V8({resources:n,networkApi:y}){let T=[],o=50,f=[];for(let t=0;t<n.length;t+=50)f.push(n.slice(t,t+50));for(let t of f){let C=t.map((_)=>_.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),A=new Map;for(let _ of H)if(_.details!==void 0){let X=_.metadata?.items.find((U)=>U.key==="symbol"),B=X?.value.typed.type==="String"?X.value.typed.value:"?";if(_.details.type==="FungibleResource")A.set(_.address,{decimals:_.details.divisibility,symbol:B})}for(let _ of t)if(_.aggregation_level==="Global"){let X=A.get(_.resource_address)||{decimals:0,symbol:"?"},B=OH.from({asset:X.symbol!==H0.Radix?`${H0.Radix}.${X.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});T.push(B)}}return T}async function K8(n){return(await n.status.getCurrent()).ledger_state.state_version}function j8({dappConfig:n}={}){let y=n||$8.get("integrations").radix,T=I8({...y,networkId:y.network?.networkId||1}),o=P8.initialize(T.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:b8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new E8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:RH}}var _0=()=>{};import{SwapKitError as c8}from"@swapkit/helpers";function hf(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function py(n){if(hf(n))return n.toUpperCase();if(n.length<=3){let T=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${T}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new c8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function i8(n){if(!hf(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let T=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(T)&&T.length>0)return T}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),T=y.length%2===0?y:`${y}0`,o=Buffer.from(T,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function mo(n){if(hf(n))return n.toUpperCase();if(n.length<=3)return n;return py(n)}var mf=()=>{};import{RequestClient as h8,warnOnce as m8}from"@swapkit/helpers";async function r8(n,y){let T=mo(n),o=rf.find((f)=>mo(f.currency)===T&&f.issuer===y);if(o)return o;try{let f=await h8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){m8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function g8(n){return rf.filter((y)=>y.issuer===n)}function d8(n,y){let T=mo(n);return rf.some((o)=>mo(o.currency)===T&&o.issuer===y)}var rf;var xH=S(()=>{mf();rf=[{currency:"USD",decimals:15,domain:"circle.com",issuer:"rcEGREd8NmkKRE8GE424sksyt1tJVFZwu",name:"Circle USDC",verified:!0},{currency:"RLUSD",decimals:15,domain:"ripple.com",issuer:"rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De",name:"Ripple USD",verified:!0},{currency:"USD",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp USD",verified:!0},{currency:"BTC",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp BTC",verified:!0},{currency:"EUR",decimals:15,domain:"bitstamp.net",issuer:"rvYAfWj5gh67oV6fW32ZzP3Aw4Eubs59B",name:"Bitstamp EUR",verified:!0},{currency:"USD",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub USD",verified:!0},{currency:"EUR",decimals:15,domain:"gatehub.net",issuer:"rhub8VRN55s94qWKDv6jmDy1pUykJzF3wq",name:"GateHub EUR",verified:!0},{currency:"BTC",decimals:15,domain:"gatehub.net",issuer:"rchGBxcD1A1C2tdxF6papQYZ8kjRKMYcL",name:"GateHub BTC",verified:!0},{currency:"ETH",decimals:15,domain:"gatehub.net",issuer:"rcA8X3TVMST1n3CJeAdGk1RdRCHii7N2h",name:"GateHub ETH",verified:!0},{currency:"SOLO",decimals:15,domain:"sologenic.com",issuer:"rsoLo2S1kiGeCcn6hCUXVrCpGMWLrRrLZz",name:"Sologenic",verified:!0}]});var U0={};nn(U0,{validateRippleAddress:()=>af,parseXrplTokenIdentifier:()=>IH,normalizeCurrency:()=>mo,isKnownToken:()=>d8,isHexCurrency:()=>hf,hexToCurrency:()=>i8,hashes:()=>fw,getXrplTokenInfo:()=>r8,getRippleToolbox:()=>yw,getKnownTokensByIssuer:()=>g8,formatXrplTokenIdentifier:()=>$H,currencyToHex:()=>py,XRPL_TOKEN_ERROR_CODES:()=>df,XRPL_KNOWN_TOKENS:()=>rf});import{AssetValue as gf,Chain as On,getChainConfig as FH,getRPCUrl as a8,SwapKitError as _n}from"@swapkit/helpers";import{match as SH,P as pH}from"ts-pattern";import{Client as s8,isValidAddress as PH,Wallet as e8,xrpToDrops as nw}from"xrpl";import{hashes as fw}from"xrpl";function IH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!PH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function $H(n,y){return`${On.Ripple}.${n}-${y}`}function ow(n){if(n.isGasAsset)return nw(n.getValue("string"));let y=IH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function uH(n){let y=e8.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(T)=>Promise.resolve(y.sign(T))}}function af(n){return PH(n)}function yw(n={}){let y=SH(n).with({phrase:pH.string},({phrase:Y})=>uH(Y)).with({signer:pH.any},({signer:Y})=>Y).otherwise(()=>{return}),T;async function o(){let Y=await a8(On.Ripple);if(!Y)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let z=new s8(Y);return await z.connect(),z}async function f(){if(T){let Y=await T.catch(()=>null);if(Y?.isConnected())return Y}return T=o(),T}let t=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(Y)=>{let z=Y||await t(),{baseDecimal:J}=FH(On.Ripple),l=await f();try{let[M,W]=await Promise.all([l.request({account:z,command:"account_info"}),l.request({account:z,command:"account_lines"})]),Z=M.result.account_data.Balance,D=[gf.from({chain:On.Ripple,fromBaseDecimal:J,value:Z})];for(let L of W.result.lines){let O=$H(L.currency,L.account);if(Number.parseFloat(L.balance)!==0)D.push(gf.from({asset:O,asyncTokenLookup:!1,value:L.balance}))}return D}catch(M){if(M.data?.error_code===kH.ACCOUNT_NOT_FOUND)return[gf.from({chain:On.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:z,error:M}})}},H=async()=>{let{baseDecimal:Y}=FH(On.Ripple),l=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return gf.from({chain:On.Ripple,fromBaseDecimal:Y,value:l})};async function A(Y){let z=Y||await t(),J=await f();try{return(await J.request({account:z,command:"account_lines"})).result.lines.map((M)=>({account:M.account,authorized:M.authorized??!1,balance:M.balance,currency:M.currency,freeze:M.freeze??!1,freezePeer:M.freeze_peer??!1,limit:M.limit,limitPeer:M.limit_peer,noRipple:M.no_ripple??!1,noRipplePeer:M.no_ripple_peer??!1,peerAuthorized:M.peer_authorized??!1,qualityIn:M.quality_in??0,qualityOut:M.quality_out??0}))}catch(l){if(l.data?.error_code===kH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:z,error:l}})}}async function _({address:Y,currency:z,issuer:J}){let l=await A(Y),M=py(z);return l.some((W)=>{return py(W.currency)===M&&W.account===J})}async function X({currency:Y,issuer:z,limit:J,sender:l}){let M=l||await t();if(!af(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:z}});let W=Number.parseFloat(J);if(Number.isNaN(W)||W<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:J}});let Z=await f(),D={Account:M,LimitAmount:{currency:Y,issuer:z,value:J},TransactionType:"TrustSet"};return Z.autofill(D)}async function B({assetValue:Y,recipient:z,memo:J,sender:l,destinationTag:M,extendBySeconds:W=150}){if(!af(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Z=l||await t();if(Y.chain!==On.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Y.toString()}});let D=ow(Y),L={Account:Z,Amount:D,Destination:z,TransactionType:"Payment",...M!==void 0&&{DestinationTag:M}};if(J)L.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];let R=await(await f()).autofill(L);if(R.LastLedgerSequence&&W>0)R.LastLedgerSequence+=Math.ceil(W/4);return R}function U(Y){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(Y)}async function q(Y){let J=await(await f()).submitAndWait(Y),{result:l}=J;if(l.validated)return l.hash;let M=l.meta?.TransactionResult,W=SH(M).with(df.tecNO_LINE,()=>"No trust line exists for this token").with(df.tecPATH_DRY,()=>"Payment path could not deliver funds").with(df.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,...W?{reason:W}:{txResult:M}}})}let G=async(Y)=>{try{let z=await U(Y);return q(z.tx_blob)}catch(z){if(z instanceof _n)throw z;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,error:z}})}};async function w(Y){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),J=await B({...Y,sender:z}),l=await U(J);return q(l.tx_blob)}async function Q(Y){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),J=await X({...Y,sender:z}),l=await U(J);return q(l.tx_blob)}function N(){let Y=T;if(T=null,Y)Y.then((z)=>{if(z?.isConnected())return z.disconnect();return}).catch((z)=>{console.warn("XRPL Cleanup failed silently:",z)})}return{broadcastTransaction:q,createSigner:uH,createTransaction:B,disconnect:N,estimateTransactionFee:H,getAddress:t,getBalance:C,getTrustLines:A,hasTrustLine:_,setTrustLine:X,setTrustLineAndBroadcast:Q,signAndBroadcastTransaction:G,signTransaction:U,transfer:w,validateAddress:af}}var kH,df;var w0=S(()=>{mf();mf();xH();kH={ACCOUNT_NOT_FOUND:19},df={tecFROZEN:"tecFROZEN",tecNO_AUTH:"tecNO_AUTH",tecNO_DST:"tecNO_DST",tecNO_LINE:"tecNO_LINE",tecPATH_DRY:"tecPATH_DRY",tecUNFUNDED_OFFER:"tecUNFUNDED_OFFER"}});import{sha256 as Tw}from"@noble/hashes/sha2.js";import{bytesToHex as EH,hexToBytes as bH}from"@noble/hashes/utils.js";import{SwapKitError as ro}from"@swapkit/helpers";function q0(n,y){let T=0n,o=0n,f=y;while(f<n.length&&f-y<10){let t=n[f++];if(t===void 0)break;if(T|=BigInt(t&127)<<o,o+=7n,(t&128)===0)return[T,f]}throw new ro("toolbox_tron_transaction_creation_failed")}function ky(n){let y=[],T=n<0n?n+2n**64n:n;while(T>=128n)y.push(Number(T&0x7fn)|128),T>>=7n;return y.push(Number(T)),y}function sf(n,y,T){let o=n.get(y);if(o)o.push(T);else n.set(y,[T])}function Aw(n){let y=new Map,T=0;while(T<n.length){let[o,f]=q0(n,T);T=f;let t=Number(o>>3n),C=Number(o&7n);if(C===ef){let[H,A]=q0(n,T);T=A,sf(y,t,{data:new Uint8Array(ky(H)),wireType:ef})}else if(C===nT){let[H,A]=q0(n,T);T=A;let _=Number(H);if(_<0||T+_>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let X=n.slice(T,T+_);T+=_,sf(y,t,{data:X,wireType:nT})}else if(C===vH){if(T+8>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+8);T+=8,sf(y,t,{data:H,wireType:vH})}else if(C===VH){if(T+4>n.length)throw new ro("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+4);T+=4,sf(y,t,{data:H,wireType:VH})}else throw new ro("toolbox_tron_transaction_creation_failed")}return y}function _w(n){let y=[];for(let[t,C]of[...n.entries()].sort(([H],[A])=>H-A))for(let{wireType:H,data:A}of C){let _=BigInt(t<<3|H);if(y.push(new Uint8Array(ky(_))),H===nT)y.push(new Uint8Array(ky(BigInt(A.length))));y.push(A)}let T=y.reduce((t,C)=>t+C.length,0),o=new Uint8Array(T),f=0;for(let t of y)o.set(t,f),f+=t.length;return o}function KH(n,y){if(!n||n.length%2!==0)throw new ro("toolbox_tron_transaction_creation_failed");let T=bH(n),o=Aw(T);if(y.expiration!==void 0)o.set(tw,[{data:new Uint8Array(ky(BigInt(y.expiration))),wireType:ef}]);if(y.data!==void 0)o.set(Cw,[{data:bH(y.data),wireType:nT}]);if(y.fee_limit!==void 0)o.set(Hw,[{data:new Uint8Array(ky(BigInt(y.fee_limit))),wireType:ef}]);let f=_w(o),t=EH(f),C=EH(Tw(f));return{raw_data_hex:t,txID:C}}var ef=0,vH=1,nT=2,VH=5,tw=8,Cw=10,Hw=18;var jH=()=>{};import{secp256k1 as cH}from"@noble/curves/secp256k1.js";import{sha256 as iH}from"@noble/hashes/sha2.js";import{keccak_256 as Uw}from"@noble/hashes/sha3.js";import{bytesToHex as go,hexToBytes as oT}from"@noble/hashes/utils.js";import{createBase58check as ww}from"@scure/base";import{SwapKitError as hH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=yT.decode(n);return y.length===21&&y[0]===mH}catch{return!1}}function rH(n){return go(yT.decode(n))}function Gw(n){return yT.decode(n).slice(1)}function gH(n){let y=cH.getPublicKey(oT(n),!1),T=Uw(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=mH,o.set(T,1),yT.encode(o)}function dH({txID:n,privateKey:y}){let T=cH.sign(oT(n),oT(y),{format:"recovered",prehash:!1}),o=T[0]??0,f=go(T.slice(1,33)),t=go(T.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+t+C}function ao({txID:n,raw_data_hex:y}){let T=go(iH(oT(y)));if(n!==T)throw new hH("toolbox_tron_invalid_transaction_integrity",{expected:T,txID:n})}function lw(n){return`000000000000000000000000${go(Gw(n))}`}function Xw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=qw)throw new hH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function so(n){return n.map(({type:y,value:T})=>y==="address"?lw(T):Xw(BigInt(T))).join("")}function aH(n){return go(new TextEncoder().encode(n))}var yT,mH=65,qw;var G0=S(()=>{yT=ww(iH),qw=2n**256n});import{Chain as Ww,getRPCUrlSync as Bw,SwapKitError as xn,warnOnce as l0}from"@swapkit/helpers";function eH(){try{return Bw(Ww.Tron)}catch{return sH}}function nA(){let n=new AbortController,y=setTimeout(()=>n.abort(),Zw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function eo(n,y){let{signal:T,cleanup:o}=nA();try{let f=await fetch(`${eH()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function oA(n,y){let{signal:T,cleanup:o}=nA();try{let f=await fetch(`${y??eH()}${n}`,{headers:{"Content-Type":"application/json"},signal:T});if(!f.ok)throw new xn("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function yA(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await oA(`/v1/accounts/${n}`,sH);if(!(y.success&&y.data)||y.data.length===0)return;let T;try{T=rH(n).toLowerCase()}catch{T=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===T);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof xn)throw y;throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function fA({from:n,to:y,amount:T}){let f=await eo("/wallet/createtransaction",{amount:T,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new xn("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==T)throw new xn("toolbox_tron_transaction_creation_failed");return ao(f),f}async function TA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o,feeLimit:f,callValue:t=0}){let C=await eo("/wallet/triggersmartcontract",{call_value:t,contract_address:y,fee_limit:f,function_selector:T,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new xn("toolbox_tron_transaction_creation_failed");let A=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(A?.contract_address!==y||A?.owner_address!==n)throw new xn("toolbox_tron_transaction_creation_failed");return ao(C.transaction),C.transaction}function tA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o}){return eo("/wallet/triggerconstantcontract",{contract_address:y,function_selector:T,owner_address:n,parameter:o,visible:!0})}async function uy(n){try{let{result:y,txid:T}=await eo("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!T)throw new xn("toolbox_tron_token_transfer_failed");return T}catch(y){throw new xn("toolbox_tron_broadcast_failed",{error:y})}}async function fT(){let n={};try{let{chainParameter:y}=await oA("/wallet/getchainparameters");for(let T of y)n[T.key]=T.value}catch(y){l0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Mw,createAccountFee:n.getCreateAccountFee??Lw,energyFee:n.getEnergyFee??Qw}}async function X0(n){try{let y=await eo("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return l0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function W0(n){try{let y=await eo("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function B0(n){try{let{energy_used:y}=await tA({...n,ownerAddress:n.sender});return y}catch(y){return l0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function CA({assetAddress:n,owner:y,spender:T}){let o=so([{type:"address",value:y},{type:"address",value:T}]),t=(await tA({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:T,parameter:o})).constant_result?.[0];if(!t)return 0n;try{return BigInt(`0x${t}`)}catch{return 0n}}var sH="https://api.trongrid.io",Mw=1000,Lw=1e5,Qw=420,Zw=30000;var HA=S(()=>{G0()});import{bytesToHex as Jw}from"@noble/hashes/utils.js";import{HDKey as Yw}from"@scure/bip32";import{mnemonicToSeedSync as Nw}from"@scure/bip39";import{AssetValue as mn,BaseDecimal as AA,Chain as Qn,derivationPathToString as wA,getRPCUrl as zw,NetworkDerivationPath as qA,SwapKitError as Hn,updateDerivationPath as GA,warnOnce as _A}from"@swapkit/helpers";import{match as Dw,P as M0}from"ts-pattern";function XA({phrase:n,derivationPath:y}){let T=Yw.fromMasterSeed(Nw(n)).derive(y);if(!T.privateKey)throw new Hn("toolbox_tron_no_signer");return Jw(T.privateKey)}function WA({phrase:n,derivationPath:y,index:T}){let o=y||wA(GA(qA[Qn.Tron],{index:T||0}));return XA({derivationPath:o,phrase:n})}function Sw({phrase:n,derivationPath:y}){let T=XA({derivationPath:y,phrase:n}),o=gH(T);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{ao(f);let t=dH({privateKey:T,txID:f.txID});return Promise.resolve({...f,signature:[t]})}}}function UA({transaction:n,memo:y,expiration:T,feeLimit:o}){let f={},t={};if(o!==void 0&&n.raw_data)f.fee_limit=o,t.fee_limit=o;if(y){let A=aH(y);f.data=A,t.data=A}if(T){let A=n.raw_data.expiration+T*1000;f.expiration=A,t.expiration=A}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=KH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...t},raw_data_hex:C,txID:H}}function BA(n={}){let y="index"in n?n.index||0:0,T=wA("derivationPath"in n&&n.derivationPath?n.derivationPath:GA(qA[Qn.Tron],{index:y})),o,f=!1;function t(){if(f)return Promise.resolve(o);return o=Dw(n).with({phrase:M0.string},({phrase:l})=>Sw({derivationPath:T,phrase:l})).with({signer:M0.not(M0.nullish)},({signer:l})=>l).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let l=await t();if(!l)throw new Hn("toolbox_tron_no_signer");return l.getAddress()}async function H(l){let M=l||Rw,W=await fT(),Z=M*W.energyFee,D=Math.ceil(Z*1.5);return Math.min(Math.max(D,1e7),150000000)}async function A({contractAddress:l,functionSelector:M,parameter:W,sender:Z,memo:D,expiration:L}){let O=await B0({contractAddress:l,functionSelector:M,parameter:W,sender:Z}),R=await H(O),p=await TA({contractAddress:l,feeLimit:R,functionSelector:M,ownerAddress:Z,parameter:W});return UA({expiration:L,feeLimit:R,memo:D,transaction:p})}async function _(l){if(!Rn(l))return[mn.from({chain:Qn.Tron})];try{let M=await yA(l);if(!M)return[mn.from({chain:Qn.Tron})];let W=[mn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(M.balance)})],Z=M.trc20?.find((D)=>(L0 in D));if(Z){let D=Z[L0];W.push(mn.from({asset:`TRON.USDT-${L0}`,fromBaseDecimal:6,value:D}))}return W}catch(M){return _A({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${M instanceof Error?M.message:M}`}),[mn.from({chain:Qn.Tron})]}}async function X({recipient:l,assetValue:M,memo:W,expiration:Z}){if(!Rn(l))throw new Hn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await t();if(!D)throw new Hn("toolbox_tron_no_signer");try{let L=await C(),O=await w({assetValue:M,expiration:Z,memo:W,recipient:l,sender:L}),R=await D.signTransaction(O),p=await uy(R);if(!p)throw new Hn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return p}catch(L){throw new Hn("toolbox_tron_token_transfer_failed",{message:L instanceof Error?L.message:String(L)})}}function B({requiredBandwidth:l,resources:M,feePerUnit:W}){let Z=Math.max(0,M.free+M.total-M.used);return l>Z?(l-Z)*W:0}async function U({recipient:l,senderAddress:M}){let[W,Z,D]=await Promise.all([fT(),W0(l),X0(M)]),L=Z?0:W.createAccountFee,O=B({feePerUnit:W.bandwidthFee,requiredBandwidth:Ow,resources:D.bandwidth});return mn.from({chain:Qn.Tron,fromBaseDecimal:AA.TRON,value:L+O})}async function q({assetValue:l,recipient:M,senderAddress:W}){let Z=l.address;if(!Z)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:l.toString()});let[D,L,O,R]=await Promise.all([fT(),W0(M),X0(W),B0({contractAddress:Z,functionSelector:"transfer(address,uint256)",parameter:so([{type:"address",value:M},{type:"uint256",value:l.getBaseValue("string")}]),sender:W})]),p=L?0:D.createAccountFee,k=B({feePerUnit:D.bandwidthFee,requiredBandwidth:xw,resources:O.bandwidth}),I=Math.max(0,O.energy.total-O.energy.used),v=R>I?(R-I)*D.energyFee:0;return mn.from({chain:Qn.Tron,fromBaseDecimal:AA.TRON,value:p+k+v})}async function G({assetValue:l,recipient:M,sender:W}){let Z=await t();try{let D=W?W:Z?await C():void 0;if(!D)return l.isGasAsset?mn.from({chain:Qn.Tron,value:0.1}):mn.from({chain:Qn.Tron,value:15});return l.isGasAsset?U({recipient:M,senderAddress:D}):q({assetValue:l,recipient:M,senderAddress:D})}catch(D){throw _A({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Hn("toolbox_fee_estimation_failed",{chain:Qn.Tron,error:D})}}async function w({recipient:l,assetValue:M,memo:W,sender:Z,expiration:D}){if(!Rn(l)||!Rn(Z))throw new Hn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(M.isGasAsset){let O=await fA({amount:M.getBaseValue("number"),from:Z,to:l});return UA({expiration:D,memo:W,transaction:O})}let L=M.address;if(!L)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:M.toString()});return A({contractAddress:L,expiration:D,functionSelector:"transfer(address,uint256)",memo:W,parameter:so([{type:"address",value:l},{type:"uint256",value:M.getBaseValue("string")}]),sender:Z})}async function Q(l){ao(l);let M=await t();if(!M)throw new Hn("toolbox_tron_no_signer");return M.signTransaction(l)}async function N(l){let M=await Q(l);return uy(M)}function Y({assetAddress:l,spenderAddress:M,from:W}){return CA({assetAddress:l,owner:W,spender:M})}async function z({assetAddress:l,spenderAddress:M,from:W,amount:Z}){let D=await Y({assetAddress:l,from:W,spenderAddress:M});if(!Z)return D>0n;return D>=BigInt(Z)}async function J({assetAddress:l,spenderAddress:M,amount:W,from:Z}){if(!Rn(l)||!Rn(M))throw new Hn("toolbox_tron_approve_failed");let D=await t();if(!D)throw new Hn("toolbox_tron_no_signer");let L=Z||await C(),O=W!==void 0?BigInt(W).toString():Fw;try{let R=await A({contractAddress:l,functionSelector:"approve(address,uint256)",parameter:so([{type:"address",value:M},{type:"uint256",value:O}]),sender:L}),p=await D.signTransaction(R),k=await uy(p);if(!k)throw new Hn("toolbox_tron_approve_failed");return k}catch(R){if(R instanceof Hn)throw R;throw new Hn("toolbox_tron_approve_failed",{error:R})}}return{approve:J,broadcastTransaction:uy,createTransaction:w,estimateTransactionFee:G,getAddress:C,getApprovedAmount:Y,getBalance:_,getRpcUrl:()=>zw(Qn.Tron),isApproved:z,signAndBroadcastTransaction:N,signTransaction:Q,transfer:X,validateAddress:Rn}}var lA,Ow=268,Rw=65000,xw=345,L0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Fw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var MA=S(()=>{jH();HA();G0();lA=Rn});var Q0={};nn(Q0,{validateTronAddress:()=>lA,getTronToolbox:()=>BA,getTronPrivateKeyFromMnemonic:()=>WA});var Z0=S(()=>{MA()});import{AssetValue as Py,Chain as Co,derivationPathToString as pw,getChainConfig as kw,getRPCUrl as uw,NetworkDerivationPath as Pw,SwapKitError as Ho}from"@swapkit/helpers";import{match as Iw,P as $w}from"ts-pattern";function TT(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return Ew.test(n)}async function bw(n){if(!TT(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function LA(n={}){let y,T=n.derivationPath||Pw[Co.Stellar],o=pw(T.slice(0,3));async function f({phrase:w,path:Q}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Y}=await import("@scure/bip39"),{Keypair:z}=await import("@stellar/stellar-sdk"),J=Y(w),M=N.fromMasterSeed(J).derive(Q,!0);return z.fromRawEd25519Seed(Buffer.from(M.privateKey))}async function t(){if(y)return y;let w=Iw(n).with({phrase:$w.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!w)throw new Ho("toolbox_stellar_no_signer");return y=await f({path:o,phrase:w}),y}async function C(){let{Horizon:w}=await import("@stellar/stellar-sdk"),Q=await uw(Co.Stellar);return new w.Server(Q)}async function H(){try{return(await t()).publicKey()}catch{return""}}async function A(w){let Q=w||await H();if(!Q)throw new Ho("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(Q)).balances.map((z)=>{if(z.asset_type==="native")return Py.from({chain:Co.Stellar,value:z.balance});let J="asset_code"in z?z.asset_code:"",l="asset_issuer"in z?z.asset_issuer:"";return Py.from({asset:`${Co.Stellar}.${J}-${l}`,asyncTokenLookup:!1,value:z.balance})})}catch{return[Py.from({chain:Co.Stellar,value:0})]}}async function _({recipient:w,assetValue:Q,memo:N,sender:Y}){if(N){if(new TextEncoder().encode(N).length>28)throw new Ho("helpers_invalid_memo_type")}if(!await bw(w))throw new Ho("core_transaction_invalid_recipient_address");let J=Y||await H();if(!J)throw new Ho("toolbox_stellar_no_signer");let{Asset:l,Memo:M,Networks:W,Operation:Z,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),L=await C(),O=await L.fetchBaseFee(),R=await L.loadAccount(J),p=new D(R,{fee:String(O),networkPassphrase:W.PUBLIC});if(Q.isGasAsset)try{await L.loadAccount(w),p.addOperation(Z.payment({amount:Q.getValue("string"),asset:l.native(),destination:w}))}catch{p.addOperation(Z.createAccount({destination:w,startingBalance:Q.getValue("string")}))}else p.addOperation(Z.payment({amount:Q.getValue("string"),asset:new l(Q.symbol,Q.address),destination:w}));if(N)p.addMemo(M.text(N));return p.setTimeout(30).build()}async function X(w){let{TransactionBuilder:Q,Networks:N}=await import("@stellar/stellar-sdk"),Y=await t(),z=Q.fromXDR(w.toXDR(),N.PUBLIC);return z.sign(Y),z}async function B(w){try{let Q=await C(),{hash:N}=await Q.submitTransaction(w);return N}catch(Q){throw new Ho("toolbox_stellar_broadcast_error",Q)}}async function U({recipient:w,assetValue:Q,memo:N}){let Y=await t(),z=Y.publicKey(),J=await _({assetValue:Q,memo:N,recipient:w,sender:z});J.sign(Y);try{return(await(await C()).submitTransaction(J)).hash}catch(l){if(l instanceof Ho)throw l;throw new Ho("toolbox_stellar_transaction_failed",l)}}async function q(w){let Q=await X(w);return B(Q)}async function G(){let{baseDecimal:w}=kw(Co.Stellar);try{let Y=(await(await C()).feeStats()).fee_charged.p50;return Py.from({chain:Co.Stellar,fromBaseDecimal:w,value:Y})}catch{return Py.from({chain:Co.Stellar,fromBaseDecimal:w,value:"100"})}}return{broadcastTransaction:B,createTransaction:_,estimateTransactionFee:G,getAddress:H,getBalance:A,signAndBroadcastTransaction:q,signTransaction:X,transfer:U,validateAddress:TT}}var Ew;var QA=S(()=>{Ew=/^G[A-Z2-7]{55}$/});var tT={};nn(tT,{validateStellarAddress:()=>TT,getStellarToolbox:()=>LA});var CT=S(()=>{QA()});import{AssetValue as vw,Chain as $,CosmosChains as J0,EVMChains as Y0,FeeOption as Vw,SwapKitError as Kw,UTXOChains as JA}from"@swapkit/helpers";async function HX(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => ($y(),Iy)),{validateEVMAddress:T}=await Promise.resolve().then(() => (kT(),CC)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (bT(),ET)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Xf(),lf)),{validateHyperCoreAddress:t}=await Promise.resolve().then(() => (Xt(),lt)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (Qt(),Lt)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Nf(),Yf)),{validateSuiAddress:A}=await Promise.resolve().then(() => (Of(),Df)),{validateTonAddress:_}=await Promise.resolve().then(() => (Ff(),xf)),{getUTXOAddressValidator:X}=await Promise.resolve().then(() => (ct(),jt)),{validateNearAddress:B}=await Promise.resolve().then(() => (C0(),t0)),{validateRadixAddress:U}=await Promise.resolve().then(() => (_0(),A0)),{validateRippleAddress:q}=await Promise.resolve().then(() => (w0(),U0)),{validateTronAddress:G}=await Promise.resolve().then(() => (Z0(),Q0)),{validateStellarAddress:w}=await Promise.resolve().then(() => (CT(),tT));return function({address:N,chain:Y}){return n(Y).with(...Y0,()=>T(N)).with(...JA,(J)=>{return X(J)(N)}).with(...J0,(J)=>{return f(J)(N)}).with($.Aptos,()=>y(N)).with($.Radix,()=>U(N)).with($.HyperCore,()=>t(N)).with($.Near,()=>B(N)).with($.Ripple,()=>q(N)).with($.Solana,()=>C(N)).with($.Stellar,()=>w(N)).with($.Starknet,()=>H(N)).with($.Sui,()=>A(N)).with($.Ton,()=>_(N)).with($.Tron,()=>G(N)).with($.Cardano,()=>o(N)).otherwise(()=>!1)}}function AX(n){return async function(T){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...Y0,async(f)=>{let t=await ZA(f),C=await t.createTransaction(T),H="feeOptionKey"in T?T.feeOptionKey:Vw.Fast;return t.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await ZA(f)).estimateTransactionFee(T)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => ($y(),Iy));return f().estimateTransactionFee(T)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Nf(),Yf));return(await f()).estimateTransactionFee(T)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (CT(),tT));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Of(),Df));return f().estimateTransactionFee(T)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Ff(),xf));return f().estimateTransactionFee(T)}).with(...J0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Xf(),lf));return f(T)}).otherwise(async()=>vw.from({chain:n}))}}async function ZA(n,y){let{match:T}=await import("ts-pattern");return T(n).returnType().with(...Y0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (pT(),fC));return await o(n,y)}).with(...JA,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (ct(),jt));return o(n,y)}).with(...J0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Xf(),lf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => ($y(),Iy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (Xt(),lt));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (_0(),A0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (w0(),U0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (Qt(),Lt));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (CT(),tT));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Nf(),Yf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Of(),Df));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (Z0(),Q0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (C0(),t0));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (bT(),ET));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (Ff(),xf));return o(y)}).otherwise(()=>{throw new Kw("toolbox_not_supported",{chain:n})})}export{ZA as getToolbox,AX as getFeeEstimator,HX as getAddressValidator};