@swapkit/toolboxes 4.15.5 → 4.15.7

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 zA=Object.defineProperty;var DA=(n)=>n;function OA(n,y){this[n]=DA.bind(null,y)}var nn=(n,y)=>{for(var T in y)zA(n,T,{get:y[T],enumerable:!0,configurable:!0,set:OA.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 RA,getChainConfig as AT,getRPCUrlSync as N0,NetworkDerivationPath as xA,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 FA.test(y)}function D0({derivationPath:n,provider:y,...T}={}){let o,f=RA(n||xA[$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,FA;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"},FA=/^[0-9a-fA-F]+$/});var Iy={};nn(Iy,{validateAptosAddress:()=>Jo,getAptosToolbox:()=>D0,createAptosExtensionTransfer:()=>O0});var $y=S(()=>{R0()});import{AssetValue as x0,getChainConfig as SA}from"@swapkit/helpers";import{SwapKitApi as pA}from"@swapkit/helpers/api";function F0(){function n(){let y=Date.now(),T=UT||y;return UT=T,y>UT?y:T+1}return kA+n().toString(36)}function qn(n){return async function(T,o=!0){let f=await pA.getChainBalance({address:T,chain:n,scamFilter:o}),{baseDecimal:t}=SA(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 kA,UT=0;var En=S(()=>{kA=typeof process<"u"&&process.pid?process.pid.toString(36):""});function oy(n){return{getBalance:qn(n)}}function uA(n){return n}var Ey=S(()=>{En()});import{Chain as h,getChainConfig as lT,getRPCUrl as PA,SwapKitError as by}from"@swapkit/helpers";import{getAddress as p0,Interface as IA,JsonRpcProvider as $A}from"ethers";import{match as k0}from"ts-pattern";function u0(n){return new $A(n)}async function XT(n,y){return u0(y||await PA(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?{...EA({chain:n}),blockExplorerUrls:[y],chainId:T,rpcUrls:o}:void 0}}function BT(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function EA({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})=>!bA(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 vA({chain:n,abi:y,data:T,to:o}){let t=new IA(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),bA=(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 KA,FeeOption as b,isGasAsset as jA,SwapKitError as i,SwapKitNumber as vy}from"@swapkit/helpers";import{erc20ABI as Ty}from"@swapkit/helpers/contracts";import{BrowserProvider as cA,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:gA({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:eA({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:aA({chain:n,provider:y,signer:T}),estimateGasPrices:Uo({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:n_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return T?T.getAddress():void 0},getBalance:oy(n).getBalance,getNetworkParams:WT(n),isApproved:rA({chain:n,provider:y}),sendTransaction:h0({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),signAuthorization:sA({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:dA({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 cA}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&&iA.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=mA.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 rA({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 gA({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 dA({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 aA({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 sA({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(jA(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 eA({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 n_({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,iA,hA,YT,mA,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");iA=["payable","nonpayable"];hA=KA.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),YT={...hA,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},mA=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as o_}from"@swapkit/helpers";import{HDNodeWallet as y_}from"ethers";import{match as f_,P as m0}from"ts-pattern";function cy(n){let y=g(r.Ethereum)(n);async function T(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",t="aggregate",C=o_.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=f_(o).with({phrase:m0.string},({phrase:H})=>y_.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 C_,HDNodeWallet as H_}from"ethers";import{match as A_,P as a0}from"ts-pattern";function xT(n){return new C_(__,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 U_(n){return async function(T){let o=await nC(n)(T)??0n,f=await oC(n)(T);return o+f}}function w_(n){return async function(T){let o=xT(n),f=await e0(n)(T);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function q_(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=A_(y).with({phrase:a0.string},({phrase:t})=>H_.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:q_(n),estimateL1Gas:w_(n),estimateL1GasCost:nC(n),estimateL2GasCost:oC(n),estimateTotalGasCost:U_(n),getBalance:oy(t_.Optimism).getBalance,getL1GasPrice:f}}var __="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 G_}from"ts-pattern";function ST(n,y){return G_(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:()=>vA,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:()=>uA,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 l_}from"@scure/base";import{mnemonicToSeed as X_}from"@scure/bip39";import{Bip32PrivateKey as W_}from"@stricahq/bip32ed25519";import{Transaction as B_,types as IT,address as M_,crypto as uT,utils as HC}from"@stricahq/typhonjs";import{AssetValue as Ro,Chain as wo,getChainConfig as L_,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 Z_(){return(await $T("/blocks/latest")).slot}async function J_(){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 Y_(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 N_(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}=L_(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=l_.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function z_(n,y=0,T=0){let o=await X_(n,""),t=(await W_.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 M_.BaseAddress(Q_,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 D_(n){let y,T,o;async function f(){if(!o)o=await J_();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 z_(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 N_(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),Z_(),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=Y_(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 B_({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",Q_,PT=2147483648,AC=0;var lC=S(()=>{Q_=IT.NetworkId.MAINNET});var ET={};nn(ET,{validateCardanoAddress:()=>GC,getCardanoToolbox:()=>D_});var bT=S(()=>{lC()});import{base64 as Uf,bech32 as _f}from"@scure/base";import{SwapKitError as O_}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 R_(n){return Uf.encode(n)}function x_(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new O_("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 F_,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 F_(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:S_(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)},S_=(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})}},p_,iT=(n,y)=>{let T=p_[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"};p_={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 k_}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===k_.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 u_,Chain as wf,getChainConfig as JC,getRPCUrl as YC,SwapKitError as P_}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=u_.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 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 P_("toolbox_cosmos_account_not_found",{sender:y});return o};var OC=S(()=>{Gy();hT();I_=vn(wf.THORChain).gas,$_=vn(wf.Maya).gas});var RC=()=>{};var xC=S(()=>{RC()});var dT=S(()=>{vT();OC();hT();xC()});import{stringToPath as E_}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as b_}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 v_,derivationPathToString as SC,FeeOption as ot,getChainConfig as V_,getRPCUrl as Xy,NetworkDerivationPath as K_,SwapKitError as xo,SwapKitNumber as sT,updateDerivationPath as j_}from"@swapkit/helpers";import{SwapKitApi as $C}from"@swapkit/helpers/api";import{match as c_,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:`${v_[T.chain]}/${T.index}`;return await b_.fromMnemonic(n,{hdPaths:[E_(o)],prefix:y})}async function i_({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:j_(K_[n],{index:o})),t;async function C(){if(t)return t;return t=await c_(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||r_((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:d_(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 h_(n,y){try{let o=(await $C.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function m_({assetValue:{chain:n}}){return nt.from({chain:n,value:g_(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 r_(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function g_(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 d_(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 a_,CosmosChainPrefixes as s_,derivationPathToString as e_,FeeOption as Tt,getChainConfig as n5,getRPCUrl as iC,NetworkDerivationPath as o5,RequestClient as y5,SKConfig as vC,SwapKitError as VC,SwapKitNumber as KC,updateDerivationPath as f5}from"@swapkit/helpers";import{match as jC,P as cC}from"ts-pattern";function T5({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 C5(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 H5({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 A5(n){return lo.decode(n)}async function _5({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===a_.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":""}${s_[n]}`,H="index"in y?y.index||0:0,A="derivationPath"in y&&y.derivationPath?y.derivationPath:f5(o5[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 y5.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:n5(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:H5({chain:n,prefix:C}),buildAminoMsg:qf,buildEncodedTxBody:ly,convertToSignable:dn,createDefaultAminoTypes:()=>gn(n),createDefaultRegistry:Go,createMultisig:hC,createTransaction:gT,deposit:U,getFees:B,importSignature:A5,parseAminoMessageForDirectSigning:an,pubkeyToAddress:async(q)=>{let{pubkeyToAddress:G}=(await import("@cosmjs/amino")).default;return G(q,C)},secp256k1HdWalletFromMnemonic:T5({derivationPath:e_(A),prefix:C}),signMultisigTx:C5(n),signWithPrivateKey:_5,transfer:U}}var Ct=S(()=>{dT();Gy();Gf()});import{Chain as By,SwapKitError as U5}from"@swapkit/helpers";var w5=(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 U5("toolbox_cosmos_not_supported",{chain:n})}};var mC=S(()=>{Gf();Ct();Gf();Ct()});var lf={};nn(lf,{verifySignature:()=>EC,transferMsgAmino:()=>mT,toBase64:()=>R_,parseAminoMessageForDirectSigning:()=>an,getSignerFromPrivateKey:()=>i_,getSignerFromPhrase:()=>yt,getMsgSendDenom:()=>rn,getFeeRateFromSwapKit:()=>h_,getDenomWithChain:()=>qy,getDefaultChainFee:()=>vn,getCosmosToolbox:()=>w5,getCosmosAddressValidator:()=>bC,getAssetFromDenom:()=>iT,fromBase64:()=>x_,fetchFeeRateFromSwapKit:()=>ft,estimateTransactionFee:()=>m_,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:()=>I_,MAYA_GAS_VALUE:()=>$_,DEFAULT_NOBLE_FEE_MAINNET:()=>LC,DEFAULT_KUJI_FEE_MAINNET:()=>MC,DEFAULT_COSMOS_FEE_MAINNET:()=>BC});var Xf=S(()=>{dT();mC();Gy()});function q5({builder:n,grouping:y="na",orders:T}){return{builder:n,grouping:y,orders:T,type:"order"}}function G5({cancels:n}){return{cancels:n,type:"cancel"}}function l5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function X5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function W5({modifies:n}){return{modifies:n,type:"batchModify"}}function B5({asset:n,isCross:y,leverage:T}){return{asset:n,isCross:y,leverage:T,type:"updateLeverage"}}function M5({asset:n,isBuy:y,ntli:T}){return{asset:n,isBuy:y,ntli:T,type:"updateIsolatedMargin"}}function L5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function Q5({time:n}){return{time:n,type:"scheduleCancel"}}function Z5({amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function J5({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 Y5({agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f,type:"approveAgent"}}function N5({builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function z5({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 D5,Signature as O5}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 k5(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=p5.encode(n);if(y.length<32)return ln(new Uint8Array([160+y.length]),y);return ln(k5(217,0,y.length),y)}function u5(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 P5(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 u5(n);if(typeof n==="object")return P5(n);throw new Ht("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function I5(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:R5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...x5.Agent]}}}function eC(n){let y=S5[n.type],T=F5[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=O5.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]),I5(o.toLowerCase())):new Uint8Array([0]),H=typeof T==="number"?ln(new Uint8Array([0]),sn(BigInt(T),8)):new Uint8Array;return D5(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",R5,x5,dC="Mainnet",F5,S5,p5;var f1=S(()=>{R5={chainId:1337,name:"Exchange",verifyingContract:gC,version:"1"},x5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},F5={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"},p5=new TextEncoder});import{AssetValue as wt,Chain as $5,derivationPathToString as E5,getChainConfig as C1,getRPCUrl as b5,NetworkDerivationPath as v5,RequestClient as Fo,SwapKitError as So,updateDerivationPath as V5}from"@swapkit/helpers";import{HDNodeWallet as K5}from"ethers";import{match as j5,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 d5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function a5({user:n}){return Xo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function s5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function e5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function n2({oidOrCloid:n,user:y}){return Xo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function o2({aggregateByTime:n,user:y}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function y2({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=c5[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 f2(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 b5(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 T2(n){let y=g5[n.type],{type:T,...o}=n,f=r5[T];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:m5,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:i5,signatureChainId:o||h5,time:_,token:X,type:"spotSend"};return{action:B,endpoint:H,nonce:_,typedData:T2(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 C2(n){let y=qn(kn),T=n&&"index"in n?n.index||0:0,o=E5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:V5(v5[kn],{index:T})),f,t=!1;function C(){if(t)return f;return f=j5(n).with({phrase:_t.string},({phrase:U})=>{return K5.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 f2(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:d5,frontendOpenOrders:e5,openOrders:s5,orderStatus:n2,spotClearinghouse:a5,userFills:o2,userFillsByTime:y2},signTransaction:A,transfer:X,validateAddress:Gt}}var kn,H1,c5,i5="Mainnet",h5="0xa4b1",m5="0x0000000000000000000000000000000000000000",r5,g5;var U1=S(()=>{kT();En();f1();kn=$5.HyperCore,{baseDecimal:H1}=C1(kn),c5={HYPE:H1,USDC:6,USDT:6},r5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},g5={spotSend:"HyperliquidTransaction:SpotSend"}});var lt={};nn(lt,{validateHyperCoreAddress:()=>Gt,getHyperCoreToolbox:()=>C2,createUserSignedActionRequest:()=>_1,createTransaction:()=>Ut,createL1ActionRequest:()=>A1,buildUsdClassTransferAction:()=>Z5,buildUpdateLeverageAction:()=>B5,buildUpdateIsolatedMarginAction:()=>M5,buildTopUpIsolatedOnlyMarginAction:()=>L5,buildTokenDelegateAction:()=>z5,buildSendAssetAction:()=>J5,buildScheduleCancelAction:()=>Q5,buildOrderAction:()=>q5,buildModifyAction:()=>X5,buildCancelByCloidAction:()=>l5,buildCancelAction:()=>G5,buildBatchModifyAction:()=>W5,buildApproveBuilderFeeAction:()=>N5,buildApproveAgentAction:()=>Y5});var Xt=S(()=>{U1()});import{PublicKey as en}from"@solana/web3.js";import{AssetValue as Bf,Chain as jn,DerivationPath as H2,derivationPathToString as A2,getChainConfig as l1,getRPCUrl as _2,NetworkDerivationPath as U2,SwapKitError as po,updateDerivationPath as w2}from"@swapkit/helpers";import{match as q2,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 G2(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 l2(n){let y=n&&"index"in n?n.index||0:0,T=A2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:w2(U2[jn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await q2(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:M2,estimateTransactionFee:X2(Kn),getAddress:t,getAddressFromPubKey:G1,getBalance:qn(jn.Solana),getBalanceFromRPC:G2,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:L2(Kn,f),validateAddress:Bt}}function X2(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 _2(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 W2(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 B2({amount:y.getBaseValue("number"),connection:t,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:T,tokenAddress:y.address});return}}async function B2({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 W2(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 M2({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 L2(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=H2.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:()=>l2,fetchTokenMetaData:()=>X1,createKeysForPath:()=>Wt});var Qt=S(()=>{W1()});import{AssetValue as Lf,Chain as Qf,DerivationPath as M1,derivationPathToString as Q2,getChainConfig as Z2,getRPCUrl as Yt,NetworkDerivationPath as J2,SwapKitError as Ln,updateDerivationPath as Y2}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=Q2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:Y2(J2[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}=Z2(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 N2}from"@mysten/sui/utils";import{AssetValue as uo,Chain as zf,getChainConfig as z2,SwapKitError as Nn}from"@swapkit/helpers";import{match as D2,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 O2(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 N2(n)}catch{return!1}}function J1(n){return"signWithIntent"in n}function R2({provider:n,...y}={}){let T;async function o(){if(T)return T;return T=await D2(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}=z2(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=O2(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:()=>R2});var Of=S(()=>{z1()});import{getHttpEndpoint as x2}from"@orbs-network/ton-access";import{AssetValue as F2,Chain as Ly,getChainConfig as S2,getRPCUrl as p2,SwapKitError as My,SwapKitNumber as k2}from"@swapkit/helpers";import{mnemonicToWalletKey as u2}from"@ton/crypto";import{Address as cn,beginCell as Dt,Cell as D1,external as P2,internal as I2,JettonMaster as $2,loadStateInit as E2,SendMode as O1,storeMessage as b2,TonClient as v2,toNano as S1,WalletContractV4 as V2}from"@ton/ton";import{match as R1,P as Ot}from"ts-pattern";async function h2(){let n=Date.now();if(Rf&&n-F1<i2)return Rf;try{return Rf=await x2(),F1=n,Rf}catch{return p2(Ly.Ton)}}function m2(n={}){let y,T,o;async function f(){if(!y){let J=n.provider??await h2();y=new v2({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})=>u2(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:c2.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?E2(D1.fromBase64(l.stateInit).asSlice()):void 0,Z=cn.parse(l.address),D=cn.isFriendly(l.address)?cn.parseFriendly(l.address).isBounceable:!0;return I2({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=P2({body:O,init:D?void 0:M.init,to:M.address});return Dt().store(b2(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}=S2(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=F2.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(k2.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($2.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=j2,forwardPayload:Z}){let D=Dt().storeUint(K2,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 K2=260734629,j2,c2,x1,i2=60000,Rf,F1=0;var k1=S(()=>{En();j2=S1("0.01"),c2=S1("0.05"),x1=O1.PAY_GAS_SEPARATELY+O1.IGNORE_ERRORS});var xf={};nn(xf,{validateTonAddress:()=>p1,getTONToolbox:()=>m2});var Ff=S(()=>{k1()});import{NetworkDerivationPath as r2}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)??r2[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 g2,RequestClient as Sf,SKConfig as d2,SwapKitError as un,warnOnce as a2}from"@swapkit/helpers";import{NETWORKS as Io}from"@swapkit/utxo-signer";async function s2({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 g2(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/${e2(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 e2(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 nU(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 oU({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 fU({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<yU);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 TU({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 TU({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 CU({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=d2.get("apiKeys").blockchair||"";return a2({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(T)=>s2({chain:n,txHash:T}),getAddressData:(T)=>$1({address:T,apiKey:y,chain:n}),getBalance:(T)=>oU({address:T,apiKey:y,chain:n}),getRawTx:(T)=>E1({apiKey:y,chain:n,txHash:T}),getSuggestedTxFee:()=>nU(n),getTransactionDetails:(T)=>fU({apiKey:y,chain:n,txHash:T}),getUtxos:(T)=>CU({...T,apiKey:y,chain:n})}}function HU(n){return n}function AU(){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 yU=4294967294;var v1=S(()=>{En()});import{CashAddrType as kf,decodeCashAddr as _U,encodeCashAddr as UU}from"@swapkit/utxo-signer";function GU(n,y,T){return UU({hash:T,prefix:n,type:wU[y]})}function lU(n){let y=_U(n),T=qU[y.type];if(!T)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:T}}var wU,qU,Rt;var V1=S(()=>{wU={P2PKH:kf.P2PKH,P2SH:kf.P2SH},qU={[kf.P2PKH]:"P2PKH",[kf.P2SH]:"P2SH"};Rt={decode:lU,encode:GU}});import{sha256 as XU}from"@noble/hashes/sha2.js";import{createBase58check as WU}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 LU(y)}function Jy(n){let y=uf(n);return QU(y)}function uf(n){try{let y=BU(n);if(y)return y}catch{}try{let y=MU(n);if(y)return y}catch{}throw new j1("toolbox_utxo_invalid_address",{address:n})}function BU(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 MU(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 LU(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 QU(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=WU(XU);((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 ZU}from"@swapkit/helpers";import{Script as JU}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return JU.encode(["RETURN",y])}var YU=1000,If=10,$f=2,h1=10,NU=41,zU=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 ZU("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 NU+zU},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 DU}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 DU("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 OU,ZCASH_NETWORK as RU}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=OU(RU).decode(n);return T.type==="pkh"||T.type==="sh"}catch{return!1}}var Dy=S(()=>{Eo()});import{secp256k1 as xU}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 FU,updateDerivationPath as SU,warnOnce as pU}from"@swapkit/helpers";import{Address as kU,BCHSigHash as Pt,CashAddrPrefix as uU,CashAddrType as PU,encodeCashAddr as IU,NETWORKS as vo,p2pkh as g1,p2wpkh as $U,RBF_SEQUENCE as EU,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 kU(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 bU({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 xU.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 IU({hash:t.hash,prefix:uU.MAINNET,type:PU.P2PKH}).replace(/^bitcoincash:/,"")}let f=!Ry.includes(y)?$U(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=bU({derivationPath:C,network:t,phrase:n,seed:f}),A=d1(H);return{privateKey:H,publicKey:A}}function vU(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?EU: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 KU(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 jU(n){return async function(T){let{fee:o}=await TH(T);return bf.from({chain:n,value:FU.fromBigInt(BigInt(o),8).getValue("string")})}}function cU({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 iU(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"});pU({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:SU(s1[n],{index:o}),C=Oy(t),H=T?cU({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:NA,witnessUtxo:HT})=>({hash:wn,index:d,txHex:NA,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:KU(n),estimateTransactionFee:jU(n),getAddress:X,getAddressFromKeys:Et(n),getBalance:qn(n),getExtendedPublicKey:q,getExtendedPublicKeyInfo:G,getFeeRates:()=>Ko(n),getInputsOutputsFee:TH,getNetworkForChain:()=>An(n),getPrivateKeyFromMnemonic:(W)=>vU(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:iU(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 hU}from"@scure/base";import{Chain as mU,derivationPathToString as rU,FeeOption as gU,NetworkDerivationPath as dU,SwapKitError as to,updateDerivationPath as aU}from"@swapkit/helpers";import{BCHSigHash as sU,CashAddrPrefix as tH,CashAddrType as CH,encodeCashAddr as HH,NETWORKS as eU,p2pkh as AH,Transaction as _H}from"@swapkit/utxo-signer";function Fy(n){return Qo(Jy(n))}function n8(n){let y=An(In);function T(f){return f.sign(n.privateKey,[sU.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=rU("derivationPath"in n&&n.derivationPath?n.derivationPath:aU(dU[In],{index:T})),f=y?Vo({chain:In,derivationPath:o,phrase:y}):void 0,t=f?n8(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:y8,createTransaction:UH,getAddress:C,getAddressFromKeys:f8,getBalance:B,getFeeRates:A,stripPrefix:Qo,stripToCashAddress:Fy,transfer:o8({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 o8({broadcastTx:n,getFeeRates:y,signer:T}){return async function({recipient:f,assetValue:t,feeOptionKey:C=gU.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(hU.encode(B.extract()))}}async function y8({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 f8(n){let y=eU.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=mU.BitcoinCash});import{createBase58check as T8,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 C8,FeeOption as H8,NetworkDerivationPath as A8,SKConfig as XH,SwapKitError as co,updateDerivationPath as _8}from"@swapkit/helpers";import{Address as U8,createZcashTransaction as w8,OutScript as q8,PCZT as G8,utils as WH,WIF as l8,ZCASH_NETWORK as X8,ZCASH_TEST_NETWORK as W8,ZcashConsensusBranchId as B8,ZcashSigHash as wH,ZcashVersionGroupId as M8}from"@swapkit/utxo-signer";import{match as L8,P as vt}from"ts-pattern";function BH(){let{isStagenet:n}=XH.get("envs");return n?W8:X8}function Z8(n){return Q8.encode(n)}function J8({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=Z8(X);return{getAddress:()=>Promise.resolve(B),signTransaction:(U)=>{if(U instanceof G8)return U.signAllInputs(t,C,wH.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(t,C,wH.ALL),Promise.resolve(U)}}}function Y8({inputs:n,outputs:y,tx:T,sender:o,compiledMemo:f}){let t=BH();for(let C of n){let H=U8(t).decode(o),A=q8.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=w8({consensusBranchId:B8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:M8.SAPLING}),{tx:q,inputs:G}=Y8({compiledMemo:H,inputs:X,outputs:B,sender:t,tx:U});return{inputs:G,outputs:B,tx:q}}function Vt(n){let y=L8(n).with({signer:vt.not(vt.nullish)},({signer:A})=>A).with({phrase:vt.string},({phrase:A,derivationPath:_,index:X=0})=>{let B=_||A8[Kf.Zcash]||[44,133,0,0,0],U=_8(B,{index:X}),q=C8(U);return J8({derivationPath:q,phrase:A})}).otherwise(()=>{return}),T=To({chain:Kf.Zcash,signer:y});async function o({recipient:A,assetValue:_,feeOptionKey:X=H8.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 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:qH,getPrivateKeyFromMnemonic:t,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:bo}}var Q8;var Kt=S(()=>{Eo();jo();Dy();Q8=T8(WH.sha256)});import{hex as N8}from"@scure/base";import{HDKey as z8}from"@scure/bip32";import{derivationPathToString as D8}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=z8.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:D8(w),pubkey:N8.encode(G.publicKey)})}}return _}var LH=S(()=>{Qy();jo()});import{Chain as io,SwapKitError as O8}from"@swapkit/helpers";function R8(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 O8("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:()=>R8,getUtxoNetwork:()=>AU,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:()=>HU,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:()=>YU,InputSizes:()=>Pf});var ct=S(()=>{jo();Qy();Eo();QH();Vf();Kt()});import{KeyPairSigner as x8}from"@near-js/signers";import{derivationPathToString as F8,SwapKitError as S8}from"@swapkit/helpers";import*as ZH from"near-seed-phrase";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{KeyPair:y}=await import("@near-js/crypto"),T=n.index||0,o=n.derivationPath?F8(n.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:f}=ZH.parseSeedPhrase(n.phrase,o),t=y.fromString(f);return YH(t)}async function it(n){let{KeyPair:y}=await import("@near-js/crypto"),T=y.fromString(n);return YH(T)}function YH(n){return new JH(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 JH;var ht=S(()=>{JH=class JH extends x8{#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 p8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function k8(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 u8}from"@near-js/providers";import{AssetValue as f0,Chain as ho,getRPCUrl as NH,SwapKitError as Xn}from"@swapkit/helpers";import{match as zH,P as DH}from"ts-pattern";function P8(n){let y;async function T(){if(y)return y;return y=await zH(n).with({phrase:DH.string},async(L)=>{return await jf(L)}).with({signer:DH.any},({signer:L})=>L).otherwise(()=>{return}),y}async function o(){let L=await NH(ho.Near);return new u8({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 NH(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 zH(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 OH=S(()=>{T0()});var t0={};nn(t0,{validateNearAddress:()=>Sy,tgasToGas:()=>p8,isSimpleTransfer:()=>mt,isCustomEstimator:()=>st,isContractDeployment:()=>at,isContractCall:()=>rt,isBatchTransaction:()=>gt,isAccountCreation:()=>dt,getNearToolbox:()=>P8,getNearSignerFromPrivateKey:()=>it,getNearSignerFromPhrase:()=>jf,getFullAccessPublicKey:()=>cf,getContractMethodGas:()=>n0,gasToTGas:()=>k8,estimateBatchGas:()=>et,createNearContract:()=>y0,GAS_COSTS:()=>Cn});var C0=S(()=>{ht();o0();T0();OH()});var A0={};nn(A0,{validateRadixAddress:()=>xH,getRadixToolbox:()=>c8});import{GatewayApiClient as I8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as $8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as RH,Chain as H0,SKConfig as E8,SwapKitError as b8}from"@swapkit/helpers";function xH(n){return n.startsWith("account_rdx1")&&n.length===66}function v8({networkApi:n}){return async function(T){let o=await V8({address:T,networkApi:n}),f=await K8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[RH.from({chain:H0.Radix}),...f];return f}}async function V8({address:n,networkApi:y}){let T=!0,o,f=[],t=await j8(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 K8({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=RH.from({asset:X.symbol!==H0.Radix?`${H0.Radix}.${X.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});T.push(B)}}return T}async function j8(n){return(await n.status.getCurrent()).ledger_state.state_version}function c8({dappConfig:n}={}){let y=n||E8.get("integrations").radix,T=$8({...y,networkId:y.network?.networkId||1}),o=I8.initialize(T.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:v8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new b8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:xH}}var _0=()=>{};import{SwapKitError as i8}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 i8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function h8(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 m8,warnOnce as r8}from"@swapkit/helpers";async function g8(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 m8.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){r8({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 d8(n){return rf.filter((y)=>y.issuer===n)}function a8(n,y){let T=mo(n);return rf.some((o)=>mo(o.currency)===T&&o.issuer===y)}var rf;var FH=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:()=>$H,normalizeCurrency:()=>mo,isKnownToken:()=>a8,isHexCurrency:()=>hf,hexToCurrency:()=>h8,hashes:()=>Tw,getXrplTokenInfo:()=>g8,getRippleToolbox:()=>fw,getKnownTokensByIssuer:()=>d8,formatXrplTokenIdentifier:()=>EH,currencyToHex:()=>py,XRPL_TOKEN_ERROR_CODES:()=>df,XRPL_KNOWN_TOKENS:()=>rf});import{AssetValue as gf,Chain as On,getChainConfig as SH,getRPCUrl as s8,SwapKitError as _n}from"@swapkit/helpers";import{match as pH,P as kH}from"ts-pattern";import{Client as e8,isValidAddress as IH,Wallet as nw,xrpToDrops as ow}from"xrpl";import{hashes as Tw}from"xrpl";function $H(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(!IH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function EH(n,y){return`${On.Ripple}.${n}-${y}`}function yw(n){if(n.isGasAsset)return ow(n.getValue("string"));let y=$H(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 PH(n){let y=nw.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(T)=>Promise.resolve(y.sign(T))}}function af(n){return IH(n)}function fw(n={}){let y=pH(n).with({phrase:kH.string},({phrase:Y})=>PH(Y)).with({signer:kH.any},({signer:Y})=>Y).otherwise(()=>{return}),T;async function o(){let Y=await s8(On.Ripple);if(!Y)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let z=new e8(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}=SH(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=EH(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===uH.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}=SH(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===uH.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=yw(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=pH(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:PH,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 uH,df;var w0=S(()=>{mf();mf();FH();uH={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 bH,hexToBytes as vH}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 _w(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===KH){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:KH})}else throw new ro("toolbox_tron_transaction_creation_failed")}return y}function Uw(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 jH(n,y){if(!n||n.length%2!==0)throw new ro("toolbox_tron_transaction_creation_failed");let T=vH(n),o=_w(T);if(y.expiration!==void 0)o.set(Cw,[{data:new Uint8Array(ky(BigInt(y.expiration))),wireType:ef}]);if(y.data!==void 0)o.set(Hw,[{data:vH(y.data),wireType:nT}]);if(y.fee_limit!==void 0)o.set(Aw,[{data:new Uint8Array(ky(BigInt(y.fee_limit))),wireType:ef}]);let f=Uw(o),t=bH(f),C=bH(tw(f));return{raw_data_hex:t,txID:C}}var ef=0,VH=1,nT=2,KH=5,Cw=8,Hw=10,Aw=18;var cH=()=>{};import{secp256k1 as iH}from"@noble/curves/secp256k1.js";import{sha256 as hH}from"@noble/hashes/sha2.js";import{keccak_256 as ww}from"@noble/hashes/sha3.js";import{bytesToHex as go,hexToBytes as oT}from"@noble/hashes/utils.js";import{createBase58check as qw}from"@scure/base";import{SwapKitError as mH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=yT.decode(n);return y.length===21&&y[0]===rH}catch{return!1}}function gH(n){return go(yT.decode(n))}function lw(n){return yT.decode(n).slice(1)}function dH(n){let y=iH.getPublicKey(oT(n),!1),T=ww(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=rH,o.set(T,1),yT.encode(o)}function aH({txID:n,privateKey:y}){let T=iH.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(hH(oT(y)));if(n!==T)throw new mH("toolbox_tron_invalid_transaction_integrity",{expected:T,txID:n})}function Xw(n){return`000000000000000000000000${go(lw(n))}`}function Ww(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=Gw)throw new mH("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"?Xw(T):Ww(BigInt(T))).join("")}function sH(n){return go(new TextEncoder().encode(n))}var yT,rH=65,Gw;var G0=S(()=>{yT=qw(hH),Gw=2n**256n});import{Chain as Bw,getRPCUrlSync as Mw,SwapKitError as xn,warnOnce as l0}from"@swapkit/helpers";function nA(){try{return Mw(Bw.Tron)}catch{return eH}}function oA(){let n=new AbortController,y=setTimeout(()=>n.abort(),Jw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function eo(n,y){let{signal:T,cleanup:o}=oA();try{let f=await fetch(`${nA()}${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 yA(n,y){let{signal:T,cleanup:o}=oA();try{let f=await fetch(`${y??nA()}${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 fA(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await yA(`/v1/accounts/${n}`,eH);if(!(y.success&&y.data)||y.data.length===0)return;let T;try{T=gH(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 TA({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 CA({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 yA("/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??Lw,createAccountFee:n.getCreateAccountFee??Qw,energyFee:n.getEnergyFee??Zw}}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 CA({...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 HA({assetAddress:n,owner:y,spender:T}){let o=so([{type:"address",value:y},{type:"address",value:T}]),t=(await CA({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 eH="https://api.trongrid.io",Lw=1000,Qw=1e5,Zw=420,Jw=30000;var AA=S(()=>{G0()});import{bytesToHex as Yw}from"@noble/hashes/utils.js";import{HDKey as Nw}from"@scure/bip32";import{mnemonicToSeedSync as zw}from"@scure/bip39";import{AssetValue as mn,BaseDecimal as _A,Chain as Qn,derivationPathToString as qA,getRPCUrl as Dw,NetworkDerivationPath as GA,SwapKitError as Hn,updateDerivationPath as lA,warnOnce as UA}from"@swapkit/helpers";import{match as Ow,P as M0}from"ts-pattern";function WA({phrase:n,derivationPath:y}){let T=Nw.fromMasterSeed(zw(n)).derive(y);if(!T.privateKey)throw new Hn("toolbox_tron_no_signer");return Yw(T.privateKey)}function BA({phrase:n,derivationPath:y,index:T}){let o=y||qA(lA(GA[Qn.Tron],{index:T||0}));return WA({derivationPath:o,phrase:n})}function pw({phrase:n,derivationPath:y}){let T=WA({derivationPath:y,phrase:n}),o=dH(T);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{ao(f);let t=aH({privateKey:T,txID:f.txID});return Promise.resolve({...f,signature:[t]})}}}function wA({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=sH(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}=jH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...t},raw_data_hex:C,txID:H}}function MA(n={}){let y="index"in n?n.index||0:0,T=qA("derivationPath"in n&&n.derivationPath?n.derivationPath:lA(GA[Qn.Tron],{index:y})),o,f=!1;function t(){if(f)return Promise.resolve(o);return o=Ow(n).with({phrase:M0.string},({phrase:l})=>pw({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||xw,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 wA({expiration:L,feeLimit:R,memo:D,transaction:p})}async function _(l){if(!Rn(l))return[mn.from({chain:Qn.Tron})];try{let M=await fA(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 UA({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:Rw,resources:D.bandwidth});return mn.from({chain:Qn.Tron,fromBaseDecimal:_A.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:Fw,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:_A.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 UA({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 TA({amount:M.getBaseValue("number"),from:Z,to:l});return wA({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 HA({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():Sw;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:()=>Dw(Qn.Tron),isApproved:z,signAndBroadcastTransaction:N,signTransaction:Q,transfer:X,validateAddress:Rn}}var XA,Rw=268,xw=65000,Fw=345,L0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Sw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var LA=S(()=>{cH();AA();G0();XA=Rn});var Q0={};nn(Q0,{validateTronAddress:()=>XA,getTronToolbox:()=>MA,getTronPrivateKeyFromMnemonic:()=>BA});var Z0=S(()=>{LA()});import{AssetValue as Py,Chain as Co,derivationPathToString as kw,getChainConfig as uw,getRPCUrl as Pw,NetworkDerivationPath as Iw,SwapKitError as Ho}from"@swapkit/helpers";import{match as $w,P as Ew}from"ts-pattern";function TT(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return bw.test(n)}async function vw(n){if(!TT(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function QA(n={}){let y,T=n.derivationPath||Iw[Co.Stellar],o=kw(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=$w(n).with({phrase:Ew.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 Pw(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 vw(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}=uw(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 bw;var ZA=S(()=>{bw=/^G[A-Z2-7]{55}$/});var tT={};nn(tT,{validateStellarAddress:()=>TT,getStellarToolbox:()=>QA});var CT=S(()=>{ZA()});import{AssetValue as Vw,Chain as $,CosmosChains as J0,EVMChains as Y0,FeeOption as Kw,SwapKitError as jw,UTXOChains as YA}from"@swapkit/helpers";async function AX(){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(...YA,(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 _X(n){return async function(T){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...Y0,async(f)=>{let t=await JA(f),C=await t.createTransaction(T),H="feeOptionKey"in T?T.feeOptionKey:Kw.Fast;return t.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await JA(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 JA(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(...YA,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 jw("toolbox_not_supported",{chain:n})})}export{JA as getToolbox,_X as getFeeEstimator,AX as getAddressValidator};
1
+ var zA=Object.defineProperty;var DA=(n)=>n;function OA(n,y){this[n]=DA.bind(null,y)}var nn=(n,y)=>{for(var T in y)zA(n,T,{get:y[T],enumerable:!0,configurable:!0,set:OA.bind(y,T)})};var p=(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 oy,Chain as $n,derivationPathToString as RA,getChainConfig as _T,getRPCUrlSync as z0,NetworkDerivationPath as xA,SwapKitError as fn}from"@swapkit/helpers";import{match as D0,P as UT}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 FA.test(y)}function O0({derivationPath:n,provider:y,...T}={}){let o,f=RA(n||xA[$n.Aptos],{allHardened:!0});async function t(){if(o)return o;return o=await D0(T).with({phrase:UT.string},async({phrase:l})=>{let{Ed25519Account:Z}=await import("@aptos-labs/ts-sdk");return Z.fromDerivationPath({mnemonic:l,path:f})}).with({signer:UT.any},({signer:l})=>l).otherwise(()=>{return}),o}async function C(){let{Aptos:l,AptosConfig:Z}=await import("@aptos-labs/ts-sdk"),z=new Z({fullnode:y||z0($n.Aptos)});return new l(z)}async function H(){return(await t())?.accountAddress.toString()||""}async function A(l){let Z=l||await H();if(!Z)throw new fn("toolbox_aptos_address_required");let{baseDecimal:z,chain:L}=_T($n.Aptos);try{let N=await C(),J=await N.getAccountAPTAmount({accountAddress:Z}),U=[oy.from({chain:L,fromBaseDecimal:z,value:J.toString()})],B=await N.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Z}}}});for(let q of B){if(q.asset_type===Ao.COIN_TYPE||Number(q.amount)<=0)continue;let Y=q.asset_type;if(Y){let Q=("metadata"in q&&typeof q.metadata==="object"&&q.metadata!==null?q.metadata:void 0)?.decimals??z;U.push(oy.from({asset:`${$n.Aptos}.APT-${Y}`,fromBaseDecimal:Q,value:String(q.amount)}))}}return U}catch{return[oy.from({chain:L})]}}async function _(l){if(!l){let{baseDecimal:B}=_T($n.Aptos),q=y||z0($n.Aptos),Y=await fetch(`${q}/estimate_gas_price`),{gas_estimate:D}=await Y.json();return oy.from({chain:$n.Aptos,fromBaseDecimal:B,value:String(D)})}let Z=await t();if(!Z)throw new fn("toolbox_aptos_no_signer");let z=await G(l),L=await C(),[N]=await L.transaction.simulate.simple({signerPublicKey:Z.publicKey,transaction:z});if(!N)throw new fn("toolbox_aptos_transaction_creation_error");let J=BigInt(N.gas_used)*BigInt(N.gas_unit_price),{baseDecimal:U}=_T($n.Aptos);return oy.from({chain:$n.Aptos,fromBaseDecimal:U,value:J.toString()})}async function G({recipient:l,assetValue:Z,maxGasAmount:z,sender:L}){if(!Jo(l))throw new fn("core_transaction_invalid_recipient_address");let N=L||await H();if(!N)throw new fn("toolbox_aptos_no_sender");let{AccountAddress:J}=await import("@aptos-labs/ts-sdk"),U=await C(),B=J.from(N);try{let q=Z.isGasAsset?Ao.TRANSFER:Ao.FUNGIBLE_STORE_TRANSFER,Y=D0({address:Z?.address,isGasAsset:Z.isGasAsset}).with({isGasAsset:!0},()=>[J.from(l),Z.getBaseValue("bigint")]).with({address:UT.string},({address:D})=>[J.from(D),J.from(l),Z.getBaseValue("bigint")]).otherwise(()=>null);if(!Y)throw new fn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:q,functionArguments:Y,typeArguments:Z.isGasAsset?[]:[Ao.FUNGIBLE_ASSET_METADATA]},options:z?{maxGasAmount:z}:void 0,sender:B})}catch(q){if(q instanceof fn)throw q;throw new fn("toolbox_aptos_transaction_creation_error",q)}}async function M(l){let Z=await t();if(!Z)throw new fn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:Z,transaction:l})}async function w({assetValue:l,maxGasAmount:Z,recipient:z}){let L=await t();if(!L)throw new fn("toolbox_aptos_no_signer");if(!Jo(z))throw new fn("core_transaction_invalid_recipient_address");try{let N=L.accountAddress.toString(),J=await G({assetValue:l,maxGasAmount:Z,recipient:z,sender:N});return(await(await C()).signAndSubmitTransaction({signer:L,transaction:J})).hash}catch(N){if(N instanceof fn)throw N;throw new fn("toolbox_aptos_transaction_creation_error",N)}}async function W({senderAuthenticator:l,transaction:Z}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:l,transaction:Z})).hash}catch(z){throw new fn("toolbox_aptos_broadcast_error",z)}}async function X(l){let Z=await M(l);return W({senderAuthenticator:Z,transaction:l})}return{broadcastTransaction:W,createTransaction:G,estimateTransactionFee:_,getAddress:H,getBalance:A,signAndBroadcastTransaction:X,signTransaction:M,transfer:w,validateAddress:Jo}}function R0({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,FA;var x0=p(()=>{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"},FA=/^[0-9a-fA-F]+$/});var $y={};nn($y,{validateAptosAddress:()=>Jo,getAptosToolbox:()=>O0,createAptosExtensionTransfer:()=>R0});var Ey=p(()=>{x0()});import{AssetValue as F0,getChainConfig as pA}from"@swapkit/helpers";import{SwapKitApi as SA}from"@swapkit/helpers/api";function p0(){function n(){let y=Date.now(),T=wT||y;return wT=T,y>wT?y:T+1}return kA+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}=pA(n),C=f.map(({identifier:A,value:_,decimal:G})=>{return new F0({decimal:G||t,identifier:A,value:_})});if(!C.some((A)=>A.isGasAsset))return[F0.from({chain:n}),...C];return C}}var kA,wT=0;var En=p(()=>{kA=typeof process<"u"&&process.pid?process.pid.toString(36):""});function yy(n){return{getBalance:qn(n)}}function uA(n){return n}var by=p(()=>{En()});import{Chain as h,getChainConfig as XT,getRPCUrl as PA,SwapKitError as vy}from"@swapkit/helpers";import{getAddress as k0,Interface as IA,JsonRpcProvider as $A}from"ethers";import{match as u0}from"ts-pattern";function P0(n){return new $A(n)}async function WT(n,y){return P0(y||await PA(n))}function fy(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function BT(n){let{explorerUrl:y,chainIdHex:T,rpcUrls:o}=XT(n);return function(){return n!==h.Ethereum?{...EA({chain:n}),blockExplorerUrls:[y],chainId:T,rpcUrls:o}:void 0}}function MT(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function EA({chain:n}){let{name:y,nativeCurrency:T,baseDecimal:o}=XT(n);return u0(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 LT(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 I0(n,y){let T=y!==void 0?`index ${y}: `:"",o=(f,t)=>{throw new vy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${T}${t}`}})};u0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!bA(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 $0(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 qT(n){return n.charAt(0).toUpperCase()+n.slice(1)}function GT(n,y){if(n.isTuple()&&n.components){let T=qT(n.name);return y[T]=n.components.map((o)=>({name:o.name,type:GT(o,y)})),T}if(n.isArray()){let T=n.arrayChildren;if(T?.isTuple()&&T.components){let o=qT(n.name.replace(/s$/,""));return y[o]=T.components.map((f)=>({name:f.name,type:GT(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 vA({chain:n,abi:y,data:T,to:o}){let t=new IA(y).parseTransaction({data:T});if(!t)throw new vy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=qT(t.name);C[H]=t.fragment.inputs.map((w)=>({name:w.name,type:GT(w,C)}));let A={};for(let[w,W]of t.fragment.inputs.entries())A[W.name]=lT(t.args[w],W);let{chainId:_}=XT(n),G={chainId:Number(_),verifyingContract:k0(o)},M=$0(G);return{domain:G,message:A,primaryType:H,types:{EIP712Domain:M,...C}}}function QT(n,y){if(!Array.isArray(n)||n.length===0)throw new vy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[T,o]of n.entries())if(I0(o,T),y!==void 0&&o.chainId!==y)throw new vy({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),bA=(n)=>{try{return typeof n==="string"&&!!k0(n)}catch{return!1}};var Ty=()=>{};var E0;var b0=p(()=>{E0=[{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 KA,FeeOption as v,isGasAsset as jA,SwapKitError as i,SwapKitNumber as Vy}from"@swapkit/helpers";import{erc20ABI as ty}from"@swapkit/helpers/contracts";import{BrowserProvider as cA,Contract as v0,getAddress as Ky,Interface as V0}from"ethers";import{match as K0}from"ts-pattern";function Yo({chain:n=Jn.Ethereum,provider:y,signer:T,isEIP1559Compatible:o=!0}){return{approve:gA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),approvedAmount:i0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:zT({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),createApprovalTx:eA({chain:n,provider:y,signer:T}),createContract:JT({chain:n,provider:y}),createContractTxObject:_o({chain:n,provider:y}),createTransaction:ZT({chain:n,provider:y,signer:T}),createTransferTx:ZT({chain:n,provider:y,signer:T}),EIP1193SendTransaction:zo(y),estimateCall:h0({provider:y,signer:T}),estimateGasLimit:aA({chain:n,provider:y,signer:T}),estimateGasPrices:Uo({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:n_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return T?T.getAddress():void 0},getBalance:yy(n).getBalance,getNetworkParams:BT(n),isApproved:rA({chain:n,provider:y}),sendTransaction:m0({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),signAuthorization:sA({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:dA({chain:n,isEIP1559Compatible:o,provider:y,signer:T}),validateAddress:Hy}}function Hy(n){try{return Ky(n),!0}catch{return!1}}function No(n){return n instanceof cA}function Ay(n,y,T){return new v0(n,V0.from(y),T)}function JT({provider:n}){return function(T,o){return new v0(T,V0.from(o),n)}}function YT({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&&iA.includes(T.stateMutability)}function j0(n){return Ky(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:fy(BigInt(T||0))}])}}function c0(n,y){let T=Do(n,y);if(T)return Ky(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=mA.includes(n)&&y==="ETH"&&T==="ETH";if(C||f||t||H)return NT[o];return Ky(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})=>Ay(y,T,n).getFunction(o).populateTransaction(...f.concat(t).filter((C)=>typeof C<"u"))}function Uo({chain:n,provider:y,isEIP1559Compatible:T=!0}){return K0(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{[v.Average]:{maxFeePerGas:Gn(f,v.Average),maxPriorityFeePerGas:Gn(t,v.Average)},[v.Fast]:{maxFeePerGas:Gn(f,v.Fast),maxPriorityFeePerGas:Gn(t,v.Fast)},[v.Fastest]:{maxFeePerGas:Gn(f,v.Fastest),maxPriorityFeePerGas:Gn(t,v.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{[v.Average]:{gasPrice:t},[v.Fast]:{gasPrice:Gn(t,v.Fast)},[v.Fastest]:{gasPrice:Gn(t,v.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{[v.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:t},[v.Fast]:{maxFeePerGas:Gn(f,v.Fast),maxPriorityFeePerGas:Gn(t,v.Fast)},[v.Fastest]:{maxFeePerGas:Gn(f,v.Fastest),maxPriorityFeePerGas:Gn(t,v.Fastest)}}}if(!C)throw new i("toolbox_evm_no_gas_price");return{[v.Average]:{gasPrice:C},[v.Fast]:{gasPrice:Gn(C,v.Fast)},[v.Fastest]:{gasPrice:Gn(C,v.Fastest)}}}catch(f){throw new i("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function zT({provider:n,isEIP1559Compatible:y,signer:T,chain:o}){return async function({callProvider:t,contractAddress:C,abi:H,funcName:A,funcParams:_=[],txOverrides:G={},feeOption:M=v.Fast}){let w=t||n;if(!C)throw new i("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let W=YT({abi:H,funcName:A});if(W&&No(w)&&T){let Z=_o({chain:o,provider:w}),z=G?.from||await T?.getAddress(),L=await Z({abi:H,contractAddress:C,funcName:A,funcParams:_,txOverrides:{...G,from:z}});return zo(w)(L)}let X=Ay(C,H,w);if(W){if(!T)throw new i("toolbox_evm_no_signer");let Z=G?.from||await T.getAddress();if(!Z)throw new i("toolbox_evm_no_signer_address");let z=X.connect(T),L=Uo({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:N,maxPriorityFeePerGas:J,gasPrice:U}=(await L())[M],B=await X.getFunction(A).estimateGas(..._,G),q=await z[A](..._,{...G,gasLimit:B,gasPrice:U,maxFeePerGas:N,maxPriorityFeePerGas:J,nonce:G?.nonce||await w.getTransactionCount(Z)});return typeof q?.hash==="string"?q?.hash:q}let l=await X[A]?.(..._);return typeof l?.hash==="string"?l?.hash:l}}function i0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:t}){return zT({chain:y,isEIP1559Compatible:!0,provider:n})({abi:ty,contractAddress:o,funcName:"allowance",funcParams:[t,f]})}}function rA({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:t,amount:C=Cy}){let H=await i0({chain:y,provider:n})({assetAddress:o,from:t,spenderAddress:f});return Vy.fromBigInt(H).gte(Vy.fromBigInt(BigInt(C)))}}function gA({signer:n,isEIP1559Compatible:y=!0,provider:T,chain:o}){return async function({assetAddress:t,spenderAddress:C,feeOptionKey:H=v.Fast,amount:A,gasLimitFallback:_,from:G,nonce:M}){let w=[C,BigInt(A||Cy)],W=await n?.getAddress()||G,X={abi:ty,contractAddress:t,funcName:"approve",funcParams:w,signer:n,txOverrides:{from:W}};if(No(T)){let Z=_o({chain:o,provider:T}),z=zo(T),L=await Z(X);return z(L)}return zT({chain:o,isEIP1559Compatible:y,provider:T,signer:n})({...X,feeOption:H,funcParams:w,txOverrides:{from:W,gasLimit:_?BigInt(_.toString()):void 0,nonce:M}})}}function dA({signer:n,isEIP1559Compatible:y=!0,provider:T}){return async function({assetValue:f,memo:t,recipient:C,feeOptionKey:H=v.Fast,sender:A,..._}){let{hexlify:G,toUtf8Bytes:M}=await import("ethers"),w=f.getBaseValue("bigint"),W=f.chain,X=A||await n?.getAddress(),l=m0({chain:W,isEIP1559Compatible:y,provider:T,signer:n});if(!X)throw new i("toolbox_evm_no_from_address");if(f.isGasAsset){let U={..._,data:G(M(t||"")),feeOptionKey:H,from:X,to:C,value:w};return l(U)}if(!Do(f,W))throw new i("toolbox_evm_no_contract_address");let{maxFeePerGas:z,maxPriorityFeePerGas:L,gasPrice:N}=(await Uo({chain:W,isEIP1559Compatible:y,provider:T})())[H],J=await ZT({chain:W,provider:T,signer:n})({assetValue:f,data:G(M(t||"")),gasPrice:N,maxFeePerGas:z,maxPriorityFeePerGas:L,memo:t,recipient:C,sender:X});return l(J)}}function h0({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=Ay(o,f,n);return y?A.connect(y).getFunction(t).estimateGas(...C,H):A.getFunction(t).estimateGas(...C,H)}}function aA({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:t,data:C,sender:H,funcName:A,funcParams:_,txOverrides:G}){let M=o.bigIntValue,w=o.isGasAsset?null:Do(o,o.chain);if(w&&A)return h0({provider:n,signer:y})({abi:ty,contractAddress:w,funcName:A,funcParams:_,txOverrides:G});let{hexlify:W,toUtf8Bytes:X}=await import("ethers");return n.estimateGas({data:C?C:t?W(X(t)):void 0,from:H,to:f,value:M})}}function sA({signer:n}){if(!n)return;return(y)=>LT(n,y)}function m0({provider:n,signer:y,isEIP1559Compatible:T=!0,chain:o}){return async function({feeOptionKey:t=v.Fast,...C}){let{from:H,to:A,data:_,value:G,...M}=C;if(!y)throw new i("toolbox_evm_no_signer");if(!A)throw new i("toolbox_evm_no_to_address");let w={...M,data:_||"0x",from:H,to:A,value:BigInt(G||0)};if(No(n))return zo(n)(w);let W=H||await y.getAddress(),X=C.nonce||await n.getTransactionCount(W),l=(await n.getNetwork()).chainId,Z=OT(w,T);if(Z==="eip7702")QT(w.authorizations||[],l);let z=K0(Z).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...w,chainId:l,nonce:X,type:z,...Z==="eip7702"&&{authorizationList:w.authorizations}},N=Uo({chain:o,isEIP1559Compatible:T,provider:n}),U=Z!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await N())[t]).reduce((q,[Y,D])=>({...q,[Y]:fy(BigInt(D))}),{}):{},B;try{B=fy(w.gasLimit||await n.estimateGas(L)*11n/10n)}catch(q){throw new i("toolbox_evm_error_estimating_gas_limit",{error:q})}try{let q={...L,gasLimit:B,...U};try{return(await y.sendTransaction(q)).hash}catch{let Y=await y.signTransaction({...q,from:W});return(await n.broadcastTransaction(Y)).hash}}catch(q){throw new i("toolbox_evm_error_sending_transaction",{error:q})}}}function ZT({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:t,data:C,sender:H,maxFeePerGas:A,maxPriorityFeePerGas:_,gasPrice:G,...M}){let w=o.getBaseValue("bigint"),W=o.chain,X=H||await y?.getAddress();if(!X)throw new i("toolbox_evm_no_from_address");if(jA(o)){let{hexlify:z,toUtf8Bytes:L}=await import("ethers");return{...M,data:C||z(L(f||"")),from:X,to:t,value:w}}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,w],txOverrides:{from:X,gasPrice:G,maxFeePerGas:A,maxPriorityFeePerGas:_}})}}function eA({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}),G=["bigint","number"].includes(typeof C)?C:C||Cy;return await _({abi:ty,contractAddress:f,funcName:"approve",funcParams:[t,BigInt(G)],txOverrides:{from:A}})}}function n_({provider:n,isEIP1559Compatible:y=!0,chain:T}){return async function({feeOption:f=v.Fast,...t}){let H=await Uo({chain:T,isEIP1559Compatible:y,provider:n})(),A=await n.estimateGas(t),_=VA.from({chain:T}),{gasPrice:G,maxFeePerGas:M,maxPriorityFeePerGas:w}=H[f];if(!y&&G)return _.set(Vy.fromBigInt(G*A,_.decimal));if(M&&w){let W=(M+w)*A;return _.set(Vy.fromBigInt(W,_.decimal))}throw new i("toolbox_evm_no_gas_price")}}var Cy,iA,hA,NT,mA,jy=(n)=>n.type===4||(n.authorizations?.length??0)>0,DT=(n)=>!jy(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),OT=(n,y=!0)=>{if(jy(n))return"eip7702";if(DT(n)||y)return"eip1559";return"legacy"};var cy=p(()=>{by();Ty();Cy=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");iA=["payable","nonpayable"];hA=KA.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),NT={...hA,[Jn.Optimism]:"0x4200000000000000000000000000000000000042",[Jn.Polygon]:"0x0000000000000000000000000000000000001010"},mA=[Jn.Arbitrum,Jn.Aurora,Jn.Base,Jn.Optimism]});import{Chain as r,FeeOption as o_}from"@swapkit/helpers";import{HDNodeWallet as y_}from"ethers";import{match as f_,P as r0}from"ts-pattern";function iy(n){let y=g(r.Ethereum)(n);async function T(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",t="aggregate",C=o_.Fast){let H=await y.createContractTxObject({abi:E0,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=MT(n),t=f_(o).with({phrase:r0.string},({phrase:H})=>y_.fromPhrase(H).connect(T)).with({signer:r0.any},({signer:H})=>H).otherwise(()=>{return});return Yo({chain:n,isEIP1559Compatible:f,provider:T,signer:t})}}var hy,my,ry,gy,dy,ay,sy,g0,ey,nf,of,yf,ff,Tf,_y,tf,Cf,Hf,Af;var RT=p(()=>{b0();Ty();cy();hy=g(r.Adi),my=g(r.Arbitrum),ry=g(r.Aurora),gy=g(r.Avalanche),dy=g(r.Base),ay=g(r.Berachain),sy=g(r.BinanceSmartChain),g0=g(r.Botanix),ey=g(r.Core),nf=g(r.Corn),of=g(r.Cronos),yf=g(r.Gnosis),ff=g(r.Hyperevm),Tf=g(r.Polygon),_y=g(r.Sonic),tf=g(r.Unichain),Cf=g(r.XLayer),Hf=g(r.Monad),Af=g(r.MegaETH)});var d0;var a0=p(()=>{d0=[{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 xT}from"@swapkit/helpers";import{Contract as C_,HDNodeWallet as H_}from"ethers";import{match as A_,P as s0}from"ts-pattern";function FT(n){return new C_(__,d0,n)}function e0(n){return async function(){let T=FT(n);if(T&&"l1BaseFee"in T)return await T?.l1BaseFee();return}}function nC(n){return async function({from:T,to:o,nonce:f,...t}){let{Transaction:C}=await import("ethers");if(!o)throw new xT("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 oC(n){return async function(T){let o=FT(n),f=await nC(n)(T);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function yC(n){return async function(T){let f=(await n.getFeeData()).gasPrice??0n,t=await n.estimateGas(T);return f*t}}function U_(n){return async function(T){let o=await oC(n)(T)??0n,f=await yC(n)(T);return o+f}}function w_(n){return async function(T){let o=FT(n),f=await nC(n)(T);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function q_(n){return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),t=await e0(n)(),C=f;if(!(T&&o))throw new xT("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 xT("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}function _f({provider:n,...y}){let T=A_(y).with({phrase:s0.string},({phrase:t})=>H_.fromPhrase(t).connect(n)).with({signer:s0.any},({signer:t})=>t).otherwise(()=>{return}),o=Yo({provider:n,signer:T}),f=e0(n);return{...o,estimateGasPrices:q_(n),estimateL1Gas:w_(n),estimateL1GasCost:oC(n),estimateL2GasCost:yC(n),estimateTotalGasCost:U_(n),getBalance:yy(t_.Optimism).getBalance,getL1GasPrice:f}}var __="0x420000000000000000000000000000000000000f";var pT=p(()=>{by();a0();cy()});var TC={};nn(TC,{validateEVMAddress:()=>Hy,toChecksumAddress:()=>j0,isStateChangingCall:()=>YT,isEIP7702Transaction:()=>jy,isEIP1559Transaction:()=>DT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getEvmToolboxAsync:()=>fC,getEvmToolbox:()=>ST,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>OT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>JT,getChecksumAddressFromAsset:()=>c0,createContract:()=>Ay,XLayerToolbox:()=>Cf,UNIToolbox:()=>tf,SONICToolbox:()=>_y,OPToolbox:()=>_f,MONADToolbox:()=>Hf,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>Cy,MATICToolbox:()=>Tf,HYPEREVMToolbox:()=>ff,GNOToolbox:()=>yf,ETHToolbox:()=>iy,ContractAddress:()=>NT,CROToolbox:()=>of,CORNToolbox:()=>nf,COREToolbox:()=>ey,BotanixToolbox:()=>g0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>sy,BERAToolbox:()=>ay,BASEToolbox:()=>dy,AVAXToolbox:()=>gy,AURORAToolbox:()=>ry,ARBToolbox:()=>my,ADIToolbox:()=>hy});import{Chain as m}from"@swapkit/helpers";import{match as G_}from"ts-pattern";function ST(n,y){return G_(n).with(m.Adi,()=>hy(y)).with(m.Arbitrum,()=>my(y)).with(m.Aurora,()=>ry(y)).with(m.Avalanche,()=>gy(y)).with(m.Base,()=>dy(y)).with(m.Berachain,()=>ay(y)).with(m.BinanceSmartChain,()=>sy(y)).with(m.Botanix,()=>_y(y)).with(m.Core,()=>ey(y)).with(m.Corn,()=>nf(y)).with(m.Cronos,()=>of(y)).with(m.Ethereum,()=>iy(y)).with(m.Gnosis,()=>yf(y)).with(m.Hyperevm,()=>ff(y)).with(m.Optimism,()=>_f(y)).with(m.Polygon,()=>Tf(y)).with(m.Sonic,()=>_y(y)).with(m.Unichain,()=>tf(y)).with(m.XLayer,()=>Cf(y)).with(m.Monad,()=>Hf(y)).with(m.MegaETH,()=>Af(y)).exhaustive()}async function fC(n,y){let T={...y,provider:y?.provider||await WT(n)};return ST(n,T)}var kT=p(()=>{Ty();RT();pT();cy();RT();pT()});var tC;var CC=p(()=>{((T)=>{T.Test="goerli";T.Main="homestead"})(tC||={})});var HC={};nn(HC,{validateEVMAddress:()=>Hy,validateAuthorizations:()=>QT,validateAuthorization:()=>I0,toHexString:()=>fy,toChecksumAddress:()=>j0,signAuthorization:()=>LT,parseEIP712FromEVMTx:()=>vA,isStateChangingCall:()=>YT,isEIP7702Transaction:()=>jy,isEIP1559Transaction:()=>DT,isBrowserProvider:()=>No,getTokenAddress:()=>Do,getProviderSync:()=>P0,getProvider:()=>WT,getNetworkParams:()=>BT,getIsEIP1559Compatible:()=>MT,getEvmToolboxAsync:()=>fC,getEvmToolbox:()=>ST,getEvmApi:()=>yy,getEstimateGasPrices:()=>Uo,getEVMTxType:()=>OT,getEIP1193SendTransaction:()=>zo,getCreateContractTxObject:()=>_o,getCreateContract:()=>JT,getChecksumAddressFromAsset:()=>c0,createCustomEvmApi:()=>uA,createContract:()=>Ay,buildEIP712DomainType:()=>$0,XLayerToolbox:()=>Cf,UNIToolbox:()=>tf,SONICToolbox:()=>_y,OPToolbox:()=>_f,MONADToolbox:()=>Hf,MEGAETHToolbox:()=>Af,MAX_APPROVAL:()=>Cy,MATICToolbox:()=>Tf,HYPEREVMToolbox:()=>ff,GNOToolbox:()=>yf,EthNetwork:()=>tC,ETHToolbox:()=>iy,ContractAddress:()=>NT,CROToolbox:()=>of,CORNToolbox:()=>nf,COREToolbox:()=>ey,BotanixToolbox:()=>g0,BaseEVMToolbox:()=>Yo,BSCToolbox:()=>sy,BERAToolbox:()=>ay,BASEToolbox:()=>dy,AVAXToolbox:()=>gy,AURORAToolbox:()=>ry,ARBToolbox:()=>my,ADIToolbox:()=>hy});var uT=p(()=>{by();Ty();kT();CC()});import{bech32 as l_}from"@scure/base";import{mnemonicToSeed as X_}from"@scure/bip39";import{Bip32PrivateKey as W_}from"@stricahq/bip32ed25519";import{Transaction as B_,types as $T,address as M_,crypto as PT,utils as AC}from"@stricahq/typhonjs";import{AssetValue as Ro,Chain as wo,getChainConfig as L_,SwapKitError as Uy}from"@swapkit/helpers";import Wn from"bignumber.js";async function ET(n,y){let T=await fetch(`${qC}${n}`,{...y,headers:{project_id:wC,...y?.headers}});if(!T.ok)throw Error(`Blockfrost API error: ${T.status} ${T.statusText}`);return T.json()}async function GC(n){try{return await ET(`/addresses/${n}/utxos`)}catch{return[]}}async function Z_(){return(await ET("/blocks/latest")).slot}async function J_(){let n=await ET("/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 UC(n){let y=await fetch(`${qC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:wC},method:"POST"});if(!y.ok){let T=await y.text();throw Error(`Transaction submission failed: ${T}`)}return y.json()}function Y_(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 N_(n){try{let y=await GC(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 G=o.get(A)||0n;o.set(A,G+BigInt(_))}}}let f=[],{baseDecimal:t}=L_(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=l_.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function z_(n,y=0,T=0){let o=await X_(n,""),t=(await W_.fromEntropy(Buffer.from(o.slice(0,64)))).derive(IT+1852).derive(IT+1815).derive(IT+y),C=t.derive(0).derive(T),H=C.toBip32PublicKey().toPublicKey().toBytes(),A=PT.hash28(H),G=t.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),M=PT.hash28(G),w={hash:A,type:$T.HashType.ADDRESS},W={hash:M,type:$T.HashType.ADDRESS},l=new M_.BaseAddress(Q_,w,W).getBech32(),Z=C.toPrivateKey();return{getAddress:()=>l,publicKey:H,publicKeyHash:A,signTransaction:async(z)=>{try{let L=await import("@stricahq/cbors"),N=Buffer.from(z,"hex"),J=L.Decoder.decode(N),[U,B,q,Y]=J.value,D=L.Encoder.encode(U),Q=PT.hash32(D),O=Z.sign(Q),R=B instanceof Map?B:new Map,S=R.get(_C)||[];S.push([H,O]),R.set(_C,S);let k=[U,R,q,Y];return L.Encoder.encode(k).toString("hex")}catch(L){throw new Uy("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function D_(n){let y,T,o;async function f(){if(!o)o=await J_();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 z_(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 X=W||await C();if(!X)throw new Uy("core_wallet_connection_not_found");return N_(X)}async function A(W){if(W)try{let{tx:z}=await _(W),L=z.getFee();return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let X=await f(),l=400,Z=X.minFeeB.plus(X.minFeeA.times(l));return Ro.from({chain:wo.Cardano,fromBaseDecimal:6,value:Z.toString()})}async function _({sender:W="",recipient:X,assetValue:l,memo:Z,pureLovelaceOnly:z=!1}){let L=W||await C();if(!L)throw new Uy("core_wallet_connection_not_found");let[N,J,U]=await Promise.all([GC(L),Z_(),f()]),B=N.filter((j)=>z?j.amount.every((V)=>V.unit==="lovelace"):j.amount.some((V)=>V.unit==="lovelace")).sort((j,V)=>{let yn=j.amount.some((Un)=>Un.unit!=="lovelace"),a=V.amount.some((Un)=>Un.unit!=="lovelace");if(yn===a)return 0;return yn?1:-1}),q=AC.getAddressFromString(L),Y=AC.getAddressFromString(X),D=Y_(B,q),Q=new Wn(l.getBaseValue("string")),O=[{address:Y,amount:Q,tokens:[]}],R;if(Z){let j=new Map;j.set("msg",[Z]),R={metadata:[{data:j,label:674}]}}let S={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},I=new B_({protocolParams:S}).paymentTransaction({auxiliaryData:R,changeAddress:q,inputs:D,outputs:O,ttl:J+3600}),{payload:b}=I.buildTransaction();return{tx:I,unsignedTx:b}}async function G(W){let X=await t();if(!X||!("signTransaction"in X))throw new Uy("core_wallet_connection_not_found");return X.signTransaction(W)}async function M({recipient:W,assetValue:X,memo:l}){let Z=await t();if(!Z||!("signTransaction"in Z))throw new Uy("core_wallet_connection_not_found");let{unsignedTx:z}=await _({assetValue:X,memo:l,recipient:W,sender:await C()}),L=await G(z);return await UC(L)}async function w(W){let X=await G(W);return await UC(X)}return{createTransaction:_,estimateTransactionFee:A,getAddress:C,getBalance:H,signAndBroadcastTransaction:w,signTransaction:G,transfer:M,validateAddress:lC}}var wC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",qC="https://cardano-mainnet.blockfrost.io/api/v0",Q_,IT=2147483648,_C=0;var XC=p(()=>{Q_=$T.NetworkId.MAINNET});var bT={};nn(bT,{validateCardanoAddress:()=>lC,getCardanoToolbox:()=>D_});var vT=p(()=>{XC()});import{base64 as wf,bech32 as Uf}from"@scure/base";import{SwapKitError as O_}from"@swapkit/helpers";function wy(n){return wf.encode(Uint8Array.from(Uf.fromWords(Uf.decode(n).words)))}function qy(n,y="thor"){return Uf.encode(y,Uf.toWords(wf.decode(n)))}function R_(n){return wf.encode(n)}function x_(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new O_("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return wf.decode(n)}var VT=()=>{};import{AssetValue as KT,Chain as E,getChainConfig as Sn,getRPCUrl as F_,SwapKitError as WC}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 LC;case E.Noble:return QC;default:return MC}}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 cT(n,y){let T=await import("@cosmjs/stargate");return(T.SigningStargateClient??T.default?.SigningStargateClient).offline(n,y)}async function iT({sender:n,recipient:y,assetValue:T,memo:o="",feeRate:f,sequence:t,accountNumber:C}){let{chain:H,chainId:A}=T,_=await F_(H),M=await(await Vn(_)).getAccount(n);if(!M)throw new WC("toolbox_cosmos_account_not_found",{sender:n});let w=KT.from({chain:H}),W=rn(w.symbol),X=vn(H),l=W&&f?{amount:[{amount:f.toString(),denom:W}],gas:X.gas}:X,Z={amount:[{amount:T.getBaseValue("string"),denom:rn(T.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??M.accountNumber,chainId:A,fee:l,memo:o,msgs:[{typeUrl:p_(H),value:Z}],sequence:t??M.sequence}}var jT="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",BC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",MC,LC,QC,rn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return jT;case"uYUM":case"YUM":return BC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Gy=({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)},p_=(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 WC("toolbox_cosmos_not_supported",{chain:n})}},S_,hT=(n,y)=>{let T=S_[n.toLowerCase()];if(!T)return KT.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:t}=T,C=o?{chain:o}:{asset:f};return KT.from({...C,fromBaseDecimal:t,value:y})};var ly=p(()=>{MC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},LC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},QC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};S_={atom:{chain:E.Cosmos,decimals:Sn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:Sn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:Sn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Sn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:Sn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:Sn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:Sn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:Sn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Sn(E.THORChain).baseDecimal},[jT.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:Sn(E.Kujira).baseDecimal}}});var ZC={};nn(ZC,{$root:()=>F});import on from"protobufjs/minimal.js";var P,Mn,u,F;var JC=p(()=>{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 k_}from"@swapkit/helpers";async function Go(){let{$root:n}=await Promise.resolve().then(() => (JC(),ZC)),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===k_.THORChain?"thorchain":"mayachain";return new T({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...t})=>({...t,signer:wy(f)}),toAmino:({signer:f,...t})=>({...t,signer:qy(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:t,...C})=>({...C,fromAddress:wy(f),toAddress:wy(t)}),toAmino:({fromAddress:f,toAddress:t,...C})=>({...C,from_address:qy(f),to_address:qy(t)})}})}var mT=p(()=>{VT()});import{AssetValue as u_,Chain as qf,getChainConfig as YC,getRPCUrl as NC,SwapKitError as P_}from"@swapkit/helpers";function dT(n){let{assetValue:y,recipient:T,memo:o,sender:f,asSignable:t,asAminoMessage:C}=n;if(T)return DC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,recipient:T,sender:f});return OC({asAminoMessage:C,asSignable:t,assetValue:y,memo:o,sender:f})}async function DC({sender:n,recipient:y,assetValue:T,memo:o="",asSignable:f=!0,asAminoMessage:t=!1,sequence:C,accountNumber:H}){let A=T.chain,_=await NC(A),G=await zC({rpcUrl:_,sender:n}),{chainId:M}=YC(A),w=rT({assetValue:T,recipient:y,sender:n}),W=f?await dn(t?w:an(w),A):w;return{accountNumber:H||G.accountNumber,chainId:M,fee:vn(A),memo:o,msgs:[W],sequence:C||G.sequence}}async function OC({sender:n,assetValue:y,memo:T="",asSignable:o=!0,asAminoMessage:f=!1,sequence:t,accountNumber:C}){let H=y.chain,A=await NC(H),_=await zC({rpcUrl:A,sender:n}),{chainId:G}=YC(H),M=gT({assetValue:y,memo:T,sender:n}),w=o?await dn(f?M:an(M),H):M;return{accountNumber:C||_.accountNumber,chainId:G,fee:vn(H),memo:T,msgs:[w],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=u_.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 Xy({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 I_,$_,rT=({sender:n,recipient:y,assetValue:T})=>{return{type:`${T.chain===qf.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:T.getBaseValue("string"),denom:rn(T.symbol,!0)}],from_address:n,to_address:y}}},gT=({sender:n,assetValue:y,memo:T=""})=>{return{type:`${y.chain===qf.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Gy(y)}],memo:T,signer:n}}},Gf=({sender:n,recipient:y,assetValue:T,memo:o})=>{return!y?gT({assetValue:T,memo:o,sender:n}):rT({assetValue:T,recipient:y,sender:n})},dn=async(n,y)=>{return(await gn(y)).fromAmino(n)},zC=async({rpcUrl:n,sender:y})=>{let o=await(await Vn(n)).getAccount(y);if(!o)throw new P_("toolbox_cosmos_account_not_found",{sender:y});return o};var RC=p(()=>{ly();mT();I_=vn(qf.THORChain).gas,$_=vn(qf.Maya).gas});var xC=()=>{};var FC=p(()=>{xC()});var aT=p(()=>{VT();RC();mT();FC()});import{stringToPath as E_}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as b_}from"@cosmjs/proto-signing";import{base64 as nt,bech32 as sT}from"@scure/base";import{AssetValue as ot,applyFeeMultiplier as pC,Chain as Tn,CosmosChainPrefixes as $C,DerivationPath as v_,derivationPathToString as SC,FeeOption as yt,getChainConfig as V_,getRPCUrl as Wy,NetworkDerivationPath as K_,SwapKitError as xo,SwapKitNumber as eT,updateDerivationPath as j_}from"@swapkit/helpers";import{SwapKitApi as EC}from"@swapkit/helpers/api";import{match as c_,P as kC}from"ts-pattern";async function Tt(n,y){try{let o=(await EC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function ft({phrase:n,prefix:y,...T}){let o="derivationPath"in T?T.derivationPath:`${v_[T.chain]}/${T.index}`;return await b_.fromMnemonic(n,{hdPaths:[E_(o)],prefix:y})}async function i_({privateKey:n,prefix:y}){let T=await import("@cosmjs/proto-signing");return(T.DirectSecp256k1Wallet??T.default?.DirectSecp256k1Wallet).fromKey(n,y)}function bC(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(nt.decode(T));return A.verifySignature(_,nt.decode(o),t.pubkey.value)}}function By({chain:n,...y}){let T=$C[n],o="index"in y?y.index||0:0,f=SC("derivationPath"in y&&y.derivationPath?y.derivationPath:j_(K_[n],{index:o})),t;async function C(){if(t)return t;return t=await c_(y).with({phrase:kC.string},({phrase:W})=>ft({derivationPath:f,phrase:W,prefix:T})).with({signer:kC.any},({signer:W})=>W).otherwise(()=>{return}),t}async function H(W){let X=await Wy(n);return(await Vn(X)).getAccount(W)}async function A(){let W=await C(),[X]=await W?.getAccounts()||[];return X?.address}async function _(){let W=await C(),[X]=await W?.getAccounts()||[];if(!X?.pubkey)throw new xo("toolbox_cosmos_signer_not_defined");return nt.encode(X?.pubkey)}async function G(W){let X=await C(),l=await A(),Z=await Wy(n);if(!(X&&l))throw new xo("toolbox_cosmos_signer_not_defined");return await(await qo(Z,X)).sign(l,W.msgs,W.fee,W.memo,{accountNumber:W.accountNumber,chainId:W.chainId,sequence:W.sequence})}async function M(W){let X=await C(),l=await A(),Z=await Wy(n);if(!(X&&l))throw new xo("toolbox_cosmos_signer_not_defined");let L=await(await qo(Z,X)).signAndBroadcast(l,W.msgs,W.fee,W.memo);if(L.code!==0)throw new xo("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function w({recipient:W,assetValue:X,memo:l="",feeRate:Z,feeOptionKey:z=yt.Fast}){let L=await C(),N=await A();if(!(L&&N))throw new xo("toolbox_cosmos_signer_not_defined");let J=await Wy(n),U=ot.from({chain:n}),B=Gy(U),q=Z||r_((await PC(n,uC[n]))[z],B),Y=await qo(J,L),D=rn(X.symbol),Q=[{amount:X.getBaseValue("string"),denom:D}],{transactionHash:O}=await Y.sendTokens(N,W,Q,q,l);return O}return{createPrivateKeyFromPhrase:d_(f),createTransaction:iT,fetchFeeRateFromSwapKit:Tt,getAccount:H,getAddress:A,getBalance:async(W,X)=>{let l=await IC(n)(W),Z=await Promise.all(l.filter(({denom:z})=>z&&!z.includes("IBC/")&&!([Tn.THORChain,Tn.Maya].includes(n)&&z.split("-").length>2)).map(({denom:z,amount:L})=>{let N=[Tn.THORChain,Tn.Maya].includes(n)&&(z.includes("/")||z.includes("˜"))?`${n}.${z}`:z;return hT(N,L)}));if(Z.length===0)return[ot.from({chain:n})];return Z},getBalanceAsDenoms:IC(n),getFees:()=>PC(n,uC[n]),getPubKey:_,getSignerFromPhrase:({phrase:W,derivationPath:X})=>ft({derivationPath:SC(X),index:o,phrase:W,prefix:T}),getSignerFromPrivateKey:async(W)=>{let X=await import("@cosmjs/proto-signing");return(X.DirectSecp256k1Wallet??X.default?.DirectSecp256k1Wallet).fromKey(W,T)},signAndBroadcastTransaction:M,signTransaction:G,transfer:w,validateAddress:vC(n),verifySignature:bC(H)}}async function h_(n,y){try{let o=(await EC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function m_({assetValue:{chain:n}}){return ot.from({chain:n,value:g_(n)})}async function PC(n,y){let{chainId:T,baseDecimal:o}=V_(n),f=await Tt(T,y);return{average:eT.fromBigInt(BigInt(f),o),fast:eT.fromBigInt(BigInt(pC(f,yt.Fast,!0)),o),fastest:eT.fromBigInt(BigInt(pC(f,yt.Fastest,!0)),o)}}function r_(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function g_(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 vC(n){let y=$C[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:t}=sT.decode(o);return sT.encode(f,t)===o.toLocaleLowerCase()}catch{return!1}}}function IC(n){return async function(T){let o=await Wy(n);return(await(await Vn(o)).getAllBalances(T)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function d_(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),G=await A.mnemonicToSeed(_),{privkey:M}=C.derivePath(t.Secp256k1,G,f(n));return M}}var uC;var lf=p(()=>{ly();uC={[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 a_,CosmosChainPrefixes as s_,derivationPathToString as e_,FeeOption as tt,getChainConfig as n5,getRPCUrl as iC,NetworkDerivationPath as o5,RequestClient as y5,SKConfig as VC,SwapKitError as Fo,SwapKitNumber as KC,updateDerivationPath as f5}from"@swapkit/helpers";import{match as jC,P as cC}from"ts-pattern";function T5({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 C5(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,G=(await T.getAccounts())?.[0]?.address||"",M=await gn(n),w=await Go(),W=await cT(T,{aminoTypes:M,registry:w}),X=[];for(let z of f){let L=await dn(z,n);X.push(L)}let{signatures:[l]}=await W.sign(G,X,A,_,{accountNumber:t,chainId:H,sequence:C});return{bodyBytes:await Xy({chain:n,memo:_,msgs:f.map(an)}),signature:t5(l)}}}function H5({prefix:n,chain:y}){return async function(o,f,t,C,H){let A=await iC(y),{encodeSecp256k1Pubkey:_,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:M}=(await import("@cosmjs/stargate")).default,{sequence:w,fee:W}=JSON.parse(o),X=await hC(t,C),l=f.map((L)=>[G(_(lo.decode(L.pubKey)),n),lo.decode(L.signature)]),Z=await Vn(A),{transactionHash:z}=await Z.broadcastTx(M(X,w,W,H,new Map(l)));return z}}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 A5(n){return lo.decode(n)}async function _5({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 Ct({chain:n,...y}){let{isStagenet:T}=VC.get("envs"),o=VC.get("thornodeUrls"),f=n===a_.Maya,t=jC({isMayachain:f,isStagenet:T}).with({isMayachain:!0},({isStagenet:L})=>L?o.MAYA_STAGENET:o.MAYA).otherwise(({isStagenet:L})=>L?o.THOR_STAGENET:o.THOR),C=`${T?"s":""}${s_[n]}`,H="index"in y?y.index||0:0,A="derivationPath"in y&&y.derivationPath?y.derivationPath:f5(o5[n],{index:H}),_=By({chain:n,...y}),G=vn(n),M;function w(){return M??=jC(y).with({phrase:cC.string},({phrase:L})=>_.getSignerFromPhrase({derivationPath:A,phrase:L})).with({signer:cC.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),M}async function W(){let L=await iC(n),N=await w();if(!N)throw new Fo("toolbox_cosmos_no_signer");let J=await Go(),U=await gn(n),B=await qo(L,N,{aminoTypes:U,registry:J});return{signer:N,signingClient:B}}async function X({fee:L,memo:N,msgs:J}){let{signer:U,signingClient:B}=await W(),q=(await U.getAccounts())?.[0]?.address;if(!q)throw new Fo("toolbox_cosmos_signer_not_defined");let Y=await B.signAndBroadcast(q,J,L,N);if(Y.code!==0)throw new Fo("core_swap_transaction_error",{code:Y.code,message:Y.rawLog});return Y.transactionHash}async function l(){let L,N=`${t}/${f?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:J}}=await y5.get(N);if(!J||Number.isNaN(J)||J<0)throw new Fo("toolbox_cosmos_invalid_fee",{nativeFee:J.toString()});L=new KC(J)}catch{L=new KC({decimal:n5(n).baseDecimal,value:f?1:0.02})}return{[tt.Average]:L,[tt.Fast]:L,[tt.Fastest]:L}}async function Z({assetValue:L,memo:N="",recipient:J}){let{TxRaw:U}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:B,signingClient:q}=await W(),Y=(await B.getAccounts())?.[0]?.address;if(!Y)throw new Fo("toolbox_cosmos_no_signer");let D="signAmino"in B,Q=Gf({assetValue:L,memo:N,recipient:J,sender:Y});if(D){let S=await dn(Q,n),{signatures:k,authInfoBytes:I}=await q.sign(Y,[S],G,N),b=U.encode({authInfoBytes:I,bodyBytes:await Xy({chain:n,memo:N,msgs:[Q].map(an)}),signatures:k}).finish();return(await q.broadcastTx(b)).transactionHash}let O=an(Q),R=await dn(O,n);return X({fee:G,memo:N,msgs:[R]})}async function z(L){let{signer:N,signingClient:J}=await W(),U=(await N.getAccounts())?.[0]?.address;if(!U)throw new Fo("toolbox_cosmos_signer_not_defined");return J.sign(U,L.msgs,L.fee,L.memo,{accountNumber:L.accountNumber,chainId:L.chainId,sequence:L.sequence})}return{..._,broadcastMultisigTx:H5({chain:n,prefix:C}),buildAminoMsg:Gf,buildEncodedTxBody:Xy,convertToSignable:dn,createDefaultAminoTypes:()=>gn(n),createDefaultRegistry:Go,createMultisig:hC,createTransaction:dT,deposit:Z,getFees:l,importSignature:A5,parseAminoMessageForDirectSigning:an,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:N}=(await import("@cosmjs/amino")).default;return N(L,C)},secp256k1HdWalletFromMnemonic:T5({derivationPath:e_(A),prefix:C}),signAndBroadcastTransaction:X,signMultisigTx:C5(n),signTransaction:z,signWithPrivateKey:_5,transfer:Z}}var Ht=p(()=>{aT();ly();lf()});import{Chain as My,SwapKitError as U5}from"@swapkit/helpers";var w5=(n,y)=>{switch(n){case My.Cosmos:case My.Kujira:case My.Noble:return By({chain:n,...y});case My.Maya:case My.THORChain:return Ct({chain:n,...y});default:throw new U5("toolbox_cosmos_not_supported",{chain:n})}};var mC=p(()=>{lf();Ht();lf();Ht()});var Xf={};nn(Xf,{verifySignature:()=>bC,transferMsgAmino:()=>rT,toBase64:()=>R_,parseAminoMessageForDirectSigning:()=>an,getSignerFromPrivateKey:()=>i_,getSignerFromPhrase:()=>ft,getMsgSendDenom:()=>rn,getFeeRateFromSwapKit:()=>h_,getDenomWithChain:()=>Gy,getDefaultChainFee:()=>vn,getCosmosToolbox:()=>w5,getCosmosAddressValidator:()=>vC,getAssetFromDenom:()=>hT,fromBase64:()=>x_,fetchFeeRateFromSwapKit:()=>Tt,estimateTransactionFee:()=>m_,depositMsgAmino:()=>gT,createTransaction:()=>dT,createThorchainToolbox:()=>Ct,createStargateClient:()=>Vn,createSigningStargateClient:()=>qo,createOfflineStargateClient:()=>cT,createDefaultRegistry:()=>Go,createDefaultAminoTypes:()=>gn,createCosmosToolbox:()=>By,cosmosCreateTransaction:()=>iT,convertToSignable:()=>dn,buildTransferTx:()=>DC,buildEncodedTxBody:()=>Xy,buildDepositTx:()=>OC,buildAminoMsg:()=>Gf,bech32ToBase64:()=>wy,base64ToBech32:()=>qy,YUM_KUJIRA_FACTORY_DENOM:()=>BC,USK_KUJIRA_FACTORY_DENOM:()=>jT,THORCHAIN_GAS_VALUE:()=>I_,MAYA_GAS_VALUE:()=>$_,DEFAULT_NOBLE_FEE_MAINNET:()=>QC,DEFAULT_KUJI_FEE_MAINNET:()=>LC,DEFAULT_COSMOS_FEE_MAINNET:()=>MC});var Wf=p(()=>{aT();mC();ly()});function q5({builder:n,grouping:y="na",orders:T}){return{builder:n,grouping:y,orders:T,type:"order"}}function G5({cancels:n}){return{cancels:n,type:"cancel"}}function l5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function X5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function W5({modifies:n}){return{modifies:n,type:"batchModify"}}function B5({asset:n,isCross:y,leverage:T}){return{asset:n,isCross:y,leverage:T,type:"updateLeverage"}}function M5({asset:n,isBuy:y,ntli:T}){return{asset:n,isBuy:y,ntli:T,type:"updateIsolatedMargin"}}function L5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function Q5({time:n}){return{time:n,type:"scheduleCancel"}}function Z5({amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:T,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function J5({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 Y5({agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:T,nonce:o,signatureChainId:f,type:"approveAgent"}}function N5({builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:T,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function z5({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 At}from"@swapkit/helpers";import{keccak256 as D5,Signature as O5}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 k5(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(k5(217,0,y.length),y)}function u5(n){let y=n.map((o)=>_t(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 P5(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),_t(f)]))}function _t(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 At("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 u5(n);if(typeof n==="object")return P5(n);throw new At("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function I5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new At("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:R5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...x5.Agent]}}}function eC(n){let y=p5[n.type],T=F5[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=O5.from(n);return{r:y.r,s:y.s,v:y.v}}function o1(n,y,{expiresAfter:T,vaultAddress:o}={}){let f=_t(n),t=sn(BigInt(y),8),C=o?ln(new Uint8Array([1]),I5(o.toLowerCase())):new Uint8Array([0]),H=typeof T==="number"?ln(new Uint8Array([0]),sn(BigInt(T),8)):new Uint8Array;return D5(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",R5,x5,dC="Mainnet",F5,p5,S5;var f1=p(()=>{R5={chainId:1337,name:"Exchange",verifyingContract:gC,version:"1"},x5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},F5={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"}]},p5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},S5=new TextEncoder});import{AssetValue as qt,Chain as $5,derivationPathToString as E5,getChainConfig as C1,getRPCUrl as b5,NetworkDerivationPath as v5,RequestClient as po,SwapKitError as So,updateDerivationPath as V5}from"@swapkit/helpers";import{HDNodeWallet as K5}from"ethers";import{match as j5,P as Ut}from"ts-pattern";function Yn(n,y){if(!lt(n))throw new So(y,{address:n});return n.toLowerCase()}async function Xo(n){let y=await Bf();return po.post(`${y}/info`,{json:n})}function d5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"clearinghouseState",user:Yn(y,"helpers_invalid_params")})}function a5({user:n}){return Xo({type:"spotClearinghouseState",user:Yn(n,"helpers_invalid_params")})}function s5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"openOrders",user:Yn(y,"helpers_invalid_params")})}function e5({dex:n,user:y}){return Xo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Yn(y,"helpers_invalid_params")})}function n2({oidOrCloid:n,user:y}){return Xo({oid:n,type:"orderStatus",user:Yn(y,"helpers_invalid_params")})}function o2({aggregateByTime:n,user:y}){return Xo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Yn(y,"helpers_invalid_params")})}function y2({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=c5[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 qt({decimal:t,identifier:H,value:T})}function f2(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=qt.from({chain:kn,value:0});y.set(T.toString({includeSynthProtocol:!0}),T)}return[...y.values()]}async function Bf(){try{return await b5(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 Gt(){return`${await Bf()}/exchange`}function T2(n){let y=g5[n.type],{type:T,...o}=n,f=r5[T];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:m5,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 Gt(),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 Gt(),nonce:o,typedData:eC(t)}}async function wt({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 Gt(),A=n.getValue("string"),_=f||Date.now(),G=n.address;if(!G)throw new So("helpers_invalid_params",{asset:n.toString(),from:C});let M={amount:A,destination:t,hyperliquidChain:i5,signatureChainId:o||h5,time:_,token:G,type:"spotSend"};return{action:M,endpoint:H,nonce:_,typedData:T2(M)}}async function t1(n){let y=await po.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 Bf(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((t)=>setTimeout(t,1000));try{let t=await po.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")&&Hy(n)}function C2(n){let y=qn(kn),T=n&&"index"in n?n.index||0:0,o=E5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:V5(v5[kn],{index:T})),f,t=!1;function C(){if(t)return f;return f=j5(n).with({phrase:Ut.string},({phrase:w})=>{return K5.fromPhrase(w,void 0,o)}).with({signer:Ut.not(Ut.nullish)},({signer:w})=>w).otherwise(()=>{return}),t=!0,f}async function H(){let w=C();return w?await w.getAddress():""}async function A(w){let W=C();if(!W)throw new So("toolbox_hypercore_no_signer");let X=await W.signTypedData(w.typedData.domain,w.typedData.types,w.typedData.message);return{action:w.action,endpoint:w.endpoint,nonce:w.nonce,signature:n1(X),..."expiresAfter"in w?{expiresAfter:w.expiresAfter}:{},..."vaultAddress"in w?{vaultAddress:w.vaultAddress}:{}}}async function _(w){let W=Yn(w,"helpers_invalid_params");try{let X=await Bf(),[l,Z,z]=await Promise.all([po.post(`${X}/info`,{json:{type:"spotClearinghouseState",user:W}}),po.post(`${X}/info`,{json:{type:"clearinghouseState",user:W}}),po.post(`${X}/info`,{json:{type:"spotMeta"}})]),L=(l.spotState?.balances||l.balances||[]).map(({coin:J,token:U,total:B})=>T1({coin:J,spotMeta:z,token:U,value:B})).filter((J)=>!!J),N=T1({coin:"USDC",spotMeta:z,value:Z.withdrawable||Z.marginSummary?.accountValue||Z.marginSummary?.totalRawUsd});return f2(N?[...L,N]:L)}catch{return y(W)}}async function G(w){let W=C();if(!W)throw new So("toolbox_hypercore_no_signer");let X=w.sender||await W.getAddress(),l=await wt({...w,feeRate:0,sender:X}),Z=await A(l);return await t1(Z),t2(X,l.nonce)}function M(){return qt.from({chain:kn,value:0})}return{broadcastTransaction:t1,createL1ActionRequest:A1,createTransaction:wt,createUserSignedActionRequest:_1,estimateTransactionFee:M,getAddress:H,getBalance:_,getState:{clearinghouse:d5,frontendOpenOrders:e5,openOrders:s5,orderStatus:n2,spotClearinghouse:a5,userFills:o2,userFillsByTime:y2},signTransaction:A,transfer:G,validateAddress:lt}}var kn,H1,c5,i5="Mainnet",h5="0xa4b1",m5="0x0000000000000000000000000000000000000000",r5,g5;var U1=p(()=>{uT();En();f1();kn=$5.HyperCore,{baseDecimal:H1}=C1(kn),c5={HYPE:H1,USDC:6,USDT:6},r5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},g5={spotSend:"HyperliquidTransaction:SpotSend"}});var Xt={};nn(Xt,{validateHyperCoreAddress:()=>lt,getHyperCoreToolbox:()=>C2,createUserSignedActionRequest:()=>_1,createTransaction:()=>wt,createL1ActionRequest:()=>A1,buildUsdClassTransferAction:()=>Z5,buildUpdateLeverageAction:()=>B5,buildUpdateIsolatedMarginAction:()=>M5,buildTopUpIsolatedOnlyMarginAction:()=>L5,buildTokenDelegateAction:()=>z5,buildSendAssetAction:()=>J5,buildScheduleCancelAction:()=>Q5,buildOrderAction:()=>q5,buildModifyAction:()=>X5,buildCancelByCloidAction:()=>l5,buildCancelAction:()=>G5,buildBatchModifyAction:()=>W5,buildApproveBuilderFeeAction:()=>N5,buildApproveAgentAction:()=>Y5});var Wt=p(()=>{U1()});import{PublicKey as en}from"@solana/web3.js";import{AssetValue as Mf,Chain as jn,DerivationPath as H2,derivationPathToString as A2,getChainConfig as l1,getRPCUrl as _2,NetworkDerivationPath as U2,SwapKitError as ko,updateDerivationPath as w2}from"@swapkit/helpers";import{match as q2,P as w1}from"ts-pattern";async function X1(n){let y=Mf.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 G2(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=[Mf.from({chain:jn.Solana,fromBaseDecimal:t,value:C||0})],A=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:_}of A.value){let G=_.data.parsed.info,M=G.mint,w=G.tokenAmount.amount;if(Number(w)===0)continue;let W=await X1(M),X=W?.symbol||"UNKNOWN",l=W?.decimals||G.tokenAmount.decimals;H.push(Mf.from({asset:`${jn.Solana}.${X}-${M}`,fromBaseDecimal:l,value:w}))}return H}function Mt(n){try{let y=new en(n);return en.isOnCurve(y.toBytes())}catch{return!1}}function l2(n){let y=n&&"index"in n?n.index||0:0,T=A2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:w2(U2[jn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await q2(n).with({phrase:w1.string},({phrase:C})=>Bt({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:Lf(Kn),createKeysForPath:Bt,createTransaction:Lt(Kn),createTransactionFromInstructions:M2,estimateTransactionFee:X2(Kn),getAddress:t,getAddressFromPubKey:G1,getBalance:qn(jn.Solana),getBalanceFromRPC:G2,getConnection:Kn,getPubkeyFromAddress:(C)=>new en(C),signAndBroadcastTransaction:async(C)=>{let H=await q1(Kn,f)(C);return Lf(Kn)(H)},signTransaction:q1(Kn,f),transfer:L2(Kn,f),validateAddress:Mt}}function X2(n){return async({recipient:y,assetValue:T,memo:o,isProgramDerivedAddress:f,sender:t})=>{let C=await n(),A=(await Lt(n)({assetValue:T,isProgramDerivedAddress:f,memo:o,recipient:y,sender:t})).compileMessage(),_=await C.getFeeForMessage(A);if(_.value===null)throw new ko("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:G}=l1(jn.Solana);return Mf.from({chain:jn.Solana,fromBaseDecimal:G,value:_.value})}}async function Kn(){let{Connection:n}=await import("@solana/web3.js"),y=await _2(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 W2(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 B2({amount:y.getBaseValue("number"),connection:t,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:T,tokenAddress:y.address});return}}async function B2({tokenAddress:n,recipient:y,from:T,connection:o,amount:f,decimals:t,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:A,createAssociatedTokenAccountInstruction:_,createTransferCheckedInstruction:G}=await import("@solana/spl-token"),{Transaction:M}=await import("@solana/web3.js"),w=new M,W=new en(n),X=await H(W,T),l=new en(y),Z=await H(W,l,C),z=!1;try{await A(o,Z),z=!0}catch{}if(!z)w.add(_(T,Z,l,W));return w.add(G(X,W,Z,T,f,t)),w}function Lt(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||Mt(y)))throw new ko("core_transaction_invalid_recipient_address");let A=await n(),_=await W2(n)({assetValue:T,isProgramDerivedAddress:f,recipient:y,sender:t});if(!_)throw new ko("core_transaction_invalid_sender_address");if(o)_.add(C(o));let G=await A.getLatestBlockhash();return _.recentBlockhash=G.blockhash,_.feePayer=H,_}}async function M2({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),T=new y().add(...n);if(!T)throw new ko("core_transaction_invalid_sender_address");return T}function L2(n,y){return async({recipient:T,assetValue:o,memo:f,isProgramDerivedAddress:t})=>{let C=await y();if(!C)throw new ko("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),A=await Lt(n)({assetValue:o,isProgramDerivedAddress:t,memo:f,recipient:T,sender:H});if("signTransaction"in C){let _=await C.signTransaction(A);return Lf(n)(_)}return A.sign(C),Lf(n)(A)}}function Lf(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 ko("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 Bt({phrase:n,derivationPath:y=H2.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=p(()=>{En()});var Qt={};nn(Qt,{validateSolanaAddress:()=>Mt,getSolanaToolbox:()=>l2,fetchTokenMetaData:()=>X1,createKeysForPath:()=>Bt});var Zt=p(()=>{W1()});import{AssetValue as Qf,Chain as Zf,DerivationPath as M1,derivationPathToString as Q2,getChainConfig as Z2,getRPCUrl as Nt,NetworkDerivationPath as J2,SwapKitError as Ln,updateDerivationPath as Y2}from"@swapkit/helpers";import{match as Jt,P as uo}from"ts-pattern";function Jf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function Yf({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),G=T.fromMasterSeed(A).derive(y);if(!G.privateKey)throw new Ln("toolbox_starknet_no_signer");let M=C.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),w=f.starkCurve.grindKey(M),W=C.addHexPrefix(w),X=f.starkCurve.getStarkKey(W),l=H.compile([X,0]);return{address:t.calculateContractAddressFromHash(X,zt,l,0),privateKey:W,publicKey:X}}async function Dt({phrase:n,derivationPath:y=M1.STRK}){let{Account:T,RpcProvider:o}=await import("starknet"),{privateKey:f,address:t}=await Yf({derivationPath:y,phrase:n}),C=await Nt(Zf.Starknet),H=new o({nodeUrl:C});return new T({address:t,provider:H,signer:f})}function L1(n){let y=Zf.Starknet,T=n&&"index"in n?n.index||0:0,o=Q2(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:Y2(J2[y],{index:T})),f,t,C;async function H(){if(t)return t;let{RpcProvider:U}=await import("starknet"),B=await Nt(y);return t=new U({nodeUrl:B}),t}async function A(U){let B=await H(),q=U||await w();if(!q)return!1;try{return await B.getClassHashAt(q),!0}catch(Y){if(Y instanceof Error&&Y.message.includes("Contract not found"))return!1;let D=Y;if(D?.code===20||D?.code===19)return!1;throw Y}}async function _(){let{CallData:U,hash:B}=await import("starknet"),q=await H(),Y=await M();if(!Y)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 Y.address;let Q=U.compile([C,0]);if(B.calculateContractAddressFromHash(C,zt,Q,0).toLowerCase()!==Y.address.toLowerCase())throw new Ln({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let R={addressSalt:C,classHash:zt,constructorCalldata:Q},{transaction_hash:S}=await Y.deployAccount(R);return await q.waitForTransaction(S),S}async function G(){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 M(){if(f)return f;return f=await Jt(n).with({phrase:uo.string},async({phrase:U})=>{let{Account:B,RpcProvider:q}=await import("starknet"),{privateKey:Y,address:D,publicKey:Q}=await Yf({derivationPath:o,phrase:U});C=Q;let O=await Nt(Zf.Starknet),R=new q({nodeUrl:O});return new B({address:D,provider:R,signer:Y})}).with({address:uo.string,privateKey:uo.string},async({privateKey:U,address:B})=>{let{Account:q}=await import("starknet"),Y=await H();return new q({address:B,provider:Y,signer:U})}).with({signer:uo.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function w(){return(await M())?.address??""}async function W(U){let B=await H(),{uint256:q,CallData:Y}=await import("starknet"),D=[],Q=[Yt,B1];for(let O of Q)try{let[R="0",S="0"]=await B.callContract({calldata:Y.compile({account:U}),contractAddress:O,entrypoint:"balanceOf"}),k=q.uint256ToBN({high:R,low:S});Jt(O).with(Yt,()=>{D.push(Qf.from({chain:y,value:k}))}).with(B1,()=>{if(k>0n)D.push(Qf.from({asset:`${y}.ETH-${O}`,value:k}))}).otherwise(()=>{})}catch{}return D}async function X({recipient:U,assetValue:B}){let{CallData:q,uint256:Y}=await import("starknet");if(!Jf(U))throw new Ln("core_transaction_invalid_recipient_address",{address:U});let D=B.isGasAsset?Yt:B.address;if(!D)throw new Ln("toolbox_starknet_invalid_address",{address:D,assetValue:B});let Q=Y.bnToUint256(B.getBaseValue("bigint"));return[{calldata:q.compile([U,Q]),contractAddress:D,entrypoint:"transfer"}]}async function l({recipient:U,assetValue:B,sender:q}){let{baseDecimal:Y}=Z2(Zf.Starknet),D=await M(),Q=await Jt({sender:q,signer:D}).with({sender:uo.string},async({sender:O})=>{let{Account:R}=await import("starknet"),S=await H();return new R({address:O,provider:S,signer:"0x0"})}).with({signer:uo.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 X({assetValue:B,recipient:U}),R=await Q.estimateInvokeFee(O);if(R?.overall_fee)return Qf.from({chain:y,fromBaseDecimal:Y,value:R.overall_fee})}catch(O){throw new Ln("toolbox_starknet_fee_estimation_failed",O)}return Qf.from({chain:y,value:"0.00001"})}async function Z({recipient:U,assetValue:B,memo:q}){let Y=await M();if(!Y)throw new Ln("toolbox_starknet_no_signer");await G();let D=await X({assetValue:B,memo:q,recipient:U});return(await Y.execute(D)).transaction_hash}async function z(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");let q=await B.signMessage(U);return Array.isArray(q)?q:[q.r.toString(),q.s.toString()]}async function L(U){let B=await M();if(!B)throw new Ln("toolbox_starknet_no_signer");return await G(),(await B.execute(U)).transaction_hash}function N(U){return L(U)}function J(U,B=!0){try{return qn(y)(U,B)}catch{return W(U)}}return{broadcastTransaction:L,createKeysForPath:Dt,createTransaction:X,deployAccount:_,estimateTransactionFee:l,getAddress:w,getBalance:J,getProvider:H,isAccountDeployed:A,signAndBroadcastTransaction:N,signMessage:z,transfer:Z,validateAddress:Jf}}var Yt="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",B1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",zt="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var Q1=p(()=>{En()});var Nf={};nn(Nf,{validateStarknetAddress:()=>Jf,starknetCreateKeysForPath:()=>Dt,getStarknetToolbox:()=>L1,deriveStarknetKeys:()=>Yf});var zf=p(()=>{Q1()});import{isValidSuiAddress as N2}from"@mysten/sui/utils";import{AssetValue as Po,Chain as Df,getChainConfig as z2,SwapKitError as Nn}from"@swapkit/helpers";import{match as D2,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 O2(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 N2(n)}catch{return!1}}function J1(n){return"signWithIntent"in n}function R2({provider:n,...y}={}){let T;async function o(){if(T)return T;return T=await D2(y).with({phrase:Z1.string},async({phrase:X})=>{let{Ed25519Keypair:l}=await import("@mysten/sui/keypairs/ed25519");return l.deriveKeypair(X)}).with({signer:Z1.any},({signer:X})=>X).otherwise(()=>{return}),T}async function f(X=n){let{SuiClient:l,getFullnodeUrl:Z}=await import("@mysten/sui/client");return new l({url:X||Z("mainnet")})}async function t(){return(await o())?.toSuiAddress()||""}function C(X){try{let l=Po.from({address:X,chain:Df.Sui});return{asset:l.toString(),decimals:l.decimal}}catch{}return null}async function H(X){let l=X||await t();if(!l)throw new Nn("toolbox_sui_address_required");let{baseDecimal:Z,chain:z}=z2(Df.Sui);try{let L=await f(),{totalBalance:N}=await L.getBalance({owner:l}),J=[Po.from({chain:z,fromBaseDecimal:Z,value:N})],U=await L.getAllBalances({owner:l});for(let{coinType:B,totalBalance:q}of U){if(B==="0x2::sui::SUI"||Number(q)<=0)continue;let Y=C(B);if(Y)J.push(Po.from({asset:Y.asset,fromBaseDecimal:Y.decimals,value:q}))}return J}catch{return[Po.from({chain:z})]}}async function A(X){let l=Po.from({chain:Df.Sui,value:"0.01"});if(!X)return l;try{let Z=await f(),{txBytes:z}=await _(X),{effects:{status:L,gasUsed:N}}=await Z.dryRunTransactionBlock({transactionBlock:z});if(L.status!=="success")return l;let J=Number(N.computationCost)+Number(N.storageCost)-Number(N.storageRebate);return Po.from({chain:Df.Sui,value:J.toString()})}catch{return l}}async function _({recipient:X,assetValue:l,gasBudget:Z,sender:z}){let{Transaction:L}=await import("@mysten/sui/transactions"),N=z||await t();if(!N)throw new Nn("toolbox_sui_no_sender");try{let J=new L;if(J.setSender(N),l.isGasAsset||l.symbol==="SUI"){let[q]=J.splitCoins(J.gas,[l.getBaseValue("string")]);J.transferObjects([q],X)}else{let q=l.address;if(!q)throw new Nn("toolbox_sui_missing_coin_type");let Y=await f(),D=l.getBaseValue("bigint"),Q=await Y1(Y,N,q);if(!Q.length)throw new Nn("toolbox_sui_no_coins_found",{coinType:q});let O=O2(J,Q,D);J.transferObjects([O],X)}if(Z)J.setGasBudget(Z);let U=await f(),B=await J.build({client:U});return{tx:J,txBytes:B}}catch(J){if(J instanceof Nn)throw J;throw new Nn("toolbox_sui_transaction_creation_error",{error:J})}}async function G(X){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");if(X instanceof Uint8Array)return l.signTransaction(X);let{txBytes:Z}="tx"in X?X:await _(X);return l.signTransaction(Z)}async function M({assetValue:X,gasBudget:l,recipient:Z}){let z=await o();if(!z)throw new Nn("toolbox_sui_no_signer");let L=z.toSuiAddress()||await t();if(!L)throw new Nn("toolbox_sui_no_sender");let{txBytes:N}=await _({assetValue:X,gasBudget:l,recipient:Z,sender:L}),J=await f();if(!J1(z)){let B=await z.signTransaction(N),{digest:q}=await J.executeTransactionBlock({signature:B.signature,transactionBlock:B.bytes});return q}let{digest:U}=await J.signAndExecuteTransaction({signer:z,transaction:N});return U}async function w(X){let l=await f(),{digest:Z}=await l.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return Z}async function W(X){let l=await o();if(!l)throw new Nn("toolbox_sui_no_signer");let Z=await f(),z;if(typeof X==="string")z=Uint8Array.from(Buffer.from(X,"base64"));else if(X instanceof Uint8Array)z=X;else z=await X.build({client:Z});if(!J1(l)){let N=await l.signTransaction(z),{digest:J}=await Z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return J}let{digest:L}=await Z.signAndExecuteTransaction({signer:l,transaction:z});return L}return{broadcastTransaction:w,createTransaction:_,estimateTransactionFee:A,getAddress:t,getBalance:H,signAndBroadcastTransaction:W,signTransaction:G,transfer:M,validateAddress:N1}}var z1=()=>{};var Of={};nn(Of,{validateSuiAddress:()=>N1,getSuiToolbox:()=>R2});var Rf=p(()=>{z1()});import{getHttpEndpoint as x2}from"@orbs-network/ton-access";import{AssetValue as F2,Chain as Qy,getChainConfig as p2,getRPCUrl as S2,SwapKitError as Ly,SwapKitNumber as k2}from"@swapkit/helpers";import{mnemonicToWalletKey as u2}from"@ton/crypto";import{Address as cn,beginCell as Ot,Cell as D1,external as P2,internal as I2,JettonMaster as $2,loadStateInit as E2,SendMode as O1,storeMessage as b2,TonClient as v2,toNano as p1,WalletContractV4 as V2}from"@ton/ton";import{match as R1,P as Rt}from"ts-pattern";async function h2(){let n=Date.now();if(xf&&n-F1<i2)return xf;try{return xf=await x2(),F1=n,xf}catch{return S2(Qy.Ton)}}function m2(n={}){let y,T,o;async function f(){if(!y){let J=n.provider??await h2();y=new v2({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:Rt.string},async({phrase:J})=>u2(J.split(" "))).with({signer:Rt.any},({signer:J})=>J).otherwise(()=>{return}),o}async function H(J){if(!T||J){let U=await C(),B=await f(),q=J||U;if(!q)throw new Ly("core_wallet_connection_not_found");let Y=V2.create({publicKey:q.publicKey,workchain:0});T=B.open(Y)}return T}let A=qn(Qy.Ton);async function _({assetValue:J,recipient:U,memo:B,sender:q}){if(J.isGasAsset){let b=B?N(B).toBoc().toString("base64"):void 0;return[{address:U,amount:J.getBaseValue("string"),payload:b}]}let Y=J.address;if(!Y)throw new Ly({errorKey:"core_swap_contract_not_found",info:{asset:J.toString()}});let D=q??await t(),Q=await z({jettonMasterAddress:Y,ownerAddress:D}),O=cn.parse(U),R=cn.parse(D),S=J.getBaseValue("bigint"),k=B?N(B):void 0,I=L({destinationAddress:O,forwardPayload:k,jettonAmount:S,responseAddress:R});return[{address:Q.toString(),amount:c2.toString(),payload:I.toBoc().toString("base64")}]}function G({sender:J,...U}){return _({...U,sender:J})}function M(J){return J.map((U)=>{let B=U.payload?D1.fromBase64(U.payload):void 0,q=U.stateInit?E2(D1.fromBase64(U.stateInit).asSlice()):void 0,Y=cn.parse(U.address),D=cn.isFriendly(U.address)?cn.parseFriendly(U.address).isBounceable:!0;return I2({body:B,bounce:D,init:q,to:Y,value:BigInt(U.amount)})})}async function w(J){let U=await C(),B=await H();if(!B||!U)throw new Ly("core_wallet_connection_not_found");let q=await f(),{state:Y}=await q.getContractState(B.address),D=Y==="active",Q=D?await B.getSeqno():0,O=B.createTransfer({messages:M(J),secretKey:U.secretKey,sendMode:x1,seqno:Q}),R=P2({body:O,init:D?void 0:B.init,to:B.address});return Ot().store(b2(R)).endCell()}async function W(J){return await(await f()).sendFile(J.toBoc()),J.hash().toString("hex")}async function X(J){let U=await w(J);return W(U)}async function l({assetValue:J,recipient:U,memo:B}){let q=await G({assetValue:J,memo:B,recipient:U});return X(q)}async function Z({sender:J,...U}){let{baseDecimal:B}=p2(Qy.Ton),q=await R1(J).with(Rt.string,(Q)=>{return cn.parseFriendly(Q).address}).otherwise(async()=>{return(await H()).address});if(!q)throw new Ly("toolbox_fee_estimation_failed",{chain:Qy.Ton});let Y=F2.from({chain:Qy.Ton,value:"0.01"}),D=await f();try{let Q=await G({sender:J,...U}),O=await C(),R=await H();if(!R||!O)return Y;let S=await R.getSeqno(),k=R.createTransfer({messages:M(Q),secretKey:O.secretKey,sendMode:x1,seqno:S}),{source_fees:I}=await D.estimateExternalMessageFee(q,{body:k,ignoreSignature:!0,initCode:null,initData:null}),b=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return Y.set(k2.fromBigInt(BigInt(b),B))}catch{return Y}}async function z({jettonMasterAddress:J,ownerAddress:U}){try{let B=await f(),q=cn.parse(J),Y=cn.parse(U);return await B.open($2.create(q)).getWalletAddress(Y)}catch{throw new Ly({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:J,ownerAddress:U}})}}function L({jettonAmount:J,destinationAddress:U,responseAddress:B,forwardAmount:q=j2,forwardPayload:Y}){let D=Ot().storeUint(K2,32).storeUint(0,64).storeCoins(J).storeAddress(U).storeAddress(B).storeBit(0).storeCoins(q);if(Y)D.storeBit(1).storeRef(Y);else D.storeBit(0);return D.endCell()}function N(J){return Ot().storeUint(0,32).storeStringTail(J).endCell()}return{broadcastTransaction:W,createTransaction:G,estimateTransactionFee:Z,getAddress:t,getBalance:A,getJettonWalletAddress:z,sign:w,signAndBroadcastTransaction:X,transfer:l,validateAddress:S1}}function S1(n){try{return cn.parse(n),!0}catch{return!1}}var K2=260734629,j2,c2,x1,i2=60000,xf,F1=0;var k1=p(()=>{En();j2=p1("0.01"),c2=p1("0.05"),x1=O1.PAY_GAS_SEPARATELY+O1.IGNORE_ERRORS});var Ff={};nn(Ff,{validateTonAddress:()=>S1,getTONToolbox:()=>m2});var pf=p(()=>{k1()});import{NetworkDerivationPath as r2}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)??r2[y].slice(0,3)];if(n!==void 0)o[2]=n;return o}function Io({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:G=0,change:M=!1}=H;if(zn("count",_),_<1)throw RangeError("count must be at least 1");zn("startIndex",G);let w=[];for(let W=0;W<_;W++){let X=await n({accountIndex:A,change:M,index:G+W});if(X)w.push(X)}return w}async function f(H){let{gapLimit:A=20,change:_=!1}=H??{},G=[],M=0,w=0;while(M<A){let W=await n({change:_,index:w});if(!W)break;if((await y(W.address)).some((Z)=>Z.getValue("number")>0))G.push(W),M=0;else M++;w++}return G}async function t(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[...A,..._],M=await Promise.all(G.map(async(W)=>{let l=(await y(W.address)).reduce((Z,z)=>Z+z.getValue("number"),0);return{...W,balance:l}})),w=M.reduce((W,X)=>W+X.balance,0);return{addresses:M,total:w}}async function C(H=20){let[A,_]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[...A,..._];return(await Promise.all(G.map(async(w)=>{return(await T(w.address)).map((X)=>({...X,address:w.address,derivationIndex:w.index,isChange:w.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:t,getAggregatedUtxos:C,scanForAddresses:f}}var Zy=()=>{};import{Chain as tn,getRPCUrl as g2,RequestClient as Sf,SKConfig as d2,SwapKitError as un,warnOnce as a2}from"@swapkit/helpers";import{NETWORKS as $o}from"@swapkit/utxo-signer";async function s2({chain:n,txHash:y}){let T=`${Jy(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 g2(n);if(t){let C=JSON.stringify({id:p0(),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 Jy(n){return`https://api.blockchair.com/${e2(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 e2(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 nU(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 kf(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 kf(`${Jy(y)}/dashboards/address/${n}?transaction_details=true`,T))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function oU({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 kf(`${Jy(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 fU({chain:n,apiKey:y,txHash:T}){if(!T)throw new un("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await kf(`${Jy(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((G)=>G.spending_sequence),_=t.is_rbf===!0||A.some((G)=>G<yU);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 TU({chain:n,address:y,apiKey:T,offset:o=0,limit:f=30}){return(await kf(`${Jy(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:G,transaction_hash:M,index:w,value:W,spending_signature_hex:X})=>({hash:M,index:w,is_confirmed:G!==-1,is_spent:A,script_hex:_,txHex:X,value:W}))}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 TU({address:y,apiKey:T,chain:n,limit:C,offset:t,targetValue:o}),_=H.length<C,G=H.filter(({is_spent:Z})=>!Z),M=tU(G),w=f+M,W=o&&w>=o;if(_||W)return I1(G,o);let X=await b1({accumulativeValue:w,address:y,apiKey:T,chain:n,limit:C,offset:t+C,targetValue:o}),l=[...G,...X];return I1(l,o)}catch(H){let A=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${A}`),[]}}async function CU({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:G}of t){let M;if(o)M=await E1({apiKey:T,chain:y,txHash:H});C.push({address:n,hash:H,index:A,txHex:M,value:G,witnessUtxo:{script:Buffer.from(_,"hex"),value:G}})}return C}function s(n){let y=d2.get("apiKeys").blockchair||"";return a2({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(T)=>s2({chain:n,txHash:T}),getAddressData:(T)=>$1({address:T,apiKey:y,chain:n}),getBalance:(T)=>oU({address:T,apiKey:y,chain:n}),getRawTx:(T)=>E1({apiKey:y,chain:n,txHash:T}),getSuggestedTxFee:()=>nU(n),getTransactionDetails:(T)=>fU({apiKey:y,chain:n,txHash:T}),getUtxos:(T)=>CU({...T,apiKey:y,chain:n})}}function HU(n){return n}function AU(){return function(y){switch(y){case tn.Bitcoin:return $o.bitcoin;case tn.BitcoinCash:return $o.bitcoinCash;case tn.Dash:return $o.dash;case tn.Litecoin:return $o.litecoin;case tn.Dogecoin:return $o.dogecoin;case tn.Zcash:return $o.zcash;default:throw new un("toolbox_utxo_not_supported",{chain:y})}}}var yU=4294967294;var v1=p(()=>{En()});import{CashAddrType as uf,decodeCashAddr as _U,encodeCashAddr as UU}from"@swapkit/utxo-signer";function GU(n,y,T){return UU({hash:T,prefix:n,type:wU[y]})}function lU(n){let y=_U(n),T=qU[y.type];if(!T)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:T}}var wU,qU,xt;var V1=p(()=>{wU={P2PKH:uf.P2PKH,P2SH:uf.P2SH},qU={[uf.P2PKH]:"P2PKH",[uf.P2SH]:"P2SH"};xt={decode:lU,encode:GU}});import{sha256 as XU}from"@noble/hashes/sha2.js";import{createBase58check as WU}from"@scure/base";import{SwapKitError as j1}from"@swapkit/helpers";function pt(n){try{return Pf(n),!0}catch{return!1}}function St(n){return Pf(n)?.network}function hn(n){let y=Pf(n);if(y?.format==="legacy")return n;return LU(y)}function Yy(n){let y=Pf(n);return QU(y)}function Pf(n){try{let y=BU(n);if(y)return y}catch{}try{let y=MU(n);if(y)return y}catch{}throw new j1("toolbox_utxo_invalid_address",{address:n})}function BU(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 MU(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}=xt.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 LU(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 QU(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",T=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return xt.encode(y,T,o)}var c1,Ft,Bo;var i1=p(()=>{V1();c1=WU(XU);((T)=>{T.Mainnet="mainnet";T.Testnet="testnet"})(Ft||={});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 ZU}from"@swapkit/helpers";import{Script as JU}from"@swapkit/utxo-signer";function Bn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return JU.encode(["RETURN",y])}var YU=1000,$f=10,Ef=2,h1=10,NU=41,zU=107,bf,If,Ny,Eo=(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 ZU("toolbox_utxo_invalid_address",{address:n})},Mo=({inputs:n,outputs:y,feeRate:T})=>{let o=n[0]&&"address"in n[0]&&n[0].address?Eo(n[0].address):"P2PKH",t=(T?n.filter((_)=>_.value>=If["type"in _&&_.type?_.type:"P2PKH"]*Math.ceil(T)):n).reduce((_,G)=>_+oo(G),0),C=y?.reduce((_,G)=>_+zy(G),0)||Ny[o],H=$f+t+C;return o==="P2WPKH"?Math.ceil(H+Ef/4):H},oo=(n)=>{if("type"in n&&n.type)return If[n.type];if("address"in n&&n.address)return If[Eo(n.address)];return NU+zU},zy=(n,y)=>{if(n?.script)return h1+n.script.length+(n.script.length>=74?2:1);if(y)return Ny[y];if("address"in n&&n.address)return Ny[Eo(n.address)];return Ny.P2PKH};var kt=p(()=>{((T)=>{T.P2PKH="P2PKH";T.P2WPKH="P2WPKH"})(bf||={});If={["P2PKH"]:148,["P2WPKH"]:68},Ny={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Lo,SwapKitError as DU}from"@swapkit/helpers";function Dy(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 DU("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?Eo(n[0].address):"P2PKH",C=n.filter((X)=>oo(X)*T<=X.value),A=t==="P2WPKH"?Math.ceil(Ef/4):0,_=$f+A+y.reduce((X,l)=>X+zy(l),0),G=y.reduce((X,l)=>X+l.value,0),M=_*T,w=0,W=[];for(let X of C){let l=oo(X),Z=T*l;M+=Z,w+=X.value,W.push(X);let z=M+G;if(w<z)continue;let L=w-z,N=T*zy({address:f,value:0});if(L>N){let J=N+M,U=w-(G+Math.ceil(J));if(U>Math.max(oo({value:0})*T,Dy(o)))return{fee:Math.ceil(J),inputs:W,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(M),inputs:W,outputs:y}}return{fee:Math.ceil(T*Mo({inputs:n,outputs:y}))}}var m1=p(()=>{kt()});var bo=p(()=>{v1();i1();m1();kt()});import{Address as OU,ZCASH_NETWORK as RU}from"@swapkit/utxo-signer";function Qo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function yo(n){let y=Qo(n);return pt(y)&&St(y)==="mainnet"}function vo(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=OU(RU).decode(n);return T.type==="pkh"||T.type==="sh"}catch{return!1}}var Oy=p(()=>{bo()});import{secp256k1 as xU}from"@noble/curves/secp256k1.js";import{hex as Zo}from"@scure/base";import{HDKey as a1}from"@scure/bip32";import{mnemonicToSeedSync as Pt}from"@scure/bip39";import{AssetValue as vf,applyFeeMultiplier as r1,Chain as e,derivationPathToString as Ry,FeeOption as Pn,NetworkDerivationPath as s1,SwapKitError as c,SwapKitNumber as FU,updateDerivationPath as pU,warnOnce as SU}from"@swapkit/helpers";import{Address as kU,BCHSigHash as It,CashAddrPrefix as uU,CashAddrType as PU,encodeCashAddr as IU,NETWORKS as Vo,p2pkh as g1,p2wpkh as $U,RBF_SEQUENCE as EU,SigHash as e1,Transaction as ut,WIF as nH}from"@swapkit/utxo-signer";import{match as oH}from"ts-pattern";function $t({address:n,chain:y}){return oH(y).with(e.BitcoinCash,()=>yo(n)).with(e.Zcash,()=>vo(n)).otherwise(()=>{try{return kU(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 bU({phrase:n,derivationPath:y,network:T,seed:o}){let f=o??Pt(n),C=a1.fromMasterSeed(f,T.bip32).derive(y);if(!C.privateKey)throw new c("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function d1(n){return xU.getPublicKey(n,!0)}function Fy({publicKey:n,chain:y,network:T}){if(y===e.BitcoinCash){let t=g1(n,T);if(!t.hash)throw new c("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return IU({hash:t.hash,prefix:uU.MAINNET,type:PU.P2PKH}).replace(/^bitcoincash:/,"")}let f=!xy.includes(y)?$U(n,T):g1(n,T);if(!f.address)throw new c("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Ko({phrase:n,derivationPath:y,chain:T,wif:o,seed:f}){let t=An(T);if(o){let _=nH(t).decode(o),G=d1(_);return{privateKey:_,publicKey:G}}if(!n)throw new c("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||Ry(s1[T]),H=bU({derivationPath:C,network:t,phrase:n,seed:f}),A=d1(H);return{privateKey:H,publicKey:A}}function vU(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 c("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let t=An(T),C=o??Pt(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=!xy.includes(T),_=C?EU:void 0,G=new Set;for(let M of n){let w=`${M.hash}:${M.index}`;if(G.has(w))throw new c("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(w);let W=typeof M.hash==="string"?Zo.decode(M.hash):M.hash;if(A&&M.witnessUtxo)o.addInput({index:M.index,sequence:_,txid:W,witnessUtxo:{amount:BigInt(M.witnessUtxo.value),script:M.witnessUtxo.script}});else if(M.txHex)o.addInput({index:M.index,nonWitnessUtxo:Zo.decode(M.txHex),sequence:_,txid:W,...T===e.BitcoinCash?{sighashType:It.ALL}:{}});else throw new c("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let M of y){let w="address"in M&&M.address?M.address:f;if(T===e.BitcoinCash)w=hn(w);if(M.script){if(t)o.addOutput({amount:0n,script:t})}else o.addOutputAddress(w,BigInt(M.value),H)}return{inputs:n,tx:o}}async function jo(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 jo(t))[Pn.Fastest],H=f||xy.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:G,outputs:M}=Dn({..._,chain:H,feeRate:o});if(!(G&&M))throw new c("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new ut({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:X}=fo({chain:H,compiledMemo:A,enableRBF:C,inputs:G,outputs:M,sender:f,tx:w});return{inputs:W,tx:X,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 jo(C))[y];return Dn({...H,chain:C,feeRate:A})}function KU(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 jo(n))[t],_=H?.utxo.map((l)=>({...l,hash:"",type:"P2PKH"})).filter((l)=>l.value>Math.max(Dy(n),oo(l)*A));if(!_?.length)return vf.from({chain:n});let G=BigInt(_.reduce((l,Z)=>l+Z.value,0)),M=vf.from({chain:n,value:G}),w=typeof C==="number"?Array.from({length:C},()=>({address:T,value:0})):C;if(o)w.push({address:T,script:Bn(o),value:0});let W=Mo({inputs:_,outputs:w}),X=vf.from({chain:n,value:BigInt(W*A)});return M.sub(X)}}function jU(n){return async function(T){let{fee:o}=await TH(T);return vf.from({chain:n,value:FU.fromBigInt(BigInt(o),8).getValue("string")})}}function cU({chain:n,phrase:y,derivationPath:T,seed:o}){let f=An(n),{privateKey:t,publicKey:C}=Ko({chain:n,derivationPath:T,phrase:y,seed:o}),H=n===e.BitcoinCash?[It.ALL]:[e1.ALL];return{getAddress:()=>Fy({chain:n,network:f,publicKey:C}),privateKey:t,publicKey:C,signTransaction:(A)=>{return A.sign(t,H),A}}}function iU(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 c("toolbox_utxo_no_signer");if(!f)throw new c("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 G=A&&Vf.includes(n),M=C||(await jo(n))[t||Pn.Fast],{tx:w}=await fH({assetValue:H,enableRBF:G,feeRate:M,memo:o,recipient:f,sender:_});return y.signTransaction(w),w.finalize(),s(n).broadcastTx(Zo.encode(w.extract()))}}function Et(n){return(y)=>$t({address:y,chain:n})}function bt(n){let y=An(n);return function(o){if(!o)throw new c("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return Fy({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?Pt(T):void 0,t="derivationPath"in y&&y.derivationPath?y.derivationPath:pU(s1[n],{index:o}),C=Ry(t),H=T?cU({chain:n,derivationPath:C,phrase:T,seed:f}):void 0,A="signer"in y?y.signer:void 0,_=T?Ko({chain:n,derivationPath:C,phrase:T,seed:f}):void 0;function G(){if(H)return Promise.resolve(H.getAddress());if(A)return A.getAddress();return Promise.resolve(void 0)}function M(q){if(!T)return;let Y=no({accountIndex:q,chain:n,derivationPath:t});return VU({chain:n,derivationPath:Ry(Y),phrase:T,seed:f})}let w=M();function W(){if(!w)return;return w.publicExtendedKey}function X({accountIndex:q}={}){let Y=q===void 0?w:M(q);if(!Y)return;let D=no({accountIndex:q,chain:n,derivationPath:t});return{accountIndex:Wo(D),path:Ry(D),xpub:Y.publicExtendedKey}}function l({accountIndex:q,index:Y,change:D=!1}){let Q=q===void 0?w:M(q);if(!Q)return;let O=Io({accountIndex:q,chain:n,change:D,derivationPath:t,index:Y}),R=An(n),S=Q.deriveChild(Number(D)).deriveChild(Y);if(!S.publicKey)throw new c("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let k=Fy({chain:n,network:R,publicKey:S.publicKey}),I=Zo.encode(S.publicKey);return{accountIndex:Wo(O),address:k,change:D,index:Y,path:Ry(O),pubkey:I}}async function Z(q){if(!Vf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let Y=await s(n).getTransactionDetails(q);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function z({txid:q,newFeeRate:Y,recipient:D,memo:Q}){if(!Vf.includes(n))throw new c("toolbox_utxo_rbf_not_supported",{chain:n});let O=await s(n).getTransactionDetails(q);if(!O.isRBF)throw new c("toolbox_utxo_tx_not_replaceable",{txid:q});if(O.confirmed)throw new c("toolbox_utxo_tx_already_confirmed",{blockId:O.blockId,txid:q});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 c("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}})),b=Q?Bn(Q):null,j=Mo({feeRate:Y,inputs:I.map((d)=>({...d,type:"P2WPKH"})),outputs:[{address:D,value:k}]}),V=Math.ceil(j*Y);if(V<=O.fee)throw new c("toolbox_utxo_rbf_fee_too_low",{newFee:V,originalFee:O.fee});let yn=V-O.fee,a=k-yn;if(a<=0)throw new c("toolbox_utxo_rbf_insufficient_change");let Un=new ut({allowLegacyWitnessUtxo:!0,version:1}),Fn=[{address:D,value:a},...Q?[{address:"",script:Bn(Q),value:0}]:[]],pn=R-a-V,wn=await G();if(pn>Dy(n)&&wn)Fn.push({address:wn,value:pn});return fo({chain:n,compiledMemo:b,inputs:I,outputs:Fn,sender:wn||D,tx:Un}),{feeDelta:yn,newFee:V,originalFee:O.fee,tx:Un}}async function L({txid:q,newFeeRate:Y,recipient:D,memo:Q}){if(!H)throw new c("toolbox_utxo_no_signer");let{tx:O,originalFee:R,newFee:S}=await z({memo:Q,newFeeRate:Y,recipient:D,txid:q});H.signTransaction(O),O.finalize();let k=await s(n).broadcastTx(Zo.encode(O.extract()));return{newFee:S,originalFee:R,txid:k}}function N({accountIndex:q,index:Y,change:D=!1}){zn("index",Y);let Q=q===void 0?w:M(q);if(!Q)return;return Q.deriveChild(Number(D)).deriveChild(Y).privateKey||void 0}function J({tx:q,inputDerivations:Y}){if(!w)throw new c("toolbox_utxo_no_signer");let D=n===e.BitcoinCash?[It.ALL]:[e1.ALL];for(let Q=0;Q<Y.length;Q++){let O=Y[Q];if(!O)continue;let{derivationIndex:R,isChange:S}=O,k=N({change:S,index:R});if(!k)throw new c("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${Q} at index ${R}`});q.signIdx(k,Q,D)}return q}async function U({utxos:q,recipient:Y,assetValue:D,memo:Q,feeRate:O,feeOptionKey:R,changeAddress:S}){if(!w)throw new c("toolbox_utxo_no_signer");let k=O||(await jo(n))[R||Pn.Fast],I=Q?Bn(Q):null,b=[{address:Y,value:D.getBaseValue("number")}];if(I)b.push({address:"",script:I,value:0});let j=q.map(({hash:wn,index:d,value:Zn,txHex:NA,witnessUtxo:AT})=>({hash:wn,index:d,txHex:NA,value:Zn,witnessUtxo:AT?{script:AT.script,value:AT.value}:void 0})),{inputs:V,outputs:yn}=Dn({chain:n,feeRate:k,inputs:j,outputs:b});if(!(V&&yn))throw new c("toolbox_utxo_insufficient_balance",{assetValue:D,sender:"multiple addresses"});let a=new ut({allowLegacyWitnessUtxo:!0,version:1}),Un=q[0]?.address,Fn=S||await G()||Un||Y;fo({chain:n,compiledMemo:I,inputs:V,outputs:yn,sender:Fn,tx:a});let pn=V.map((wn)=>{let d=q.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:pn,tx:a}),a.finalize(),s(n).broadcastTx(Zo.encode(a.extract()))}function B({address:q,gapLimit:Y=20}){if(!w)return;for(let D=0;D<Y;D++){let Q=l({change:!1,index:D}),O=l({change:!0,index:D}),R=Q?.address===q?!1:O?.address===q;if(Q?.address===q||O?.address===q)return{change:R,index:D}}return}return{accumulative:Dn,broadcastTx:(q)=>s(n).broadcastTx(q),bumpFee:L,calculateTxSize:Mo,createKeysForPath:(q)=>Ko({...q,chain:n}),createReplacementTransaction:z,createTransaction:fH,deriveAddressAtIndex:l,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:KU(n),estimateTransactionFee:jU(n),getAddress:G,getAddressFromKeys:bt(n),getBalance:qn(n),getExtendedPublicKey:W,getExtendedPublicKeyInfo:X,getFeeRates:()=>jo(n),getInputsOutputsFee:TH,getNetworkForChain:()=>An(n),getPrivateKeyFromMnemonic:(q)=>vU(Ko({...q,chain:n}).privateKey,n),isRBFEnabled:Z,keys:_,resolveDerivationIndex:B,signAndBroadcastTransaction:async(q)=>{if(!H)throw new c("toolbox_utxo_no_signer");return H.signTransaction(q),q.finalize(),await s(n).broadcastTx(Zo.encode(q.extract()))},signTransactionWithMultipleKeys:J,transfer:iU(n,H),transferFromMultipleAddresses:U,validateAddress:Et(n)}}var xy,Vf;var co=p(()=>{En();Zy();bo();Oy();xy=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],Vf=[e.Bitcoin]});import{hex as hU}from"@scure/base";import{Chain as mU,derivationPathToString as rU,FeeOption as gU,NetworkDerivationPath as dU,SwapKitError as to,updateDerivationPath as aU}from"@swapkit/helpers";import{BCHSigHash as sU,CashAddrPrefix as tH,CashAddrType as CH,encodeCashAddr as HH,NETWORKS as eU,p2pkh as AH,Transaction as _H}from"@swapkit/utxo-signer";function py(n){return Qo(Yy(n))}function n8(n){let y=An(In);function T(f){return f.sign(n.privateKey,[sU.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 vt(n){let y="phrase"in n?n.phrase:void 0,T="index"in n?n.index||0:0,o=rU("derivationPath"in n&&n.derivationPath?n.derivationPath:aU(dU[In],{index:T})),f=y?Ko({chain:In,derivationPath:o,phrase:y}):void 0,t=f?n8(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(t?.getAddress())}let{getBalance:H,getFeeRates:A,broadcastTx:_,...G}=To({chain:In});function M(w,W=!0){return H(Qo(Yy(w)))}return{...G,broadcastTx:_,buildTx:y8,createTransaction:UH,getAddress:C,getAddressFromKeys:f8,getBalance:M,getFeeRates:A,stripPrefix:Qo,stripToCashAddress:py,transfer:o8({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:py(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:G,outputs:M}=Dn({chain:In,feeRate:o,inputs:C,outputs:A});if(!(G&&M))throw new to("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new _H({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),W=hn(f),{inputs:X,tx:l}=fo({chain:In,compiledMemo:H,inputs:G,outputs:M.map((Z)=>("address"in Z)&&Z.address?{...Z,address:hn(Z.address)}:Z),sender:W,tx:w});return{inputs:X,tx:l,utxos:G}}function o8({broadcastTx:n,getFeeRates:y,signer:T}){return async function({recipient:f,assetValue:t,feeOptionKey:C=gU.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:G}=await UH({...H,assetValue:t,feeRate:_,recipient:f,sender:A}),M=await T.signTransaction(G);return M.finalize(),n(hU.encode(M.extract()))}}async function y8({assetValue:n,recipient:y,memo:T,feeRate:o,sender:f}){let t=Yy(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:py(f),fetchTxHex:!0,targetValue:C}),A=Number(o.toFixed(0)),_=T?Bn(T):null,G=[];if(G.push({address:hn(y),value:n.getBaseValue("number")}),_)G.push({script:_,value:0});let{inputs:M,outputs:w}=Dn({chain:In,feeRate:A,inputs:H,outputs:G});if(!(M&&w))throw new to("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let W=new _H({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:X,tx:l}=fo({chain:In,compiledMemo:_,inputs:M,outputs:w,sender:hn(f),tx:W});return{inputs:X,tx:l,utxos:H}}function f8(n){let y=eU.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 Kf=p(()=>{bo();co();Oy();In=mU.BitcoinCash});import{createBase58check as T8,hex as t8}from"@scure/base";import{HDKey as GH}from"@scure/bip32";import{mnemonicToSeedSync as lH}from"@scure/bip39";import{Chain as jf,derivationPathToString as C8,FeeOption as H8,NetworkDerivationPath as A8,SKConfig as XH,SwapKitError as io,updateDerivationPath as _8}from"@swapkit/helpers";import{Address as U8,createZcashTransaction as w8,OutScript as q8,PCZT as G8,utils as WH,WIF as l8,ZCASH_NETWORK as X8,ZCASH_TEST_NETWORK as W8,ZcashConsensusBranchId as B8,ZcashSigHash as wH,ZcashVersionGroupId as M8}from"@swapkit/utxo-signer";import{match as L8,P as Vt}from"ts-pattern";function BH(){let{isStagenet:n}=XH.get("envs");return n?W8:X8}function Z8(n){return Q8.encode(n)}function J8({phrase:n,derivationPath:y}){let T=lH(n),f=GH.fromMasterSeed(T).derive(y);if(!f.privateKey||!f.publicKey)throw new io("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]),G=new Uint8Array(_.length+H.length);G.set(_,0),G.set(H,_.length);let M=Z8(G);return{getAddress:()=>Promise.resolve(M),signTransaction:(w)=>{if(w instanceof G8)return w.signAllInputs(t,C,wH.ALL),w.finalizeAllInputs(),Promise.resolve(w.extract());return w.signAllInputs(t,C,wH.ALL),Promise.resolve(w)}}}function Y8({inputs:n,outputs:y,tx:T,sender:o,compiledMemo:f}){let t=BH();for(let C of n){let H=U8(t).decode(o),A=q8.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(jf.Zcash).getUtxos({address:t,fetchTxHex:C!==!1}),_=[{address:T,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:G,outputs:M}=Dn({chain:jf.Zcash,changeAddress:t,feeRate:f,inputs:A,outputs:_});if(!(G&&M))throw new io("toolbox_utxo_insufficient_balance",{assetValue:y,sender:t});let w=w8({consensusBranchId:B8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:M8.SAPLING}),{tx:W,inputs:X}=Y8({compiledMemo:H,inputs:G,outputs:M,sender:t,tx:w});return{inputs:X,outputs:M,tx:W}}function Kt(n){let y=L8(n).with({signer:Vt.not(Vt.nullish)},({signer:A})=>A).with({phrase:Vt.string},({phrase:A,derivationPath:_,index:G=0})=>{let M=_||A8[jf.Zcash]||[44,133,0,0,0],w=_8(M,{index:G}),W=C8(w);return J8({derivationPath:W,phrase:A})}).otherwise(()=>{return}),T=To({chain:jf.Zcash,signer:y});async function o({recipient:A,assetValue:_,feeOptionKey:G=H8.Fast,...M}){let w=await y?.getAddress();if(!(y&&w))throw new io("toolbox_utxo_no_signer");let W=M.feeRate||(await T.getFeeRates())[G],{tx:X}=await qH({...M,assetValue:_,feeRate:W,recipient:A,sender:w}),Z=(await y.signTransaction(X)).toHex();return T.broadcastTx(Z)}function f({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let G=lH(A),w=GH.fromMasterSeed(G).derive(_);if(!w.privateKey||!w.publicKey)throw new io("toolbox_utxo_invalid_params");return{privateKey:w.privateKey,publicKey:w.publicKey}}function t({phrase:A,derivationPath:_="m/44'/133'/0'/0/0"}){let G=f({derivationPath:_,phrase:A}),M=BH();return l8(M).encode(G.privateKey)}function C(A){return async function(G){if(!A)throw new io("toolbox_utxo_no_signer");return await A.signTransaction(G)}}function H(A){return async function(G){if(!A)throw new io("toolbox_utxo_no_signer");let M=await A.signTransaction(G);return T.broadcastTx(M.toHex())}}return{...T,createKeysForPath:f,createTransaction:qH,getPrivateKeyFromMnemonic:t,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:vo}}var Q8;var jt=p(()=>{bo();co();Oy();Q8=T8(WH.sha256)});import{hex as N8}from"@scure/base";import{HDKey as z8}from"@scure/bip32";import{derivationPathToString as D8}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=z8.fromExtendedKey(n,t.bip32),H=no({accountIndex:f,chain:y}),A=Wo(H),_=[];for(let G of[!1,!0]){let M=C.deriveChild(Number(G));for(let w=0;w<T;w++){let W=o+w,X=M.deriveChild(W);if(!X.publicKey)continue;let l=Io({accountIndex:f,chain:y,change:G,index:W});_.push({accountIndex:A,address:Fy({chain:y,network:t,publicKey:X.publicKey}),change:G,index:W,path:D8(l),pubkey:N8.encode(X.publicKey)})}}return _}var LH=p(()=>{Zy();co()});import{Chain as ho,SwapKitError as O8}from"@swapkit/helpers";function R8(n,y){switch(n){case ho.BitcoinCash:return vt(y||{});case ho.Zcash:return Kt(y);case ho.Bitcoin:case ho.Dogecoin:case ho.Litecoin:case ho.Dash:return To({chain:n,...y});default:throw new O8("toolbox_utxo_not_supported",{chain:n})}}var QH=p(()=>{Kf();co();jt();Zy();LH();Kf();Oy()});var ct={};nn(ct,{validateZcashAddress:()=>vo,validateUtxoAddress:()=>$t,validateBchAddress:()=>yo,toLegacyAddress:()=>hn,toCashAddress:()=>Yy,stripToCashAddress:()=>py,stripPrefix:()=>Qo,nonSegwitChains:()=>xy,isValidAddress:()=>pt,getUtxoToolbox:()=>R8,getUtxoNetwork:()=>AU,getUtxoApi:()=>s,getUTXOAddressValidator:()=>Et,getUTXOAddressPath:()=>Io,getUTXOAccountPath:()=>no,getUTXOAccountIndexFromPath:()=>Wo,getScriptTypeForAddress:()=>Eo,getOutputSize:()=>zy,getNetworkForChain:()=>An,getInputSize:()=>oo,getDustThreshold:()=>Dy,detectAddressNetwork:()=>St,deriveAddressesFromXpub:()=>MH,createZcashToolbox:()=>Kt,createUTXOToolbox:()=>To,createHDWalletHelpers:()=>u1,createCustomUtxoApi:()=>HU,createBCHToolbox:()=>vt,compileMemo:()=>Bn,calculateTxSize:()=>Mo,assertDerivationIndex:()=>zn,addressFromKeysGetter:()=>bt,addInputsAndOutputs:()=>fo,accumulative:()=>Dn,UtxoNetwork:()=>Ft,UTXOScriptType:()=>bf,TX_OVERHEAD:()=>$f,SEGWIT_MARKER_FLAG_WEIGHT:()=>Ef,OutputSizes:()=>Ny,OP_RETURN_OVERHEAD:()=>h1,MIN_TX_FEE:()=>YU,InputSizes:()=>If});var it=p(()=>{co();Zy();bo();QH();Kf();jt()});import{KeyPairSigner as x8}from"@near-js/signers";import{derivationPathToString as F8,SwapKitError as p8}from"@swapkit/helpers";import*as ZH from"near-seed-phrase";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 cf(n){let{KeyPair:y}=await import("@near-js/crypto"),T=n.index||0,o=n.derivationPath?F8(n.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:f}=ZH.parseSeedPhrase(n.phrase,o),t=y.fromString(f);return YH(t)}async function ht(n){let{KeyPair:y}=await import("@near-js/crypto"),T=y.fromString(n);return YH(T)}function YH(n){return new JH(n)}async function hf(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 p8("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 JH;var mt=p(()=>{JH=class JH extends x8{#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 rt(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function gt(n){return"contractId"in n&&"methodName"in n}function dt(n){return"actions"in n}function at(n){return"newAccountId"in n}function st(n){return"contractCode"in n}function et(n){return"customEstimator"in n}function n0(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 o0(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 k8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Cn;var y0=p(()=>{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 f0({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 u8}from"@near-js/providers";import{AssetValue as T0,Chain as mo,getRPCUrl as NH,SwapKitError as Xn}from"@swapkit/helpers";import{match as zH,P as DH}from"ts-pattern";function P8(n){let y;async function T(){if(y)return y;return y=await zH(n).with({phrase:DH.string},async(Q)=>{return await cf(Q)}).with({signer:DH.any},({signer:Q})=>Q).otherwise(()=>{return}),y}async function o(){let Q=await NH(mo.Near);return new u8({url:Q})}async function f(Q){let{Account:O}=await import("@near-js/accounts"),R=await o(),S=await T(),k=Q||await t();return new O(k,R,S)}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 J({changeMethods:[],contractId:Q.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:Q.accountId})}async function H(Q){let R=[await w({args:{account_id:Q.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await w({args:{amount:Q.assetValue.getBaseValue("string"),memo:Q.memo||null,receiver_id:Q.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:R,receiverId:Q.contractId})}async function A(Q){if(!await T())throw new Xn("toolbox_near_no_signer");let{assetValue:R,recipient:S,memo:k}=Q,I=await t();if(!R.isGasAsset&&R.address){if(!await C({accountId:S,contractId:R.address}))return H({assetValue:R,contractId:R.address,memo:k,recipient:S})}let b=await _({...Q,sender:I});return l(b)}async function _({recipient:Q,assetValue:O,memo:R,attachedDeposit:S,sender:k,functionCall:I}){let b=await o();if(!Sy(Q))throw new Xn("toolbox_near_invalid_address",{recipient:Q});if(!Sy(k))throw new Xn("toolbox_near_invalid_address",{sender:k});if(I)return M({...I,sender:k});if(!O.isGasAsset){let Zn=O.address;if(!Zn)throw new Xn("toolbox_near_missing_contract_address");return M({args:{amount:O.getBaseValue("string"),memo:R||null,receiver_id:Q},attachedDeposit:S||"1",contractId:Zn,gas:"250000000000000",methodName:"ft_transfer",sender:k})}let{publicKey:j,nonce:V}=await hf(b,k),yn=O.getBaseValue("bigint"),{actionCreators:a,createTransaction:Un}=await import("@near-js/transactions"),{baseDecode:Fn}=await import("@near-js/utils"),pn=[a.transfer(yn)];if(R&&S)pn.push(a.functionCall("memo",{memo:R},BigInt("250000000000000"),BigInt(S)));let wn=await b.block({finality:"final"}),d=Fn(wn.header.hash);return Un(k,j,Q,V+1,pn,d)}function G(Q){let O=Q.encode();return Buffer.from(O).toString("base64")}async function M({args:Q,attachedDeposit:O,contractId:R,gas:S,methodName:k,sender:I}){let b=await o(),{publicKey:j,nonce:V}=await hf(b,I),{createTransaction:yn,actionCreators:a}=await import("@near-js/transactions"),{baseDecode:Un}=await import("@near-js/utils"),Fn=await b.block({finality:"final"}),pn=Un(Fn.header.hash),wn=[a.functionCall(k,Buffer.from(JSON.stringify(Q)),BigInt(S),BigInt(O))];return yn(I,j,R,V+1,wn,pn)}async function w(Q){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(Q.methodName,Buffer.from(JSON.stringify(Q.args)),BigInt(Q.gas),BigInt(Q.attachedDeposit))}async function W(Q){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");let[R,S]=await O.signTransaction(Q);return S}async function X(Q){return(await(await o()).sendTransaction(Q)).transaction.hash}async function l(Q){let O=await T();if(!O)throw new Xn("toolbox_near_no_signer");try{let R=await W(Q);return await X(R)}catch{return O.signAndSendTransactions?.({transactions:[Q]})}}async function Z(Q){let O=await T();if("assetValue"in Q){let S=await z();try{let k=await NH(mo.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:b}}=await I.json(),{execution:j,send_sir:V}=b.transaction_costs.action_receipt_creation_config,{execution:yn,send_sir:a}=b.transaction_costs.action_creation_config.transfer_cost,Un=BigInt(a)+BigInt(yn),Fn=BigInt(V)+BigInt(j),wn=(Un+Fn)*BigInt(S.toString());return T0.from({chain:mo.Near,value:wn})}catch(k){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",k);let I=BigInt("115123062500"),b=BigInt("108059500000"),V=(I+b)*BigInt(S.toString());return T0.from({chain:mo.Near,value:V})}}let R=O?await f():void 0;return B(Q,R)}async function z(){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 L(Q,O,R){if(!await T())throw new Xn("toolbox_near_no_signer");let k=await f(),{formatNearAmount:I}=await import("@near-js/utils"),{PublicKey:b}=await import("@near-js/crypto"),j=I(R)||"0";return(await k.createAccount(Q,b.fromString(O),BigInt(j))).transaction.hash}async function N(Q){let O=await T();try{if(!O)throw new Xn("toolbox_near_no_signer");let{actionCreators:R}=await import("@near-js/transactions"),{contractId:S,methodName:k,args:I,deposit:b}=Q,j=await f(),V=await B({args:I||{},contractId:S,methodName:k}),yn=R.functionCall(k,I||{},V.getBaseValue("bigint"),BigInt(b||"1"));return(await j.signAndSendTransaction({actions:[yn],receiverId:S})).transaction_outcome.id}catch(R){throw new Xn("toolbox_near_transfer_failed",{error:R})}}async function J(Q){let O=await f();return f0({account:O,changeMethods:Q.changeMethods,contractId:Q.contractId,viewMethods:Q.viewMethods})}async function U(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 B(Q,O){let R=await zH(Q).when(rt,()=>Cn.SIMPLE_TRANSFER).when(gt,(k)=>o0(k.methodName)).when(dt,(k)=>n0(k.actions)).when(at,()=>Cn.ACCOUNT_CREATION).when(st,()=>Cn.CONTRACT_DEPLOYMENT).when(et,(k)=>{if(!O)throw new Xn("toolbox_near_no_account");return k.customEstimator(O)}).otherwise(()=>{throw new Xn("toolbox_near_invalid_gas_params")}),S=BigInt(R)*BigInt(1000000000000);return T0.from({chain:mo.Near,value:S})}function q(Q,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),B(Q,O)}async function Y(){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:X,callFunction:N,createAction:w,createContract:J,createContractFunctionCall:M,createSubAccount:L,createTransaction:_,estimateGas:q,estimateGasLimit:B,estimateTransactionFee:Z,executeBatchTransaction:U,getAddress:t,getBalance:qn(mo.Near),getGasPrice:Y,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:cf,getSignerFromPrivateKey:ht,serializeTransaction:G,signAndBroadcastTransaction:l,signTransaction:W,transfer:A,validateAddress:Sy}}var t0=p(()=>{En();mt();y0()});var OH=p(()=>{t0()});var C0={};nn(C0,{validateNearAddress:()=>Sy,tgasToGas:()=>S8,isSimpleTransfer:()=>rt,isCustomEstimator:()=>et,isContractDeployment:()=>st,isContractCall:()=>gt,isBatchTransaction:()=>dt,isAccountCreation:()=>at,getNearToolbox:()=>P8,getNearSignerFromPrivateKey:()=>ht,getNearSignerFromPhrase:()=>cf,getFullAccessPublicKey:()=>hf,getContractMethodGas:()=>o0,gasToTGas:()=>k8,estimateBatchGas:()=>n0,createNearContract:()=>f0,GAS_COSTS:()=>Cn});var H0=p(()=>{mt();y0();t0();OH()});var _0={};nn(_0,{validateRadixAddress:()=>xH,getRadixToolbox:()=>c8});import{GatewayApiClient as I8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as $8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as RH,Chain as A0,SKConfig as E8,SwapKitError as b8}from"@swapkit/helpers";function xH(n){return n.startsWith("account_rdx1")&&n.length===66}function v8({networkApi:n}){return async function(T){let o=await V8({address:T,networkApi:n}),f=await K8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[RH.from({chain:A0.Radix}),...f];return f}}async function V8({address:n,networkApi:y}){let T=!0,o,f=[],t=await j8(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 K8({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 G=_.metadata?.items.find((w)=>w.key==="symbol"),M=G?.value.typed.type==="String"?G.value.typed.value:"?";if(_.details.type==="FungibleResource")A.set(_.address,{decimals:_.details.divisibility,symbol:M})}for(let _ of t)if(_.aggregation_level==="Global"){let G=A.get(_.resource_address)||{decimals:0,symbol:"?"},M=RH.from({asset:G.symbol!==A0.Radix?`${A0.Radix}.${G.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});T.push(M)}}return T}async function j8(n){return(await n.status.getCurrent()).ledger_state.state_version}function c8({dappConfig:n}={}){let y=n||E8.get("integrations").radix,T=$8({...y,networkId:y.network?.networkId||1}),o=I8.initialize(T.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:v8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new b8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:xH}}var U0=()=>{};import{SwapKitError as i8}from"@swapkit/helpers";function mf(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function ky(n){if(mf(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 i8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function h8(n){if(!mf(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 ro(n){if(mf(n))return n.toUpperCase();if(n.length<=3)return n;return ky(n)}var rf=()=>{};import{RequestClient as m8,warnOnce as r8}from"@swapkit/helpers";async function g8(n,y){let T=ro(n),o=gf.find((f)=>ro(f.currency)===T&&f.issuer===y);if(o)return o;try{let f=await m8.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){r8({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 d8(n){return gf.filter((y)=>y.issuer===n)}function a8(n,y){let T=ro(n);return gf.some((o)=>ro(o.currency)===T&&o.issuer===y)}var gf;var FH=p(()=>{rf();gf=[{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 w0={};nn(w0,{validateRippleAddress:()=>sf,parseXrplTokenIdentifier:()=>$H,normalizeCurrency:()=>ro,isKnownToken:()=>a8,isHexCurrency:()=>mf,hexToCurrency:()=>h8,hashes:()=>Tw,getXrplTokenInfo:()=>g8,getRippleToolbox:()=>fw,getKnownTokensByIssuer:()=>d8,formatXrplTokenIdentifier:()=>EH,currencyToHex:()=>ky,XRPL_TOKEN_ERROR_CODES:()=>af,XRPL_KNOWN_TOKENS:()=>gf});import{AssetValue as df,Chain as On,getChainConfig as pH,getRPCUrl as s8,SwapKitError as _n}from"@swapkit/helpers";import{match as SH,P as kH}from"ts-pattern";import{Client as e8,isValidAddress as IH,Wallet as nw,xrpToDrops as ow}from"xrpl";import{hashes as Tw}from"xrpl";function $H(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(!IH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function EH(n,y){return`${On.Ripple}.${n}-${y}`}function yw(n){if(n.isGasAsset)return ow(n.getValue("string"));let y=$H(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 PH(n){let y=nw.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(T)=>Promise.resolve(y.sign(T))}}function sf(n){return IH(n)}function fw(n={}){let y=SH(n).with({phrase:kH.string},({phrase:L})=>PH(L)).with({signer:kH.any},({signer:L})=>L).otherwise(()=>{return}),T;async function o(){let L=await s8(On.Ripple);if(!L)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:On.Ripple}});let N=new e8(L);return await N.connect(),N}async function f(){if(T){let L=await T.catch(()=>null);if(L?.isConnected())return L}return T=o(),T}let t=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(L)=>{let N=L||await t(),{baseDecimal:J}=pH(On.Ripple),U=await f();try{let[B,q]=await Promise.all([U.request({account:N,command:"account_info"}),U.request({account:N,command:"account_lines"})]),Y=B.result.account_data.Balance,D=[df.from({chain:On.Ripple,fromBaseDecimal:J,value:Y})];for(let Q of q.result.lines){let O=EH(Q.currency,Q.account);if(Number.parseFloat(Q.balance)!==0)D.push(df.from({asset:O,asyncTokenLookup:!1,value:Q.balance}))}return D}catch(B){if(B.data?.error_code===uH.ACCOUNT_NOT_FOUND)return[df.from({chain:On.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:N,error:B}})}},H=async()=>{let{baseDecimal:L}=pH(On.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return df.from({chain:On.Ripple,fromBaseDecimal:L,value:U})};async function A(L){let N=L||await t(),J=await f();try{return(await J.request({account:N,command:"account_lines"})).result.lines.map((B)=>({account:B.account,authorized:B.authorized??!1,balance:B.balance,currency:B.currency,freeze:B.freeze??!1,freezePeer:B.freeze_peer??!1,limit:B.limit,limitPeer:B.limit_peer,noRipple:B.no_ripple??!1,noRipplePeer:B.no_ripple_peer??!1,peerAuthorized:B.peer_authorized??!1,qualityIn:B.quality_in??0,qualityOut:B.quality_out??0}))}catch(U){if(U.data?.error_code===uH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:N,error:U}})}}async function _({address:L,currency:N,issuer:J}){let U=await A(L),B=ky(N);return U.some((q)=>{return ky(q.currency)===B&&q.account===J})}async function G({currency:L,issuer:N,limit:J,sender:U}){let B=U||await t();if(!sf(N))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:N}});let q=Number.parseFloat(J);if(Number.isNaN(q)||q<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:J}});let Y=await f(),D={Account:B,LimitAmount:{currency:L,issuer:N,value:J},TransactionType:"TrustSet"};return Y.autofill(D)}async function M({assetValue:L,recipient:N,memo:J,sender:U,destinationTag:B,extendBySeconds:q=150}){if(!sf(N))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Y=U||await t();if(L.chain!==On.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let D=yw(L),Q={Account:Y,Amount:D,Destination:N,TransactionType:"Payment",...B!==void 0&&{DestinationTag:B}};if(J)Q.Memos=[{Memo:{MemoData:Buffer.from(J).toString("hex")}}];let R=await(await f()).autofill(Q);if(R.LastLedgerSequence&&q>0)R.LastLedgerSequence+=Math.ceil(q/4);return R}function w(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(L)}async function W(L){let J=await(await f()).submitAndWait(L),{result:U}=J;if(U.validated)return U.hash;let B=U.meta?.TransactionResult,q=SH(B).with(af.tecNO_LINE,()=>"No trust line exists for this token").with(af.tecPATH_DRY,()=>"Payment path could not deliver funds").with(af.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,...q?{reason:q}:{txResult:B}}})}let X=async(L)=>{try{let N=await w(L);return W(N.tx_blob)}catch(N){if(N instanceof _n)throw N;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:On.Ripple,error:N}})}};async function l(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let N=await y.getAddress(),J=await M({...L,sender:N}),U=await w(J);return W(U.tx_blob)}async function Z(L){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let N=await y.getAddress(),J=await G({...L,sender:N}),U=await w(J);return W(U.tx_blob)}function z(){let L=T;if(T=null,L)L.then((N)=>{if(N?.isConnected())return N.disconnect();return}).catch((N)=>{console.warn("XRPL Cleanup failed silently:",N)})}return{broadcastTransaction:W,createSigner:PH,createTransaction:M,disconnect:z,estimateTransactionFee:H,getAddress:t,getBalance:C,getTrustLines:A,hasTrustLine:_,setTrustLine:G,setTrustLineAndBroadcast:Z,signAndBroadcastTransaction:X,signTransaction:w,transfer:l,validateAddress:sf}}var uH,af;var q0=p(()=>{rf();rf();FH();uH={ACCOUNT_NOT_FOUND:19},af={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 bH,hexToBytes as vH}from"@noble/hashes/utils.js";import{SwapKitError as go}from"@swapkit/helpers";function G0(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 go("toolbox_tron_transaction_creation_failed")}function uy(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 ef(n,y,T){let o=n.get(y);if(o)o.push(T);else n.set(y,[T])}function _w(n){let y=new Map,T=0;while(T<n.length){let[o,f]=G0(n,T);T=f;let t=Number(o>>3n),C=Number(o&7n);if(C===nT){let[H,A]=G0(n,T);T=A,ef(y,t,{data:new Uint8Array(uy(H)),wireType:nT})}else if(C===oT){let[H,A]=G0(n,T);T=A;let _=Number(H);if(_<0||T+_>n.length)throw new go("toolbox_tron_transaction_creation_failed");let G=n.slice(T,T+_);T+=_,ef(y,t,{data:G,wireType:oT})}else if(C===VH){if(T+8>n.length)throw new go("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+8);T+=8,ef(y,t,{data:H,wireType:VH})}else if(C===KH){if(T+4>n.length)throw new go("toolbox_tron_transaction_creation_failed");let H=n.slice(T,T+4);T+=4,ef(y,t,{data:H,wireType:KH})}else throw new go("toolbox_tron_transaction_creation_failed")}return y}function Uw(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(uy(_))),H===oT)y.push(new Uint8Array(uy(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 jH(n,y){if(!n||n.length%2!==0)throw new go("toolbox_tron_transaction_creation_failed");let T=vH(n),o=_w(T);if(y.expiration!==void 0)o.set(Cw,[{data:new Uint8Array(uy(BigInt(y.expiration))),wireType:nT}]);if(y.data!==void 0)o.set(Hw,[{data:vH(y.data),wireType:oT}]);if(y.fee_limit!==void 0)o.set(Aw,[{data:new Uint8Array(uy(BigInt(y.fee_limit))),wireType:nT}]);let f=Uw(o),t=bH(f),C=bH(tw(f));return{raw_data_hex:t,txID:C}}var nT=0,VH=1,oT=2,KH=5,Cw=8,Hw=10,Aw=18;var cH=()=>{};import{secp256k1 as iH}from"@noble/curves/secp256k1.js";import{sha256 as hH}from"@noble/hashes/sha2.js";import{keccak_256 as ww}from"@noble/hashes/sha3.js";import{bytesToHex as ao,hexToBytes as yT}from"@noble/hashes/utils.js";import{createBase58check as qw}from"@scure/base";import{SwapKitError as mH}from"@swapkit/helpers";function Rn(n){if(typeof n!=="string")return!1;try{let y=fT.decode(n);return y.length===21&&y[0]===rH}catch{return!1}}function gH(n){return ao(fT.decode(n))}function lw(n){return fT.decode(n).slice(1)}function dH(n){let y=iH.getPublicKey(yT(n),!1),T=ww(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=rH,o.set(T,1),fT.encode(o)}function aH({txID:n,privateKey:y}){let T=iH.sign(yT(n),yT(y),{format:"recovered",prehash:!1}),o=T[0]??0,f=ao(T.slice(1,33)),t=ao(T.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+t+C}function so({txID:n,raw_data_hex:y}){let T=ao(hH(yT(y)));if(n!==T)throw new mH("toolbox_tron_invalid_transaction_integrity",{expected:T,txID:n})}function Xw(n){return`000000000000000000000000${ao(lw(n))}`}function Ww(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=Gw)throw new mH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function eo(n){return n.map(({type:y,value:T})=>y==="address"?Xw(T):Ww(BigInt(T))).join("")}function sH(n){return ao(new TextEncoder().encode(n))}var fT,rH=65,Gw;var l0=p(()=>{fT=qw(hH),Gw=2n**256n});import{Chain as Bw,getRPCUrlSync as Mw,SwapKitError as xn,warnOnce as X0}from"@swapkit/helpers";function nA(){try{return Mw(Bw.Tron)}catch{return eH}}function oA(){let n=new AbortController,y=setTimeout(()=>n.abort(),Jw);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function ny(n,y){let{signal:T,cleanup:o}=oA();try{let f=await fetch(`${nA()}${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 yA(n,y){let{signal:T,cleanup:o}=oA();try{let f=await fetch(`${y??nA()}${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 fA(n){if(!Rn(n))throw new xn("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await yA(`/v1/accounts/${n}`,eH);if(!(y.success&&y.data)||y.data.length===0)return;let T;try{T=gH(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 TA({from:n,to:y,amount:T}){let f=await ny("/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 so(f),f}async function tA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o,feeLimit:f,callValue:t=0}){let C=await ny("/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 so(C.transaction),C.transaction}function CA({ownerAddress:n,contractAddress:y,functionSelector:T,parameter:o}){return ny("/wallet/triggerconstantcontract",{contract_address:y,function_selector:T,owner_address:n,parameter:o,visible:!0})}async function Py(n){try{let{result:y,txid:T}=await ny("/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 TT(){let n={};try{let{chainParameter:y}=await yA("/wallet/getchainparameters");for(let T of y)n[T.key]=T.value}catch(y){X0({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??Lw,createAccountFee:n.getCreateAccountFee??Qw,energyFee:n.getEnergyFee??Zw}}async function W0(n){try{let y=await ny("/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 X0({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 B0(n){try{let y=await ny("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function M0(n){try{let{energy_used:y}=await CA({...n,ownerAddress:n.sender});return y}catch(y){return X0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function HA({assetAddress:n,owner:y,spender:T}){let o=eo([{type:"address",value:y},{type:"address",value:T}]),t=(await CA({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 eH="https://api.trongrid.io",Lw=1000,Qw=1e5,Zw=420,Jw=30000;var AA=p(()=>{l0()});import{bytesToHex as Yw}from"@noble/hashes/utils.js";import{HDKey as Nw}from"@scure/bip32";import{mnemonicToSeedSync as zw}from"@scure/bip39";import{AssetValue as mn,BaseDecimal as _A,Chain as Qn,derivationPathToString as qA,getRPCUrl as Dw,NetworkDerivationPath as GA,SwapKitError as Hn,updateDerivationPath as lA,warnOnce as UA}from"@swapkit/helpers";import{match as Ow,P as L0}from"ts-pattern";function WA({phrase:n,derivationPath:y}){let T=Nw.fromMasterSeed(zw(n)).derive(y);if(!T.privateKey)throw new Hn("toolbox_tron_no_signer");return Yw(T.privateKey)}function BA({phrase:n,derivationPath:y,index:T}){let o=y||qA(lA(GA[Qn.Tron],{index:T||0}));return WA({derivationPath:o,phrase:n})}function Sw({phrase:n,derivationPath:y}){let T=WA({derivationPath:y,phrase:n}),o=dH(T);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{so(f);let t=aH({privateKey:T,txID:f.txID});return Promise.resolve({...f,signature:[t]})}}}function wA({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=sH(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}=jH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...t},raw_data_hex:C,txID:H}}function MA(n={}){let y="index"in n?n.index||0:0,T=qA("derivationPath"in n&&n.derivationPath?n.derivationPath:lA(GA[Qn.Tron],{index:y})),o,f=!1;function t(){if(f)return Promise.resolve(o);return o=Ow(n).with({phrase:L0.string},({phrase:U})=>Sw({derivationPath:T,phrase:U})).with({signer:L0.not(L0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await t();if(!U)throw new Hn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let B=U||xw,q=await TT(),Y=B*q.energyFee,D=Math.ceil(Y*1.5);return Math.min(Math.max(D,1e7),150000000)}async function A({contractAddress:U,functionSelector:B,parameter:q,sender:Y,memo:D,expiration:Q}){let O=await M0({contractAddress:U,functionSelector:B,parameter:q,sender:Y}),R=await H(O),S=await tA({contractAddress:U,feeLimit:R,functionSelector:B,ownerAddress:Y,parameter:q});return wA({expiration:Q,feeLimit:R,memo:D,transaction:S})}async function _(U){if(!Rn(U))return[mn.from({chain:Qn.Tron})];try{let B=await fA(U);if(!B)return[mn.from({chain:Qn.Tron})];let q=[mn.from({chain:Qn.Tron,fromBaseDecimal:6,value:String(B.balance)})],Y=B.trc20?.find((D)=>(Q0 in D));if(Y){let D=Y[Q0];q.push(mn.from({asset:`TRON.USDT-${Q0}`,fromBaseDecimal:6,value:D}))}return q}catch(B){return UA({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${B instanceof Error?B.message:B}`}),[mn.from({chain:Qn.Tron})]}}async function G({recipient:U,assetValue:B,memo:q,expiration:Y}){if(!Rn(U))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(),O=await l({assetValue:B,expiration:Y,memo:q,recipient:U,sender:Q}),R=await D.signTransaction(O),S=await Py(R);if(!S)throw new Hn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return S}catch(Q){throw new Hn("toolbox_tron_token_transfer_failed",{message:Q instanceof Error?Q.message:String(Q)})}}function M({requiredBandwidth:U,resources:B,feePerUnit:q}){let Y=Math.max(0,B.free+B.total-B.used);return U>Y?(U-Y)*q:0}async function w({recipient:U,senderAddress:B}){let[q,Y,D]=await Promise.all([TT(),B0(U),W0(B)]),Q=Y?0:q.createAccountFee,O=M({feePerUnit:q.bandwidthFee,requiredBandwidth:Rw,resources:D.bandwidth});return mn.from({chain:Qn.Tron,fromBaseDecimal:_A.TRON,value:Q+O})}async function W({assetValue:U,recipient:B,senderAddress:q}){let Y=U.address;if(!Y)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[D,Q,O,R]=await Promise.all([TT(),B0(B),W0(q),M0({contractAddress:Y,functionSelector:"transfer(address,uint256)",parameter:eo([{type:"address",value:B},{type:"uint256",value:U.getBaseValue("string")}]),sender:q})]),S=Q?0:D.createAccountFee,k=M({feePerUnit:D.bandwidthFee,requiredBandwidth:Fw,resources:O.bandwidth}),I=Math.max(0,O.energy.total-O.energy.used),b=R>I?(R-I)*D.energyFee:0;return mn.from({chain:Qn.Tron,fromBaseDecimal:_A.TRON,value:S+k+b})}async function X({assetValue:U,recipient:B,sender:q}){let Y=await t();try{let D=q?q:Y?await C():void 0;if(!D)return U.isGasAsset?mn.from({chain:Qn.Tron,value:0.1}):mn.from({chain:Qn.Tron,value:15});return U.isGasAsset?w({recipient:B,senderAddress:D}):W({assetValue:U,recipient:B,senderAddress:D})}catch(D){throw UA({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:U,assetValue:B,memo:q,sender:Y,expiration:D}){if(!Rn(U)||!Rn(Y))throw new Hn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(B.isGasAsset){let O=await TA({amount:B.getBaseValue("number"),from:Y,to:U});return wA({expiration:D,memo:q,transaction:O})}let Q=B.address;if(!Q)throw new Hn("toolbox_tron_invalid_token_identifier",{identifier:B.toString()});return A({contractAddress:Q,expiration:D,functionSelector:"transfer(address,uint256)",memo:q,parameter:eo([{type:"address",value:U},{type:"uint256",value:B.getBaseValue("string")}]),sender:Y})}async function Z(U){so(U);let B=await t();if(!B)throw new Hn("toolbox_tron_no_signer");return B.signTransaction(U)}async function z(U){let B=await Z(U);return Py(B)}function L({assetAddress:U,spenderAddress:B,from:q}){return HA({assetAddress:U,owner:q,spender:B})}async function N({assetAddress:U,spenderAddress:B,from:q,amount:Y}){let D=await L({assetAddress:U,from:q,spenderAddress:B});if(!Y)return D>0n;return D>=BigInt(Y)}async function J({assetAddress:U,spenderAddress:B,amount:q,from:Y}){if(!Rn(U)||!Rn(B))throw new Hn("toolbox_tron_approve_failed");let D=await t();if(!D)throw new Hn("toolbox_tron_no_signer");let Q=Y||await C(),O=q!==void 0?BigInt(q).toString():pw;try{let R=await A({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:eo([{type:"address",value:B},{type:"uint256",value:O}]),sender:Q}),S=await D.signTransaction(R),k=await Py(S);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:Py,createTransaction:l,estimateTransactionFee:X,getAddress:C,getApprovedAmount:L,getBalance:_,getRpcUrl:()=>Dw(Qn.Tron),isApproved:N,signAndBroadcastTransaction:z,signTransaction:Z,transfer:G,validateAddress:Rn}}var XA,Rw=268,xw=65000,Fw=345,Q0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",pw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var LA=p(()=>{cH();AA();l0();XA=Rn});var Z0={};nn(Z0,{validateTronAddress:()=>XA,getTronToolbox:()=>MA,getTronPrivateKeyFromMnemonic:()=>BA});var J0=p(()=>{LA()});import{AssetValue as Iy,Chain as Co,derivationPathToString as kw,getChainConfig as uw,getRPCUrl as Pw,NetworkDerivationPath as Iw,SwapKitError as Ho}from"@swapkit/helpers";import{match as $w,P as Ew}from"ts-pattern";function tT(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return bw.test(n)}async function vw(n){if(!tT(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function QA(n={}){let y,T=n.derivationPath||Iw[Co.Stellar],o=kw(T.slice(0,3));async function f({phrase:l,path:Z}){let{HDKey:z}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:N}=await import("@stellar/stellar-sdk"),J=L(l),B=z.fromMasterSeed(J).derive(Z,!0);return N.fromRawEd25519Seed(Buffer.from(B.privateKey))}async function t(){if(y)return y;let l=$w(n).with({phrase:Ew.string},({phrase:Z})=>Z).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"),Z=await Pw(Co.Stellar);return new l.Server(Z)}async function H(){try{return(await t()).publicKey()}catch{return""}}async function A(l){let Z=l||await H();if(!Z)throw new Ho("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(Z)).balances.map((N)=>{if(N.asset_type==="native")return Iy.from({chain:Co.Stellar,value:N.balance});let J="asset_code"in N?N.asset_code:"",U="asset_issuer"in N?N.asset_issuer:"";return Iy.from({asset:`${Co.Stellar}.${J}-${U}`,asyncTokenLookup:!1,value:N.balance})})}catch{return[Iy.from({chain:Co.Stellar,value:0})]}}async function _({recipient:l,assetValue:Z,memo:z,sender:L}){if(z){if(new TextEncoder().encode(z).length>28)throw new Ho("helpers_invalid_memo_type")}if(!await vw(l))throw new Ho("core_transaction_invalid_recipient_address");let J=L||await H();if(!J)throw new Ho("toolbox_stellar_no_signer");let{Asset:U,Memo:B,Networks:q,Operation:Y,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),Q=await C(),O=await Q.fetchBaseFee(),R=await Q.loadAccount(J),S=new D(R,{fee:String(O),networkPassphrase:q.PUBLIC});if(Z.isGasAsset)try{await Q.loadAccount(l),S.addOperation(Y.payment({amount:Z.getValue("string"),asset:U.native(),destination:l}))}catch{S.addOperation(Y.createAccount({destination:l,startingBalance:Z.getValue("string")}))}else S.addOperation(Y.payment({amount:Z.getValue("string"),asset:new U(Z.symbol,Z.address),destination:l}));if(z)S.addMemo(B.text(z));return S.setTimeout(30).build()}async function G(l){let{TransactionBuilder:Z,Networks:z}=await import("@stellar/stellar-sdk"),L=await t(),N=Z.fromXDR(l.toXDR(),z.PUBLIC);return N.sign(L),N}async function M(l){try{let Z=await C(),{hash:z}=await Z.submitTransaction(l);return z}catch(Z){throw new Ho("toolbox_stellar_broadcast_error",Z)}}async function w({recipient:l,assetValue:Z,memo:z}){let L=await t(),N=L.publicKey(),J=await _({assetValue:Z,memo:z,recipient:l,sender:N});J.sign(L);try{return(await(await C()).submitTransaction(J)).hash}catch(U){if(U instanceof Ho)throw U;throw new Ho("toolbox_stellar_transaction_failed",U)}}async function W(l){let Z=await G(l);return M(Z)}async function X(){let{baseDecimal:l}=uw(Co.Stellar);try{let L=(await(await C()).feeStats()).fee_charged.p50;return Iy.from({chain:Co.Stellar,fromBaseDecimal:l,value:L})}catch{return Iy.from({chain:Co.Stellar,fromBaseDecimal:l,value:"100"})}}return{broadcastTransaction:M,createTransaction:_,estimateTransactionFee:X,getAddress:H,getBalance:A,signAndBroadcastTransaction:W,signTransaction:G,transfer:w,validateAddress:tT}}var bw;var ZA=p(()=>{bw=/^G[A-Z2-7]{55}$/});var CT={};nn(CT,{validateStellarAddress:()=>tT,getStellarToolbox:()=>QA});var HT=p(()=>{ZA()});import{AssetValue as Vw,Chain as $,CosmosChains as Y0,EVMChains as N0,FeeOption as Kw,SwapKitError as jw,UTXOChains as YA}from"@swapkit/helpers";async function AX(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Ey(),$y)),{validateEVMAddress:T}=await Promise.resolve().then(() => (uT(),HC)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (vT(),bT)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Wf(),Xf)),{validateHyperCoreAddress:t}=await Promise.resolve().then(() => (Wt(),Xt)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (Zt(),Qt)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (zf(),Nf)),{validateSuiAddress:A}=await Promise.resolve().then(() => (Rf(),Of)),{validateTonAddress:_}=await Promise.resolve().then(() => (pf(),Ff)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (it(),ct)),{validateNearAddress:M}=await Promise.resolve().then(() => (H0(),C0)),{validateRadixAddress:w}=await Promise.resolve().then(() => (U0(),_0)),{validateRippleAddress:W}=await Promise.resolve().then(() => (q0(),w0)),{validateTronAddress:X}=await Promise.resolve().then(() => (J0(),Z0)),{validateStellarAddress:l}=await Promise.resolve().then(() => (HT(),CT));return function({address:z,chain:L}){return n(L).with(...N0,()=>T(z)).with(...YA,(J)=>{return G(J)(z)}).with(...Y0,(J)=>{return f(J)(z)}).with($.Aptos,()=>y(z)).with($.Radix,()=>w(z)).with($.HyperCore,()=>t(z)).with($.Near,()=>M(z)).with($.Ripple,()=>W(z)).with($.Solana,()=>C(z)).with($.Stellar,()=>l(z)).with($.Starknet,()=>H(z)).with($.Sui,()=>A(z)).with($.Ton,()=>_(z)).with($.Tron,()=>X(z)).with($.Cardano,()=>o(z)).otherwise(()=>!1)}}function _X(n){return async function(T){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...N0,async(f)=>{let t=await JA(f),C=await t.createTransaction(T),H="feeOptionKey"in T?T.feeOptionKey:Kw.Fast;return t.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await JA(f)).estimateTransactionFee(T)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Ey(),$y));return f().estimateTransactionFee(T)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (zf(),Nf));return(await f()).estimateTransactionFee(T)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (HT(),CT));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Rf(),Of));return f().estimateTransactionFee(T)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (pf(),Ff));return f().estimateTransactionFee(T)}).with(...Y0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Wf(),Xf));return f(T)}).otherwise(async()=>Vw.from({chain:n}))}}async function JA(n,y){let{match:T}=await import("ts-pattern");return T(n).returnType().with(...N0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (kT(),TC));return await o(n,y)}).with(...YA,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (it(),ct));return o(n,y)}).with(...Y0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Wf(),Xf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Ey(),$y));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (Wt(),Xt));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (U0(),_0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (q0(),w0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (Zt(),Qt));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (HT(),CT));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (zf(),Nf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Rf(),Of));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (J0(),Z0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (H0(),C0));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (vT(),bT));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (pf(),Ff));return o(y)}).otherwise(()=>{throw new jw("toolbox_not_supported",{chain:n})})}export{JA as getToolbox,_X as getFeeEstimator,AX as getAddressValidator};