@swapkit/toolboxes 4.15.15 → 4.16.1

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 IU=Object.defineProperty;var PU=(y)=>y;function pU(y,n){this[y]=PU.bind(null,n)}var ny=(y,n)=>{for(var o in n)IU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:pU.bind(n,o)})};var P=(y,n)=>()=>(y&&(n=y(y=0)),n);var F=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as vy,derivationPathToString as tU,getChainConfig as Q0,getRPCUrlSync as FC,NetworkDerivationPath as EU,SwapKitError as Cy}from"@swapkit/helpers";import{match as lC,P as Z0}from"ts-pattern";function Df(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return VU.test(n)}function $C({derivationPath:y,provider:n,...o}={}){let f,T=tU(y||EU[vy.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await lC(o).with({phrase:Z0.string},async({phrase:W})=>{let{Ed25519Account:Y}=await import("@aptos-labs/ts-sdk");return Y.fromDerivationPath({mnemonic:W,path:T})}).with({signer:Z0.any},({signer:W})=>W).otherwise(()=>{return}),f}async function H(){let{Aptos:W,AptosConfig:Y}=await import("@aptos-labs/ts-sdk"),w=new Y({fullnode:n||FC(vy.Aptos)});return new W(w)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(W){let Y=W||await U();if(!Y)throw new Cy("toolbox_aptos_address_required");let{baseDecimal:w,chain:L}=Q0(vy.Aptos);try{let O=await H(),N=await O.getAccountAPTAmount({accountAddress:Y}),z=[nn.from({chain:L,fromBaseDecimal:w,value:N.toString()})],Z=await O.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:Y}}}});for(let M of Z){if(M.asset_type===qf.COIN_TYPE||Number(M.amount)<=0)continue;let D=M.asset_type;if(D){let R=("metadata"in M&&typeof M.metadata==="object"&&M.metadata!==null?M.metadata:void 0)?.decimals??w;z.push(nn.from({asset:`${vy.Aptos}.APT-${D}`,fromBaseDecimal:R,value:String(M.amount)}))}}return z}catch{return[nn.from({chain:L})]}}async function A(W){if(!W){let{baseDecimal:Z}=Q0(vy.Aptos),M=n||FC(vy.Aptos),D=await fetch(`${M}/estimate_gas_price`),{gas_estimate:S}=await D.json();return nn.from({chain:vy.Aptos,fromBaseDecimal:Z,value:String(S)})}let Y=await C();if(!Y)throw new Cy("toolbox_aptos_no_signer");let w=await Q(W),L=await H(),[O]=await L.transaction.simulate.simple({signerPublicKey:Y.publicKey,transaction:w});if(!O)throw new Cy("toolbox_aptos_transaction_creation_error");let N=BigInt(O.gas_used)*BigInt(O.gas_unit_price),{baseDecimal:z}=Q0(vy.Aptos);return nn.from({chain:vy.Aptos,fromBaseDecimal:z,value:N.toString()})}async function Q({recipient:W,assetValue:Y,maxGasAmount:w,sender:L}){if(!Df(W))throw new Cy("core_transaction_invalid_recipient_address");let O=L||await U();if(!O)throw new Cy("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),z=await H(),Z=N.from(O);try{let M=Y.isGasAsset?qf.TRANSFER:qf.FUNGIBLE_STORE_TRANSFER,D=lC({address:Y?.address,isGasAsset:Y.isGasAsset}).with({isGasAsset:!0},()=>[N.from(W),Y.getBaseValue("bigint")]).with({address:Z0.string},({address:S})=>[N.from(S),N.from(W),Y.getBaseValue("bigint")]).otherwise(()=>null);if(!D)throw new Cy("toolbox_aptos_missing_asset_type");return z.transaction.build.simple({data:{function:M,functionArguments:D,typeArguments:Y.isGasAsset?[]:[qf.FUNGIBLE_ASSET_METADATA]},options:w?{maxGasAmount:w}:void 0,sender:Z})}catch(M){if(M instanceof Cy)throw M;throw new Cy("toolbox_aptos_transaction_creation_error",M)}}async function J(W){let Y=await C();if(!Y)throw new Cy("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:Y,transaction:W})}async function X({assetValue:W,maxGasAmount:Y,recipient:w}){let L=await C();if(!L)throw new Cy("toolbox_aptos_no_signer");if(!Df(w))throw new Cy("core_transaction_invalid_recipient_address");try{let O=L.accountAddress.toString(),N=await Q({assetValue:W,maxGasAmount:Y,recipient:w,sender:O});return(await(await H()).signAndSubmitTransaction({signer:L,transaction:N})).hash}catch(O){if(O instanceof Cy)throw O;throw new Cy("toolbox_aptos_transaction_creation_error",O)}}async function q({senderAuthenticator:W,transaction:Y}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:W,transaction:Y})).hash}catch(w){throw new Cy("toolbox_aptos_broadcast_error",w)}}async function G(W){let Y=await J(W);return q({senderAuthenticator:Y,transaction:W})}return{broadcastTransaction:q,createTransaction:Q,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:G,signTransaction:J,transfer:X,validateAddress:Df}}function IC({provider:y}){return async function({assetValue:o,recipient:f}){if(!Df(f))throw new Cy("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:qf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Cy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:qf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[qf.FUNGIBLE_ASSET_METADATA]})).hash}}var qf,VU;var PC=P(()=>{qf={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"},VU=/^[0-9a-fA-F]+$/});var un={};ny(un,{validateAptosAddress:()=>Df,getAptosToolbox:()=>$C,createAptosExtensionTransfer:()=>IC});var jn=P(()=>{PC()});import{AssetValue as pC,getChainConfig as bU}from"@swapkit/helpers";import{SwapKitApi as vU}from"@swapkit/helpers/api";function tC(){function y(){let n=Date.now(),o=J0||n;return J0=o,n>J0?n:o+1}return uU+y().toString(36)}function Qy(y){return async function(o,f=!0){let T=await vU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=bU(y),H=T.map(({identifier:_,value:A,decimal:Q})=>{return new pC({decimal:Q||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[pC.from({chain:y}),...H];return H}}var uU,J0=0;var uy=P(()=>{uU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Qy(y)}}function jU(y){return y}var Kn=P(()=>{uy()});import{Chain as i,getChainConfig as B0,getRPCUrl as KU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as VC,Interface as hU,JsonRpcProvider as mU}from"ethers";import{match as bC}from"ts-pattern";function vC(y){return new mU(y)}async function z0(y,n){return vC(n||await KU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==i.Ethereum?{...cU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![i.Adi,i.Arbitrum,i.BinanceSmartChain].includes(y)}function cU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return bC(y).with(i.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(i.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(i.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(i.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(i.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(i.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:i.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function uC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};bC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!gU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!EC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!EC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function jC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function L0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function M0(y,n){if(y.isTuple()&&y.components){let o=L0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:M0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=L0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:M0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function iU({chain:y,abi:n,data:o,to:f}){let C=new hU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=L0(C.name);H[U]=C.fragment.inputs.map((X)=>({name:X.name,type:M0(X,H)}));let _={};for(let[X,q]of C.fragment.inputs.entries())_[q.name]=Y0(C.args[X],q);let{chainId:A}=B0(y),Q={chainId:Number(A),verifyingContract:VC(f)},J=jC(Q);return{domain:Q,message:_,primaryType:U,types:{EIP712Domain:J,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(uC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var EC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),gU=(y)=>{try{return typeof y==="string"&&!!VC(y)}catch{return!1}};var Cn=()=>{};var KC;var hC=P(()=>{KC=[{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 dU,applyFeeMultiplierToBigInt as Zy,Chain as Dy,EVMChains as rU,FeeOption as j,isGasAsset as aU,SwapKitError as c,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as sU,Contract as mC,getAddress as cn,Interface as cC}from"ethers";import{match as gC}from"ts-pattern";function Rf({chain:y=Dy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:T2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:rC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:F0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:U2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:Gf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:Sf(n),estimateCall:aC({provider:n,signer:o}),estimateGasLimit:C2({chain:y,provider:n,signer:o}),estimateGasPrices:Wf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:_2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:n2({chain:y,provider:n}),sendTransaction:sC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:H2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function kf(y){return y instanceof sU}function An(y,n,o){return new mC(y,cC.from(n),o)}function k0({provider:y}){return function(o,f){return new mC(o,cC.from(f),y)}}function S0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new c("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&eU.includes(o.stateMutability)}function iC(y){return cn(y)}function Sf(y){return function({value:o,...f}){if(!kf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function dC(y,n){let o=xf(y,n);if(o)return cn(o.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function xf({chain:y,symbol:n,ticker:o},f){try{let T=y===Dy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Dy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=f2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return x0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function Gf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Wf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return gC(y).with(Dy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:Zy(T,j.Average),maxPriorityFeePerGas:Zy(C,j.Average)},[j.Fast]:{maxFeePerGas:Zy(T,j.Fast),maxPriorityFeePerGas:Zy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Zy(T,j.Fastest),maxPriorityFeePerGas:Zy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Dy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new c("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[j.Average]:{gasPrice:C},[j.Fast]:{gasPrice:Zy(C,j.Fast)},[j.Fastest]:{gasPrice:Zy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[j.Fast]:{maxFeePerGas:Zy(T,j.Fast),maxPriorityFeePerGas:Zy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Zy(T,j.Fastest),maxPriorityFeePerGas:Zy(C,j.Fastest)}}}if(!H)throw new c("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:H},[j.Fast]:{gasPrice:Zy(H,j.Fast)},[j.Fastest]:{gasPrice:Zy(H,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function F0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:Q={},feeOption:J=j.Fast}){let X=C||y;if(!H)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=S0({abi:U,funcName:_});if(q&&kf(X)&&o){let Y=Gf({chain:f,provider:X}),w=Q?.from||await o?.getAddress(),L=await Y({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...Q,from:w}});return Sf(X)(L)}let G=An(H,U,X);if(q){if(!o)throw new c("toolbox_evm_no_signer");let Y=Q?.from||await o.getAddress();if(!Y)throw new c("toolbox_evm_no_signer_address");let w=G.connect(o),L=Wf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:O,maxPriorityFeePerGas:N,gasPrice:z}=(await L())[J],Z=await G.getFunction(_).estimateGas(...A,Q),M=await w[_](...A,{...Q,gasLimit:Z,gasPrice:z,maxFeePerGas:O,maxPriorityFeePerGas:N,nonce:Q?.nonce||await X.getTransactionCount(Y)});return typeof M?.hash==="string"?M?.hash:M}let W=await G[_]?.(...A);return typeof W?.hash==="string"?W?.hash:W}}function rC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return F0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function n2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await rC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function T2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=j.Fast,amount:_,gasLimitFallback:A,from:Q,nonce:J}){let X=[H,BigInt(_||Un)],q=await y?.getAddress()||Q,G={abi:Hn,contractAddress:C,funcName:"approve",funcParams:X,signer:y,txOverrides:{from:q}};if(kf(o)){let Y=Gf({chain:f,provider:o}),w=Sf(o),L=await Y(G);return w(L)}return F0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...G,feeOption:U,funcParams:X,txOverrides:{from:q,gasLimit:A?BigInt(A.toString()):void 0,nonce:J}})}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=j.Fast,sender:_,...A}){let{hexlify:Q,toUtf8Bytes:J}=await import("ethers"),X=T.getBaseValue("bigint"),q=T.chain,G=_||await y?.getAddress(),W=sC({chain:q,isEIP1559Compatible:n,provider:o,signer:y});if(!G)throw new c("toolbox_evm_no_from_address");if(T.isGasAsset){let z={...A,data:Q(J(C||"")),feeOptionKey:U,from:G,to:H,value:X};return W(z)}if(!xf(T,q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:w,maxPriorityFeePerGas:L,gasPrice:O}=(await Wf({chain:q,isEIP1559Compatible:n,provider:o})())[U],N=await R0({chain:q,provider:o,signer:y})({assetValue:T,data:Q(J(C||"")),gasPrice:O,maxFeePerGas:w,maxPriorityFeePerGas:L,memo:C,recipient:H,sender:G});return W(N)}}function aC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new c("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function C2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:Q}){let J=f.bigIntValue,X=f.isGasAsset?null:xf(f,f.chain);if(X&&_)return aC({provider:y,signer:n})({abi:Hn,contractAddress:X,funcName:_,funcParams:A,txOverrides:Q});let{hexlify:q,toUtf8Bytes:G}=await import("ethers");return y.estimateGas({data:H?H:C?q(G(C)):void 0,from:U,to:T,value:J})}}function H2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function sC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=j.Fast,...H}){let{from:U,to:_,data:A,value:Q,...J}=H;if(!n)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let X={...J,data:A||"0x",from:U,to:_,value:BigInt(Q||0)};if(kf(y))return Sf(y)(X);let q=U||await n.getAddress(),G=H.nonce||await y.getTransactionCount(q),W=(await y.getNetwork()).chainId,Y=$0(X,o);if(Y==="eip7702")D0(X.authorizations||[],W);let w=gC(Y).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),L={...X,chainId:W,nonce:G,type:w,...Y==="eip7702"&&{authorizationList:X.authorizations}},O=Wf({chain:f,isEIP1559Compatible:o,provider:y}),z=Y!=="legacy"&&!(X.maxFeePerGas&&X.maxPriorityFeePerGas)||!X.gasPrice?Object.entries((await O())[C]).reduce((M,[D,S])=>({...M,[D]:on(BigInt(S))}),{}):{},Z;try{Z=on(X.gasLimit||await y.estimateGas(L)*11n/10n)}catch(M){throw new c("toolbox_evm_error_estimating_gas_limit",{error:M})}try{let M={...L,gasLimit:Z,...z};try{return(await n.sendTransaction(M)).hash}catch{let D=await n.signTransaction({...M,from:q});return(await y.broadcastTransaction(D)).hash}}catch(M){throw new c("toolbox_evm_error_sending_transaction",{error:M})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:Q,...J}){let X=f.getBaseValue("bigint"),q=f.chain,G=U||await n?.getAddress();if(!G)throw new c("toolbox_evm_no_from_address");if(aU(f)){let{hexlify:w,toUtf8Bytes:L}=await import("ethers");return{...J,data:H||w(L(T||"")),from:G,to:C,value:X}}let W=xf(f,q);if(!W)throw new c("toolbox_evm_no_contract_address");return Gf({chain:f.chain,provider:y})({abi:Hn,contractAddress:W,funcName:"transfer",funcParams:[C,X],txOverrides:{from:G,gasPrice:Q,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function U2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=Gf({chain:o,provider:y}),Q=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(Q)],txOverrides:{from:_}})}}function _2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=j.Fast,...C}){let U=await Wf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=dU.from({chain:o}),{gasPrice:Q,maxFeePerGas:J,maxPriorityFeePerGas:X}=U[T];if(!n&&Q)return A.set(mn.fromBigInt(Q*_,A.decimal));if(J&&X){let q=(J+X)*_;return A.set(mn.fromBigInt(q,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var Un,eU,y2,x0,f2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,l0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(l0(y)||n)return"eip1559";return"legacy"};var dn=P(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");eU=["payable","nonpayable"];y2=rU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),x0={...y2,[Dy.Optimism]:"0x4200000000000000000000000000000000000042",[Dy.Polygon]:"0x0000000000000000000000000000000000001010"},f2=[Dy.Arbitrum,Dy.Aurora,Dy.Base,Dy.Optimism]});import{Chain as r,FeeOption as A2}from"@swapkit/helpers";import{HDNodeWallet as q2}from"ethers";import{match as G2,P as eC}from"ts-pattern";function rn(y){let n=a(r.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=A2.Fast){let U=await n.createContractTxObject({abi:KC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function a(y){return function({provider:o,...f}){let T=O0(y),C=G2(f).with({phrase:eC.string},({phrase:U})=>q2.fromPhrase(U).connect(o)).with({signer:eC.any},({signer:U})=>U).otherwise(()=>{return});return Rf({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,y1,oT,CT,HT,UT,_T,AT,qn,qT,GT,WT,XT;var I0=P(()=>{hC();Cn();dn();an=a(r.Adi),sn=a(r.Arbitrum),en=a(r.Aurora),yT=a(r.Avalanche),fT=a(r.Base),nT=a(r.Berachain),TT=a(r.BinanceSmartChain),y1=a(r.Botanix),oT=a(r.Core),CT=a(r.Corn),HT=a(r.Cronos),UT=a(r.Gnosis),_T=a(r.Hyperevm),AT=a(r.Polygon),qn=a(r.Sonic),qT=a(r.Unichain),GT=a(r.XLayer),WT=a(r.Monad),XT=a(r.MegaETH)});var f1;var n1=P(()=>{f1=[{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 Ff,Chain as X2,FeeOption as jy,SwapKitError as P0}from"@swapkit/helpers";import{Contract as Q2,HDNodeWallet as Z2}from"ethers";import{match as J2,P as T1}from"ts-pattern";function p0(y){return new Q2(L2,f1,y)}function o1(y){return async function(){let o=p0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function C1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function H1(y){return async function(o){let f=p0(y),T=await C1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function U1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function M2(y){return async function(o){let f=await H1(y)(o)??0n,T=await U1(y)(o);return f+T}}function Y2(y){return async function(o){let f=p0(y),T=await C1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function B2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await o1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[jy.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[jy.Fast]:{gasPrice:Ff(H,jy.Fast),l1GasPrice:Ff(C||0n,jy.Fast),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,jy.Fast)},[jy.Fastest]:{gasPrice:Ff(H,jy.Fastest),l1GasPrice:Ff(C||0n,jy.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,jy.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=J2(n).with({phrase:T1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),f=Rf({provider:y,signer:o}),T=o1(y);return{...f,estimateGasPrices:B2(y),estimateL1Gas:Y2(y),estimateL1GasCost:H1(y),estimateL2GasCost:U1(y),estimateTotalGasCost:M2(y),getBalance:Tn(X2.Optimism).getBalance,getL1GasPrice:T}}var L2="0x420000000000000000000000000000000000000f";var t0=P(()=>{Kn();n1();dn()});var A1={};ny(A1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>iC,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>kf,getTokenAddress:()=>xf,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEstimateGasPrices:()=>Wf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>Sf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>x0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as d}from"@swapkit/helpers";import{match as z2}from"ts-pattern";function E0(y,n){return z2(y).with(d.Adi,()=>an(n)).with(d.Arbitrum,()=>sn(n)).with(d.Aurora,()=>en(n)).with(d.Avalanche,()=>yT(n)).with(d.Base,()=>fT(n)).with(d.Berachain,()=>nT(n)).with(d.BinanceSmartChain,()=>TT(n)).with(d.Botanix,()=>qn(n)).with(d.Core,()=>oT(n)).with(d.Corn,()=>CT(n)).with(d.Cronos,()=>HT(n)).with(d.Ethereum,()=>rn(n)).with(d.Gnosis,()=>UT(n)).with(d.Hyperevm,()=>_T(n)).with(d.Optimism,()=>QT(n)).with(d.Polygon,()=>AT(n)).with(d.Sonic,()=>qn(n)).with(d.Unichain,()=>qT(n)).with(d.XLayer,()=>GT(n)).with(d.Monad,()=>WT(n)).with(d.MegaETH,()=>XT(n)).exhaustive()}async function _1(y,n){let o={...n,provider:n?.provider||await z0(y)};return E0(y,o)}var V0=P(()=>{Cn();I0();t0();dn();I0();t0()});var q1;var G1=P(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(q1||={})});var W1={};ny(W1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>uC,toHexString:()=>on,toChecksumAddress:()=>iC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>iU,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>kf,getTokenAddress:()=>xf,getProviderSync:()=>vC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>_1,getEvmToolbox:()=>E0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Wf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>Sf,getCreateContractTxObject:()=>Gf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>dC,createCustomEvmApi:()=>jU,createContract:()=>An,buildEIP712DomainType:()=>jC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>q1,ETHToolbox:()=>rn,ContractAddress:()=>x0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>y1,BaseEVMToolbox:()=>Rf,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=P(()=>{Kn();Cn();V0();G1()});import{bech32 as N2}from"@scure/base";import{mnemonicToSeed as O2}from"@scure/bip39";import{Bip32PrivateKey as w2}from"@stricahq/bip32ed25519";import{Transaction as D2,types as j0,address as R2,crypto as v0,utils as X1}from"@stricahq/typhonjs";import{AssetValue as lf,Chain as Xf,getChainConfig as k2,SwapKitError as Gn}from"@swapkit/helpers";import By from"bignumber.js";async function K0(y,n){let o=await fetch(`${L1}${y}`,{...n,headers:{project_id:J1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function M1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function x2(){return(await K0("/blocks/latest")).slot}async function F2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new By(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new By(y.min_fee_a),minFeeB:new By(y.min_fee_b),minFeeRefScriptCostPerByte:new By(15),priceMem:new By(y.price_mem),priceSteps:new By(y.price_step),stakeKeyDeposit:new By(2000000),utxoCostPerByte:new By(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${L1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:J1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function l2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new By(f.quantity):new By(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new By(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function $2(y){try{let n=await M1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let Q=f.get(_)||0n;f.set(_,Q+BigInt(A))}}}let T=[],{baseDecimal:C}=k2(Xf.Cardano);if(o>0n)T.push(lf.from({chain:Xf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(lf.from({asset:`${Xf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[lf.from({chain:Xf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[lf.from({chain:Xf.Cardano})]}}function Y1(y){if(!y||typeof y!=="string")return!1;try{let n=N2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function I2(y,n=0,o=0){let f=await O2(y,""),C=(await w2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(u0+1852).derive(u0+1815).derive(u0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=v0.hash28(U),Q=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),J=v0.hash28(Q),X={hash:_,type:j0.HashType.ADDRESS},q={hash:J,type:j0.HashType.ADDRESS},W=new R2.BaseAddress(S2,X,q).getBech32(),Y=H.toPrivateKey();return{getAddress:()=>W,publicKey:U,publicKeyHash:_,signTransaction:async(w)=>{try{let L=await import("@stricahq/cbors"),O=Buffer.from(w,"hex"),N=L.Decoder.decode(O),[z,Z,M,D]=N.value,S=L.Encoder.encode(z),R=v0.hash32(S),k=Y.sign(R),l=Z instanceof Map?Z:new Map,B=l.get(Q1)||[];B.push([U,k]),l.set(Q1,B);let x=[z,l,M,D];return L.Encoder.encode(x).toString("hex")}catch(L){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(L)})}}}}function P2(y){let n,o,f;async function T(){if(!f)f=await F2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let q=y.index??0;return n=await I2(y.phrase,0,q),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let q=await C();if(!q)return"";if("getAddress"in q)return o=await q.getAddress(),o;return""}async function U(q){let G=q||await H();if(!G)throw new Gn("core_wallet_connection_not_found");return $2(G)}async function _(q){if(q)try{let{tx:w}=await A(q),L=w.getFee();return lf.from({chain:Xf.Cardano,fromBaseDecimal:6,value:L.toString()})}catch{}let G=await T(),W=400,Y=G.minFeeB.plus(G.minFeeA.times(W));return lf.from({chain:Xf.Cardano,fromBaseDecimal:6,value:Y.toString()})}async function A({sender:q="",recipient:G,assetValue:W,memo:Y,pureLovelaceOnly:w=!1}){let L=q||await H();if(!L)throw new Gn("core_wallet_connection_not_found");let[O,N,z]=await Promise.all([M1(L),x2(),T()]),Z=O.filter((p)=>w?p.amount.every((b)=>b.unit==="lovelace"):p.amount.some((b)=>b.unit==="lovelace")).sort((p,b)=>{let K=p.amount.some((m)=>m.unit!=="lovelace"),s=b.amount.some((m)=>m.unit!=="lovelace");if(K===s)return 0;return K?1:-1}),M=X1.getAddressFromString(L),D=X1.getAddressFromString(G),S=l2(Z,M),R=new By(W.getBaseValue("string")),k=[{address:D,amount:R,tokens:[]}],l;if(Y){let p=new Map;p.set("msg",[Y]),l={metadata:[{data:p,label:674}]}}let B={...z,minFeeB:z.minFeeB.plus(z.minFeeA.times(4))},$=new D2({protocolParams:B}).paymentTransaction({auxiliaryData:l,changeAddress:M,inputs:S,outputs:k,ttl:N+3600}),{payload:E}=$.buildTransaction();return{tx:$,unsignedTx:E}}async function Q(q){let G=await C();if(!G||!("signTransaction"in G))throw new Gn("core_wallet_connection_not_found");return G.signTransaction(q)}async function J({recipient:q,assetValue:G,memo:W}){let Y=await C();if(!Y||!("signTransaction"in Y))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:w}=await A({assetValue:G,memo:W,recipient:q,sender:await H()}),L=await Q(w);return await Z1(L)}async function X(q){let G=await Q(q);return await Z1(G)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:X,signTransaction:Q,transfer:J,validateAddress:Y1}}var J1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",L1="https://cardano-mainnet.blockfrost.io/api/v0",S2,u0=2147483648,Q1=0;var B1=P(()=>{S2=j0.NetworkId.MAINNET});var h0={};ny(h0,{validateCardanoAddress:()=>Y1,getCardanoToolbox:()=>P2});var m0=P(()=>{B1()});import{base64 as JT,bech32 as ZT}from"@scure/base";import{SwapKitError as p2}from"@swapkit/helpers";function Wn(y){return JT.encode(Uint8Array.from(ZT.fromWords(ZT.decode(y).words)))}function Xn(y,n="thor"){return ZT.encode(n,ZT.toWords(JT.decode(y)))}function t2(y){return JT.encode(y)}function E2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new p2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return JT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as py,getRPCUrl as V2,SwapKitError as z1}from"@swapkit/helpers";function Ky(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return w1;case u.Noble:return D1;default:return O1}}async function hy(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Qf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await V2(U),J=await(await hy(A)).getAccount(y);if(!J)throw new z1("toolbox_cosmos_account_not_found",{sender:y});let X=g0.from({chain:U}),q=ay(X.symbol),G=Ky(U),W=q&&T?{amount:[{amount:T.toString(),denom:q}],gas:G.gas}:G,Y={amount:[{amount:o.getBaseValue("string"),denom:ay(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(J.accountNumber),chainId:_,fee:W,memo:f,msgs:[{typeUrl:b2(U),value:Y}],sequence:C??J.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",N1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O1,w1,D1,ay=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return N1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return ay(y,!1)},b2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new z1("toolbox_cosmos_not_supported",{chain:y})}},v2,a0=(y,n)=>{let o=v2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Zn=P(()=>{O1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},w1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};v2={atom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:py(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:py(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:py(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:py(u.Kujira).baseDecimal}}});var R1={};ny(R1,{$root:()=>I});import Ty from"protobufjs/minimal.js";var V,zy,t,I;var k1=P(()=>{V=Ty.Reader,zy=Ty.Writer,t=Ty.util,I=Ty.roots.default||(Ty.roots.default={});I.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!t.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!t.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!t.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Asset)return f;let T=new I.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=t.Long?t.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))I.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=I.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=I.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!t.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!t.isInteger(f.decimals)&&!(f.decimals&&t.isInteger(f.decimals.low)&&t.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Coin)return f;let T=new I.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=I.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(t.Long)(T.decimals=t.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new t.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",t.Long){let H=new t.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=I.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?t.Long.prototype.toString.call(f.decimals):T.longs===Number?new t.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!t.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!t.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.PubKeySet)return f;let T=new I.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=t.emptyArray,n.prototype.gas=t.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)I.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push(I.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!t.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!t.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!t.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!t.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=I.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!t.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Tx)return f;let T=new I.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=I.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=I.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=t.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!t.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Fee)return f;let T=new I.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!t.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.ProtoUint)return f;let T=new I.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=t.emptyArray,n.prototype.memo="",n.prototype.signer=t.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!t.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||t.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof I.types.MsgDeposit)return f;let T=new I.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")t.base64.decode(f.signer,T.signer=t.newBuffer(t.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=t.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?t.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=t.newBuffer([]),n.prototype.toAddress=t.newBuffer([]),n.prototype.amount=t.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)I.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof V))f=V.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push(I.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof V))f=new V(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||t.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||t.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=I.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof I.types.MsgSend)return f;let T=new I.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")t.base64.decode(f.fromAddress,T.fromAddress=t.newBuffer(t.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")t.base64.decode(f.toAddress,T.toAddress=t.newBuffer(t.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=I.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=t.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=t.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?t.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?t.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=I.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof V))C=V.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof V))C=new V(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!t.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!t.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.Coin)return C;let H=new I.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof V))C=V.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof V))C=new V(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!t.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!t.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecCoin)return C;let H=new I.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof V))C=V.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof V))C=new V(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!t.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.IntProto)return C;let H=new I.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof V))C=V.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof V))C=new V(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!t.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecProto)return C;let H=new I.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as u2}from"@swapkit/helpers";async function Zf(){let{$root:y}=await Promise.resolve().then(() => (k1(),R1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function sy(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===u2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Wn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Xn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Wn(T),toAddress:Wn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Xn(T),to_address:Xn(C)})}})}var s0=P(()=>{c0()});import{AssetValue as j2,Chain as LT,getChainConfig as S1,getRPCUrl as x1,SwapKitError as K2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return l1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function l1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await x1(_),Q=await F1({rpcUrl:A,sender:y}),{chainId:J}=S1(_),X=e0({assetValue:o,recipient:n,sender:y}),q=T?await ey(C?X:yf(X),_):X;return{accountNumber:U||Number(Q.accountNumber),chainId:J,fee:Ky(_),memo:f,msgs:[q],sequence:H||Q.sequence}}async function $1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await x1(U),A=await F1({rpcUrl:_,sender:y}),{chainId:Q}=S1(U),J=yo({assetValue:n,memo:o,sender:y}),X=f?await ey(T?J:yf(J),U):J;return{accountNumber:H||Number(A.accountNumber),chainId:Q,fee:Ky(U),memo:o,msgs:[X],sequence:C||A.sequence}}function yf(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=j2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Jn({chain:y,memo:n,msgs:o}){let f=await Zf(),T=await sy(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var h2,m2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===LT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:ay(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===LT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},MT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},ey=async(y,n)=>{return(await sy(n)).fromAmino(y)},F1=async({rpcUrl:y,sender:n})=>{let f=await(await hy(y)).getAccount(n);if(!f)throw new K2("toolbox_cosmos_account_not_found",{sender:n});return f};var I1=P(()=>{Zn();s0();h2=Ky(LT.THORChain).gas,m2=Ky(LT.Maya).gas});var P1=()=>{};var p1=P(()=>{P1()});var no=P(()=>{c0();I1();s0();p1()});import{stringToPath as c2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as g2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as t1,Chain as Hy,CosmosChainPrefixes as j1,DerivationPath as i2,derivationPathToString as E1,FeeOption as Uo,getChainConfig as d2,getRPCUrl as Ln,NetworkDerivationPath as r2,SwapKitError as $f,SwapKitNumber as oo,updateDerivationPath as a2}from"@swapkit/helpers";import{SwapKitApi as K1}from"@swapkit/helpers/api";import{match as s2,P as V1}from"ts-pattern";async function Ao(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${i2[o.chain]}/${o.index}`;return await g2.fromMnemonic(y,{hdPaths:[c2(f)],prefix:n})}async function e2({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function h1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new $f("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Mn({chain:y,...n}){let o=j1[y],f="index"in n?n.index||0:0,T=E1("derivationPath"in n&&n.derivationPath?n.derivationPath:a2(r2[y],{index:f})),C;async function H(){if(C)return C;return C=await s2(n).with({phrase:V1.string},({phrase:q})=>_o({derivationPath:T,phrase:q,prefix:o})).with({signer:V1.any},({signer:q})=>q).otherwise(()=>{return}),C}async function U(q){let G=await Ln(y);return(await hy(G)).getAccount(q)}async function _(){let q=await H(),[G]=await q?.getAccounts()||[];return G?.address}async function A(){let q=await H(),[G]=await q?.getAccounts()||[];if(!G?.pubkey)throw new $f("toolbox_cosmos_signer_not_defined");return Co.encode(G?.pubkey)}async function Q(q){let G=await H(),W=await _(),Y=await Ln(y);if(!(G&&W))throw new $f("toolbox_cosmos_signer_not_defined");return await(await Qf(Y,G)).sign(W,q.msgs,q.fee,q.memo,{accountNumber:BigInt(q.accountNumber),chainId:q.chainId,sequence:q.sequence})}async function J(q){let G=await H(),W=await _(),Y=await Ln(y);if(!(G&&W))throw new $f("toolbox_cosmos_signer_not_defined");let L=await(await Qf(Y,G)).signAndBroadcast(W,q.msgs,q.fee,q.memo);if(L.code!==0)throw new $f("core_swap_transaction_error",{code:L.code,message:L.rawLog});return L.transactionHash}async function X({recipient:q,assetValue:G,memo:W="",feeRate:Y,feeOptionKey:w=Uo.Fast}){let L=await H(),O=await _();if(!(L&&O))throw new $f("toolbox_cosmos_signer_not_defined");let N=await Ln(y),z=Ho.from({chain:y}),Z=Qn(z),M=Y||n_((await v1(y,b1[y]))[w],Z),D=await Qf(N,L),S=ay(G.symbol),R=[{amount:G.getBaseValue("string"),denom:S}],{transactionHash:k}=await D.sendTokens(O,q,R,M,W);return k}return{createPrivateKeyFromPhrase:o_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(q,G)=>{let W=await u1(y)(q),Y=await Promise.all(W.filter(({denom:w})=>w&&!w.includes("IBC/")&&!([Hy.THORChain,Hy.Maya].includes(y)&&w.split("-").length>2)).map(({denom:w,amount:L})=>{let O=[Hy.THORChain,Hy.Maya].includes(y)&&(w.includes("/")||w.includes("˜"))?`${y}.${w}`:w;return a0(O,L)}));if(Y.length===0)return[Ho.from({chain:y})];return Y},getBalanceAsDenoms:u1(y),getFees:()=>v1(y,b1[y]),getPubKey:A,getSignerFromPhrase:({phrase:q,derivationPath:G})=>_o({derivationPath:E1(G),index:f,phrase:q,prefix:o}),getSignerFromPrivateKey:async(q)=>{let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(q,o)},signAndBroadcastTransaction:J,signTransaction:Q,transfer:X,validateAddress:m1(y),verifySignature:h1(U)}}async function y_(y,n){try{let f=(await K1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function f_({assetValue:{chain:y}}){return Ho.from({chain:y,value:T_(y)})}async function v1(y,n){let{chainId:o,baseDecimal:f}=d2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(t1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(t1(T,Uo.Fastest,!0)),f)}}function n_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function T_(y){return{[Hy.Cosmos]:0.007,[Hy.Kujira]:0.02,[Hy.Noble]:0.01,[Hy.THORChain]:0.02,[Hy.Maya]:0.02,[Hy.Harbor]:0.02}[y]||0}function m1(y){let n=j1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function u1(y){return async function(o){let f=await Ln(y);return(await(await hy(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function o_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),Q=await _.mnemonicToSeed(A),{privkey:J}=H.derivePath(C.Secp256k1,Q,T(y));return J}}var b1;var YT=P(()=>{Zn();b1={[Hy.Cosmos]:1000,[Hy.Kujira]:1000,[Hy.Noble]:1000,[Hy.THORChain]:5000000,[Hy.Maya]:5000000,[Hy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as C_,CosmosChainPrefixes as H_,derivationPathToString as U_,FeeOption as qo,getChainConfig as __,getRPCUrl as r1,NetworkDerivationPath as A_,RequestClient as q_,SKConfig as c1,SwapKitError as If,SwapKitNumber as g1,updateDerivationPath as G_}from"@swapkit/helpers";import{match as i1,P as d1}from"ts-pattern";function W_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function X_(y){return Jf.encode(y)}function Q_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,Q=(await o.getAccounts())?.[0]?.address||"",J=await sy(y),X=await Zf(),q=await d0(o,{aminoTypes:J,registry:X}),G=[];for(let w of T){let L=await ey(w,y);G.push(L)}let{signatures:[W]}=await q.sign(Q,G,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Jn({chain:y,memo:A,msgs:T.map(yf)}),signature:X_(W)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await r1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:Q}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:J}=(await import("@cosmjs/stargate")).default,{sequence:X,fee:q}=JSON.parse(f),G=await a1(C,H),W=T.map((L)=>[Q(A(Jf.decode(L.pubKey)),y),Jf.decode(L.signature)]),Y=await hy(_),{transactionHash:w}=await Y.broadcastTx(J(G,X,q,U,new Map(W)));return w}}async function a1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function J_(y){return Jf.decode(y)}async function L_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=c1.get("envs"),f=c1.get("thornodeUrls"),T=y===C_.Maya,C=i1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:L})=>L?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:L})=>L?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${H_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:G_(A_[y],{index:U}),A=Mn({chain:y,...n}),Q=Ky(y),J;function X(){return J??=i1(n).with({phrase:d1.string},({phrase:L})=>A.getSignerFromPhrase({derivationPath:_,phrase:L})).with({signer:d1.any},({signer:L})=>Promise.resolve(L)).otherwise(()=>Promise.resolve(void 0)),J}async function q(){let L=await r1(y),O=await X();if(!O)throw new If("toolbox_cosmos_no_signer");let N=await Zf(),z=await sy(y),Z=await Qf(L,O,{aminoTypes:z,registry:N});return{signer:O,signingClient:Z}}async function G({fee:L,memo:O,msgs:N}){let{signer:z,signingClient:Z}=await q(),M=(await z.getAccounts())?.[0]?.address;if(!M)throw new If("toolbox_cosmos_signer_not_defined");let D=await Z.signAndBroadcast(M,N,L,O);if(D.code!==0)throw new If("core_swap_transaction_error",{code:D.code,message:D.rawLog});return D.transactionHash}async function W(){let L,O=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await q_.get(O);if(!N||Number.isNaN(N)||N<0)throw new If("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});L=new g1(N)}catch{L=new g1({decimal:__(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:L,[qo.Fast]:L,[qo.Fastest]:L}}async function Y({assetValue:L,memo:O="",recipient:N}){let{TxRaw:z}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:Z,signingClient:M}=await q(),D=(await Z.getAccounts())?.[0]?.address;if(!D)throw new If("toolbox_cosmos_no_signer");let S="signAmino"in Z,R=MT({assetValue:L,memo:O,recipient:N,sender:D});if(S){let B=await ey(R,y),{signatures:x,authInfoBytes:$}=await M.sign(D,[B],Q,O),E=z.encode({authInfoBytes:$,bodyBytes:await Jn({chain:y,memo:O,msgs:[R].map(yf)}),signatures:x}).finish();return(await M.broadcastTx(E)).transactionHash}let k=yf(R),l=await ey(k,y);return G({fee:Q,memo:O,msgs:[l]})}async function w(L){let{signer:O,signingClient:N}=await q(),z=(await O.getAccounts())?.[0]?.address;if(!z)throw new If("toolbox_cosmos_signer_not_defined");return N.sign(z,L.msgs,L.fee,L.memo,{accountNumber:BigInt(L.accountNumber),chainId:L.chainId,sequence:L.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:MT,buildEncodedTxBody:Jn,convertToSignable:ey,createDefaultAminoTypes:()=>sy(y),createDefaultRegistry:Zf,createMultisig:a1,createTransaction:fo,deposit:Y,getFees:W,importSignature:J_,parseAminoMessageForDirectSigning:yf,pubkeyToAddress:async(L)=>{let{pubkeyToAddress:O}=(await import("@cosmjs/amino")).default;return O(L,H)},secp256k1HdWalletFromMnemonic:W_({derivationPath:U_(_),prefix:H}),signAndBroadcastTransaction:G,signMultisigTx:Q_(y),signTransaction:w,signWithPrivateKey:L_,transfer:Y}}var Wo=P(()=>{no();Zn();YT()});import{Chain as Yn,SwapKitError as M_}from"@swapkit/helpers";var Y_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Mn({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new M_("toolbox_cosmos_not_supported",{chain:y})}};var s1=P(()=>{YT();Wo();YT();Wo()});var BT={};ny(BT,{verifySignature:()=>h1,transferMsgAmino:()=>e0,toBase64:()=>t2,parseAminoMessageForDirectSigning:()=>yf,getSignerFromPrivateKey:()=>e2,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>ay,getFeeRateFromSwapKit:()=>y_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>Ky,getCosmosToolbox:()=>Y_,getCosmosAddressValidator:()=>m1,getAssetFromDenom:()=>a0,fromBase64:()=>E2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>f_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>hy,createSigningStargateClient:()=>Qf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Zf,createDefaultAminoTypes:()=>sy,createCosmosToolbox:()=>Mn,cosmosCreateTransaction:()=>r0,convertToSignable:()=>ey,buildTransferTx:()=>l1,buildEncodedTxBody:()=>Jn,buildDepositTx:()=>$1,buildAminoMsg:()=>MT,bech32ToBase64:()=>Wn,base64ToBech32:()=>Xn,YUM_KUJIRA_FACTORY_DENOM:()=>N1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>h2,MAYA_GAS_VALUE:()=>m2,DEFAULT_NOBLE_FEE_MAINNET:()=>D1,DEFAULT_KUJI_FEE_MAINNET:()=>w1,DEFAULT_COSMOS_FEE_MAINNET:()=>O1});var zT=P(()=>{no();s1();Zn()});function B_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function z_({cancels:y}){return{cancels:y,type:"cancel"}}function N_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function O_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function w_({modifies:y}){return{modifies:y,type:"batchModify"}}function D_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function R_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function k_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function S_({time:y}){return{time:y,type:"scheduleCancel"}}function x_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function F_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function l_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function $_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function I_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Xo}from"@swapkit/helpers";import{keccak256 as P_,Signature as p_}from"ethers";function Jy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function u_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function ff(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function e1(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Jy(new Uint8Array([205]),ff(y,2));if(y<=0xffffffffn)return Jy(new Uint8Array([206]),ff(y,4));return Jy(new Uint8Array([207]),ff(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Jy(new Uint8Array([209]),ff(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Jy(new Uint8Array([210]),ff(BigInt.asUintN(32,y),4));return Jy(new Uint8Array([211]),ff(BigInt.asUintN(64,y),8))}function nH(y){let n=v_.encode(y);if(n.length<32)return Jy(new Uint8Array([160+n.length]),n);return Jy(u_(217,0,n.length),n)}function j_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Jy(o,...n)}function K_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Jy(o,...n.flatMap(([f,T])=>[nH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return nH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Xo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return e1(BigInt(y))}if(typeof y==="bigint")return e1(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Jy(n,y)}if(Array.isArray(y))return j_(y);if(typeof y==="object")return K_(y);throw new Xo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function h_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Xo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function TH(y){return{domain:t_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...E_.Agent]}}}function oH(y){let n=b_[y.type],o=V_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:yH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||fH},primaryType:n,types:{[n]:o}}}function CH(y){let n=p_.from(y);return{r:n.r,s:n.s,v:n.v}}function HH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=ff(BigInt(n),8),H=f?Jy(new Uint8Array([1]),h_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Jy(new Uint8Array([0]),ff(BigInt(o),8)):new Uint8Array;return P_(Jy(T,C,H,U))}function UH(y){let n=y.hyperliquidChain||fH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var yH="0x0000000000000000000000000000000000000000",t_,E_,fH="Mainnet",V_,b_,v_;var _H=P(()=>{t_={chainId:1337,name:"Exchange",verifyingContract:yH,version:"1"},E_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},V_={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"}]},b_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},v_=new TextEncoder});import{AssetValue as Lo,Chain as m_,derivationPathToString as c_,getChainConfig as GH,getRPCUrl as g_,NetworkDerivationPath as i_,RequestClient as Pf,SwapKitError as pf,updateDerivationPath as d_}from"@swapkit/helpers";import{HDNodeWallet as r_}from"ethers";import{match as a_,P as Zo}from"ts-pattern";function Ry(y,n){if(!Yo(y))throw new pf(n,{address:y});return y.toLowerCase()}async function Lf(y){let n=await NT();return Pf.post(`${n}/info`,{json:y})}function o8({dex:y,user:n}){return Lf({...y?{dex:y}:{},type:"clearinghouseState",user:Ry(n,"helpers_invalid_params")})}function C8({user:y}){return Lf({type:"spotClearinghouseState",user:Ry(y,"helpers_invalid_params")})}function H8({dex:y,user:n}){return Lf({...y?{dex:y}:{},type:"openOrders",user:Ry(n,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Lf({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ry(n,"helpers_invalid_params")})}function _8({oidOrCloid:y,user:n}){return Lf({oid:y,type:"orderStatus",user:Ry(n,"helpers_invalid_params")})}function A8({aggregateByTime:y,user:n}){return Lf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ry(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Lf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:Ry(f,"helpers_invalid_params")})}function AH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=s_[T]||WH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${ty}.${T}-${H.name}:${H.tokenId}`:`${ty}.${T}`;return new Lo({decimal:C,identifier:U,value:o})}function G8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Lo.from({chain:ty,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await g_(ty)}catch{let[y]=GH(ty).rpcUrls;if(!y)throw new pf("helpers_chain_no_public_or_set_rpc_url",{chain:ty});return y}}async function Mo(){return`${await NT()}/exchange`}function W8(y){let n=T8[y.type],{type:o,...f}=y,T=n8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:f8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function XH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?Ry(f,"helpers_invalid_params"):void 0,H=await Mo(),U=HH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:TH(U),vaultAddress:C}}async function QH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=UH({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Mo(),nonce:f,typedData:oH(C)}}async function Jo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=Ry(n,"core_transaction_invalid_recipient_address"),H=Ry(o,"core_transaction_invalid_sender_address"),U=await Mo(),_=y.getValue("string"),A=T||Date.now(),Q=y.address;if(!Q)throw new pf("helpers_invalid_params",{asset:y.toString(),from:H});let J={amount:_,destination:C,hyperliquidChain:e_,signatureChainId:f||y8,time:A,token:Q,type:"spotSend"};return{action:J,endpoint:U,nonce:A,typedData:W8(J)}}async function qH(y){let n=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new pf("core_transaction_failed",{response:n});return n}async function X8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await Pf.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function Q8(y){let n=Qy(ty),o=y&&"index"in y?y.index||0:0,f=c_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:d_(i_[ty],{index:o})),T,C=!1;function H(){if(C)return T;return T=a_(y).with({phrase:Zo.string},({phrase:X})=>{return r_.fromPhrase(X,void 0,f)}).with({signer:Zo.not(Zo.nullish)},({signer:X})=>X).otherwise(()=>{return}),C=!0,T}async function U(){let X=H();return X?await X.getAddress():""}async function _(X){let q=H();if(!q)throw new pf("toolbox_hypercore_no_signer");let G=await q.signTypedData(X.typedData.domain,X.typedData.types,X.typedData.message);return{action:X.action,endpoint:X.endpoint,nonce:X.nonce,signature:CH(G),..."expiresAfter"in X?{expiresAfter:X.expiresAfter}:{},..."vaultAddress"in X?{vaultAddress:X.vaultAddress}:{}}}async function A(X){let q=Ry(X,"helpers_invalid_params");try{let G=await NT(),[W,Y,w]=await Promise.all([Pf.post(`${G}/info`,{json:{type:"spotClearinghouseState",user:q}}),Pf.post(`${G}/info`,{json:{type:"clearinghouseState",user:q}}),Pf.post(`${G}/info`,{json:{type:"spotMeta"}})]),L=(W.spotState?.balances||W.balances||[]).map(({coin:N,token:z,total:Z})=>AH({coin:N,spotMeta:w,token:z,value:Z})).filter((N)=>!!N),O=AH({coin:"USDC",spotMeta:w,value:Y.withdrawable||Y.marginSummary?.accountValue||Y.marginSummary?.totalRawUsd});return G8(O?[...L,O]:L)}catch{return n(q)}}async function Q(X){let q=H();if(!q)throw new pf("toolbox_hypercore_no_signer");let G=X.sender||await q.getAddress(),W=await Jo({...X,feeRate:0,sender:G}),Y=await _(W);return await qH(Y),X8(G,W.nonce)}function J(){return Lo.from({chain:ty,value:0})}return{broadcastTransaction:qH,createL1ActionRequest:XH,createTransaction:Jo,createUserSignedActionRequest:QH,estimateTransactionFee:J,getAddress:U,getBalance:A,getState:{clearinghouse:o8,frontendOpenOrders:U8,openOrders:H8,orderStatus:_8,spotClearinghouse:C8,userFills:A8,userFillsByTime:q8},signTransaction:_,transfer:Q,validateAddress:Yo}}var ty,WH,s_,e_="Mainnet",y8="0xa4b1",f8="0x0000000000000000000000000000000000000000",n8,T8;var ZH=P(()=>{b0();uy();_H();ty=m_.HyperCore,{baseDecimal:WH}=GH(ty),s_={HYPE:WH,USDC:6,USDT:6},n8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},T8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};ny(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>Q8,createUserSignedActionRequest:()=>QH,createTransaction:()=>Jo,createL1ActionRequest:()=>XH,buildUsdClassTransferAction:()=>x_,buildUpdateLeverageAction:()=>D_,buildUpdateIsolatedMarginAction:()=>R_,buildTopUpIsolatedOnlyMarginAction:()=>k_,buildTokenDelegateAction:()=>I_,buildSendAssetAction:()=>F_,buildScheduleCancelAction:()=>S_,buildOrderAction:()=>B_,buildModifyAction:()=>O_,buildCancelByCloidAction:()=>N_,buildCancelAction:()=>z_,buildBatchModifyAction:()=>w_,buildApproveBuilderFeeAction:()=>$_,buildApproveAgentAction:()=>l_});var zo=P(()=>{ZH()});import{PublicKey as nf}from"@solana/web3.js";import{AssetValue as OT,Chain as cy,DerivationPath as Z8,derivationPathToString as J8,getChainConfig as YH,getRPCUrl as L8,NetworkDerivationPath as M8,SwapKitError as tf,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as B8,P as JH}from"ts-pattern";async function BH(y){let n=OT.from({address:y,chain:cy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function z8(y){let n=await my(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=YH(cy.Solana),H=await n.getBalance(T),U=[OT.from({chain:cy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let Q=A.data.parsed.info,J=Q.mint,X=Q.tokenAmount.amount;if(Number(X)===0)continue;let q=await BH(J),G=q?.symbol||"UNKNOWN",W=q?.decimals||Q.tokenAmount.decimals;U.push(OT.from({asset:`${cy.Solana}.${G}-${J}`,fromBaseDecimal:W,value:X}))}return U}function Oo(y){try{let n=new nf(y);return nf.isOnCurve(n.toBytes())}catch{return!1}}function N8(y){let n=y&&"index"in y?y.index||0:0,o=J8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(M8[cy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await B8(y).with({phrase:JH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:JH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?MH(H.publicKey):""}return{broadcastTransaction:wT(my),createKeysForPath:No,createTransaction:wo(my),createTransactionFromInstructions:R8,estimateTransactionFee:O8(my),getAddress:C,getAddressFromPubKey:MH,getBalance:Qy(cy.Solana),getBalanceFromRPC:z8,getConnection:my,getPubkeyFromAddress:(H)=>new nf(H),signAndBroadcastTransaction:async(H)=>{let U=await LH(my,T)(H);return wT(my)(U)},signTransaction:LH(my,T),transfer:k8(my,T),validateAddress:Oo}}function O8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new tf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Q}=YH(cy.Solana);return OT.from({chain:cy.Solana,fromBaseDecimal:Q,value:A.value})}}async function my(){let{Connection:y}=await import("@solana/web3.js"),n=await L8(cy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function w8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new nf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new nf(o)}))}if(n.address)return D8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function D8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:Q}=await import("@solana/spl-token"),{Transaction:J}=await import("@solana/web3.js"),X=new J,q=new nf(y),G=await U(q,o),W=new nf(n),Y=await U(q,W,H),w=!1;try{await _(f,Y),w=!0}catch{}if(!w)X.add(A(o,Y,W,q));return X.add(Q(G,q,Y,o,T,C)),X}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new nf(C);if(!(T||Oo(n)))throw new tf("core_transaction_invalid_recipient_address");let _=await y(),A=await w8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new tf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let Q=await _.getLatestBlockhash();return A.recentBlockhash=Q.blockhash,A.feePayer=U,A}}async function R8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new tf("core_transaction_invalid_sender_address");return o}function k8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new tf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function LH(y,n){return async(o)=>{let f=await n();if(!f)throw new tf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function MH(y){return y.toString()}var zH=P(()=>{uy()});var Do={};ny(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>N8,fetchTokenMetaData:()=>BH,createKeysForPath:()=>No});var Ro=P(()=>{zH()});import{AssetValue as DT,Chain as RT,DerivationPath as OH,derivationPathToString as S8,getChainConfig as x8,getRPCUrl as xo,NetworkDerivationPath as F8,SwapKitError as Ny,updateDerivationPath as l8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function ST({phrase:y,derivationPath:n=OH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),Q=o.fromMasterSeed(_).derive(n);if(!Q.privateKey)throw new Ny("toolbox_starknet_no_signer");let J=H.addHexPrefix(Buffer.from(Q.privateKey).toString("hex")),X=T.starkCurve.grindKey(J),q=H.addHexPrefix(X),G=T.starkCurve.getStarkKey(q),W=U.compile([G,0]);return{address:C.calculateContractAddressFromHash(G,Fo,W,0),privateKey:q,publicKey:G}}async function lo({phrase:y,derivationPath:n=OH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await ST({derivationPath:n,phrase:y}),H=await xo(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function wH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=S8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:l8(F8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:z}=await import("starknet"),Z=await xo(n);return C=new z({nodeUrl:Z}),C}async function _(z){let Z=await U(),M=z||await X();if(!M)return!1;try{return await Z.getClassHashAt(M),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let S=D;if(S?.code===20||S?.code===19)return!1;throw D}}async function A(){let{CallData:z,hash:Z}=await import("starknet"),M=await U(),D=await J();if(!D)throw new Ny("toolbox_starknet_no_signer");if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return D.address;let R=z.compile([H,0]);if(Z.calculateContractAddressFromHash(H,Fo,R,0).toLowerCase()!==D.address.toLowerCase())throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let l={addressSalt:H,classHash:Fo,constructorCalldata:R},{transaction_hash:B}=await D.deployAccount(l);return await M.waitForTransaction(B),B}async function Q(){if(!await _()){if(!H)throw new Ny({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 A()}}async function J(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:z})=>{let{Account:Z,RpcProvider:M}=await import("starknet"),{privateKey:D,address:S,publicKey:R}=await ST({derivationPath:f,phrase:z});H=R;let k=await xo(RT.Starknet),l=new M({nodeUrl:k});return new Z({address:S,provider:l,signer:D})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:z,address:Z})=>{let{Account:M}=await import("starknet"),D=await U();return new M({address:Z,provider:D,signer:z})}).with({signer:Ef.instanceOf(Object)},({signer:z})=>z).otherwise(()=>{return}),T}async function X(){return(await J())?.address??""}async function q(z){let Z=await U(),{uint256:M,CallData:D}=await import("starknet"),S=[],R=[So,NH];for(let k of R)try{let[l="0",B="0"]=await Z.callContract({calldata:D.compile({account:z}),contractAddress:k,entrypoint:"balanceOf"}),x=M.uint256ToBN({high:l,low:B});ko(k).with(So,()=>{S.push(DT.from({chain:n,value:x}))}).with(NH,()=>{if(x>0n)S.push(DT.from({asset:`${n}.ETH-${k}`,value:x}))}).otherwise(()=>{})}catch{}return S}async function G({recipient:z,assetValue:Z}){let{CallData:M,uint256:D}=await import("starknet");if(!kT(z))throw new Ny("core_transaction_invalid_recipient_address",{address:z});let S=Z.isGasAsset?So:Z.address;if(!S)throw new Ny("toolbox_starknet_invalid_address",{address:S,assetValue:Z});let R=D.bnToUint256(Z.getBaseValue("bigint"));return[{calldata:M.compile([z,R]),contractAddress:S,entrypoint:"transfer"}]}async function W({recipient:z,assetValue:Z,sender:M}){let{baseDecimal:D}=x8(RT.Starknet),S=await J(),R=await ko({sender:M,signer:S}).with({sender:Ef.string},async({sender:k})=>{let{Account:l}=await import("starknet"),B=await U();return new l({address:k,provider:B,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:k})=>k).otherwise((k)=>{throw new Ny({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:k}})});try{let k=await G({assetValue:Z,recipient:z}),l=await R.estimateInvokeFee(k);if(l?.overall_fee)return DT.from({chain:n,fromBaseDecimal:D,value:l.overall_fee})}catch(k){throw new Ny("toolbox_starknet_fee_estimation_failed",k)}return DT.from({chain:n,value:"0.00001"})}async function Y({recipient:z,assetValue:Z,memo:M}){let D=await J();if(!D)throw new Ny("toolbox_starknet_no_signer");await Q();let S=await G({assetValue:Z,memo:M,recipient:z});return(await D.execute(S)).transaction_hash}async function w(z){let Z=await J();if(!Z)throw new Ny("toolbox_starknet_no_signer");let M=await Z.signMessage(z);return Array.isArray(M)?M:[M.r.toString(),M.s.toString()]}async function L(z){let Z=await J();if(!Z)throw new Ny("toolbox_starknet_no_signer");return await Q(),(await Z.execute(z)).transaction_hash}function O(z){return L(z)}function N(z,Z=!0){try{return Qy(n)(z,Z)}catch{return q(z)}}return{broadcastTransaction:L,createKeysForPath:lo,createTransaction:G,deployAccount:A,estimateTransactionFee:W,getAddress:X,getBalance:N,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:O,signMessage:w,transfer:Y,validateAddress:kT}}var So="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",NH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",Fo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var DH=P(()=>{uy()});var xT={};ny(xT,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>lo,getStarknetToolbox:()=>wH,deriveStarknetKeys:()=>ST});var FT=P(()=>{DH()});import{isValidSuiAddress as $8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as lT,getChainConfig as I8,SwapKitError as ky}from"@swapkit/helpers";import{match as P8,P as RH}from"ts-pattern";async function SH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?SH(y,n,o,H,C.nextCursor):H}function p8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new ky("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function xH(y){try{return $8(y)}catch{return!1}}function kH(y){return"signWithIntent"in y}function t8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await P8(n).with({phrase:RH.string},async({phrase:G})=>{let{Ed25519Keypair:W}=await import("@mysten/sui/keypairs/ed25519");return W.deriveKeypair(G)}).with({signer:RH.any},({signer:G})=>G).otherwise(()=>{return}),o}async function T(G=y){let{SuiClient:W,getFullnodeUrl:Y}=await import("@mysten/sui/client");return new W({url:G||Y("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(G){try{let W=Vf.from({address:G,chain:lT.Sui});return{asset:W.toString(),decimals:W.decimal}}catch{}return null}async function U(G){let W=G||await C();if(!W)throw new ky("toolbox_sui_address_required");let{baseDecimal:Y,chain:w}=I8(lT.Sui);try{let L=await T(),{totalBalance:O}=await L.getBalance({owner:W}),N=[Vf.from({chain:w,fromBaseDecimal:Y,value:O})],z=await L.getAllBalances({owner:W});for(let{coinType:Z,totalBalance:M}of z){if(Z==="0x2::sui::SUI"||Number(M)<=0)continue;let D=H(Z);if(D)N.push(Vf.from({asset:D.asset,fromBaseDecimal:D.decimals,value:M}))}return N}catch{return[Vf.from({chain:w})]}}async function _(G){let W=Vf.from({chain:lT.Sui,value:"0.01"});if(!G)return W;try{let Y=await T(),{txBytes:w}=await A(G),{effects:{status:L,gasUsed:O}}=await Y.dryRunTransactionBlock({transactionBlock:w});if(L.status!=="success")return W;let N=Number(O.computationCost)+Number(O.storageCost)-Number(O.storageRebate);return Vf.from({chain:lT.Sui,value:N.toString()})}catch{return W}}async function A({recipient:G,assetValue:W,gasBudget:Y,sender:w}){let{Transaction:L}=await import("@mysten/sui/transactions"),O=w||await C();if(!O)throw new ky("toolbox_sui_no_sender");try{let N=new L;if(N.setSender(O),W.isGasAsset||W.symbol==="SUI"){let[M]=N.splitCoins(N.gas,[W.getBaseValue("string")]);N.transferObjects([M],G)}else{let M=W.address;if(!M)throw new ky("toolbox_sui_missing_coin_type");let D=await T(),S=W.getBaseValue("bigint"),R=await SH(D,O,M);if(!R.length)throw new ky("toolbox_sui_no_coins_found",{coinType:M});let k=p8(N,R,S);N.transferObjects([k],G)}if(Y)N.setGasBudget(Y);let z=await T(),Z=await N.build({client:z});return{tx:N,txBytes:Z}}catch(N){if(N instanceof ky)throw N;throw new ky("toolbox_sui_transaction_creation_error",{error:N})}}async function Q(G){let W=await f();if(!W)throw new ky("toolbox_sui_no_signer");if(G instanceof Uint8Array)return W.signTransaction(G);let{txBytes:Y}="tx"in G?G:await A(G);return W.signTransaction(Y)}async function J({assetValue:G,gasBudget:W,recipient:Y}){let w=await f();if(!w)throw new ky("toolbox_sui_no_signer");let L=w.toSuiAddress()||await C();if(!L)throw new ky("toolbox_sui_no_sender");let{txBytes:O}=await A({assetValue:G,gasBudget:W,recipient:Y,sender:L}),N=await T();if(!kH(w)){let Z=await w.signTransaction(O),{digest:M}=await N.executeTransactionBlock({signature:Z.signature,transactionBlock:Z.bytes});return M}let{digest:z}=await N.signAndExecuteTransaction({signer:w,transaction:O});return z}async function X(G){let W=await T(),{digest:Y}=await W.executeTransactionBlock({signature:G.signature,transactionBlock:G.bytes});return Y}async function q(G){let W=await f();if(!W)throw new ky("toolbox_sui_no_signer");let Y=await T(),w;if(typeof G==="string")w=Uint8Array.from(Buffer.from(G,"base64"));else if(G instanceof Uint8Array)w=G;else w=await G.build({client:Y});if(!kH(W)){let O=await W.signTransaction(w),{digest:N}=await Y.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return N}let{digest:L}=await Y.signAndExecuteTransaction({signer:W,transaction:w});return L}return{broadcastTransaction:X,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:q,signTransaction:Q,transfer:J,validateAddress:xH}}var FH=()=>{};var $T={};ny($T,{validateSuiAddress:()=>xH,getSuiToolbox:()=>t8});var IT=P(()=>{FH()});import{getHttpEndpoint as E8}from"@orbs-network/ton-access";import{AssetValue as V8,Chain as zn,getChainConfig as b8,getRPCUrl as v8,SwapKitError as Bn,SwapKitNumber as u8}from"@swapkit/helpers";import{mnemonicToWalletKey as j8}from"@ton/crypto";import{Address as gy,beginCell as $o,Cell as lH,external as K8,internal as h8,JettonMaster as m8,loadStateInit as c8,SendMode as $H,storeMessage as g8,TonClient as i8,toNano as tH,WalletContractV4 as d8}from"@ton/ton";import{match as IH,P as Io}from"ts-pattern";async function yA(){let y=Date.now();if(PT&&y-pH<e8)return PT;try{return PT=await E8(),pH=y,PT}catch{return v8(zn.Ton)}}function fA(y={}){let n,o,f;async function T(){if(!n){let N=y.provider??await yA();n=new i8({endpoint:N})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await IH(y).with({phrase:Io.string},async({phrase:N})=>j8(N.split(" "))).with({signer:Io.any},({signer:N})=>N).otherwise(()=>{return}),f}async function U(N){if(!o||N){let z=await H(),Z=await T(),M=N||z;if(!M)throw new Bn("core_wallet_connection_not_found");let D=d8.create({publicKey:M.publicKey,workchain:0});o=Z.open(D)}return o}let _=Qy(zn.Ton);async function A({assetValue:N,recipient:z,memo:Z,sender:M}){if(N.isGasAsset){let E=Z?O(Z).toBoc().toString("base64"):void 0;return[{address:z,amount:N.getBaseValue("string"),payload:E}]}let D=N.address;if(!D)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let S=M??await C(),R=await w({jettonMasterAddress:D,ownerAddress:S}),k=gy.parse(z),l=gy.parse(S),B=N.getBaseValue("bigint"),x=Z?O(Z):void 0,$=L({destinationAddress:k,forwardPayload:x,jettonAmount:B,responseAddress:l});return[{address:R.toString(),amount:s8.toString(),payload:$.toBoc().toString("base64")}]}function Q({sender:N,...z}){return A({...z,sender:N})}function J(N){return N.map((z)=>{let Z=z.payload?lH.fromBase64(z.payload):void 0,M=z.stateInit?c8(lH.fromBase64(z.stateInit).asSlice()):void 0,D=gy.parse(z.address),S=gy.isFriendly(z.address)?gy.parseFriendly(z.address).isBounceable:!0;return h8({body:Z,bounce:S,init:M,to:D,value:BigInt(z.amount)})})}async function X(N){let z=await H(),Z=await U();if(!Z||!z)throw new Bn("core_wallet_connection_not_found");let M=await T(),{state:D}=await M.getContractState(Z.address),S=D==="active",R=S?await Z.getSeqno():0,k=Z.createTransfer({messages:J(N),secretKey:z.secretKey,sendMode:PH,seqno:R}),l=K8({body:k,init:S?void 0:Z.init,to:Z.address});return $o().store(g8(l)).endCell()}async function q(N){return await(await T()).sendFile(N.toBoc()),N.hash().toString("hex")}async function G(N){let z=await X(N);return q(z)}async function W({assetValue:N,recipient:z,memo:Z}){let M=await Q({assetValue:N,memo:Z,recipient:z});return G(M)}async function Y({sender:N,...z}){let{baseDecimal:Z}=b8(zn.Ton),M=await IH(N).with(Io.string,(R)=>{return gy.parseFriendly(R).address}).otherwise(async()=>{return(await U()).address});if(!M)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let D=V8.from({chain:zn.Ton,value:"0.01"}),S=await T();try{let R=await Q({sender:N,...z}),k=await H(),l=await U();if(!l||!k)return D;let B=await l.getSeqno(),x=l.createTransfer({messages:J(R),secretKey:k.secretKey,sendMode:PH,seqno:B}),{source_fees:$}=await S.estimateExternalMessageFee(M,{body:x,ignoreSignature:!0,initCode:null,initData:null}),E=$.in_fwd_fee+$.storage_fee+$.gas_fee+$.fwd_fee;return D.set(u8.fromBigInt(BigInt(E),Z))}catch{return D}}async function w({jettonMasterAddress:N,ownerAddress:z}){try{let Z=await T(),M=gy.parse(N),D=gy.parse(z);return await Z.open(m8.create(M)).getWalletAddress(D)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:z}})}}function L({jettonAmount:N,destinationAddress:z,responseAddress:Z,forwardAmount:M=a8,forwardPayload:D}){let S=$o().storeUint(r8,32).storeUint(0,64).storeCoins(N).storeAddress(z).storeAddress(Z).storeBit(0).storeCoins(M);if(D)S.storeBit(1).storeRef(D);else S.storeBit(0);return S.endCell()}function O(N){return $o().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:q,createTransaction:Q,estimateTransactionFee:Y,getAddress:C,getBalance:_,getJettonWalletAddress:w,sign:X,signAndBroadcastTransaction:G,transfer:W,validateAddress:EH}}function EH(y){try{return gy.parse(y),!0}catch{return!1}}var r8=260734629,a8,s8,PH,e8=60000,PT,pH=0;var VH=P(()=>{uy();a8=tH("0.01"),s8=tH("0.05"),PH=$H.PAY_GAS_SEPARATELY+$H.IGNORE_ERRORS});var pT={};ny(pT,{validateTonAddress:()=>EH,getTONToolbox:()=>fA});var tT=P(()=>{VH()});import{NetworkDerivationPath as nA}from"@swapkit/helpers";function Sy(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function Tf({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Sy("accountIndex",y);let f=[...o?.slice(0,3)??nA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Sy("index",T),[...Tf({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Mf(y){return y[2]??0}function bH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:Q=0,change:J=!1}=U;if(Sy("count",A),A<1)throw RangeError("count must be at least 1");Sy("startIndex",Q);let X=[];for(let q=0;q<A;q++){let G=await y({accountIndex:_,change:J,index:Q+q});if(G)X.push(G)}return X}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},Q=[],J=0,X=0;while(J<_){let q=await y({change:A,index:X});if(!q)break;if((await n(q.address)).some((Y)=>Y.getValue("number")>0))Q.push(q),J=0;else J++;X++}return Q}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Q=[..._,...A],J=await Promise.all(Q.map(async(q)=>{let W=(await n(q.address)).reduce((Y,w)=>Y+w.getValue("number"),0);return{...q,balance:W}})),X=J.reduce((q,G)=>q+G.balance,0);return{addresses:J,total:X}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),Q=[..._,...A];return(await Promise.all(Q.map(async(X)=>{return(await o(X.address)).map((G)=>({...G,address:X.address,derivationIndex:X.index,isChange:X.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Uy,getRPCUrl as TA,RequestClient as ET,SKConfig as oA,SwapKitError as Ey,warnOnce as CA}from"@swapkit/helpers";import{NETWORKS as vf}from"@swapkit/utxo-signer";async function HA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await ET.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Ey("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await TA(y);if(C){let H=JSON.stringify({id:tC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await ET.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Ey("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Ey("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${UA(y)}`}function vH(y){switch(y){case Uy.Bitcoin:return 5;case Uy.Dogecoin:return 1e4;case Uy.Litecoin:return 1;case Uy.Zcash:return 1;default:return 2}}function UA(y){switch(y){case Uy.BitcoinCash:return"bitcoin-cash";case Uy.Litecoin:return"litecoin";case Uy.Dash:return"dash";case Uy.Dogecoin:return"dogecoin";case Uy.Zcash:return"zcash";case Uy.Polkadot:return"polkadot";default:return"bitcoin"}}async function _A(y){try{let{feePerKb:n}=await ET.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,vH(y))}catch{return vH(y)}}async function VT(y,n){let o=await ET.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Ey("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function jH({address:y,chain:n,apiKey:o}){if(!y)throw new Ey("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await VT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function AA({address:y,chain:n,apiKey:o}){return(await jH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function KH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Ey("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await VT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function GA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Ey("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await VT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Ey("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((Q)=>Q.spending_sequence),A=C.is_rbf===!0||_.some((Q)=>Q<qA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function WA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await VT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:Q,transaction_hash:J,index:X,value:q,spending_signature_hex:G})=>({hash:J,index:X,is_confirmed:Q!==-1,is_spent:_,script_hex:A,txHex:G,value:q}))}function XA(y){return y.reduce((n,o)=>n+o.value,0)}function uH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function hH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Ey("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await WA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,Q=U.filter(({is_spent:Y})=>!Y),J=XA(Q),X=T+J,q=f&&X>=f;if(A||q)return uH(Q,f);let G=await hH({accumulativeValue:X,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),W=[...Q,...G];return uH(W,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function QA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await hH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:Q}of C){let J;if(f)J=await KH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:J,value:Q,witnessUtxo:{script:Buffer.from(A,"hex"),value:Q}})}return H}function yy(y){let n=oA.get("apiKeys").blockchair||"";return CA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>HA({chain:y,txHash:o}),getAddressData:(o)=>jH({address:o,apiKey:n,chain:y}),getBalance:(o)=>AA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>KH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>_A(y),getTransactionDetails:(o)=>GA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>QA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function JA(){return function(n){switch(n){case Uy.Bitcoin:return vf.bitcoin;case Uy.BitcoinCash:return vf.bitcoinCash;case Uy.Dash:return vf.dash;case Uy.Litecoin:return vf.litecoin;case Uy.Dogecoin:return vf.dogecoin;case Uy.Zcash:return vf.zcash;default:throw new Ey("toolbox_utxo_not_supported",{chain:n})}}}var qA=4294967294;var mH=P(()=>{uy()});import{CashAddrType as bT,decodeCashAddr as LA,encodeCashAddr as MA}from"@swapkit/utxo-signer";function zA(y,n,o){return MA({hash:o,prefix:y,type:YA[n]})}function NA(y){let n=LA(y),o=BA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var YA,BA,Po;var cH=P(()=>{YA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},BA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:NA,encode:zA}});import{sha256 as OA}from"@noble/hashes/sha2.js";import{createBase58check as wA}from"@scure/base";import{SwapKitError as iH}from"@swapkit/helpers";function to(y){try{return vT(y),!0}catch{return!1}}function Eo(y){return vT(y)?.network}function iy(y){let n=vT(y);if(n?.format==="legacy")return y;return kA(n)}function wn(y){let n=vT(y);return SA(n)}function vT(y){try{let n=DA(y);if(n)return n}catch{}try{let n=RA(y);if(n)return n}catch{}throw new iH("toolbox_utxo_invalid_address",{address:y})}function DA(y){try{let n=dH.decode(y);if(n.length!==21)throw new iH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Yf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Yf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Yf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Yf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Yf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Yf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function RA(y){if(y.indexOf(":")!==-1)try{return gH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return gH(`${o}:${y}`)}catch{}}return}function gH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function kA(y){let n=Yf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),dH.encode(o)}function SA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var dH,po,Yf;var rH=P(()=>{cH();dH=wA(OA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(po||={});Yf={["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 xA}from"@swapkit/helpers";import{Script as FA}from"@swapkit/utxo-signer";function My(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return FA.encode(["RETURN",n])}var lA=1000,jT=10,KT=2,aH=10,$A=41,IA=107,hT,uT,Dn,uf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new xA("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?uf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=uT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,Q)=>A+of(Q),0),H=n?.reduce((A,Q)=>A+Rn(Q),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},of=(y)=>{if("type"in y&&y.type)return uT[y.type];if("address"in y&&y.address)return uT[uf(y.address)];return $A+IA},Rn=(y,n)=>{if(y?.script)return aH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[uf(y.address)];return Dn.P2PKH};var Vo=P(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});uT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as zf,SwapKitError as PA}from"@swapkit/helpers";function kn(y){switch(y){case zf.Bitcoin:case zf.BitcoinCash:return 550;case zf.Dash:case zf.Litecoin:return 5500;case zf.Dogecoin:return 1e5;case zf.Zcash:return 546;default:throw new PA("toolbox_utxo_not_supported",{chain:y})}}function xy({inputs:y,outputs:n,feeRate:o=1,chain:f=zf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?uf(y[0].address):"P2PKH",H=y.filter((G)=>of(G)*o<=G.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((G,W)=>G+Rn(W),0),Q=n.reduce((G,W)=>G+W.value,0),J=A*o,X=0,q=[];for(let G of H){let W=of(G),Y=o*W;J+=Y,X+=G.value,q.push(G);let w=J+Q;if(X<w)continue;let L=X-w,O=o*Rn({address:T,value:0});if(L>O){let N=O+J,z=X-(Q+Math.ceil(N));if(z>Math.max(of({value:0})*o,kn(f)))return{fee:Math.ceil(N),inputs:q,outputs:n.concat({address:T,value:z})}}return{fee:Math.ceil(J),inputs:q,outputs:n}}return{fee:Math.ceil(o*Bf({inputs:y,outputs:n}))}}var sH=P(()=>{Vo()});var jf=P(()=>{mH();rH();sH();Vo()});import{Address as pA,ZCASH_NETWORK as tA}from"@swapkit/utxo-signer";function Nf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Cf(y){let n=Nf(y);return to(n)&&Eo(n)==="mainnet"}function Kf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=pA(tA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var Sn=P(()=>{jf()});import{secp256k1 as EA}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as n5}from"@scure/bip32";import{mnemonicToSeedSync as vo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as eH,Chain as fy,derivationPathToString as xn,FeeOption as Vy,NetworkDerivationPath as T5,SwapKitError as g,SwapKitNumber as VA,updateDerivationPath as bA,warnOnce as vA}from"@swapkit/helpers";import{Address as uA,BCHSigHash as uo,CashAddrPrefix as jA,CashAddrType as KA,encodeCashAddr as hA,NETWORKS as hf,p2pkh as y5,p2wpkh as mA,RBF_SEQUENCE as cA,SigHash as o5,Transaction as bo,WIF as C5}from"@swapkit/utxo-signer";import{match as H5}from"ts-pattern";function jo({address:y,chain:n}){return H5(n).with(fy.BitcoinCash,()=>Cf(y)).with(fy.Zcash,()=>Kf(y)).otherwise(()=>{try{return uA(Gy(n)).decode(y),!0}catch{return!1}})}function Gy(y){return H5(y).with(fy.Bitcoin,()=>hf.bitcoin).with(fy.BitcoinCash,()=>hf.bitcoinCash).with(fy.Dash,()=>hf.dash).with(fy.Dogecoin,()=>hf.dogecoin).with(fy.Litecoin,()=>hf.litecoin).with(fy.Zcash,()=>hf.zcash).exhaustive()}function gA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??vo(y),H=n5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function f5(y){return EA.getPublicKey(y,!0)}function ln({publicKey:y,chain:n,network:o}){if(n===fy.BitcoinCash){let C=y5(y,o);if(!C.hash)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return hA({hash:C.hash,prefix:jA.MAINNET,type:KA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!Fn.includes(n)?mA(y,o):y5(y,o);if(!T.address)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function mf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Gy(o);if(f){let A=C5(C).decode(f),Q=f5(A);return{privateKey:A,publicKey:Q}}if(!y)throw new g("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||xn(T5[o]),U=gA({derivationPath:H,network:C,phrase:y,seed:T}),_=f5(U);return{privateKey:U,publicKey:_}}function iA(y,n){return C5(Gy(n)).encode(y)}function dA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new g("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Gy(o),H=f??vo(y),U=n5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function Hf({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Gy(o),_=!Fn.includes(o),A=H?cA:void 0,Q=new Set;for(let J of y){let X=`${J.hash}:${J.index}`;if(Q.has(X))throw new g("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Q.add(X);let q=typeof J.hash==="string"?Of.decode(J.hash):J.hash;if(_&&J.witnessUtxo)f.addInput({index:J.index,sequence:A,txid:q,witnessUtxo:{amount:BigInt(J.witnessUtxo.value),script:J.witnessUtxo.script}});else if(J.txHex)f.addInput({index:J.index,nonWitnessUtxo:Of.decode(J.txHex),sequence:A,txid:q,...o===fy.BitcoinCash?{sighashType:uo.ALL}:{}});else throw new g("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let J of n){let X="address"in J&&J.address?J.address:T;if(o===fy.BitcoinCash)X=iy(X);if(J.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(X,BigInt(J.value),U)}return{inputs:y,tx:f}}async function cf(y){let n=await yy(y).getSuggestedTxFee();return{[Vy.Average]:n,[Vy.Fast]:eH(n,Vy.Fast),[Vy.Fastest]:eH(n,Vy.Fastest)}}async function U5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await cf(C))[Vy.Fastest],U=T||Fn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await yy(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:My(o),value:0}]:[]]}}async function _5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?My(o):null,A=await U5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:Q,outputs:J}=xy({...A,chain:U,feeRate:f});if(!(Q&&J))throw new g("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let X=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:q,tx:G}=Hf({chain:U,compiledMemo:_,enableRBF:H,inputs:Q,outputs:J,sender:T,tx:X});return{inputs:q,tx:G,utxos:A.inputs}}async function A5({assetValue:y,feeOptionKey:n=Vy.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await U5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await cf(H))[n];return xy({...U,chain:H,feeRate:_})}function rA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=Vy.Fast,recipients:H=1}){let U=await yy(y).getAddressData(o),_=T?Math.ceil(T):(await cf(y))[C],A=U?.utxo.map((W)=>({...W,hash:"",type:"P2PKH"})).filter((W)=>W.value>Math.max(kn(y),of(W)*_));if(!A?.length)return mT.from({chain:y});let Q=BigInt(A.reduce((W,Y)=>W+Y.value,0)),J=mT.from({chain:y,value:Q}),X=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)X.push({address:o,script:My(f),value:0});let q=Bf({inputs:A,outputs:X}),G=mT.from({chain:y,value:BigInt(q*_)});return J.sub(G)}}function aA(y){return async function(o){let{fee:f}=await A5(o);return mT.from({chain:y,value:VA.fromBigInt(BigInt(f),8).getValue("string")})}}function sA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Gy(y),{privateKey:C,publicKey:H}=mf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===fy.BitcoinCash?[uo.ALL]:[o5.ALL];return{getAddress:()=>ln({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function eA(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new g("toolbox_utxo_no_signer");if(!T)throw new g("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});vA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Q=_&&cT.includes(y),J=H||(await cf(y))[C||Vy.Fast],{tx:X}=await _5({assetValue:U,enableRBF:Q,feeRate:J,memo:f,recipient:T,sender:A}),q=await n.signTransaction(X);return q.finalize(),yy(y).broadcastTx(Of.encode(q.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Gy(y);return function(f){if(!f)throw new g("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return ln({chain:y,network:n,publicKey:f.publicKey})}}function Uf({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?vo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:bA(T5[y],{index:f}),H=xn(C),U=o?sA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,Q=o?mf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function J(){if(A)return A.getAddress();return Promise.resolve(void 0)}function X(R){if(!o)return;let k=Tf({accountIndex:R,chain:y,derivationPath:C});return dA({chain:y,derivationPath:xn(k),phrase:o,seed:T})}let q=X();function G(){if(!q)return;return q.publicExtendedKey}function W({accountIndex:R}={}){let k=R===void 0?q:X(R);if(!k)return;let l=Tf({accountIndex:R,chain:y,derivationPath:C});return{accountIndex:Mf(l),path:xn(l),xpub:k.publicExtendedKey}}function Y({accountIndex:R,index:k,change:l=!1}){let B=R===void 0?q:X(R);if(!B)return;let x=bf({accountIndex:R,chain:y,change:l,derivationPath:C,index:k}),$=Gy(y),E=B.deriveChild(Number(l)).deriveChild(k);if(!E.publicKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let p=ln({chain:y,network:$,publicKey:E.publicKey}),b=Of.encode(E.publicKey);return{accountIndex:Mf(x),address:p,change:l,index:k,path:xn(x),pubkey:b}}async function w(R){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let k=await yy(y).getTransactionDetails(R);return{canReplace:k.isRBF&&!k.confirmed,confirmed:k.confirmed,enabled:k.isRBF,fee:k.fee,sequences:k.sequences,supported:!0}}async function L({txid:R,newFeeRate:k,recipient:l,memo:B}){if(!cT.includes(y))throw new g("toolbox_utxo_rbf_not_supported",{chain:y});let x=await yy(y).getTransactionDetails(R);if(!x.isRBF)throw new g("toolbox_utxo_tx_not_replaceable",{txid:R});if(x.confirmed)throw new g("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:R});let $=x.inputs.reduce((e,wy)=>e+wy.value,0),p=x.outputs.find((e)=>e.recipient===l)?.value||0;if(p===0)throw new g("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let b=await Promise.all(x.inputs.map(async(e)=>{let wy=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:wy,value:e.value,witnessUtxo:void 0}})),K=B?My(B):null,s=Bf({feeRate:k,inputs:b.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:l,value:p}]}),m=Math.ceil(s*k);if(m<=x.fee)throw new g("toolbox_utxo_rbf_fee_too_low",{newFee:m,originalFee:x.fee});let Ly=m-x.fee,oy=p-Ly;if(oy<=0)throw new g("toolbox_utxo_rbf_insufficient_change");let $y=new bo({allowLegacyWitnessUtxo:!0,version:1}),Iy=[{address:l,value:oy},...B?[{address:"",script:My(B),value:0}]:[]],Py=$-oy-m,Xy=await J();if(Py>kn(y)&&Xy)Iy.push({address:Xy,value:Py});return Hf({chain:y,compiledMemo:K,inputs:b,outputs:Iy,sender:Xy||l,tx:$y}),{feeDelta:Ly,newFee:m,originalFee:x.fee,tx:$y}}async function O({txid:R,newFeeRate:k,recipient:l,memo:B}){let{tx:x,originalFee:$,newFee:E}=await L({memo:B,newFeeRate:k,recipient:l,txid:R}),p=await D(x);p.finalize();let b=await yy(y).broadcastTx(Of.encode(p.extract()));return{newFee:E,originalFee:$,txid:b}}function N({accountIndex:R,index:k,change:l=!1}){Sy("index",k);let B=R===void 0?q:X(R);if(!B)return;return B.deriveChild(Number(l)).deriveChild(k).privateKey||void 0}function z({tx:R,inputDerivations:k}){if(!q)throw new g("toolbox_utxo_no_signer");let l=y===fy.BitcoinCash?[uo.ALL]:[o5.ALL];for(let B=0;B<k.length;B++){let x=k[B];if(!x)continue;let{derivationIndex:$,isChange:E}=x,p=N({change:E,index:$});if(!p)throw new g("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${B} at index ${$}`});R.signIdx(p,B,l)}return R}async function Z({utxos:R,recipient:k,assetValue:l,memo:B,feeRate:x,feeOptionKey:$,changeAddress:E}){if(!q)throw new g("toolbox_utxo_no_signer");let p=x||(await cf(y))[$||Vy.Fast],b=B?My(B):null,K=[{address:k,value:l.getBaseValue("number")}];if(b)K.push({address:"",script:b,value:0});let s=R.map(({hash:Xy,index:e,value:wy,txHex:$U,witnessUtxo:X0})=>({hash:Xy,index:e,txHex:$U,value:wy,witnessUtxo:X0?{script:X0.script,value:X0.value}:void 0})),{inputs:m,outputs:Ly}=xy({chain:y,feeRate:p,inputs:s,outputs:K});if(!(m&&Ly))throw new g("toolbox_utxo_insufficient_balance",{assetValue:l,sender:"multiple addresses"});let oy=new bo({allowLegacyWitnessUtxo:!0,version:1}),$y=R[0]?.address,Iy=E||await J()||$y||k;Hf({chain:y,compiledMemo:b,inputs:m,outputs:Ly,sender:Iy,tx:oy});let Py=m.map((Xy)=>{let e=R.find((wy)=>wy.hash===Xy.hash&&wy.index===Xy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return z({inputDerivations:Py,tx:oy}),oy.finalize(),yy(y).broadcastTx(Of.encode(oy.extract()))}function M({address:R,gapLimit:k=20}){if(!q)return;for(let l=0;l<k;l++){let B=Y({change:!1,index:l}),x=Y({change:!0,index:l}),$=B?.address===R?!1:x?.address===R;if(B?.address===R||x?.address===R)return{change:$,index:l}}return}function D(R){if(!A)throw new g("toolbox_utxo_no_signer");return A.signTransaction(R)}async function S(R){let k=await D(R);return k.finalize(),await yy(y).broadcastTx(Of.encode(k.extract()))}return{accumulative:xy,broadcastTx:(R)=>yy(y).broadcastTx(R),bumpFee:O,calculateTxSize:Bf,createKeysForPath:(R)=>mf({...R,chain:y}),createReplacementTransaction:L,createTransaction:_5,deriveAddressAtIndex:Y,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:rA(y),estimateTransactionFee:aA(y),getAddress:J,getAddressFromKeys:ho(y),getBalance:Qy(y),getExtendedPublicKey:G,getExtendedPublicKeyInfo:W,getFeeRates:()=>cf(y),getInputsOutputsFee:A5,getNetworkForChain:()=>Gy(y),getPrivateKeyFromMnemonic:(R)=>iA(mf({...R,chain:y}).privateKey,y),isRBFEnabled:w,keys:Q,resolveDerivationIndex:M,signAndBroadcastTransaction:S,signTransaction:D,signTransactionWithMultipleKeys:z,transfer:eA(y,A),transferFromMultipleAddresses:Z,validateAddress:Ko(y)}}var Fn,cT;var gf=P(()=>{uy();Nn();jf();Sn();Fn=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],cT=[fy.Bitcoin]});import{hex as q5}from"@scure/base";import{Chain as yq,derivationPathToString as fq,FeeOption as nq,NetworkDerivationPath as Tq,SwapKitError as dy,updateDerivationPath as oq}from"@swapkit/helpers";import{BCHSigHash as Cq,CashAddrPrefix as G5,CashAddrType as W5,encodeCashAddr as X5,NETWORKS as Hq,p2pkh as Q5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return Nf(wn(y))}function Uq(y){let n=Gy(by);function o(T){return T.sign(y.privateKey,[Cq.ALL]),T}function f(){let T=Q5(y.publicKey,n);if(!T.hash)throw new dy("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=X5({hash:T.hash,prefix:G5.MAINNET,type:W5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=fq("derivationPath"in y&&y.derivationPath?y.derivationPath:oq(Tq[by],{index:o})),T=n?mf({chain:by,derivationPath:f,phrase:n}):void 0,C=T?Uq(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...Q}=Uf({chain:by});function J(G,W=!0){return U(Nf(wn(G)))}function X(G){if(!C)throw new dy("toolbox_utxo_no_signer");return C.signTransaction(G)}async function q(G){let W=await X(G);return W.finalize(),await A(q5.encode(W.extract()))}return{...Q,broadcastTx:A,buildTx:Aq,createTransaction:J5,getAddress:H,getAddressFromKeys:qq,getBalance:J,getFeeRates:_,signAndBroadcastTransaction:q,signTransaction:X,stripPrefix:Nf,stripToCashAddress:$n,transfer:_q({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Cf}}async function J5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Cf(n))throw new dy("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?My(o):null,_=[],A=iy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:Q,outputs:J}=xy({chain:by,feeRate:f,inputs:H,outputs:_});if(!(Q&&J))throw new dy("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let X=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),q=iy(T),{inputs:G,tx:W}=Hf({chain:by,compiledMemo:U,inputs:Q,outputs:J.map((Y)=>("address"in Y)&&Y.address?{...Y,address:iy(Y.address)}:Y),sender:q,tx:X});return{inputs:G,tx:W,utxos:Q}}function _q({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=nq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new dy("toolbox_utxo_no_signer");if(!T)throw new dy("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:Q}=await J5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),J=await o.signTransaction(Q);return J.finalize(),y(q5.encode(J.extract()))}}async function Aq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Cf(C))throw new dy("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?My(o):null,Q=[];if(Q.push({address:iy(n),value:y.getBaseValue("number")}),A)Q.push({script:A,value:0});let{inputs:J,outputs:X}=xy({chain:by,feeRate:_,inputs:U,outputs:Q});if(!(J&&X))throw new dy("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let q=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:G,tx:W}=Hf({chain:by,compiledMemo:A,inputs:J,outputs:X,sender:iy(T),tx:q});return{inputs:G,tx:W,utxos:U}}function qq(y){let n=Hq.bitcoinCash,o=Q5(y.publicKey,n);if(!o.hash)throw new dy("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return X5({hash:o.hash,prefix:G5.MAINNET,type:W5.P2PKH}).replace(/^bitcoincash:/,"")}var by;var gT=P(()=>{jf();gf();Sn();by=yq.BitcoinCash});import{createBase58check as Gq,hex as Wq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Xq,FeeOption as Qq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Jq}from"@swapkit/helpers";import{Address as Lq,createZcashTransaction as Mq,OutScript as Yq,PCZT as Bq,utils as N5,WIF as zq,ZCASH_NETWORK as Nq,ZCASH_TEST_NETWORK as Oq,ZcashConsensusBranchId as wq,ZcashSigHash as L5,ZcashVersionGroupId as Dq}from"@swapkit/utxo-signer";import{match as Rq,P as co}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?Oq:Nq}function Sq(y){return kq.encode(y)}function xq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),Q=new Uint8Array(A.length+U.length);Q.set(A,0),Q.set(U,A.length);let J=Sq(Q);return{getAddress:()=>Promise.resolve(J),signTransaction:(X)=>{if(X instanceof Bq)return X.signAllInputs(C,H,L5.ALL),X.finalizeAllInputs(),Promise.resolve(X.extract());return X.signAllInputs(C,H,L5.ALL),Promise.resolve(X)}}}function Fq({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Lq(C).decode(f),_=Yq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Wq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function M5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?My(f):null,_=await yy(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:Q,outputs:J}=xy({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(Q&&J))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let X=Mq({consensusBranchId:wq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:Dq.SAPLING}),{tx:q,inputs:G}=Fq({compiledMemo:U,inputs:Q,outputs:J,sender:C,tx:X});return{inputs:G,outputs:J,tx:q}}function go(y){let n=Rq(y).with({signer:co.not(co.nullish)},({signer:_})=>_).with({phrase:co.string},({phrase:_,derivationPath:A,index:Q=0})=>{let J=A||Zq[iT.Zcash]||[44,133,0,0,0],X=Jq(J,{index:Q}),q=Xq(X);return xq({derivationPath:q,phrase:_})}).otherwise(()=>{return}),o=Uf({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:Q=Qq.Fast,...J}){let X=await n?.getAddress();if(!(n&&X))throw new In("toolbox_utxo_no_signer");let q=J.feeRate||(await o.getFeeRates())[Q],{tx:G}=await M5({...J,assetValue:A,feeRate:q,recipient:_,sender:X}),Y=(await n.signTransaction(G)).toHex();return o.broadcastTx(Y)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Q=B5(_),X=Y5.fromMasterSeed(Q).derive(A);if(!X.privateKey||!X.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:X.privateKey,publicKey:X.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let Q=H({derivationPath:A,phrase:_}),J=O5();return zq(J).encode(Q.privateKey)}return{...o,createKeysForPath:H,createTransaction:M5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:Kf}}var kq;var io=P(()=>{jf();gf();Sn();kq=Gq(N5.sha256)});import{hex as lq}from"@scure/base";import{HDKey as $q}from"@scure/bip32";import{derivationPathToString as Iq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Sy("count",o),o<1)throw RangeError("count must be at least 1");Sy("startIndex",f);let C=Gy(n),H=$q.fromExtendedKey(y,C.bip32),U=Tf({accountIndex:T,chain:n}),_=Mf(U),A=[];for(let Q of[!1,!0]){let J=H.deriveChild(Number(Q));for(let X=0;X<o;X++){let q=f+X,G=J.deriveChild(q);if(!G.publicKey)continue;let W=bf({accountIndex:T,chain:n,change:Q,index:q});A.push({accountIndex:_,address:ln({chain:n,network:C,publicKey:G.publicKey}),change:Q,index:q,path:Iq(W),pubkey:lq.encode(G.publicKey)})}}return A}var D5=P(()=>{Nn();gf()});import{Chain as df,SwapKitError as Pq}from"@swapkit/helpers";function pq(y,n){switch(y){case df.BitcoinCash:return mo(n||{});case df.Zcash:return go(n);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Uf({chain:y,...n});default:throw new Pq("toolbox_utxo_not_supported",{chain:y})}}var R5=P(()=>{gT();gf();io();Nn();D5();gT();Sn()});var ro={};ny(ro,{validateZcashAddress:()=>Kf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Cf,toLegacyAddress:()=>iy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>Nf,nonSegwitChains:()=>Fn,isValidAddress:()=>to,getUtxoToolbox:()=>pq,getUtxoNetwork:()=>JA,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>Tf,getUTXOAccountIndexFromPath:()=>Mf,getScriptTypeForAddress:()=>uf,getOutputSize:()=>Rn,getNetworkForChain:()=>Gy,getInputSize:()=>of,getDustThreshold:()=>kn,detectAddressNetwork:()=>Eo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>go,createUTXOToolbox:()=>Uf,createHDWalletHelpers:()=>bH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>My,calculateTxSize:()=>Bf,assertDerivationIndex:()=>Sy,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>Hf,accumulative:()=>xy,UtxoNetwork:()=>po,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>aH,MIN_TX_FEE:()=>lA,InputSizes:()=>uT});var ao=P(()=>{gf();Nn();jf();R5();gT();io()});import{KeyPairSigner as tq}from"@near-js/signers";import{derivationPathToString as Eq,SwapKitError as Vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function Pn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?Eq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return x5(C)}async function so(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return x5(o)}function x5(y){return new S5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new Vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var S5;var eo=P(()=>{S5=class S5 extends tq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function yC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function fC(y){return"contractId"in y&&"methodName"in y}function nC(y){return"actions"in y}function TC(y){return"newAccountId"in y}function oC(y){return"contractCode"in y}function CC(y){return"customEstimator"in y}function HC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(_y.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(_y.CONTRACT_CALL);break;case"createAccount":n+=Number(_y.ACCOUNT_CREATION);break;case"deployContract":n+=Number(_y.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(_y.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(_y.ACCESS_KEY_DELETION);break;case"stake":n+=Number(_y.STAKE);break;default:n+=Number(_y.CONTRACT_CALL)}return n.toString()}function UC(y){if(y==="ft_transfer"||y==="ft_transfer_call")return _y.TOKEN_TRANSFER;if(y==="storage_deposit")return _y.STORAGE_DEPOSIT;return _y.CONTRACT_CALL}function bq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function vq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var _y;var _C=P(()=>{_y={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 AC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as uq}from"@near-js/providers";import{AssetValue as qC,Chain as rf,getRPCUrl as F5,SwapKitError as Ay}from"@swapkit/helpers";import{match as l5,P as $5}from"ts-pattern";function jq(y){let n;async function o(){if(n)return n;return n=await l5(y).with({phrase:$5.string},async(B)=>{return await dT(B)}).with({signer:$5.any},({signer:B})=>B).otherwise(()=>{return}),n}async function f(){let B=await F5(rf.Near);return new uq({url:B})}async function T(B){let{Account:x}=await import("@near-js/accounts"),$=await f(),E=await o(),p=B||await C();return new x(p,$,E)}async function C(){let B=await o();if(!B)throw new Ay("toolbox_near_no_signer");return await B.getAddress()}async function H(B){return(await M({changeMethods:[],contractId:B.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:B.accountId})}async function U(B){let $=[await X({args:{account_id:B.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await X({args:{amount:B.assetValue.getBaseValue("string"),memo:B.memo||null,receiver_id:B.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return D({actions:$,receiverId:B.contractId})}async function _(B){if(!await o())throw new Ay("toolbox_near_no_signer");let{assetValue:$,recipient:E,memo:p}=B,b=await C();if(!$.isGasAsset&&$.address){if(!await H({accountId:E,contractId:$.address}))return U({assetValue:$,contractId:$.address,memo:p,recipient:E})}let K=await A({...B,sender:b});return L(K)}async function A({recipient:B,assetValue:x,memo:$,attachedDeposit:E,sender:p,functionCall:b}){let K=await f();if(!Pn(B))throw new Ay("toolbox_near_invalid_address",{recipient:B});if(!Pn(p))throw new Ay("toolbox_near_invalid_address",{sender:p});if(b)return J({...b,sender:p});if(!x.isGasAsset){let wy=x.address;if(!wy)throw new Ay("toolbox_near_missing_contract_address");return J({args:{amount:x.getBaseValue("string"),memo:$||null,receiver_id:B},attachedDeposit:E||"1",contractId:wy,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:s,nonce:m}=await rT(K,p),Ly=x.getBaseValue("bigint"),{actionCreators:oy,createTransaction:$y}=await import("@near-js/transactions"),{baseDecode:Iy}=await import("@near-js/utils"),Py=[oy.transfer(Ly)];if($&&E)Py.push(oy.functionCall("memo",{memo:$},BigInt("250000000000000"),BigInt(E)));let Xy=await K.block({finality:"final"}),e=Iy(Xy.header.hash);return $y(p,s,B,m+1,Py,e)}function Q(B){let x=B.encode();return Buffer.from(x).toString("base64")}async function J({args:B,attachedDeposit:x,contractId:$,gas:E,methodName:p,sender:b}){let K=await f(),{publicKey:s,nonce:m}=await rT(K,b),{createTransaction:Ly,actionCreators:oy}=await import("@near-js/transactions"),{baseDecode:$y}=await import("@near-js/utils"),Iy=await K.block({finality:"final"}),Py=$y(Iy.header.hash),Xy=[oy.functionCall(p,Buffer.from(JSON.stringify(B)),BigInt(E),BigInt(x))];return Ly(b,s,$,m+1,Xy,Py)}async function X(B){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(B.methodName,Buffer.from(JSON.stringify(B.args)),BigInt(B.gas),BigInt(B.attachedDeposit))}async function q(B){let x=await o();if(!x)throw new Ay("toolbox_near_no_signer");await G(B);let[$,E]=await x.signTransaction(B);return E}async function G(B){let x=B.publicKey;if(x.toString?.().startsWith("ed25519:")||x.toString?.().startsWith("secp256k1:"))return;let{KeyType:$,PublicKey:E}=await import("@near-js/crypto"),p=x.data||x.ed25519Key?.data,b=x.secp256k1Key?.data;if(p){B.publicKey=new E({data:Uint8Array.from(p),keyType:$.ED25519});return}if(b)B.publicKey=new E({data:Uint8Array.from(b),keyType:$.SECP256K1})}function W(B){if(typeof B==="string")return B;if(Array.isArray(B))return B.map(W).find(Boolean);if(!(B&&typeof B==="object"))return;let x=B;return x.transaction?.hash||x.transaction_outcome?.id}function Y(B){return B instanceof Error?B.message:String(B)}async function w(B){let $=await(await f()).sendTransaction(B),E=W($);if(!E)throw new Ay("toolbox_near_transfer_failed",{result:$});return E}async function L(B){let x=await o();if(!x)throw new Ay("toolbox_near_no_signer");let $;try{$=await q(B)}catch(E){let p;try{p=x.signAndSendTransaction?await x.signAndSendTransaction({actions:B.actions,receiverId:B.receiverId,signerId:B.signerId}):await x.signAndSendTransactions?.({transactions:[B]})}catch(K){throw new Ay({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:Y(E),signAndSendError:Y(K)}},K)}let b=W(p);if(b)return b;throw E}return w($)}async function O(B){let x=await o();if("assetValue"in B){let E=await N();try{let p=await F5(rf.Near),b=await fetch(p,{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:K}}=await b.json(),{execution:s,send_sir:m}=K.transaction_costs.action_receipt_creation_config,{execution:Ly,send_sir:oy}=K.transaction_costs.action_creation_config.transfer_cost,$y=BigInt(oy)+BigInt(Ly),Iy=BigInt(m)+BigInt(s),Xy=($y+Iy)*BigInt(E.toString());return qC.from({chain:rf.Near,value:Xy})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let b=BigInt("115123062500"),K=BigInt("108059500000"),m=(b+K)*BigInt(E.toString());return qC.from({chain:rf.Near,value:m})}}let $=x?await T():void 0;return S(B,$)}async function N(){let B=await f();try{return await B.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function z(B,x,$){if(!await o())throw new Ay("toolbox_near_no_signer");let p=await T(),{formatNearAmount:b}=await import("@near-js/utils"),{PublicKey:K}=await import("@near-js/crypto"),s=b($)||"0";return(await p.createAccount(B,K.fromString(x),BigInt(s))).transaction.hash}async function Z(B){let x=await o();try{if(!x)throw new Ay("toolbox_near_no_signer");let{actionCreators:$}=await import("@near-js/transactions"),{contractId:E,methodName:p,args:b,deposit:K}=B,s=await T(),m=await S({args:b||{},contractId:E,methodName:p}),Ly=$.functionCall(p,b||{},m.getBaseValue("bigint"),BigInt(K||"1"));return(await s.signAndSendTransaction({actions:[Ly],receiverId:E})).transaction_outcome.id}catch($){throw new Ay("toolbox_near_transfer_failed",{error:$})}}async function M(B){let x=await T();return AC({account:x,changeMethods:B.changeMethods,contractId:B.contractId,viewMethods:B.viewMethods})}async function D(B){if(!await o())throw new Ay("toolbox_near_no_signer");if(B.actions.length===0)throw new Ay("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:B.actions,receiverId:B.receiverId})).transaction.hash}async function S(B,x){let $=await l5(B).when(yC,()=>_y.SIMPLE_TRANSFER).when(fC,(p)=>UC(p.methodName)).when(nC,(p)=>HC(p.actions)).when(TC,()=>_y.ACCOUNT_CREATION).when(oC,()=>_y.CONTRACT_DEPLOYMENT).when(CC,(p)=>{if(!x)throw new Ay("toolbox_near_no_account");return p.customEstimator(x)}).otherwise(()=>{throw new Ay("toolbox_near_invalid_gas_params")}),E=BigInt($)*BigInt(1000000000000);return qC.from({chain:rf.Near,value:E})}function R(B,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),S(B,x)}async function k(){let B=await f();try{return(await B.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function l(){let B=await o();return B?(await B.getPublicKey()).toString():""}return{broadcastTransaction:w,callFunction:Z,createAction:X,createContract:M,createContractFunctionCall:J,createSubAccount:z,createTransaction:A,estimateGas:R,estimateGasLimit:S,estimateTransactionFee:O,executeBatchTransaction:D,getAddress:C,getBalance:Qy(rf.Near),getGasPrice:k,getNearProvider:f,getPublicKey:l,getSignerFromPhrase:dT,getSignerFromPrivateKey:so,serializeTransaction:Q,signAndBroadcastTransaction:L,signTransaction:q,transfer:_,validateAddress:Pn}}var GC=P(()=>{uy();eo();_C()});var I5=P(()=>{GC()});var WC={};ny(WC,{validateNearAddress:()=>Pn,tgasToGas:()=>bq,isSimpleTransfer:()=>yC,isCustomEstimator:()=>CC,isContractDeployment:()=>oC,isContractCall:()=>fC,isBatchTransaction:()=>nC,isAccountCreation:()=>TC,getNearToolbox:()=>jq,getNearSignerFromPrivateKey:()=>so,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>UC,gasToTGas:()=>vq,estimateBatchGas:()=>HC,createNearContract:()=>AC,GAS_COSTS:()=>_y});var XC=P(()=>{eo();_C();GC();I5()});var ZC={};ny(ZC,{validateRadixAddress:()=>p5,getRadixToolbox:()=>aq});import{GatewayApiClient as Kq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as hq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as QC,SKConfig as mq,SwapKitError as cq}from"@swapkit/helpers";function p5(y){return y.startsWith("account_rdx1")&&y.length===66}function gq({networkApi:y}){return async function(o){let f=await iq({address:o,networkApi:y}),T=await dq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:QC.Radix}),...T];return T}}async function iq({address:y,networkApi:n}){let o=!0,f,T=[],C=await rq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function dq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let Q=A.metadata?.items.find((X)=>X.key==="symbol"),J=Q?.value.typed.type==="String"?Q.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:J})}for(let A of C)if(A.aggregation_level==="Global"){let Q=_.get(A.resource_address)||{decimals:0,symbol:"?"},J=P5.from({asset:Q.symbol!==QC.Radix?`${QC.Radix}.${Q.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(J)}}return o}async function rq(y){return(await y.status.getCurrent()).ledger_state.state_version}function aq({dappConfig:y}={}){let n=y||mq.get("integrations").radix,o=hq({...n,networkId:n.network?.networkId||1}),f=Kq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:gq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new cq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p5}}var JC=()=>{};import{SwapKitError as sq}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function pn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new sq({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function eq(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return pn(y)}var sT=()=>{};import{RequestClient as yG,warnOnce as fG}from"@swapkit/helpers";async function nG(y,n){let o=af(y),f=eT.find((T)=>af(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await yG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){fG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function TG(y){return eT.filter((n)=>n.issuer===y)}function oG(y,n){let o=af(y);return eT.some((f)=>af(f.currency)===o&&f.issuer===n)}var eT;var t5=P(()=>{sT();eT=[{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 LC={};ny(LC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>af,isKnownToken:()=>oG,isHexCurrency:()=>aT,hexToCurrency:()=>eq,hashes:()=>GG,getXrplTokenInfo:()=>nG,getRippleToolbox:()=>qG,getKnownTokensByIssuer:()=>TG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>pn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as Fy,getChainConfig as E5,getRPCUrl as CG,SwapKitError as Wy}from"@swapkit/helpers";import{match as V5,P as b5}from"ts-pattern";import{Client as HG,isValidAddress as j5,Wallet as UG,xrpToDrops as _G}from"xrpl";import{hashes as GG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${Fy.Ripple}.${y}-${n}`}function AG(y){if(y.isGasAsset)return _G(y.getValue("string"));let n=K5(y.toString());if(!n)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function u5(y){let n=UG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function qG(y={}){let n=V5(y).with({phrase:b5.string},({phrase:L})=>u5(L)).with({signer:b5.any},({signer:L})=>L).otherwise(()=>{return}),o;async function f(){let L=await CG(Fy.Ripple);if(!L)throw new Wy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:Fy.Ripple}});let O=new HG(L);return await O.connect(),O}async function T(){if(o){let L=await o.catch(()=>null);if(L?.isConnected())return L}return o=f(),o}let C=()=>{if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(L)=>{let O=L||await C(),{baseDecimal:N}=E5(Fy.Ripple),z=await T();try{let[Z,M]=await Promise.all([z.request({account:O,command:"account_info"}),z.request({account:O,command:"account_lines"})]),D=Z.result.account_data.Balance,S=[y0.from({chain:Fy.Ripple,fromBaseDecimal:N,value:D})];for(let R of M.result.lines){let k=h5(R.currency,R.account);if(Number.parseFloat(R.balance)!==0)S.push(y0.from({asset:k,asyncTokenLookup:!1,value:R.balance}))}return S}catch(Z){if(Z.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[y0.from({chain:Fy.Ripple,value:0})];throw new Wy({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:Z}})}},U=async()=>{let{baseDecimal:L}=E5(Fy.Ripple),z=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:Fy.Ripple,fromBaseDecimal:L,value:z})};async function _(L){let O=L||await C(),N=await T();try{return(await N.request({account:O,command:"account_lines"})).result.lines.map((Z)=>({account:Z.account,authorized:Z.authorized??!1,balance:Z.balance,currency:Z.currency,freeze:Z.freeze??!1,freezePeer:Z.freeze_peer??!1,limit:Z.limit,limitPeer:Z.limit_peer,noRipple:Z.no_ripple??!1,noRipplePeer:Z.no_ripple_peer??!1,peerAuthorized:Z.peer_authorized??!1,qualityIn:Z.quality_in??0,qualityOut:Z.quality_out??0}))}catch(z){if(z.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[];throw new Wy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:z}})}}async function A({address:L,currency:O,issuer:N}){let z=await _(L),Z=pn(O);return z.some((M)=>{return pn(M.currency)===Z&&M.account===N})}async function Q({currency:L,issuer:O,limit:N,sender:z}){let Z=z||await C();if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let M=Number.parseFloat(N);if(Number.isNaN(M)||M<0)throw new Wy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let D=await T(),S={Account:Z,LimitAmount:{currency:L,issuer:O,value:N},TransactionType:"TrustSet"};return D.autofill(S)}async function J({assetValue:L,recipient:O,memo:N,sender:z,destinationTag:Z,extendBySeconds:M=150}){if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address"});let D=z||await C();if(L.chain!==Fy.Ripple)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:L.toString()}});let S=AG(L),R={Account:D,Amount:S,Destination:O,TransactionType:"Payment",...Z!==void 0&&{DestinationTag:Z}};if(N)R.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let l=await(await T()).autofill(R);if(l.LastLedgerSequence&&M>0)l.LastLedgerSequence+=Math.ceil(M/4);return l}function X(L){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(L)}async function q(L){let N=await(await T()).submitAndWait(L),{result:z}=N;if(z.validated)return z.hash;let Z=z.meta?.TransactionResult,M=V5(Z).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Fy.Ripple,...M?{reason:M}:{txResult:Z}}})}let G=async(L)=>{try{let O=await X(L);return q(O.tx_blob)}catch(O){if(O instanceof Wy)throw O;throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:Fy.Ripple,error:O}})}};async function W(L){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),N=await J({...L,sender:O}),z=await X(N);return q(z.tx_blob)}async function Y(L){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),N=await Q({...L,sender:O}),z=await X(N);return q(z.tx_blob)}function w(){let L=o;if(o=null,L)L.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:q,createSigner:u5,createTransaction:J,disconnect:w,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:Q,setTrustLineAndBroadcast:Y,signAndBroadcastTransaction:G,signTransaction:X,transfer:W,validateAddress:n0}}var v5,f0;var MC=P(()=>{sT();sT();t5();v5={ACCOUNT_NOT_FOUND:19},f0={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 WG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function YC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new sf("toolbox_tron_transaction_creation_failed")}function tn(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function JG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=YC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=YC(y,o);o=_,T0(n,C,{data:new Uint8Array(tn(U)),wireType:o0})}else if(H===C0){let[U,_]=YC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Q=y.slice(o,o+A);o+=A,T0(n,C,{data:Q,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new sf("toolbox_tron_transaction_creation_failed")}return n}function LG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(tn(A))),U===C0)n.push(new Uint8Array(tn(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let o=c5(y),f=JG(o);if(n.expiration!==void 0)f.set(XG,[{data:new Uint8Array(tn(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(QG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(ZG,[{data:new Uint8Array(tn(BigInt(n.fee_limit))),wireType:o0}]);let T=LG(f),C=m5(T),H=m5(WG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,XG=8,QG=10,ZG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as MG}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as YG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function ly(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return ef(U0.decode(y))}function zG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=MG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=ef(o.slice(1,33)),C=ef(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function yn({txID:y,raw_data_hex:n}){let o=ef(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function NG(y){return`000000000000000000000000${ef(zG(y))}`}function OG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=BG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function fn(y){return y.map(({type:n,value:o})=>n==="address"?NG(o):OG(BigInt(o))).join("")}function oU(y){return ef(new TextEncoder().encode(y))}var U0,yU=65,BG;var BC=P(()=>{U0=YG(s5),BG=2n**256n});import{Chain as wG,getRPCUrlSync as DG,SwapKitError as Yy,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return DG(wG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),FG);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function wf(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!ly(y))throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof Yy)throw n;throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await wf("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new Yy("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new Yy("toolbox_tron_transaction_creation_failed");return yn(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await wf("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new Yy("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new Yy("toolbox_tron_transaction_creation_failed");return yn(H.transaction),H.transaction}function WU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function lG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return wf("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function En(y){try{let{result:n,txid:o}=await wf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new Yy("toolbox_tron_token_transfer_failed");return o}catch(n){throw new Yy("toolbox_tron_broadcast_failed",{error:n})}}async function Vn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??RG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??kG,energyFee:y.getEnergyFee??SG,memoFee:y.getMemoFee??xG}}async function zC(y){try{let n=await wf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await wf("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function NC(y){try{let n=await lG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new Yy("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new Yy("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await WU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function XU({assetAddress:y,owner:n,spender:o}){let f=fn([{type:"address",value:n},{type:"address",value:o}]),C=(await WU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",RG=1000,kG=1e6,SG=420,xG=1e6,FG=30000;var QU=P(()=>{BC()});import{bytesToHex as $G}from"@noble/hashes/utils.js";import{HDKey as IG}from"@scure/bip32";import{mnemonicToSeedSync as PG}from"@scure/bip39";import{AssetValue as ry,BaseDecimal as A0,Chain as Oy,derivationPathToString as BU,getRPCUrl as pG,NetworkDerivationPath as zU,SwapKitError as qy,updateDerivationPath as NU,warnOnce as ZU}from"@swapkit/helpers";import{match as tG,P as OC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=IG.fromMasterSeed(PG(y)).derive(n);if(!o.privateKey)throw new qy("toolbox_tron_no_signer");return $G(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[Oy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function VG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{yn(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[Oy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=tG(y).with({phrase:OC.string},({phrase:Z})=>VG({derivationPath:o,phrase:Z})).with({signer:OC.not(OC.nullish)},({signer:Z})=>Z).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let Z=await C();if(!Z)throw new qy("toolbox_tron_no_signer");return Z.getAddress()}async function U(Z,M){let D=Z||LU,S=M??(await Vn()).energyFee,R=D*S,k=Math.ceil(R*1.5);return Math.min(Math.max(k,1e7),150000000)}async function _({contractAddress:Z,functionSelector:M,parameter:D,sender:S,memo:R,expiration:k,extraEnergy:l=0}){let B=await NC({contractAddress:Z,functionSelector:M,parameter:D,sender:S}),x=await U(B+l),$=await GU({contractAddress:Z,feeLimit:x,functionSelector:M,ownerAddress:S,parameter:D});return YU({expiration:k,feeLimit:x,memo:R,transaction:$})}async function A(Z){if(!ly(Z))return[ry.from({chain:Oy.Tron})];try{let M=await AU(Z);if(!M)return[ry.from({chain:Oy.Tron})];let D=[ry.from({chain:Oy.Tron,fromBaseDecimal:6,value:String(M.balance)})],S=M.trc20?.find((R)=>(DC in R));if(S){let R=S[DC];D.push(ry.from({asset:`TRON.USDT-${DC}`,fromBaseDecimal:6,value:R}))}return D}catch(M){return ZU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${M instanceof Error?M.message:M}`}),[ry.from({chain:Oy.Tron})]}}async function Q({recipient:Z,assetValue:M,memo:D,expiration:S}){if(!ly(Z))throw new qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");try{let k=await H(),l=await Y({assetValue:M,expiration:S,memo:D,recipient:Z,sender:k}),B=await R.signTransaction(l),x=await En(B);if(!x)throw new qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch(k){throw new qy("toolbox_tron_token_transfer_failed",{message:k instanceof Error?k.message:String(k)})}}function J({requiredBandwidth:Z,resources:M,feePerUnit:D}){let S=Math.max(0,M.free+M.total-M.used);return Z>S?(Z-S)*D:0}async function X({memo:Z,recipient:M,senderAddress:D}){let[S,R,k]=await Promise.all([Vn(),bn(M),zC(D)]),l=R?0:S.createAccountFee,B=J({feePerUnit:S.bandwidthFee,requiredBandwidth:JU,resources:k.bandwidth}),x=Z?S.memoFee:0;return ry.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:l+B+x})}async function q({assetValue:Z,memo:M,recipient:D,senderAddress:S}){let R=Z.address;if(!R)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let[k,l,B,x]=await Promise.all([Vn(),bn(D),zC(S),NC({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:fn([{type:"address",value:D},{type:"uint256",value:Z.getBaseValue("string")}]),sender:S})]),E=x+(l?0:wC),p=J({feePerUnit:k.bandwidthFee,requiredBandwidth:MU,resources:B.bandwidth}),b=Math.max(0,B.energy.total-B.energy.used),K=E>b?(E-b)*k.energyFee:0,s=M?k.memoFee:0;return ry.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:p+K+s})}async function G({assetValue:Z,memo:M,recipient:D}){let[S,R]=await Promise.all([Vn(),bn(D)]);if(Z.isGasAsset){let x=R?0:S.createAccountFee,$=M?S.memoFee:0;return ry.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+JU*S.bandwidthFee+$})}let l=await U(LU+(R?0:wC),S.energyFee),B=M?S.memoFee:0;return ry.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:l+MU*S.bandwidthFee+B})}async function W({assetValue:Z,memo:M,recipient:D,sender:S}){let R=await C();try{let k=S?S:R?await H():void 0;if(!k)return G({assetValue:Z,memo:M,recipient:D});return Z.isGasAsset?X({memo:M,recipient:D,senderAddress:k}):q({assetValue:Z,memo:M,recipient:D,senderAddress:k})}catch(k){throw ZU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${k instanceof Error?k.message:k}`}),new qy("toolbox_fee_estimation_failed",{chain:Oy.Tron,error:k})}}async function Y({recipient:Z,assetValue:M,memo:D,sender:S,expiration:R}){if(!ly(Z)||!ly(S))throw new qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(M.isGasAsset){let B=await qU({amount:M.getBaseValue("number"),from:S,to:Z});return YU({expiration:R,memo:D,transaction:B})}let k=M.address;if(!k)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:M.toString()});let l=await bn(Z);return _({contractAddress:k,expiration:R,extraEnergy:l?0:wC,functionSelector:"transfer(address,uint256)",memo:D,parameter:fn([{type:"address",value:Z},{type:"uint256",value:M.getBaseValue("string")}]),sender:S})}async function w(Z){yn(Z);let M=await C();if(!M)throw new qy("toolbox_tron_no_signer");return M.signTransaction(Z)}async function L(Z){let M=await w(Z);return En(M)}function O({assetAddress:Z,spenderAddress:M,from:D}){return XU({assetAddress:Z,owner:D,spender:M})}async function N({assetAddress:Z,spenderAddress:M,from:D,amount:S}){let R=await O({assetAddress:Z,from:D,spenderAddress:M});if(!S)return R>0n;return R>=BigInt(S)}async function z({assetAddress:Z,spenderAddress:M,amount:D,from:S}){if(!ly(Z)||!ly(M))throw new qy("toolbox_tron_approve_failed");let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");let k=S||await H(),l=D!==void 0?BigInt(D).toString():EG;try{let B=await _({contractAddress:Z,functionSelector:"approve(address,uint256)",parameter:fn([{type:"address",value:M},{type:"uint256",value:l}]),sender:k}),x=await R.signTransaction(B),$=await En(x);if(!$)throw new qy("toolbox_tron_approve_failed");return $}catch(B){if(B instanceof qy)throw B;throw new qy("toolbox_tron_approve_failed",{error:B})}}return{approve:z,broadcastTransaction:En,createTransaction:Y,estimateTransactionFee:W,getAddress:H,getApprovedAmount:O,getBalance:A,getRpcUrl:()=>pG(Oy.Tron),isApproved:N,signAndBroadcastTransaction:L,signTransaction:w,transfer:Q,validateAddress:ly}}var OU,JU=268,LU=65000,wC=25000,MU=345,DC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",EG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=P(()=>{r5();QU();BC();OU=ly});var RC={};ny(RC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var kC=P(()=>{kU()});import{AssetValue as vn,Chain as _f,derivationPathToString as bG,getChainConfig as vG,getRPCUrl as uG,NetworkDerivationPath as jG,SwapKitError as Af}from"@swapkit/helpers";import{match as KG,P as hG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return mG.test(y)}async function cG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function SU(y={}){let n,o=y.derivationPath||jG[_f.Stellar],f=bG(o.slice(0,3));async function T({phrase:W,path:Y}){let{HDKey:w}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:L}=await import("@scure/bip39"),{Keypair:O}=await import("@stellar/stellar-sdk"),N=L(W),Z=w.fromMasterSeed(N).derive(Y,!0);return O.fromRawEd25519Seed(Buffer.from(Z.privateKey))}async function C(){if(n)return n;let W=KG(y).with({phrase:hG.string},({phrase:Y})=>Y).otherwise(()=>{return});if(!W)throw new Af("toolbox_stellar_no_signer");return n=await T({path:f,phrase:W}),n}async function H(){let{Horizon:W}=await import("@stellar/stellar-sdk"),Y=await uG(_f.Stellar);return new W.Server(Y)}async function U(){try{return(await C()).publicKey()}catch{return""}}async function _(W){let Y=W||await U();if(!Y)throw new Af("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(Y)).balances.map((O)=>{if(O.asset_type==="native")return vn.from({chain:_f.Stellar,value:O.balance});let N="asset_code"in O?O.asset_code:"",z="asset_issuer"in O?O.asset_issuer:"";return vn.from({asset:`${_f.Stellar}.${N}-${z}`,asyncTokenLookup:!1,value:O.balance})})}catch{return[vn.from({chain:_f.Stellar,value:0})]}}async function A({recipient:W,assetValue:Y,memo:w,sender:L}){if(w){if(new TextEncoder().encode(w).length>28)throw new Af("helpers_invalid_memo_type")}if(!await cG(W))throw new Af("core_transaction_invalid_recipient_address");let N=L||await U();if(!N)throw new Af("toolbox_stellar_no_signer");let{Asset:z,Memo:Z,Networks:M,Operation:D,TransactionBuilder:S}=await import("@stellar/stellar-sdk"),R=await H(),k=await R.fetchBaseFee(),l=await R.loadAccount(N),B=new S(l,{fee:String(k),networkPassphrase:M.PUBLIC});if(Y.isGasAsset)try{await R.loadAccount(W),B.addOperation(D.payment({amount:Y.getValue("string"),asset:z.native(),destination:W}))}catch{B.addOperation(D.createAccount({destination:W,startingBalance:Y.getValue("string")}))}else B.addOperation(D.payment({amount:Y.getValue("string"),asset:new z(Y.symbol,Y.address),destination:W}));if(w)B.addMemo(Z.text(w));return B.setTimeout(30).build()}async function Q(W){let{TransactionBuilder:Y,Networks:w}=await import("@stellar/stellar-sdk"),L=await C(),O=Y.fromXDR(W.toXDR(),w.PUBLIC);return O.sign(L),O}async function J(W){try{let Y=await H(),{hash:w}=await Y.submitTransaction(W);return w}catch(Y){throw new Af("toolbox_stellar_broadcast_error",Y)}}async function X({recipient:W,assetValue:Y,memo:w}){let L=await C(),O=L.publicKey(),N=await A({assetValue:Y,memo:w,recipient:W,sender:O});N.sign(L);try{return(await(await H()).submitTransaction(N)).hash}catch(z){if(z instanceof Af)throw z;throw new Af("toolbox_stellar_transaction_failed",z)}}async function q(W){let Y=await Q(W);return J(Y)}async function G(){let{baseDecimal:W}=vG(_f.Stellar);try{let L=(await(await H()).feeStats()).fee_charged.p50;return vn.from({chain:_f.Stellar,fromBaseDecimal:W,value:L})}catch{return vn.from({chain:_f.Stellar,fromBaseDecimal:W,value:"100"})}}return{broadcastTransaction:J,createTransaction:A,estimateTransactionFee:G,getAddress:U,getBalance:_,signAndBroadcastTransaction:q,signTransaction:Q,transfer:X,validateAddress:q0}}var mG;var xU=P(()=>{mG=/^G[A-Z2-7]{55}$/});var G0={};ny(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>SU});var W0=P(()=>{xU()});import{AssetValue as gG,Chain as v,CosmosChains as SC,EVMChains as xC,FeeOption as iG,SwapKitError as dG,UTXOChains as lU}from"@swapkit/helpers";async function QQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),un)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),W1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (FT(),xT)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (tT(),pT)),{getUTXOAddressValidator:Q}=await Promise.resolve().then(() => (ao(),ro)),{validateNearAddress:J}=await Promise.resolve().then(() => (XC(),WC)),{validateRadixAddress:X}=await Promise.resolve().then(() => (JC(),ZC)),{validateRippleAddress:q}=await Promise.resolve().then(() => (MC(),LC)),{validateTronAddress:G}=await Promise.resolve().then(() => (kC(),RC)),{validateStellarAddress:W}=await Promise.resolve().then(() => (W0(),G0));return function({address:w,chain:L}){return y(L).with(...xC,()=>o(w)).with(...lU,(N)=>{return Q(N)(w)}).with(...SC,(N)=>{return T(N)(w)}).with(v.Aptos,()=>n(w)).with(v.Radix,()=>X(w)).with(v.HyperCore,()=>C(w)).with(v.Near,()=>J(w)).with(v.Ripple,()=>q(w)).with(v.Solana,()=>H(w)).with(v.Stellar,()=>W(w)).with(v.Starknet,()=>U(w)).with(v.Sui,()=>_(w)).with(v.Ton,()=>A(w)).with(v.Tron,()=>G(w)).with(v.Cardano,()=>f(w)).otherwise(()=>!1)}}function ZQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...xC,async(T)=>{let C=await FU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:iG.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(v.Bitcoin,v.BitcoinCash,v.Dogecoin,v.Dash,v.Litecoin,v.Solana,v.Ripple,v.Tron,v.Near,v.Cardano,v.HyperCore,async(T)=>{return(await FU(T)).estimateTransactionFee(o)}).with(v.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),un));return T().estimateTransactionFee(o)}).with(v.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (FT(),xT));return(await T()).estimateTransactionFee(o)}).with(v.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (W0(),G0));return T().estimateTransactionFee()}).with(v.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(v.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (tT(),pT));return T().estimateTransactionFee(o)}).with(...SC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>gG.from({chain:y}))}}async function FU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...xC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (V0(),A1));return await f(y,n)}).with(...lU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (ao(),ro));return f(y,n)}).with(...SC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(v.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),un));return f(n)}).with(v.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(v.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (JC(),ZC));return f(n)}).with(v.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (MC(),LC));return f(n)}).with(v.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(v.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (W0(),G0));return f(n)}).with(v.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (FT(),xT));return f(n)}).with(v.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(v.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (kC(),RC));return f(n)}).with(v.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (XC(),WC));return f(n)}).with(v.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(v.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (tT(),pT));return f(n)}).otherwise(()=>{throw new dG("toolbox_not_supported",{chain:y})})}export{FU as getToolbox,ZQ as getFeeEstimator,QQ as getAddressValidator};
1
+ var PU=Object.defineProperty;var pU=(y)=>y;function EU(y,n){this[y]=pU.bind(null,n)}var ny=(y,n)=>{for(var o in n)PU(y,o,{get:n[o],enumerable:!0,configurable:!0,set:EU.bind(n,o)})};var P=(y,n)=>()=>(y&&(n=y(y=0)),n);var $=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(n,o)=>(typeof require<"u"?require:n)[o]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as nn,Chain as uy,derivationPathToString as VU,getChainConfig as Q0,getRPCUrlSync as lC,NetworkDerivationPath as tU,SwapKitError as Cy}from"@swapkit/helpers";import{match as $C,P as J0}from"ts-pattern";function wf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let n=y.slice(2);if(n.length===0||n.length>64)return!1;return bU.test(n)}function IC({derivationPath:y,provider:n,...o}={}){let f,T=VU(y||tU[uy.Aptos],{allHardened:!0});async function C(){if(f)return f;return f=await $C(o).with({phrase:J0.string},async({phrase:M})=>{let{Ed25519Account:w}=await import("@aptos-labs/ts-sdk");return w.fromDerivationPath({mnemonic:M,path:T})}).with({signer:J0.any},({signer:M})=>M).otherwise(()=>{return}),f}async function H(){let{Aptos:M,AptosConfig:w}=await import("@aptos-labs/ts-sdk"),N=new w({fullnode:n||lC(uy.Aptos)});return new M(N)}async function U(){return(await C())?.accountAddress.toString()||""}async function _(M){let w=M||await U();if(!w)throw new Cy("toolbox_aptos_address_required");let{baseDecimal:N,chain:Q}=Q0(uy.Aptos);try{let O=await H(),B=await O.getAccountAPTAmount({accountAddress:w}),Y=[nn.from({chain:Q,fromBaseDecimal:N,value:B.toString()})],X=await O.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:w}}}});for(let Z of X){if(Z.asset_type===Af.COIN_TYPE||Number(Z.amount)<=0)continue;let D=Z.asset_type;if(D){let R=("metadata"in Z&&typeof Z.metadata==="object"&&Z.metadata!==null?Z.metadata:void 0)?.decimals??N;Y.push(nn.from({asset:`${uy.Aptos}.APT-${D}`,fromBaseDecimal:R,value:String(Z.amount)}))}}return Y}catch{return[nn.from({chain:Q})]}}async function A(M){if(!M){let{baseDecimal:X}=Q0(uy.Aptos),Z=n||lC(uy.Aptos),D=await fetch(`${Z}/estimate_gas_price`),{gas_estimate:k}=await D.json();return nn.from({chain:uy.Aptos,fromBaseDecimal:X,value:String(k)})}let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");let N=await J(M),Q=await H(),[O]=await Q.transaction.simulate.simple({signerPublicKey:w.publicKey,transaction:N});if(!O)throw new Cy("toolbox_aptos_transaction_creation_error");let B=BigInt(O.gas_used)*BigInt(O.gas_unit_price),{baseDecimal:Y}=Q0(uy.Aptos);return nn.from({chain:uy.Aptos,fromBaseDecimal:Y,value:B.toString()})}async function J({recipient:M,assetValue:w,maxGasAmount:N,sender:Q}){if(!wf(M))throw new Cy("core_transaction_invalid_recipient_address");let O=Q||await U();if(!O)throw new Cy("toolbox_aptos_no_sender");let{AccountAddress:B}=await import("@aptos-labs/ts-sdk"),Y=await H(),X=B.from(O);try{let Z=w.isGasAsset?Af.TRANSFER:Af.FUNGIBLE_STORE_TRANSFER,D=$C({address:w?.address,isGasAsset:w.isGasAsset}).with({isGasAsset:!0},()=>[B.from(M),w.getBaseValue("bigint")]).with({address:J0.string},({address:k})=>[B.from(k),B.from(M),w.getBaseValue("bigint")]).otherwise(()=>null);if(!D)throw new Cy("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:Z,functionArguments:D,typeArguments:w.isGasAsset?[]:[Af.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:X})}catch(Z){if(Z instanceof Cy)throw Z;throw new Cy("toolbox_aptos_transaction_creation_error",Z)}}async function L(M){let w=await C();if(!w)throw new Cy("toolbox_aptos_no_signer");return(await H()).transaction.sign({signer:w,transaction:M})}async function G({assetValue:M,maxGasAmount:w,recipient:N}){let Q=await C();if(!Q)throw new Cy("toolbox_aptos_no_signer");if(!wf(N))throw new Cy("core_transaction_invalid_recipient_address");try{let O=Q.accountAddress.toString(),B=await J({assetValue:M,maxGasAmount:w,recipient:N,sender:O});return(await(await H()).signAndSubmitTransaction({signer:Q,transaction:B})).hash}catch(O){if(O instanceof Cy)throw O;throw new Cy("toolbox_aptos_transaction_creation_error",O)}}async function q({senderAuthenticator:M,transaction:w}){try{return(await(await H()).transaction.submit.simple({senderAuthenticator:M,transaction:w})).hash}catch(N){throw new Cy("toolbox_aptos_broadcast_error",N)}}async function W(M){let w=await L(M);return q({senderAuthenticator:w,transaction:M})}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:A,getAddress:U,getBalance:_,signAndBroadcastTransaction:W,signTransaction:L,transfer:G,validateAddress:wf}}function PC({provider:y}){return async function({assetValue:o,recipient:f}){if(!wf(f))throw new Cy("core_transaction_invalid_recipient_address");let{AccountAddress:T}=await import("@aptos-labs/ts-sdk");if(o.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[T.from(f).toString(),o.getBaseValue("string")],function:Af.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let C=o.address;if(!C)throw new Cy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[C,T.from(f).toString(),o.getBaseValue("string")],function:Af.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Af.FUNGIBLE_ASSET_METADATA]})).hash}}var Af,bU;var pC=P(()=>{Af={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"},bU=/^[0-9a-fA-F]+$/});var un={};ny(un,{validateAptosAddress:()=>wf,getAptosToolbox:()=>IC,createAptosExtensionTransfer:()=>PC});var jn=P(()=>{pC()});import{AssetValue as EC,getChainConfig as vU}from"@swapkit/helpers";import{SwapKitApi as uU}from"@swapkit/helpers/api";function VC(){function y(){let n=Date.now(),o=Z0||n;return Z0=o,n>Z0?n:o+1}return jU+y().toString(36)}function Qy(y){return async function(o,f=!0){let T=await uU.getChainBalance({address:o,chain:y,scamFilter:f}),{baseDecimal:C}=vU(y),H=T.map(({identifier:_,value:A,decimal:J})=>{return new EC({decimal:J||C,identifier:_,value:A})});if(!H.some((_)=>_.isGasAsset))return[EC.from({chain:y}),...H];return H}}var jU,Z0=0;var jy=P(()=>{jU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function Tn(y){return{getBalance:Qy(y)}}function KU(y){return y}var Kn=P(()=>{jy()});import{Chain as i,getChainConfig as B0,getRPCUrl as hU,SwapKitError as hn}from"@swapkit/helpers";import{getAddress as bC,Interface as mU,JsonRpcProvider as cU}from"ethers";import{match as vC}from"ts-pattern";function uC(y){return new cU(y)}async function z0(y,n){return uC(n||await hU(y))}function on(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function N0(y){let{explorerUrl:n,chainIdHex:o,rpcUrls:f}=B0(y);return function(){return y!==i.Ethereum?{...gU({chain:y}),blockExplorerUrls:[n],chainId:o,rpcUrls:f}:void 0}}function O0(y){return![i.Adi,i.Arbitrum,i.BinanceSmartChain].includes(y)}function gU({chain:y}){let{name:n,nativeCurrency:o,baseDecimal:f}=B0(y);return vC(y).with(i.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(i.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(i.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(i.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(i.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(i.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:i.Polygon}})).otherwise(()=>({chainName:n,nativeCurrency:{decimals:f,name:o,symbol:o}}))}async function w0(y,n){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let o={...n,nonce:n.nonce!==void 0?BigInt(n.nonce):void 0};return await y.authorize(o)}function jC(y,n){let o=n!==void 0?`index ${n}: `:"",f=(T,C)=>{throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:T,message:`${o}${C}`}})};vC(y).when(({chainId:T})=>typeof T!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:T})=>!iU(T),()=>f("address","address must be a valid checksummed address")).when(({nonce:T})=>typeof T!=="bigint"||T<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:T})=>!T,()=>f("signature","signature is required")).when(({signature:T})=>typeof T?.yParity!=="number"||![0,1].includes(T.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:T})=>!tC(T?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:T})=>!tC(T?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function KC(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:n})=>y[n]!=null).map(({key:n,type:o})=>({name:n,type:o}))}function L0(y){return y.charAt(0).toUpperCase()+y.slice(1)}function M0(y,n){if(y.isTuple()&&y.components){let o=L0(y.name);return n[o]=y.components.map((f)=>({name:f.name,type:M0(f,n)})),o}if(y.isArray()){let o=y.arrayChildren;if(o?.isTuple()&&o.components){let f=L0(y.name.replace(/s$/,""));return n[f]=o.components.map((T)=>({name:T.name,type:M0(T,n)})),`${f}[]`}return`${o?.type??"bytes"}[]`}return y.type}function Y0(y,n){if(typeof y==="bigint")return y;if(n?.isTuple()&&typeof y?.toObject==="function"){let o=y.toObject(),f={};for(let[T,C]of(n.components??[]).entries())f[C.name]=Y0(o[C.name]??y[T],C);return f}if(Array.isArray(y)){let o=n?.arrayChildren;return y.map((f)=>Y0(f,o??void 0))}return y}function dU({chain:y,abi:n,data:o,to:f}){let C=new mU(n).parseTransaction({data:o});if(!C)throw new hn({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let H={},U=L0(C.name);H[U]=C.fragment.inputs.map((G)=>({name:G.name,type:M0(G,H)}));let _={};for(let[G,q]of C.fragment.inputs.entries())_[q.name]=Y0(C.args[G],q);let{chainId:A}=B0(y),J={chainId:Number(A),verifyingContract:bC(f)},L=KC(J);return{domain:J,message:_,primaryType:U,types:{EIP712Domain:L,...H}}}function D0(y,n){if(!Array.isArray(y)||y.length===0)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[o,f]of y.entries())if(jC(f,o),n!==void 0&&f.chainId!==n)throw new hn({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${o}: authorization chainId (${f.chainId}) does not match transaction chainId (${n})`}})}var tC=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),iU=(y)=>{try{return typeof y==="string"&&!!bC(y)}catch{return!1}};var Cn=()=>{};var hC;var mC=P(()=>{hC=[{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 rU,applyFeeMultiplierToBigInt as Jy,Chain as Dy,EVMChains as aU,FeeOption as j,isGasAsset as sU,SwapKitError as c,SwapKitNumber as mn}from"@swapkit/helpers";import{erc20ABI as Hn}from"@swapkit/helpers/contracts";import{BrowserProvider as eU,Contract as cC,getAddress as cn,Interface as gC}from"ethers";import{match as iC}from"ts-pattern";function Df({chain:y=Dy.Ethereum,provider:n,signer:o,isEIP1559Compatible:f=!0}){return{approve:o2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),approvedAmount:aC({chain:y,provider:n}),broadcastTransaction:n.broadcastTransaction,call:x0({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),createApprovalTx:_2({chain:y,provider:n,signer:o}),createContract:k0({chain:y,provider:n}),createContractTxObject:qf({chain:y,provider:n}),createTransaction:R0({chain:y,provider:n,signer:o}),createTransferTx:R0({chain:y,provider:n,signer:o}),EIP1193SendTransaction:kf(n),estimateCall:sC({provider:n,signer:o}),estimateGasLimit:H2({chain:y,provider:n,signer:o}),estimateGasPrices:Gf({chain:y,isEIP1559Compatible:f,provider:n}),estimateTransactionFee:A2({chain:y,isEIP1559Compatible:f,provider:n}),getAddress:()=>{return o?o.getAddress():void 0},getBalance:Tn(y).getBalance,getNetworkParams:N0(y),isApproved:T2({chain:y,provider:n}),sendTransaction:eC({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),signAuthorization:U2({signer:o}),signMessage:o?(T)=>o.signMessage(T):void 0,signTypedData:o?({domain:T,types:C,value:H})=>o.signTypedData(T,C,H):void 0,transfer:C2({chain:y,isEIP1559Compatible:f,provider:n,signer:o}),validateAddress:_n}}function _n(y){try{return cn(y),!0}catch{return!1}}function Rf(y){return y instanceof eU}function An(y,n,o){return new cC(y,gC.from(n),o)}function k0({provider:y}){return function(o,f){return new cC(o,gC.from(f),y)}}function S0({abi:y,funcName:n}){let o=y.find((f)=>f.name===n);if(!o)throw new c("toolbox_evm_no_abi_fragment",{funcName:n});return o.stateMutability&&y2.includes(o.stateMutability)}function dC(y){return cn(y)}function kf(y){return function({value:o,...f}){if(!Rf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:T,gasPrice:C,maxFeePerGas:H,maxPriorityFeePerGas:U,..._}=f;return y.send("eth_sendTransaction",[{..._,value:on(BigInt(o||0))}])}}function rC(y,n){let o=Sf(y,n);if(o)return cn(o.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Sf({chain:y,symbol:n,ticker:o},f){try{let T=y===Dy.BinanceSmartChain&&n==="BNB"&&o==="BNB",C=y===Dy.Hyperevm&&n==="HYPE"&&o==="HYPE",H=y===f&&n===f&&o===f,U=n2.includes(y)&&n==="ETH"&&o==="ETH";if(H||T||C||U)return F0[f];return cn(n.slice(o.length+1).replace(/^0X/,""))}catch{return null}}function qf({provider:y}){return async({contractAddress:n,abi:o,funcName:f,funcParams:T=[],txOverrides:C})=>An(n,o,y).getFunction(f).populateTransaction(...T.concat(C).filter((H)=>typeof H<"u"))}function Gf({chain:y,provider:n,isEIP1559Compatible:o=!0}){return iC(y).with(Dy.Gnosis,()=>{return async function(){try{let{gasPrice:T,maxPriorityFeePerGas:C}=await n.getFeeData();if(!T||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:Jy(T,j.Average),maxPriorityFeePerGas:Jy(C,j.Average)},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).with(Dy.Arbitrum,()=>{return async function(){try{let{gasPrice:T}=await n.getFeeData();if(!T)throw new c("toolbox_evm_no_fee_data");let C=T*12n/10n;return{[j.Average]:{gasPrice:C},[j.Fast]:{gasPrice:Jy(C,j.Fast)},[j.Fastest]:{gasPrice:Jy(C,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:T,maxPriorityFeePerGas:C,gasPrice:H}=await n.getFeeData();if(o){if(T===null||C===null)throw new c("toolbox_evm_no_fee_data");return{[j.Average]:{maxFeePerGas:T,maxPriorityFeePerGas:C},[j.Fast]:{maxFeePerGas:Jy(T,j.Fast),maxPriorityFeePerGas:Jy(C,j.Fast)},[j.Fastest]:{maxFeePerGas:Jy(T,j.Fastest),maxPriorityFeePerGas:Jy(C,j.Fastest)}}}if(!H)throw new c("toolbox_evm_no_gas_price");return{[j.Average]:{gasPrice:H},[j.Fast]:{gasPrice:Jy(H,j.Fast)},[j.Fastest]:{gasPrice:Jy(H,j.Fastest)}}}catch(T){throw new c("toolbox_evm_gas_estimation_error",{error:T.msg??T.toString()})}}})}function x0({provider:y,isEIP1559Compatible:n,signer:o,chain:f}){return async function({callProvider:C,contractAddress:H,abi:U,funcName:_,funcParams:A=[],txOverrides:J={},feeOption:L=j.Fast}){let G=C||y;if(!H)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let q=S0({abi:U,funcName:_});if(q&&Rf(G)&&o){let w=qf({chain:f,provider:G}),N=J?.from||await o?.getAddress(),Q=await w({abi:U,contractAddress:H,funcName:_,funcParams:A,txOverrides:{...J,from:N}});return kf(G)(Q)}let W=An(H,U,G);if(q){if(!o)throw new c("toolbox_evm_no_signer");let w=J?.from||await o.getAddress();if(!w)throw new c("toolbox_evm_no_signer_address");let N=W.connect(o),Q=Gf({chain:f,isEIP1559Compatible:n,provider:y}),{maxFeePerGas:O,maxPriorityFeePerGas:B,gasPrice:Y}=(await Q())[L],X=await W.getFunction(_).estimateGas(...A,J),Z=await N[_](...A,{...J,gasLimit:X,gasPrice:Y,maxFeePerGas:O,maxPriorityFeePerGas:B,nonce:J?.nonce||await G.getTransactionCount(w)});return typeof Z?.hash==="string"?Z?.hash:Z}let M=await W[_]?.(...A);return typeof M?.hash==="string"?M?.hash:M}}function aC({provider:y,chain:n}){return function({assetAddress:f,spenderAddress:T,from:C}){return x0({chain:n,isEIP1559Compatible:!0,provider:y})({abi:Hn,contractAddress:f,funcName:"allowance",funcParams:[C,T]})}}function T2({provider:y,chain:n}){return async function({assetAddress:f,spenderAddress:T,from:C,amount:H=Un}){let U=await aC({chain:n,provider:y})({assetAddress:f,from:C,spenderAddress:T});return mn.fromBigInt(U).gte(mn.fromBigInt(BigInt(H)))}}function o2({signer:y,isEIP1559Compatible:n=!0,provider:o,chain:f}){return async function({assetAddress:C,spenderAddress:H,feeOptionKey:U=j.Fast,amount:_,gasLimitFallback:A,from:J,nonce:L}){let G=[H,BigInt(_||Un)],q=await y?.getAddress()||J,W={abi:Hn,contractAddress:C,funcName:"approve",funcParams:G,signer:y,txOverrides:{from:q}};if(Rf(o)){let w=qf({chain:f,provider:o}),N=kf(o),Q=await w(W);return N(Q)}return x0({chain:f,isEIP1559Compatible:n,provider:o,signer:y})({...W,feeOption:U,funcParams:G,txOverrides:{from:q,gasLimit:A?BigInt(A.toString()):void 0,nonce:L}})}}function C2({signer:y,isEIP1559Compatible:n=!0,provider:o}){return async function({assetValue:T,memo:C,recipient:H,feeOptionKey:U=j.Fast,sender:_,...A}){let{hexlify:J,toUtf8Bytes:L}=await import("ethers"),G=T.getBaseValue("bigint"),q=T.chain,W=_||await y?.getAddress(),M=eC({chain:q,isEIP1559Compatible:n,provider:o,signer:y});if(!W)throw new c("toolbox_evm_no_from_address");if(T.isGasAsset){let Y={...A,data:J(L(C||"")),feeOptionKey:U,from:W,to:H,value:G};return M(Y)}if(!Sf(T,q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Q,gasPrice:O}=(await Gf({chain:q,isEIP1559Compatible:n,provider:o})())[U],B=await R0({chain:q,provider:o,signer:y})({assetValue:T,data:J(L(C||"")),gasPrice:O,maxFeePerGas:N,maxPriorityFeePerGas:Q,memo:C,recipient:H,sender:W});return M(B)}}function sC({provider:y,signer:n}){return function({contractAddress:f,abi:T,funcName:C,funcParams:H=[],txOverrides:U}){if(!f)throw new c("toolbox_evm_no_contract_address");let _=An(f,T,y);return n?_.connect(n).getFunction(C).estimateGas(...H,U):_.getFunction(C).estimateGas(...H,U)}}function H2({provider:y,signer:n}){return async function({assetValue:f,recipient:T,memo:C,data:H,sender:U,funcName:_,funcParams:A,txOverrides:J}){let L=f.bigIntValue,G=f.isGasAsset?null:Sf(f,f.chain);if(G&&_)return sC({provider:y,signer:n})({abi:Hn,contractAddress:G,funcName:_,funcParams:A,txOverrides:J});let{hexlify:q,toUtf8Bytes:W}=await import("ethers");return y.estimateGas({data:H?H:C?q(W(C)):void 0,from:U,to:T,value:L})}}function U2({signer:y}){if(!y)return;return(n)=>w0(y,n)}function eC({provider:y,signer:n,isEIP1559Compatible:o=!0,chain:f}){return async function({feeOptionKey:C=j.Fast,...H}){let{from:U,to:_,data:A,value:J,...L}=H;if(!n)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let G={...L,data:A||"0x",from:U,to:_,value:BigInt(J||0)};if(Rf(y))return kf(y)(G);let q=U||await n.getAddress(),W=H.nonce||await y.getTransactionCount(q),M=(await y.getNetwork()).chainId,w=$0(G,o);if(w==="eip7702")D0(G.authorizations||[],M);let N=iC(w).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Q={...G,chainId:M,nonce:W,type:N,...w==="eip7702"&&{authorizationList:G.authorizations}},O=Gf({chain:f,isEIP1559Compatible:o,provider:y}),Y=w!=="legacy"&&!(G.maxFeePerGas&&G.maxPriorityFeePerGas)||!G.gasPrice?Object.entries((await O())[C]).reduce((Z,[D,k])=>({...Z,[D]:on(BigInt(k))}),{}):{},X;try{X=on(G.gasLimit||await y.estimateGas(Q)*11n/10n)}catch(Z){throw new c("toolbox_evm_error_estimating_gas_limit",{error:Z})}try{let Z={...Q,gasLimit:X,...Y};try{return(await n.sendTransaction(Z)).hash}catch{let D=await n.signTransaction({...Z,from:q});return(await y.broadcastTransaction(D)).hash}}catch(Z){throw new c("toolbox_evm_error_sending_transaction",{error:Z})}}}function R0({provider:y,signer:n}){return async function({assetValue:f,memo:T,recipient:C,data:H,sender:U,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:J,...L}){let G=f.getBaseValue("bigint"),q=f.chain,W=U||await n?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(sU(f)){let{hexlify:N,toUtf8Bytes:Q}=await import("ethers");return{...L,data:H||N(Q(T||"")),from:W,to:C,value:G}}let M=Sf(f,q);if(!M)throw new c("toolbox_evm_no_contract_address");return qf({chain:f.chain,provider:y})({abi:Hn,contractAddress:M,funcName:"transfer",funcParams:[C,G],txOverrides:{from:W,gasPrice:J,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function _2({provider:y,signer:n,chain:o}){return async function({assetAddress:T,spenderAddress:C,amount:H,from:U}){let _=await n?.getAddress()||U,A=qf({chain:o,provider:y}),J=["bigint","number"].includes(typeof H)?H:H||Un;return await A({abi:Hn,contractAddress:T,funcName:"approve",funcParams:[C,BigInt(J)],txOverrides:{from:_}})}}function A2({provider:y,isEIP1559Compatible:n=!0,chain:o}){return async function({feeOption:T=j.Fast,...C}){let U=await Gf({chain:o,isEIP1559Compatible:n,provider:y})(),_=await y.estimateGas(C),A=rU.from({chain:o}),{gasPrice:J,maxFeePerGas:L,maxPriorityFeePerGas:G}=U[T];if(!n&&J)return A.set(mn.fromBigInt(J*_,A.decimal));if(L&&G){let q=(L+G)*_;return A.set(mn.fromBigInt(q,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var Un,y2,f2,F0,n2,gn=(y)=>y.type===4||(y.authorizations?.length??0)>0,l0=(y)=>!gn(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),$0=(y,n=!0)=>{if(gn(y))return"eip7702";if(l0(y)||n)return"eip1559";return"legacy"};var dn=P(()=>{Kn();Cn();Un=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");y2=["payable","nonpayable"];f2=aU.reduce((y,n)=>{return y[n]="0x0000000000000000000000000000000000000000",y},{}),F0={...f2,[Dy.Optimism]:"0x4200000000000000000000000000000000000042",[Dy.Polygon]:"0x0000000000000000000000000000000000001010"},n2=[Dy.Arbitrum,Dy.Aurora,Dy.Base,Dy.Optimism]});import{Chain as r,FeeOption as q2}from"@swapkit/helpers";import{HDNodeWallet as G2}from"ethers";import{match as W2,P as y1}from"ts-pattern";function rn(y){let n=a(r.Ethereum)(y);async function o(f,T="0x5ba1e12693dc8f9c48aad8770482f4739beed696",C="aggregate",H=q2.Fast){let U=await n.createContractTxObject({abi:hC,contractAddress:T,funcName:C,funcParams:[f]});return n.sendTransaction({...U,feeOptionKey:H})}return{...n,multicall:o}}function a(y){return function({provider:o,...f}){let T=O0(y),C=W2(f).with({phrase:y1.string},({phrase:U})=>G2.fromPhrase(U).connect(o)).with({signer:y1.any},({signer:U})=>U).otherwise(()=>{return});return Df({chain:y,isEIP1559Compatible:T,provider:o,signer:C})}}var an,sn,en,yT,fT,nT,TT,f1,oT,CT,HT,UT,_T,AT,qn,qT,GT,WT,XT;var I0=P(()=>{mC();Cn();dn();an=a(r.Adi),sn=a(r.Arbitrum),en=a(r.Aurora),yT=a(r.Avalanche),fT=a(r.Base),nT=a(r.Berachain),TT=a(r.BinanceSmartChain),f1=a(r.Botanix),oT=a(r.Core),CT=a(r.Corn),HT=a(r.Cronos),UT=a(r.Gnosis),_T=a(r.Hyperevm),AT=a(r.Polygon),qn=a(r.Sonic),qT=a(r.Unichain),GT=a(r.XLayer),WT=a(r.Monad),XT=a(r.MegaETH)});var n1;var T1=P(()=>{n1=[{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 Ff,Chain as Q2,FeeOption as Ky,SwapKitError as P0}from"@swapkit/helpers";import{Contract as J2,HDNodeWallet as Z2}from"ethers";import{match as L2,P as o1}from"ts-pattern";function p0(y){return new J2(M2,n1,y)}function C1(y){return async function(){let o=p0(y);if(o&&"l1BaseFee"in o)return await o?.l1BaseFee();return}}function H1(y){return async function({from:o,to:f,nonce:T,...C}){let{Transaction:H}=await import("ethers");if(!f)throw new P0("toolbox_evm_invalid_transaction",{error:"Missing to address"});return H.from({...C,authorizationList:C.authorizationList,nonce:T?T:o?await y.getTransactionCount(o):0,to:f}).serialized}}function U1(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1Fee"in f)return f.getL1Fee(T)}}function _1(y){return async function(o){let T=(await y.getFeeData()).gasPrice??0n,C=await y.estimateGas(o);return T*C}}function Y2(y){return async function(o){let f=await U1(y)(o)??0n,T=await _1(y)(o);return f+T}}function B2(y){return async function(o){let f=p0(y),T=await H1(y)(o);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(T)}}function z2(y){return async function(){try{let{maxFeePerGas:o,maxPriorityFeePerGas:f,gasPrice:T}=await y.getFeeData(),C=await C1(y)(),H=T;if(!(o&&f))throw new P0("toolbox_evm_no_fee_data");return{[Ky.Average]:{gasPrice:H,l1GasPrice:C,maxFeePerGas:o,maxPriorityFeePerGas:f},[Ky.Fast]:{gasPrice:Ff(H,Ky.Fast),l1GasPrice:Ff(C||0n,Ky.Fast),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fast)},[Ky.Fastest]:{gasPrice:Ff(H,Ky.Fastest),l1GasPrice:Ff(C||0n,Ky.Fastest),maxFeePerGas:o,maxPriorityFeePerGas:Ff(f,Ky.Fastest)}}}catch(o){throw new P0("toolbox_evm_gas_estimation_error",{error:o.msg??o.toString()})}}}function QT({provider:y,...n}){let o=L2(n).with({phrase:o1.string},({phrase:C})=>Z2.fromPhrase(C).connect(y)).with({signer:o1.any},({signer:C})=>C).otherwise(()=>{return}),f=Df({provider:y,signer:o}),T=C1(y);return{...f,estimateGasPrices:z2(y),estimateL1Gas:B2(y),estimateL1GasCost:U1(y),estimateL2GasCost:_1(y),estimateTotalGasCost:Y2(y),getBalance:Tn(Q2.Optimism).getBalance,getL1GasPrice:T}}var M2="0x420000000000000000000000000000000000000f";var E0=P(()=>{Kn();T1();dn()});var q1={};ny(q1,{validateEVMAddress:()=>_n,toChecksumAddress:()=>dC,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createContract:()=>An,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,ETHToolbox:()=>rn,ContractAddress:()=>F0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});import{Chain as d}from"@swapkit/helpers";import{match as N2}from"ts-pattern";function V0(y,n){return N2(y).with(d.Adi,()=>an(n)).with(d.Arbitrum,()=>sn(n)).with(d.Aurora,()=>en(n)).with(d.Avalanche,()=>yT(n)).with(d.Base,()=>fT(n)).with(d.Berachain,()=>nT(n)).with(d.BinanceSmartChain,()=>TT(n)).with(d.Botanix,()=>qn(n)).with(d.Core,()=>oT(n)).with(d.Corn,()=>CT(n)).with(d.Cronos,()=>HT(n)).with(d.Ethereum,()=>rn(n)).with(d.Gnosis,()=>UT(n)).with(d.Hyperevm,()=>_T(n)).with(d.Optimism,()=>QT(n)).with(d.Polygon,()=>AT(n)).with(d.Sonic,()=>qn(n)).with(d.Unichain,()=>qT(n)).with(d.XLayer,()=>GT(n)).with(d.Monad,()=>WT(n)).with(d.MegaETH,()=>XT(n)).exhaustive()}async function A1(y,n){let o={...n,provider:n?.provider||await z0(y)};return V0(y,o)}var t0=P(()=>{Cn();I0();E0();dn();I0();E0()});var G1;var W1=P(()=>{((o)=>{o.Test="goerli";o.Main="homestead"})(G1||={})});var X1={};ny(X1,{validateEVMAddress:()=>_n,validateAuthorizations:()=>D0,validateAuthorization:()=>jC,toHexString:()=>on,toChecksumAddress:()=>dC,signAuthorization:()=>w0,parseEIP712FromEVMTx:()=>dU,isStateChangingCall:()=>S0,isEIP7702Transaction:()=>gn,isEIP1559Transaction:()=>l0,isBrowserProvider:()=>Rf,getTokenAddress:()=>Sf,getProviderSync:()=>uC,getProvider:()=>z0,getNetworkParams:()=>N0,getIsEIP1559Compatible:()=>O0,getEvmToolboxAsync:()=>A1,getEvmToolbox:()=>V0,getEvmApi:()=>Tn,getEstimateGasPrices:()=>Gf,getEVMTxType:()=>$0,getEIP1193SendTransaction:()=>kf,getCreateContractTxObject:()=>qf,getCreateContract:()=>k0,getChecksumAddressFromAsset:()=>rC,createCustomEvmApi:()=>KU,createContract:()=>An,buildEIP712DomainType:()=>KC,XLayerToolbox:()=>GT,UNIToolbox:()=>qT,SONICToolbox:()=>qn,OPToolbox:()=>QT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>XT,MAX_APPROVAL:()=>Un,MATICToolbox:()=>AT,HYPEREVMToolbox:()=>_T,GNOToolbox:()=>UT,EthNetwork:()=>G1,ETHToolbox:()=>rn,ContractAddress:()=>F0,CROToolbox:()=>HT,CORNToolbox:()=>CT,COREToolbox:()=>oT,BotanixToolbox:()=>f1,BaseEVMToolbox:()=>Df,BSCToolbox:()=>TT,BERAToolbox:()=>nT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>en,ARBToolbox:()=>sn,ADIToolbox:()=>an});var b0=P(()=>{Kn();Cn();t0();W1()});import{bech32 as O2}from"@scure/base";import{mnemonicToSeed as w2}from"@scure/bip39";import{Bip32PrivateKey as D2}from"@stricahq/bip32ed25519";import{Transaction as R2,types as j0,address as k2,crypto as v0,utils as Q1}from"@stricahq/typhonjs";import{AssetValue as xf,Chain as Wf,getChainConfig as S2,SwapKitError as Gn}from"@swapkit/helpers";import By from"bignumber.js";async function K0(y,n){let o=await fetch(`${M1}${y}`,{...n,headers:{project_id:L1,...n?.headers}});if(!o.ok)throw Error(`Blockfrost API error: ${o.status} ${o.statusText}`);return o.json()}async function Y1(y){try{return await K0(`/addresses/${y}/utxos`)}catch{return[]}}async function x2(){return(await K0("/blocks/latest")).slot}async function l2(){let y=await K0("/epochs/latest/parameters"),n={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new By(y.collateral_percent),languageView:n,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new By(y.min_fee_a),minFeeB:new By(y.min_fee_b),minFeeRefScriptCostPerByte:new By(15),priceMem:new By(y.price_mem),priceSteps:new By(y.price_step),stakeKeyDeposit:new By(2000000),utxoCostPerByte:new By(y.coins_per_utxo_size)}}async function Z1(y){let n=await fetch(`${M1}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:L1},method:"POST"});if(!n.ok){let o=await n.text();throw Error(`Transaction submission failed: ${o}`)}return n.json()}function $2(y,n){return y.map((o)=>{let f=o.amount.find((H)=>H.unit==="lovelace"),T=f?new By(f.quantity):new By(0),C=o.amount.filter((H)=>H.unit!=="lovelace").map((H)=>({amount:new By(H.quantity),assetName:H.unit.slice(56),policyId:H.unit.slice(0,56)}));return{address:n,amount:T,index:o.output_index,tokens:C,txId:o.tx_hash}})}async function I2(y){try{let n=await Y1(y),o=0n,f=new Map;for(let H of n){if(!H.amount||!Array.isArray(H.amount))continue;for(let U of H.amount){let{unit:_,quantity:A}=U;if(_==="lovelace")o+=BigInt(A);else{let J=f.get(_)||0n;f.set(_,J+BigInt(A))}}}let T=[],{baseDecimal:C}=S2(Wf.Cardano);if(o>0n)T.push(xf.from({chain:Wf.Cardano,fromBaseDecimal:C,value:o.toString()}));for(let[H,U]of f)T.push(xf.from({asset:`${Wf.Cardano}.${H}`,value:U.toString()}));if(T.length===0)return[xf.from({chain:Wf.Cardano})];return T}catch(n){let o=n instanceof Error?n.message:String(n);return console.error(`Cardano balance fetch error: ${o}`),[xf.from({chain:Wf.Cardano})]}}function B1(y){if(!y||typeof y!=="string")return!1;try{let n=O2.decode(y,120);return n.prefix==="addr"||n.prefix==="addr_test"}catch{return!1}}async function P2(y,n=0,o=0){let f=await w2(y,""),C=(await D2.fromEntropy(Buffer.from(f.slice(0,64)))).derive(u0+1852).derive(u0+1815).derive(u0+n),H=C.derive(0).derive(o),U=H.toBip32PublicKey().toPublicKey().toBytes(),_=v0.hash28(U),J=C.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),L=v0.hash28(J),G={hash:_,type:j0.HashType.ADDRESS},q={hash:L,type:j0.HashType.ADDRESS},M=new k2.BaseAddress(F2,G,q).getBech32(),w=H.toPrivateKey();return{getAddress:()=>M,publicKey:U,publicKeyHash:_,signTransaction:async(N)=>{try{let Q=await import("@stricahq/cbors"),O=Buffer.from(N,"hex"),B=Q.Decoder.decode(O),[Y,X,Z,D]=B.value,k=Q.Encoder.encode(Y),R=v0.hash32(k),S=w.sign(R),x=X instanceof Map?X:new Map,z=x.get(J1)||[];z.push([U,S]),x.set(J1,z);let F=[Y,x,Z,D];return Q.Encoder.encode(F).toString("hex")}catch(Q){throw new Gn("toolbox_cardano_sign_transaction_failed",{message:String(Q)})}}}}function p2(y){let n,o,f;async function T(){if(!f)f=await l2();return f}async function C(){if(n!==void 0)return n;if(y&&"phrase"in y&&y.phrase){let q=y.index??0;return n=await P2(y.phrase,0,q),n}if(y&&"signer"in y&&y.signer)return n=y.signer,n;return}async function H(){if(o)return o;let q=await C();if(!q)return"";if("getAddress"in q)return o=await q.getAddress(),o;return""}async function U(q){let W=q||await H();if(!W)throw new Gn("core_wallet_connection_not_found");return I2(W)}async function _(q){if(q)try{let{tx:N}=await A(q),Q=N.getFee();return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:Q.toString()})}catch{}let W=await T(),M=400,w=W.minFeeB.plus(W.minFeeA.times(M));return xf.from({chain:Wf.Cardano,fromBaseDecimal:6,value:w.toString()})}async function A({sender:q="",recipient:W,assetValue:M,memo:w,pureLovelaceOnly:N=!1}){let Q=q||await H();if(!Q)throw new Gn("core_wallet_connection_not_found");let[O,B,Y]=await Promise.all([Y1(Q),x2(),T()]),X=O.filter((p)=>N?p.amount.every((b)=>b.unit==="lovelace"):p.amount.some((b)=>b.unit==="lovelace")).sort((p,b)=>{let K=p.amount.some((m)=>m.unit!=="lovelace"),s=b.amount.some((m)=>m.unit!=="lovelace");if(K===s)return 0;return K?1:-1}),Z=Q1.getAddressFromString(Q),D=Q1.getAddressFromString(W),k=$2(X,Z),R=new By(M.getBaseValue("string")),S=[{address:D,amount:R,tokens:[]}],x;if(w){let p=new Map;p.set("msg",[w]),x={metadata:[{data:p,label:674}]}}let z={...Y,minFeeB:Y.minFeeB.plus(Y.minFeeA.times(4))},l=new R2({protocolParams:z}).paymentTransaction({auxiliaryData:x,changeAddress:Z,inputs:k,outputs:S,ttl:B+3600}),{payload:V}=l.buildTransaction();return{tx:l,unsignedTx:V}}async function J(q){let W=await C();if(!W||!("signTransaction"in W))throw new Gn("core_wallet_connection_not_found");return W.signTransaction(q)}async function L({recipient:q,assetValue:W,memo:M}){let w=await C();if(!w||!("signTransaction"in w))throw new Gn("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:W,memo:M,recipient:q,sender:await H()}),Q=await J(N);return await Z1(Q)}async function G(q){let W=await J(q);return await Z1(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:H,getBalance:U,signAndBroadcastTransaction:G,signTransaction:J,transfer:L,validateAddress:B1}}var L1="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",M1="https://cardano-mainnet.blockfrost.io/api/v0",F2,u0=2147483648,J1=0;var z1=P(()=>{F2=j0.NetworkId.MAINNET});var h0={};ny(h0,{validateCardanoAddress:()=>B1,getCardanoToolbox:()=>p2});var m0=P(()=>{z1()});import{base64 as ZT,bech32 as JT}from"@scure/base";import{SwapKitError as E2}from"@swapkit/helpers";function Wn(y){return ZT.encode(Uint8Array.from(JT.fromWords(JT.decode(y).words)))}function Xn(y,n="thor"){return JT.encode(n,JT.toWords(ZT.decode(y)))}function V2(y){return ZT.encode(y)}function t2(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new E2("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return ZT.decode(y)}var c0=()=>{};import{AssetValue as g0,Chain as u,getChainConfig as py,getRPCUrl as b2,SwapKitError as N1}from"@swapkit/helpers";function hy(y){switch(y){case u.Maya:return{amount:[],gas:"10000000000"};case u.THORChain:return{amount:[],gas:"500000000"};case u.Kujira:return D1;case u.Noble:return R1;default:return w1}}async function my(y){let n=await import("@cosmjs/stargate"),o=n.StargateClient??n.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return o.connect({headers:f,url:y})}async function Xf(y,n,o={}){let f=await import("@cosmjs/stargate"),T=f.SigningStargateClient??f.default?.SigningStargateClient,C=f.GasPrice??f.default?.GasPrice,H=typeof o==="string"?o:"0.0003uatom",U=typeof o==="string"?{}:o;return T.connectWithSigner(y,n,{gasPrice:C.fromString(H),...U})}async function d0(y,n){let o=await import("@cosmjs/stargate");return(o.SigningStargateClient??o.default?.SigningStargateClient).offline(y,n)}async function r0({sender:y,recipient:n,assetValue:o,memo:f="",feeRate:T,sequence:C,accountNumber:H}){let{chain:U,chainId:_}=o,A=await b2(U),L=await(await my(A)).getAccount(y);if(!L)throw new N1("toolbox_cosmos_account_not_found",{sender:y});let G=g0.from({chain:U}),q=sy(G.symbol),W=hy(U),M=q&&T?{amount:[{amount:T.toString(),denom:q}],gas:W.gas}:W,w={amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol)}],fromAddress:y,toAddress:n};return{accountNumber:H??Number(L.accountNumber),chainId:_,fee:M,memo:f,msgs:[{typeUrl:v2(U),value:w}],sequence:C??L.sequence}}var i0="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",O1="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",w1,D1,R1,sy=(y,n=!1)=>{if(n)return y.toLowerCase();switch(y){case"uUSK":case"USK":return i0;case"uYUM":case"YUM":return O1;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},Qn=({symbol:y,chain:n})=>{if(n===u.Maya)return(y.toUpperCase()!=="CACAO"?y:`${u.Maya}.${y}`).toUpperCase();if(n===u.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${u.THORChain}.${y}`:y).toUpperCase();return sy(y,!1)},v2=(y)=>{switch(y){case u.Maya:case u.THORChain:return"/types.MsgSend";case u.Cosmos:case u.Kujira:case u.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new N1("toolbox_cosmos_not_supported",{chain:y})}},u2,a0=(y,n)=>{let o=u2[y.toLowerCase()];if(!o)return g0.from({asset:y,fromBaseDecimal:8,value:n});let{chain:f,asset:T,decimals:C}=o,H=f?{chain:f}:{asset:T};return g0.from({...H,fromBaseDecimal:C,value:n})};var Jn=P(()=>{w1={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},D1={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},R1={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};u2={atom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},cacao:{chain:u.Maya,decimals:10},kuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},maya:{asset:`${u.Maya}.${u.Maya}`,decimals:4},rune:{chain:u.THORChain,decimals:py(u.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:py(u.THORChain).baseDecimal},uatom:{chain:u.Cosmos,decimals:py(u.Cosmos).baseDecimal},ukuji:{chain:u.Kujira,decimals:py(u.Kujira).baseDecimal},usdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},uusdc:{chain:u.Noble,decimals:py(u.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:py(u.THORChain).baseDecimal},[i0.toLowerCase()]:{asset:`${u.Kujira}.USK`,decimals:py(u.Kujira).baseDecimal}}});var k1={};ny(k1,{$root:()=>I});import Ty from"protobufjs/minimal.js";var t,zy,E,I;var S1=P(()=>{t=Ty.Reader,zy=Ty.Writer,E=Ty.util,I=Ty.roots.default||(Ty.roots.default={});I.common=(()=>{let y={};return y.Asset=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.chain="",n.prototype.symbol="",n.prototype.ticker="",n.prototype.synth=!1,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))T.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))T.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))T.uint32(32).bool(f.synth);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Asset;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.chain=f.string();break;case 2:H.symbol=f.string();break;case 3:H.ticker=f.string();break;case 4:H.synth=f.bool();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!E.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!E.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Asset)return f;let T=new I.common.Asset;if(f.chain!=null)T.chain=String(f.chain);if(f.symbol!=null)T.symbol=String(f.symbol);if(f.ticker!=null)T.ticker=String(f.ticker);if(f.synth!=null)T.synth=Boolean(f.synth);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.chain="",C.symbol="",C.ticker="",C.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))C.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))C.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))C.synth=f.synth;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Coin=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.asset=null,n.prototype.amount="",n.prototype.decimals=E.Long?E.Long.fromBits(0,0,!1):0,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))I.common.Asset.encode(f.asset,T.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))T.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))T.uint32(24).int64(f.decimals);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Coin;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.asset=I.common.Asset.decode(f,f.uint32());break;case 2:H.amount=f.string();break;case 3:H.decimals=f.int64();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let T=I.common.Asset.verify(f.asset);if(T)return"asset."+T}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!E.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!E.isInteger(f.decimals)&&!(f.decimals&&E.isInteger(f.decimals.low)&&E.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Coin)return f;let T=new I.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");T.asset=I.common.Asset.fromObject(f.asset)}if(f.amount!=null)T.amount=String(f.amount);if(f.decimals!=null){if(E.Long)(T.decimals=E.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")T.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")T.decimals=f.decimals;else if(typeof f.decimals==="object")T.decimals=new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)if(C.asset=null,C.amount="",E.Long){let H=new E.Long(0,0,!1);C.decimals=T.longs===String?H.toString():T.longs===Number?H.toNumber():H}else C.decimals=T.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))C.asset=I.common.Asset.toObject(f.asset,T);if(f.amount!=null&&f.hasOwnProperty("amount"))C.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")C.decimals=T.longs===String?String(f.decimals):f.decimals;else C.decimals=T.longs===String?E.Long.prototype.toString.call(f.decimals):T.longs===Number?new E.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.PubKeySet=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.secp256k1="",n.prototype.ed25519="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))T.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))T.uint32(18).string(f.ed25519);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.PubKeySet;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.secp256k1=f.string();break;case 2:H.ed25519=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!E.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!E.isString(f.ed25519))return"ed25519: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.PubKeySet)return f;let T=new I.common.PubKeySet;if(f.secp256k1!=null)T.secp256k1=String(f.secp256k1);if(f.ed25519!=null)T.ed25519=String(f.ed25519);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.secp256k1="",C.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))C.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))C.ed25519=f.ed25519;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Tx=(()=>{function n(o){if(this.coins=[],this.gas=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.id="",n.prototype.chain="",n.prototype.fromAddress="",n.prototype.toAddress="",n.prototype.coins=E.emptyArray,n.prototype.gas=E.emptyArray,n.prototype.memo="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))T.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))T.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(34).string(f.toAddress);if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(42).fork()).ldelim();if(f.gas?.length)for(let C=0;C<f.gas.length;++C)I.common.Coin.encode(f.gas[C],T.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(58).string(f.memo);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Tx;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.id=f.string();break;case 2:H.chain=f.string();break;case 3:H.fromAddress=f.string();break;case 4:H.toAddress=f.string();break;case 5:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 6:if(!H.gas?.length)H.gas=[];H.gas.push(I.common.Coin.decode(f,f.uint32()));break;case 7:H.memo=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!E.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!E.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!E.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!E.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let T=0;T<f.gas.length;++T){let C=I.common.Coin.verify(f.gas[T]);if(C)return"gas."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Tx)return f;let T=new I.common.Tx;if(f.id!=null)T.id=String(f.id);if(f.chain!=null)T.chain=String(f.chain);if(f.fromAddress!=null)T.fromAddress=String(f.fromAddress);if(f.toAddress!=null)T.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Tx.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");T.gas=[];for(let C=0;C<f.gas.length;++C){if(typeof f.gas[C]!=="object")throw TypeError(".common.Tx.gas: object expected");T.gas[C]=I.common.Coin.fromObject(f.gas[C])}}if(f.memo!=null)T.memo=String(f.memo);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[],C.gas=[];if(T.defaults)C.id="",C.chain="",C.fromAddress="",C.toAddress="",C.memo="";if(f.id!=null&&f.hasOwnProperty("id"))C.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))C.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=f.toAddress;if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.gas?.length){C.gas=[];for(let H=0;H<f.gas.length;++H)C.gas[H]=I.common.Coin.toObject(f.gas[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.Fee=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.poolDeduct="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))T.uint32(18).string(f.poolDeduct);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.Fee;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.poolDeduct=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!E.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.Fee)return f;let T=new I.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".common.Fee.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.poolDeduct!=null)T.poolDeduct=String(f.poolDeduct);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults)C.poolDeduct="";if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))C.poolDeduct=f.poolDeduct;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.ProtoUint=(()=>{function n(o){if(o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.value="",n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))T.uint32(10).string(f.value);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.common.ProtoUint;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.value=f.string();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!E.isString(f.value))return"value: string expected"}return null},n.fromObject=function(f){if(f instanceof I.common.ProtoUint)return f;let T=new I.common.ProtoUint;if(f.value!=null)T.value=String(f.value);return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.defaults)C.value="";if(f.value!=null&&f.hasOwnProperty("value"))C.value=f.value;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.types=(()=>{let y={};return y.MsgDeposit=(()=>{function n(o){if(this.coins=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.coins=E.emptyArray,n.prototype.memo="",n.prototype.signer=E.newBuffer([]),n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.coins?.length)for(let C=0;C<f.coins.length;++C)I.common.Coin.encode(f.coins[C],T.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))T.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))T.uint32(26).bytes(f.signer);return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgDeposit;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:if(!H.coins?.length)H.coins=[];H.coins.push(I.common.Coin.decode(f,f.uint32()));break;case 2:H.memo=f.string();break;case 3:H.signer=f.bytes();break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let T=0;T<f.coins.length;++T){let C=I.common.Coin.verify(f.coins[T]);if(C)return"coins."+C}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!E.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||E.isString(f.signer)))return"signer: buffer expected"}return null},n.fromObject=function(f){if(f instanceof I.types.MsgDeposit)return f;let T=new I.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");T.coins=[];for(let C=0;C<f.coins.length;++C){if(typeof f.coins[C]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");T.coins[C]=I.common.Coin.fromObject(f.coins[C])}}if(f.memo!=null)T.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")E.base64.decode(f.signer,T.signer=E.newBuffer(E.base64.length(f.signer)),0);else if(f.signer.length)T.signer=f.signer}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.coins=[];if(T.defaults){if(C.memo="",T.bytes===String)C.signer="";else if(C.signer=[],T.bytes!==Array)C.signer=E.newBuffer(C.signer)}if(f.coins?.length){C.coins=[];for(let H=0;H<f.coins.length;++H)C.coins[H]=I.common.Coin.toObject(f.coins[H],T)}if(f.memo!=null&&f.hasOwnProperty("memo"))C.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))C.signer=T.bytes===String?E.base64.encode(f.signer,0,f.signer.length):T.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y.MsgSend=(()=>{function n(o){if(this.amount=[],o){for(let f=Object.keys(o),T=0;T<f.length;++T)if(o[f[T]]!=null)this[f[T]]=o[f[T]]}}return n.prototype.fromAddress=E.newBuffer([]),n.prototype.toAddress=E.newBuffer([]),n.prototype.amount=E.emptyArray,n.create=function(f){return new n(f)},n.encode=function(f,T){if(!T)T=zy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))T.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))T.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let C=0;C<f.amount.length;++C)I.cosmos.base.v1beta1.Coin.encode(f.amount[C],T.uint32(26).fork()).ldelim();return T},n.encodeDelimited=function(f,T){return this.encode(f,T).ldelim()},n.decode=function(f,T){if(!(f instanceof t))f=t.create(f);let C=T===void 0?f.len:f.pos+T,H=new I.types.MsgSend;while(f.pos<C){let U=f.uint32();switch(U>>>3){case 1:H.fromAddress=f.bytes();break;case 2:H.toAddress=f.bytes();break;case 3:if(!H.amount?.length)H.amount=[];H.amount.push(I.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(U&7);break}}return H},n.decodeDelimited=function(f){if(!(f instanceof t))f=new t(f);return this.decode(f,f.uint32())},n.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||E.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||E.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let T=0;T<f.amount.length;++T){let C=I.cosmos.base.v1beta1.Coin.verify(f.amount[T]);if(C)return"amount."+C}}return null},n.fromObject=function(f){if(f instanceof I.types.MsgSend)return f;let T=new I.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")E.base64.decode(f.fromAddress,T.fromAddress=E.newBuffer(E.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)T.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")E.base64.decode(f.toAddress,T.toAddress=E.newBuffer(E.base64.length(f.toAddress)),0);else if(f.toAddress.length)T.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");T.amount=[];for(let C=0;C<f.amount.length;++C){if(typeof f.amount[C]!=="object")throw TypeError(".types.MsgSend.amount: object expected");T.amount[C]=I.cosmos.base.v1beta1.Coin.fromObject(f.amount[C])}}return T},n.toObject=function(f,T){if(!T)T={};let C={};if(T.arrays||T.defaults)C.amount=[];if(T.defaults){if(T.bytes===String)C.fromAddress="";else if(C.fromAddress=[],T.bytes!==Array)C.fromAddress=E.newBuffer(C.fromAddress);if(T.bytes===String)C.toAddress="";else if(C.toAddress=[],T.bytes!==Array)C.toAddress=E.newBuffer(C.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))C.fromAddress=T.bytes===String?E.base64.encode(f.fromAddress,0,f.fromAddress.length):T.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))C.toAddress=T.bytes===String?E.base64.encode(f.toAddress,0,f.toAddress.length):T.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){C.amount=[];for(let H=0;H<f.amount.length;++H)C.amount[H]=I.cosmos.base.v1beta1.Coin.toObject(f.amount[H],T)}return C},n.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},n})(),y})();I.cosmos=(()=>{let y={};return y.base=(()=>{let n={};return n.v1beta1=(()=>{let o={};return o.Coin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.Coin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.Coin)return C;let H=new I.cosmos.base.v1beta1.Coin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecCoin=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.denom!=null&&Object.hasOwnProperty.call(C,"denom"))H.uint32(10).string(C.denom);if(C.amount!=null&&Object.hasOwnProperty.call(C,"amount"))H.uint32(18).string(C.amount);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecCoin;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.denom=C.string();break;case 2:_.amount=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.denom!=null&&C.hasOwnProperty("denom")){if(!E.isString(C.denom))return"denom: string expected"}if(C.amount!=null&&C.hasOwnProperty("amount")){if(!E.isString(C.amount))return"amount: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecCoin)return C;let H=new I.cosmos.base.v1beta1.DecCoin;if(C.denom!=null)H.denom=String(C.denom);if(C.amount!=null)H.amount=String(C.amount);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.denom="",U.amount="";if(C.denom!=null&&C.hasOwnProperty("denom"))U.denom=C.denom;if(C.amount!=null&&C.hasOwnProperty("amount"))U.amount=C.amount;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.IntProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.int="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.int!=null&&Object.hasOwnProperty.call(C,"int"))H.uint32(10).string(C.int);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.IntProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.int=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.int!=null&&C.hasOwnProperty("int")){if(!E.isString(C.int))return"int: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.IntProto)return C;let H=new I.cosmos.base.v1beta1.IntProto;if(C.int!=null)H.int=String(C.int);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.int="";if(C.int!=null&&C.hasOwnProperty("int"))U.int=C.int;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o.DecProto=(()=>{function f(T){if(T){for(let C=Object.keys(T),H=0;H<C.length;++H)if(T[C[H]]!=null)this[C[H]]=T[C[H]]}}return f.prototype.dec="",f.create=function(C){return new f(C)},f.encode=function(C,H){if(!H)H=zy.create();if(C.dec!=null&&Object.hasOwnProperty.call(C,"dec"))H.uint32(10).string(C.dec);return H},f.encodeDelimited=function(C,H){return this.encode(C,H).ldelim()},f.decode=function(C,H){if(!(C instanceof t))C=t.create(C);let U=H===void 0?C.len:C.pos+H,_=new I.cosmos.base.v1beta1.DecProto;while(C.pos<U){let A=C.uint32();switch(A>>>3){case 1:_.dec=C.string();break;default:C.skipType(A&7);break}}return _},f.decodeDelimited=function(C){if(!(C instanceof t))C=new t(C);return this.decode(C,C.uint32())},f.verify=function(C){if(typeof C!=="object"||C===null)return"object expected";if(C.dec!=null&&C.hasOwnProperty("dec")){if(!E.isString(C.dec))return"dec: string expected"}return null},f.fromObject=function(C){if(C instanceof I.cosmos.base.v1beta1.DecProto)return C;let H=new I.cosmos.base.v1beta1.DecProto;if(C.dec!=null)H.dec=String(C.dec);return H},f.toObject=function(C,H){if(!H)H={};let U={};if(H.defaults)U.dec="";if(C.dec!=null&&C.hasOwnProperty("dec"))U.dec=C.dec;return U},f.prototype.toJSON=function(){return this.constructor.toObject(this,Ty.util.toJSONOptions)},f})(),o})(),n})(),y})()});import{Chain as j2}from"@swapkit/helpers";async function Qf(){let{$root:y}=await Promise.resolve().then(() => (S1(),k1)),n=await import("@cosmjs/proto-signing"),o=n.Registry??n.default?.Registry,f=await import("@cosmjs/stargate"),T=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new o([...T,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ey(y){let n=await import("@cosmjs/stargate"),o=n.AminoTypes??n.default?.AminoTypes,f=y===j2.THORChain?"thorchain":"mayachain";return new o({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:T,...C})=>({...C,signer:Wn(T)}),toAmino:({signer:T,...C})=>({...C,signer:Xn(T)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:T,to_address:C,...H})=>({...H,fromAddress:Wn(T),toAddress:Wn(C)}),toAmino:({fromAddress:T,toAddress:C,...H})=>({...H,from_address:Xn(T),to_address:Xn(C)})}})}var s0=P(()=>{c0()});import{AssetValue as K2,Chain as LT,getChainConfig as F1,getRPCUrl as x1,SwapKitError as h2}from"@swapkit/helpers";function fo(y){let{assetValue:n,recipient:o,memo:f,sender:T,asSignable:C,asAminoMessage:H}=y;if(o)return $1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,recipient:o,sender:T});return I1({asAminoMessage:H,asSignable:C,assetValue:n,memo:f,sender:T})}async function $1({sender:y,recipient:n,assetValue:o,memo:f="",asSignable:T=!0,asAminoMessage:C=!1,sequence:H,accountNumber:U}){let _=o.chain,A=await x1(_),J=await l1({rpcUrl:A,sender:y}),{chainId:L}=F1(_),G=e0({assetValue:o,recipient:n,sender:y}),q=T?await yf(C?G:ff(G),_):G;return{accountNumber:U||Number(J.accountNumber),chainId:L,fee:hy(_),memo:f,msgs:[q],sequence:H||J.sequence}}async function I1({sender:y,assetValue:n,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let U=n.chain,_=await x1(U),A=await l1({rpcUrl:_,sender:y}),{chainId:J}=F1(U),L=yo({assetValue:n,memo:o,sender:y}),G=f?await yf(T?L:ff(L),U):L;return{accountNumber:H||Number(A.accountNumber),chainId:J,fee:hy(U),memo:o,msgs:[G],sequence:C||A.sequence}}function ff(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((n)=>{let o=K2.from({asset:n.asset}),f=(o.isSynthetic?o.symbol.split("/")?.[1]:o.symbol)?.toUpperCase(),T=(o.isSynthetic?o.symbol.split("/")?.[0]:o.chain)?.toUpperCase();return{...n,asset:{chain:T,symbol:f,synth:o.isSynthetic,ticker:o.ticker}}})}}}async function Zn({chain:y,memo:n,msgs:o}){let f=await Qf(),T=await ey(y),C={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:n,messages:o.map((H)=>T.fromAmino(H))}};return f.encode(C)}var m2,c2,e0=({sender:y,recipient:n,assetValue:o})=>{return{type:`${o.chain===LT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:o.getBaseValue("string"),denom:sy(o.symbol,!0)}],from_address:y,to_address:n}}},yo=({sender:y,assetValue:n,memo:o=""})=>{return{type:`${n.chain===LT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:n.getBaseValue("string"),asset:Qn(n)}],memo:o,signer:y}}},MT=({sender:y,recipient:n,assetValue:o,memo:f})=>{return!n?yo({assetValue:o,memo:f,sender:y}):e0({assetValue:o,recipient:n,sender:y})},yf=async(y,n)=>{return(await ey(n)).fromAmino(y)},l1=async({rpcUrl:y,sender:n})=>{let f=await(await my(y)).getAccount(n);if(!f)throw new h2("toolbox_cosmos_account_not_found",{sender:n});return f};var P1=P(()=>{Jn();s0();m2=hy(LT.THORChain).gas,c2=hy(LT.Maya).gas});var p1=()=>{};var E1=P(()=>{p1()});var no=P(()=>{c0();P1();s0();E1()});import{stringToPath as g2}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as i2}from"@cosmjs/proto-signing";import{base64 as Co,bech32 as To}from"@scure/base";import{AssetValue as Ho,applyFeeMultiplier as V1,Chain as Hy,CosmosChainPrefixes as K1,DerivationPath as d2,derivationPathToString as t1,FeeOption as Uo,getChainConfig as r2,getRPCUrl as Ln,NetworkDerivationPath as a2,SwapKitError as lf,SwapKitNumber as oo,updateDerivationPath as s2}from"@swapkit/helpers";import{SwapKitApi as h1}from"@swapkit/helpers/api";import{match as e2,P as b1}from"ts-pattern";async function Ao(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}async function _o({phrase:y,prefix:n,...o}){let f="derivationPath"in o?o.derivationPath:`${d2[o.chain]}/${o.index}`;return await i2.fromMnemonic(y,{hdPaths:[g2(f)],prefix:n})}async function y_({privateKey:y,prefix:n}){let o=await import("@cosmjs/proto-signing");return(o.DirectSecp256k1Wallet??o.default?.DirectSecp256k1Wallet).fromKey(y,n)}function m1(y){return async function({signature:o,message:f,address:T}){let C=await y(T);if(!C?.pubkey)throw new lf("toolbox_cosmos_verify_signature_no_pubkey");let H=await import("@cosmjs/crypto"),U=H.Secp256k1Signature??H.default?.Secp256k1Signature,_=H.Secp256k1??H.default?.Secp256k1,A=U.fromFixedLength(Co.decode(o));return _.verifySignature(A,Co.decode(f),C.pubkey.value)}}function Mn({chain:y,...n}){let o=K1[y],f="index"in n?n.index||0:0,T=t1("derivationPath"in n&&n.derivationPath?n.derivationPath:s2(a2[y],{index:f})),C;async function H(){if(C)return C;return C=await e2(n).with({phrase:b1.string},({phrase:q})=>_o({derivationPath:T,phrase:q,prefix:o})).with({signer:b1.any},({signer:q})=>q).otherwise(()=>{return}),C}async function U(q){let W=await Ln(y);return(await my(W)).getAccount(q)}async function _(){let q=await H(),[W]=await q?.getAccounts()||[];return W?.address}async function A(){let q=await H(),[W]=await q?.getAccounts()||[];if(!W?.pubkey)throw new lf("toolbox_cosmos_signer_not_defined");return Co.encode(W?.pubkey)}async function J(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");return await(await Xf(w,W)).sign(M,q.msgs,q.fee,q.memo,{accountNumber:BigInt(q.accountNumber),chainId:q.chainId,sequence:q.sequence})}async function L(q){let W=await H(),M=await _(),w=await Ln(y);if(!(W&&M))throw new lf("toolbox_cosmos_signer_not_defined");let Q=await(await Xf(w,W)).signAndBroadcast(M,q.msgs,q.fee,q.memo);if(Q.code!==0)throw new lf("core_swap_transaction_error",{code:Q.code,message:Q.rawLog});return Q.transactionHash}async function G({recipient:q,assetValue:W,memo:M="",feeRate:w,feeOptionKey:N=Uo.Fast}){let Q=await H(),O=await _();if(!(Q&&O))throw new lf("toolbox_cosmos_signer_not_defined");let B=await Ln(y),Y=Ho.from({chain:y}),X=Qn(Y),Z=w||T_((await u1(y,v1[y]))[N],X),D=await Xf(B,Q),k=sy(W.symbol),R=[{amount:W.getBaseValue("string"),denom:k}],{transactionHash:S}=await D.sendTokens(O,q,R,Z,M);return S}return{createPrivateKeyFromPhrase:C_(T),createTransaction:r0,fetchFeeRateFromSwapKit:Ao,getAccount:U,getAddress:_,getBalance:async(q,W)=>{let M=await j1(y)(q),w=await Promise.all(M.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([Hy.THORChain,Hy.Maya].includes(y)&&N.split("-").length>2)).map(({denom:N,amount:Q})=>{let O=[Hy.THORChain,Hy.Maya].includes(y)&&(N.includes("/")||N.includes("˜"))?`${y}.${N}`:N;return a0(O,Q)}));if(w.length===0)return[Ho.from({chain:y})];return w},getBalanceAsDenoms:j1(y),getFees:()=>u1(y,v1[y]),getPubKey:A,getSignerFromPhrase:({phrase:q,derivationPath:W})=>_o({derivationPath:t1(W),index:f,phrase:q,prefix:o}),getSignerFromPrivateKey:async(q)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(q,o)},signAndBroadcastTransaction:L,signTransaction:J,transfer:G,validateAddress:c1(y),verifySignature:m1(U)}}async function f_(y,n){try{let f=(await h1.getGasRate()).find((T)=>T.chainId===y)?.value;return f?Number.parseFloat(f):n}catch{return n}}function n_({assetValue:{chain:y}}){return Ho.from({chain:y,value:o_(y)})}async function u1(y,n){let{chainId:o,baseDecimal:f}=r2(y),T=await Ao(o,n);return{average:oo.fromBigInt(BigInt(T),f),fast:oo.fromBigInt(BigInt(V1(T,Uo.Fast,!0)),f),fastest:oo.fromBigInt(BigInt(V1(T,Uo.Fastest,!0)),f)}}function T_(y,n){return{amount:[{amount:y.getBaseValue("string"),denom:n}],gas:"200000"}}function o_(y){return{[Hy.Cosmos]:0.007,[Hy.Kujira]:0.02,[Hy.Noble]:0.01,[Hy.THORChain]:0.02,[Hy.Maya]:0.02,[Hy.Harbor]:0.02}[y]||0}function c1(y){let n=K1[y];return function(f){if(!f.startsWith(n))return!1;try{let{prefix:T,words:C}=To.decode(f);return To.encode(T,C)===f.toLocaleLowerCase()}catch{return!1}}}function j1(y){return async function(o){let f=await Ln(y);return(await(await my(f)).getAllBalances(o)).map((U)=>({...U,denom:U.denom.includes("/")?U.denom.toUpperCase():U.denom}))}}function C_(y){return async function(o){let f=await import("@cosmjs/crypto"),T=f.stringToPath??f.default?.stringToPath,C=f.Slip10Curve??f.default?.Slip10Curve,H=f.Slip10??f.default?.Slip10,U=f.EnglishMnemonic??f.default?.EnglishMnemonic,_=f.Bip39??f.default?.Bip39,A=new U(o),J=await _.mnemonicToSeed(A),{privkey:L}=H.derivePath(C.Secp256k1,J,T(y));return L}}var v1;var YT=P(()=>{Jn();v1={[Hy.Cosmos]:1000,[Hy.Kujira]:1000,[Hy.Noble]:1000,[Hy.THORChain]:5000000,[Hy.Maya]:5000000,[Hy.Harbor]:5000000}});import{base64 as Jf}from"@scure/base";import{Chain as H_,CosmosChainPrefixes as U_,derivationPathToString as __,FeeOption as qo,getChainConfig as A_,getRPCUrl as a1,NetworkDerivationPath as q_,RequestClient as G_,SKConfig as g1,SwapKitError as $f,SwapKitNumber as i1,updateDerivationPath as W_}from"@swapkit/helpers";import{match as d1,P as r1}from"ts-pattern";function X_({prefix:y,derivationPath:n}){return async function(f,T=0){let C=await import("@cosmjs/amino"),H=C.Secp256k1HdWallet??C.default?.Secp256k1HdWallet,U=await import("@cosmjs/crypto"),_=U.stringToPath??U.default?.stringToPath;return H.fromMnemonic(f,{hdPaths:[_(`${n}/${T}`)],prefix:y})}}function Q_(y){return Jf.encode(y)}function J_(y){return async function({wallet:o,tx:f}){let{msgs:T,accountNumber:C,sequence:H,chainId:U,fee:_,memo:A}=typeof f==="string"?JSON.parse(f):f,J=(await o.getAccounts())?.[0]?.address||"",L=await ey(y),G=await Qf(),q=await d0(o,{aminoTypes:L,registry:G}),W=[];for(let N of T){let Q=await yf(N,y);W.push(Q)}let{signatures:[M]}=await q.sign(J,W,_,A,{accountNumber:BigInt(C),chainId:U,sequence:H});return{bodyBytes:await Zn({chain:y,memo:A,msgs:T.map(ff)}),signature:Q_(M)}}}function Z_({prefix:y,chain:n}){return async function(f,T,C,H,U){let _=await a1(n),{encodeSecp256k1Pubkey:A,pubkeyToAddress:J}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:L}=(await import("@cosmjs/stargate")).default,{sequence:G,fee:q}=JSON.parse(f),W=await s1(C,H),M=T.map((Q)=>[J(A(Jf.decode(Q.pubKey)),y),Jf.decode(Q.signature)]),w=await my(_),{transactionHash:N}=await w.broadcastTx(L(W,G,q,U,new Map(M)));return N}}async function s1(y,n,o=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:T}=(await import("@cosmjs/amino")).default;return f(y.map((C)=>T(Jf.decode(C))),n,o)}function L_(y){return Jf.decode(y)}async function M_({privateKey:y,message:n}){let{Secp256k1:o}=(await import("@cosmjs/crypto")).default,f=await o.createSignature(Jf.decode(n),y);return Jf.encode(Buffer.concat([f.r(32),f.s(32)]))}function Go({chain:y,...n}){let{isStagenet:o}=g1.get("envs"),f=g1.get("thornodeUrls"),T=y===H_.Maya,C=d1({isMayachain:T,isStagenet:o}).with({isMayachain:!0},({isStagenet:Q})=>Q?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:Q})=>Q?f.THOR_STAGENET:f.THOR),H=`${o?"s":""}${U_[y]}`,U="index"in n?n.index||0:0,_="derivationPath"in n&&n.derivationPath?n.derivationPath:W_(q_[y],{index:U}),A=Mn({chain:y,...n}),J=hy(y),L;function G(){return L??=d1(n).with({phrase:r1.string},({phrase:Q})=>A.getSignerFromPhrase({derivationPath:_,phrase:Q})).with({signer:r1.any},({signer:Q})=>Promise.resolve(Q)).otherwise(()=>Promise.resolve(void 0)),L}async function q(){let Q=await a1(y),O=await G();if(!O)throw new $f("toolbox_cosmos_no_signer");let B=await Qf(),Y=await ey(y),X=await Xf(Q,O,{aminoTypes:Y,registry:B});return{signer:O,signingClient:X}}async function W({fee:Q,memo:O,msgs:B}){let{signer:Y,signingClient:X}=await q(),Z=(await Y.getAccounts())?.[0]?.address;if(!Z)throw new $f("toolbox_cosmos_signer_not_defined");let D=await X.signAndBroadcast(Z,B,Q,O);if(D.code!==0)throw new $f("core_swap_transaction_error",{code:D.code,message:D.rawLog});return D.transactionHash}async function M(){let Q,O=`${C}/${T?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:B}}=await G_.get(O);if(!B||Number.isNaN(B)||B<0)throw new $f("toolbox_cosmos_invalid_fee",{nativeFee:B.toString()});Q=new i1(B)}catch{Q=new i1({decimal:A_(y).baseDecimal,value:T?1:0.02})}return{[qo.Average]:Q,[qo.Fast]:Q,[qo.Fastest]:Q}}async function w({assetValue:Q,memo:O="",recipient:B}){let{TxRaw:Y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:X,signingClient:Z}=await q(),D=(await X.getAccounts())?.[0]?.address;if(!D)throw new $f("toolbox_cosmos_no_signer");let k="signAmino"in X,R=MT({assetValue:Q,memo:O,recipient:B,sender:D});if(k){let z=await yf(R,y),{signatures:F,authInfoBytes:l}=await Z.sign(D,[z],J,O),V=Y.encode({authInfoBytes:l,bodyBytes:await Zn({chain:y,memo:O,msgs:[R].map(ff)}),signatures:F}).finish();return(await Z.broadcastTx(V)).transactionHash}let S=ff(R),x=await yf(S,y);return W({fee:J,memo:O,msgs:[x]})}async function N(Q){let{signer:O,signingClient:B}=await q(),Y=(await O.getAccounts())?.[0]?.address;if(!Y)throw new $f("toolbox_cosmos_signer_not_defined");return B.sign(Y,Q.msgs,Q.fee,Q.memo,{accountNumber:BigInt(Q.accountNumber),chainId:Q.chainId,sequence:Q.sequence})}return{...A,broadcastMultisigTx:Z_({chain:y,prefix:H}),buildAminoMsg:MT,buildEncodedTxBody:Zn,convertToSignable:yf,createDefaultAminoTypes:()=>ey(y),createDefaultRegistry:Qf,createMultisig:s1,createTransaction:fo,deposit:w,getFees:M,importSignature:L_,parseAminoMessageForDirectSigning:ff,pubkeyToAddress:async(Q)=>{let{pubkeyToAddress:O}=(await import("@cosmjs/amino")).default;return O(Q,H)},secp256k1HdWalletFromMnemonic:X_({derivationPath:__(_),prefix:H}),signAndBroadcastTransaction:W,signMultisigTx:J_(y),signTransaction:N,signWithPrivateKey:M_,transfer:w}}var Wo=P(()=>{no();Jn();YT()});import{Chain as Yn,SwapKitError as Y_}from"@swapkit/helpers";var B_=(y,n)=>{switch(y){case Yn.Cosmos:case Yn.Kujira:case Yn.Noble:return Mn({chain:y,...n});case Yn.Maya:case Yn.THORChain:return Go({chain:y,...n});default:throw new Y_("toolbox_cosmos_not_supported",{chain:y})}};var e1=P(()=>{YT();Wo();YT();Wo()});var BT={};ny(BT,{verifySignature:()=>m1,transferMsgAmino:()=>e0,toBase64:()=>V2,parseAminoMessageForDirectSigning:()=>ff,getSignerFromPrivateKey:()=>y_,getSignerFromPhrase:()=>_o,getMsgSendDenom:()=>sy,getFeeRateFromSwapKit:()=>f_,getDenomWithChain:()=>Qn,getDefaultChainFee:()=>hy,getCosmosToolbox:()=>B_,getCosmosAddressValidator:()=>c1,getAssetFromDenom:()=>a0,fromBase64:()=>t2,fetchFeeRateFromSwapKit:()=>Ao,estimateTransactionFee:()=>n_,depositMsgAmino:()=>yo,createTransaction:()=>fo,createThorchainToolbox:()=>Go,createStargateClient:()=>my,createSigningStargateClient:()=>Xf,createOfflineStargateClient:()=>d0,createDefaultRegistry:()=>Qf,createDefaultAminoTypes:()=>ey,createCosmosToolbox:()=>Mn,cosmosCreateTransaction:()=>r0,convertToSignable:()=>yf,buildTransferTx:()=>$1,buildEncodedTxBody:()=>Zn,buildDepositTx:()=>I1,buildAminoMsg:()=>MT,bech32ToBase64:()=>Wn,base64ToBech32:()=>Xn,YUM_KUJIRA_FACTORY_DENOM:()=>O1,USK_KUJIRA_FACTORY_DENOM:()=>i0,THORCHAIN_GAS_VALUE:()=>m2,MAYA_GAS_VALUE:()=>c2,DEFAULT_NOBLE_FEE_MAINNET:()=>R1,DEFAULT_KUJI_FEE_MAINNET:()=>D1,DEFAULT_COSMOS_FEE_MAINNET:()=>w1});var zT=P(()=>{no();e1();Jn()});function z_({builder:y,grouping:n="na",orders:o}){return{builder:y,grouping:n,orders:o,type:"order"}}function N_({cancels:y}){return{cancels:y,type:"cancel"}}function O_({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function w_({oid:y,order:n}){return{oid:y,order:n,type:"modify"}}function D_({modifies:y}){return{modifies:y,type:"batchModify"}}function R_({asset:y,isCross:n,leverage:o}){return{asset:y,isCross:n,leverage:o,type:"updateLeverage"}}function k_({asset:y,isBuy:n,ntli:o}){return{asset:y,isBuy:n,ntli:o,type:"updateIsolatedMargin"}}function S_({asset:y,leverage:n}){return{asset:y,leverage:n,type:"topUpIsolatedOnlyMargin"}}function F_({time:y}){return{time:y,type:"scheduleCancel"}}function x_({amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T}){return{amount:y,hyperliquidChain:n,nonce:o,signatureChainId:f,toPerp:T,type:"usdClassTransfer"}}function l_({amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_}){return{amount:y,destination:n,destinationDex:o,fromSubAccount:f,hyperliquidChain:T,nonce:C,signatureChainId:H,sourceDex:U,token:_,type:"sendAsset"}}function $_({agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T}){return{agentAddress:y,agentName:n,hyperliquidChain:o,nonce:f,signatureChainId:T,type:"approveAgent"}}function I_({builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T}){return{builder:y,hyperliquidChain:n,maxFeeRate:o,nonce:f,signatureChainId:T,type:"approveBuilderFee"}}function P_({hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,validator:T,wei:C}){return{hyperliquidChain:y,isUndelegate:n,nonce:o,signatureChainId:f,type:"tokenDelegate",validator:T,wei:C}}import{SwapKitError as Xo}from"@swapkit/helpers";import{keccak256 as p_,Signature as E_}from"ethers";function Zy(...y){let n=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(n),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function j_(y,n,o){if(o<n)return new Uint8Array([y+o]);if(o<=255)return new Uint8Array([y+n,o]);if(o<=65535)return new Uint8Array([y+n+1,o>>8,o&255]);return new Uint8Array([y+n+2,o>>>24&255,o>>>16&255,o>>>8&255,o&255])}function nf(y,n){let o=new Uint8Array(n),f=y;for(let T=n-1;T>=0;T-=1)o[T]=Number(f&0xffn),f>>=8n;return o}function yH(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Zy(new Uint8Array([205]),nf(y,2));if(y<=0xffffffffn)return Zy(new Uint8Array([206]),nf(y,4));return Zy(new Uint8Array([207]),nf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Zy(new Uint8Array([209]),nf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Zy(new Uint8Array([210]),nf(BigInt.asUintN(32,y),4));return Zy(new Uint8Array([211]),nf(BigInt.asUintN(64,y),8))}function TH(y){let n=u_.encode(y);if(n.length<32)return Zy(new Uint8Array([160+n.length]),n);return Zy(j_(217,0,n.length),n)}function K_(y){let n=y.map((f)=>Qo(f)),o=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(o,...n)}function h_(y){let n=Object.entries(y).filter(([,f])=>typeof f<"u"),o=n.length<16?new Uint8Array([128+n.length]):n.length<=65535?new Uint8Array([222,n.length>>8,n.length&255]):new Uint8Array([223,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return Zy(o,...n.flatMap(([f,T])=>[TH(f),Qo(T)]))}function Qo(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return TH(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new Xo("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return yH(BigInt(y))}if(typeof y==="bigint")return yH(y);if(y instanceof Uint8Array){let n=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Zy(n,y)}if(Array.isArray(y))return K_(y);if(typeof y==="object")return h_(y);throw new Xo("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function m_(y){let n=y.startsWith("0x")?y.slice(2):y;if(n.length%2!==0||/[^a-fA-F0-9]/u.test(n))throw new Xo("helpers_invalid_params",{hexValue:y});let o=new Uint8Array(n.length/2);for(let f=0;f<n.length;f+=2)o[f/2]=Number.parseInt(n.slice(f,f+2),16);return o}function oH(y){return{domain:V_,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...t_.Agent]}}}function CH(y){let n=v_[y.type],o=b_[y.type],{type:f,...T}=y;return{domain:{chainId:Number.parseInt(T.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:fH,version:"1"},message:{...T,hyperliquidChain:T.hyperliquidChain||nH},primaryType:n,types:{[n]:o}}}function HH(y){let n=E_.from(y);return{r:n.r,s:n.s,v:n.v}}function UH(y,n,{expiresAfter:o,vaultAddress:f}={}){let T=Qo(y),C=nf(BigInt(n),8),H=f?Zy(new Uint8Array([1]),m_(f.toLowerCase())):new Uint8Array([0]),U=typeof o==="number"?Zy(new Uint8Array([0]),nf(BigInt(o),8)):new Uint8Array;return p_(Zy(T,C,H,U))}function _H(y){let n=y.hyperliquidChain||nH;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:n};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:n};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:n};case"tokenDelegate":return{...y,hyperliquidChain:n,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:n};default:return y}}var fH="0x0000000000000000000000000000000000000000",V_,t_,nH="Mainnet",b_,v_,u_;var AH=P(()=>{V_={chainId:1337,name:"Exchange",verifyingContract:fH,version:"1"},t_={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},b_={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"}]},v_={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},u_=new TextEncoder});import{AssetValue as Lo,Chain as c_,derivationPathToString as g_,getChainConfig as WH,getRPCUrl as i_,NetworkDerivationPath as d_,RequestClient as If,SwapKitError as Pf,updateDerivationPath as r_}from"@swapkit/helpers";import{HDNodeWallet as a_}from"ethers";import{match as s_,P as Jo}from"ts-pattern";function Ry(y,n){if(!Yo(y))throw new Pf(n,{address:y});return y.toLowerCase()}async function Zf(y){let n=await NT();return If.post(`${n}/info`,{json:y})}function C8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"clearinghouseState",user:Ry(n,"helpers_invalid_params")})}function H8({user:y}){return Zf({type:"spotClearinghouseState",user:Ry(y,"helpers_invalid_params")})}function U8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"openOrders",user:Ry(n,"helpers_invalid_params")})}function _8({dex:y,user:n}){return Zf({...y?{dex:y}:{},type:"frontendOpenOrders",user:Ry(n,"helpers_invalid_params")})}function A8({oidOrCloid:y,user:n}){return Zf({oid:y,type:"orderStatus",user:Ry(n,"helpers_invalid_params")})}function q8({aggregateByTime:y,user:n}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:Ry(n,"helpers_invalid_params")})}function G8({aggregateByTime:y,endTime:n,startTime:o,user:f}){return Zf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof n==="number"?{endTime:n}:{},startTime:o,type:"userFillsByTime",user:Ry(f,"helpers_invalid_params")})}function qH({coin:y,token:n,value:o,spotMeta:f}){if(!o||Number(o)<=0)return null;let T=y?.toUpperCase()||`TOKEN-${n||"UNKNOWN"}`,C=e_[T]||XH,H=f?.tokens?.find((_)=>_.name===y||n!==void 0&&_.index===Number(n)),U=H?`${Ey}.${T}-${H.name}:${H.tokenId}`:`${Ey}.${T}`;return new Lo({decimal:C,identifier:U,value:o})}function W8(y){let n=new Map;for(let o of y){let f=o.toString({includeSynthProtocol:!0}),T=n.get(f);n.set(f,T?T.add(o):o)}if(![...n.values()].some((o)=>o.isGasAsset||o.ticker==="HYPE")){let o=Lo.from({chain:Ey,value:0});n.set(o.toString({includeSynthProtocol:!0}),o)}return[...n.values()]}async function NT(){try{return await i_(Ey)}catch{let[y]=WH(Ey).rpcUrls;if(!y)throw new Pf("helpers_chain_no_public_or_set_rpc_url",{chain:Ey});return y}}async function Mo(){return`${await NT()}/exchange`}function X8(y){let n=o8[y.type],{type:o,...f}=y,T=T8[o];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:n8,version:"1"},message:f,primaryType:n,types:{[n]:T}}}async function QH({action:y,expiresAfter:n,nonce:o,vaultAddress:f}){let T=o||Date.now(),C=f?Ry(f,"helpers_invalid_params"):void 0,H=await Mo(),U=UH(y,T,{expiresAfter:n,vaultAddress:C});return{action:y,endpoint:H,expiresAfter:n,nonce:T,typedData:oH(U),vaultAddress:C}}async function JH({action:y,nonce:n,signatureChainId:o}){let f=n||y.nonce||Date.now(),T=o||y.signatureChainId||"0xa4b1",C=_H({...y,nonce:f,signatureChainId:T});return{action:C,endpoint:await Mo(),nonce:f,typedData:CH(C)}}async function Zo({assetValue:y,recipient:n,sender:o,signatureChainId:f,time:T}){let C=Ry(n,"core_transaction_invalid_recipient_address"),H=Ry(o,"core_transaction_invalid_sender_address"),U=await Mo(),_=y.getValue("string"),A=T||Date.now(),J=y.address;if(!J)throw new Pf("helpers_invalid_params",{asset:y.toString(),from:H});let L={amount:_,destination:C,hyperliquidChain:y8,signatureChainId:f||f8,time:A,token:J,type:"spotSend"};return{action:L,endpoint:U,nonce:A,typedData:X8(L)}}async function GH(y){let n=await If.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(n.status!=="ok")throw new Pf("core_transaction_failed",{response:n});return n}async function Q8(y,n){let o=await NT(),f=n-5000;for(let T=0;T<5;T++){if(T>0)await new Promise((C)=>setTimeout(C,1000));try{let C=await If.post(`${o}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),H=Array.isArray(C)?C.find((U)=>U.time&&U.time>=n&&(U.delta?.type==="spotTransfer"||U.delta?.type==="internalTransfer")):void 0;if(H?.hash)return H.hash}catch{}}return""}function Yo(y){return y.startsWith("0x")&&_n(y)}function J8(y){let n=Qy(Ey),o=y&&"index"in y?y.index||0:0,f=g_(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:r_(d_[Ey],{index:o})),T,C=!1;function H(){if(C)return T;return T=s_(y).with({phrase:Jo.string},({phrase:G})=>{return a_.fromPhrase(G,void 0,f)}).with({signer:Jo.not(Jo.nullish)},({signer:G})=>G).otherwise(()=>{return}),C=!0,T}async function U(){let G=H();return G?await G.getAddress():""}async function _(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=await q.signTypedData(G.typedData.domain,G.typedData.types,G.typedData.message);return{action:G.action,endpoint:G.endpoint,nonce:G.nonce,signature:HH(W),..."expiresAfter"in G?{expiresAfter:G.expiresAfter}:{},..."vaultAddress"in G?{vaultAddress:G.vaultAddress}:{}}}async function A(G){let q=Ry(G,"helpers_invalid_params");try{let W=await NT(),[M,w,N]=await Promise.all([If.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"clearinghouseState",user:q}}),If.post(`${W}/info`,{json:{type:"spotMeta"}})]),Q=(M.spotState?.balances||M.balances||[]).map(({coin:B,token:Y,total:X})=>qH({coin:B,spotMeta:N,token:Y,value:X})).filter((B)=>!!B),O=qH({coin:"USDC",spotMeta:N,value:w.withdrawable||w.marginSummary?.accountValue||w.marginSummary?.totalRawUsd});return W8(O?[...Q,O]:Q)}catch{return n(q)}}async function J(G){let q=H();if(!q)throw new Pf("toolbox_hypercore_no_signer");let W=G.sender||await q.getAddress(),M=await Zo({...G,feeRate:0,sender:W}),w=await _(M);return await GH(w),Q8(W,M.nonce)}function L(){return Lo.from({chain:Ey,value:0})}return{broadcastTransaction:GH,createL1ActionRequest:QH,createTransaction:Zo,createUserSignedActionRequest:JH,estimateTransactionFee:L,getAddress:U,getBalance:A,getState:{clearinghouse:C8,frontendOpenOrders:_8,openOrders:U8,orderStatus:A8,spotClearinghouse:H8,userFills:q8,userFillsByTime:G8},signTransaction:_,transfer:J,validateAddress:Yo}}var Ey,XH,e_,y8="Mainnet",f8="0xa4b1",n8="0x0000000000000000000000000000000000000000",T8,o8;var ZH=P(()=>{b0();jy();AH();Ey=c_.HyperCore,{baseDecimal:XH}=WH(Ey),e_={HYPE:XH,USDC:6,USDT:6},T8={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},o8={spotSend:"HyperliquidTransaction:SpotSend"}});var Bo={};ny(Bo,{validateHyperCoreAddress:()=>Yo,getHyperCoreToolbox:()=>J8,createUserSignedActionRequest:()=>JH,createTransaction:()=>Zo,createL1ActionRequest:()=>QH,buildUsdClassTransferAction:()=>x_,buildUpdateLeverageAction:()=>R_,buildUpdateIsolatedMarginAction:()=>k_,buildTopUpIsolatedOnlyMarginAction:()=>S_,buildTokenDelegateAction:()=>P_,buildSendAssetAction:()=>l_,buildScheduleCancelAction:()=>F_,buildOrderAction:()=>z_,buildModifyAction:()=>w_,buildCancelByCloidAction:()=>O_,buildCancelAction:()=>N_,buildBatchModifyAction:()=>D_,buildApproveBuilderFeeAction:()=>I_,buildApproveAgentAction:()=>$_});var zo=P(()=>{ZH()});import{PublicKey as Tf}from"@solana/web3.js";import{AssetValue as OT,Chain as gy,DerivationPath as Z8,derivationPathToString as L8,getChainConfig as BH,getRPCUrl as M8,NetworkDerivationPath as Y8,SwapKitError as pf,updateDerivationPath as B8}from"@swapkit/helpers";import{match as z8,P as LH}from"ts-pattern";async function zH(y){let n=OT.from({address:y,chain:gy.Solana});if(n.symbol!=="UNKNOWN")return{decimals:n.decimal||0,id:y,logoURI:n.getIconUrl(),name:n.symbol,symbol:n.ticker};let o=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(o);if(!f.ok)return null;let T=await f.json();if(!Array.isArray(T)||T.length===0)return null;return T.find((H)=>H.id===y)||null}catch{return null}}async function N8(y){let n=await cy(),{PublicKey:o}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),T=new o(y),{baseDecimal:C}=BH(gy.Solana),H=await n.getBalance(T),U=[OT.from({chain:gy.Solana,fromBaseDecimal:C,value:H||0})],_=await n.getParsedTokenAccountsByOwner(T,{programId:f});for(let{account:A}of _.value){let J=A.data.parsed.info,L=J.mint,G=J.tokenAmount.amount;if(Number(G)===0)continue;let q=await zH(L),W=q?.symbol||"UNKNOWN",M=q?.decimals||J.tokenAmount.decimals;U.push(OT.from({asset:`${gy.Solana}.${W}-${L}`,fromBaseDecimal:M,value:G}))}return U}function Oo(y){try{let n=new Tf(y);return Tf.isOnCurve(n.toBytes())}catch{return!1}}function O8(y){let n=y&&"index"in y?y.index||0:0,o=L8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:B8(Y8[gy.Solana],{index:n})),f;async function T(){if(f)return f;return f=await z8(y).with({phrase:LH.string},({phrase:H})=>No({derivationPath:o,phrase:H})).with({signer:LH.any},({signer:H})=>H).otherwise(()=>{return}),f}async function C(){let H=await T();return H?.publicKey?YH(H.publicKey):""}return{broadcastTransaction:wT(cy),createKeysForPath:No,createTransaction:wo(cy),createTransactionFromInstructions:k8,estimateTransactionFee:w8(cy),getAddress:C,getAddressFromPubKey:YH,getBalance:Qy(gy.Solana),getBalanceFromRPC:N8,getConnection:cy,getPubkeyFromAddress:(H)=>new Tf(H),signAndBroadcastTransaction:async(H)=>{let U=await MH(cy,T)(H);return wT(cy)(U)},signTransaction:MH(cy,T),transfer:S8(cy,T),validateAddress:Oo}}function w8(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let H=await y(),_=(await wo(y)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:n,sender:C})).compileMessage(),A=await H.getFeeForMessage(_);if(A.value===null)throw new pf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:J}=BH(gy.Solana);return OT.from({chain:gy.Solana,fromBaseDecimal:J,value:A.value})}}async function cy(){let{Connection:y}=await import("@solana/web3.js"),n=await M8(gy.Solana);return new y(n,{commitment:"confirmed",fetchMiddleware:(o,f,T)=>{let C={};for(let[H,U]of Object.entries(f?.headers??{})){let _=H.toLowerCase();if(_!=="pragma"&&_!=="solana-client")C[H]=U}T(o,{...f,headers:C})}})}function D8(y){return async({assetValue:n,recipient:o,sender:f,isProgramDerivedAddress:T})=>{let C=await y(),H=new Tf(f);if(n.isGasAsset){let{Transaction:U,SystemProgram:_}=await import("@solana/web3.js");return new U().add(_.transfer({fromPubkey:H,lamports:n.getBaseValue("number"),toPubkey:new Tf(o)}))}if(n.address)return R8({amount:n.getBaseValue("number"),connection:C,decimals:n.decimal,from:H,isProgramDerivedAddress:T,recipient:o,tokenAddress:n.address});return}}async function R8({tokenAddress:y,recipient:n,from:o,connection:f,amount:T,decimals:C,isProgramDerivedAddress:H}){let{getAssociatedTokenAddress:U,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:J}=await import("@solana/spl-token"),{Transaction:L}=await import("@solana/web3.js"),G=new L,q=new Tf(y),W=await U(q,o),M=new Tf(n),w=await U(q,M,H),N=!1;try{await _(f,w),N=!0}catch{}if(!N)G.add(A(o,w,M,q));return G.add(J(W,q,w,o,T,C)),G}function wo(y){return async({recipient:n,assetValue:o,memo:f,isProgramDerivedAddress:T,sender:C})=>{let{createMemoInstruction:H}=await import("@solana/spl-memo"),U=new Tf(C);if(!(T||Oo(n)))throw new pf("core_transaction_invalid_recipient_address");let _=await y(),A=await D8(y)({assetValue:o,isProgramDerivedAddress:T,recipient:n,sender:C});if(!A)throw new pf("core_transaction_invalid_sender_address");if(f)A.add(H(f));let J=await _.getLatestBlockhash();return A.recentBlockhash=J.blockhash,A.feePayer=U,A}}async function k8({instructions:y}){let{Transaction:n}=await import("@solana/web3.js"),o=new n().add(...y);if(!o)throw new pf("core_transaction_invalid_sender_address");return o}function S8(y,n){return async({recipient:o,assetValue:f,memo:T,isProgramDerivedAddress:C})=>{let H=await n();if(!H)throw new pf("core_transaction_invalid_sender_address");let U=H.publicKey?.toString()??(await H.connect()).publicKey.toString(),_=await wo(y)({assetValue:f,isProgramDerivedAddress:C,memo:T,recipient:o,sender:U});if("signTransaction"in H){let A=await H.signTransaction(_);return wT(y)(A)}return _.sign(H),wT(y)(_)}}function wT(y){return async(n)=>{return(await y()).sendRawTransaction(n.serialize())}}function MH(y,n){return async(o)=>{let f=await n();if(!f)throw new pf("toolbox_solana_no_signer");let{VersionedTransaction:T}=await import("@solana/web3.js");if(!(o instanceof T)){let H=await(await y()).getLatestBlockhash();o.recentBlockhash=H.blockhash,o.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(o);return o.sign([f]),o}}async function No({phrase:y,derivationPath:n=Z8.SOL}){let{HDKey:o}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:T}=await import("@solana/web3.js"),C=f(y),H=o.fromMasterSeed(C);return T.fromSeed(H.derive(n,!0).privateKey)}function YH(y){return y.toString()}var NH=P(()=>{jy()});var Do={};ny(Do,{validateSolanaAddress:()=>Oo,getSolanaToolbox:()=>O8,fetchTokenMetaData:()=>zH,createKeysForPath:()=>No});var Ro=P(()=>{NH()});import{AssetValue as DT,Chain as RT,DerivationPath as wH,derivationPathToString as F8,getChainConfig as x8,getRPCUrl as Fo,NetworkDerivationPath as l8,SwapKitError as Ny,updateDerivationPath as $8}from"@swapkit/helpers";import{match as ko,P as Ef}from"ts-pattern";function kT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function ST({phrase:y,derivationPath:n=wH.STRK}){let{HDKey:o}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:T,hash:C,encode:H,CallData:U}=await import("starknet"),_=f(y),J=o.fromMasterSeed(_).derive(n);if(!J.privateKey)throw new Ny("toolbox_starknet_no_signer");let L=H.addHexPrefix(Buffer.from(J.privateKey).toString("hex")),G=T.starkCurve.grindKey(L),q=H.addHexPrefix(G),W=T.starkCurve.getStarkKey(q),M=U.compile([W,0]);return{address:C.calculateContractAddressFromHash(W,xo,M,0),privateKey:q,publicKey:W}}async function lo({phrase:y,derivationPath:n=wH.STRK}){let{Account:o,RpcProvider:f}=await import("starknet"),{privateKey:T,address:C}=await ST({derivationPath:n,phrase:y}),H=await Fo(RT.Starknet),U=new f({nodeUrl:H});return new o({address:C,provider:U,signer:T})}function DH(y){let n=RT.Starknet,o=y&&"index"in y?y.index||0:0,f=F8(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:$8(l8[n],{index:o})),T,C,H;async function U(){if(C)return C;let{RpcProvider:Y}=await import("starknet"),X=await Fo(n);return C=new Y({nodeUrl:X}),C}async function _(Y){let X=await U(),Z=Y||await G();if(!Z)return!1;try{return await X.getClassHashAt(Z),!0}catch(D){if(D instanceof Error&&D.message.includes("Contract not found"))return!1;let k=D;if(k?.code===20||k?.code===19)return!1;throw D}}async function A(){let{CallData:Y,hash:X}=await import("starknet"),Z=await U(),D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");if(!H)throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return D.address;let R=Y.compile([H,0]);if(X.calculateContractAddressFromHash(H,xo,R,0).toLowerCase()!==D.address.toLowerCase())throw new Ny({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:H,classHash:xo,constructorCalldata:R},{transaction_hash:z}=await D.deployAccount(x);return await Z.waitForTransaction(z),z}async function J(){if(!await _()){if(!H)throw new Ny({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 A()}}async function L(){if(T)return T;return T=await ko(y).with({phrase:Ef.string},async({phrase:Y})=>{let{Account:X,RpcProvider:Z}=await import("starknet"),{privateKey:D,address:k,publicKey:R}=await ST({derivationPath:f,phrase:Y});H=R;let S=await Fo(RT.Starknet),x=new Z({nodeUrl:S});return new X({address:k,provider:x,signer:D})}).with({address:Ef.string,privateKey:Ef.string},async({privateKey:Y,address:X})=>{let{Account:Z}=await import("starknet"),D=await U();return new Z({address:X,provider:D,signer:Y})}).with({signer:Ef.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),T}async function G(){return(await L())?.address??""}async function q(Y){let X=await U(),{uint256:Z,CallData:D}=await import("starknet"),k=[],R=[So,OH];for(let S of R)try{let[x="0",z="0"]=await X.callContract({calldata:D.compile({account:Y}),contractAddress:S,entrypoint:"balanceOf"}),F=Z.uint256ToBN({high:x,low:z});ko(S).with(So,()=>{k.push(DT.from({chain:n,value:F}))}).with(OH,()=>{if(F>0n)k.push(DT.from({asset:`${n}.ETH-${S}`,value:F}))}).otherwise(()=>{})}catch{}return k}async function W({recipient:Y,assetValue:X}){let{CallData:Z,uint256:D}=await import("starknet");if(!kT(Y))throw new Ny("core_transaction_invalid_recipient_address",{address:Y});let k=X.isGasAsset?So:X.address;if(!k)throw new Ny("toolbox_starknet_invalid_address",{address:k,assetValue:X});let R=D.bnToUint256(X.getBaseValue("bigint"));return[{calldata:Z.compile([Y,R]),contractAddress:k,entrypoint:"transfer"}]}async function M({recipient:Y,assetValue:X,sender:Z}){let{baseDecimal:D}=x8(RT.Starknet),k=await L(),R=await ko({sender:Z,signer:k}).with({sender:Ef.string},async({sender:S})=>{let{Account:x}=await import("starknet"),z=await U();return new x({address:S,provider:z,signer:"0x0"})}).with({signer:Ef.nonNullable},({signer:S})=>S).otherwise((S)=>{throw new Ny({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:S}})});try{let S=await W({assetValue:X,recipient:Y}),x=await R.estimateInvokeFee(S);if(x?.overall_fee)return DT.from({chain:n,fromBaseDecimal:D,value:x.overall_fee})}catch(S){throw new Ny("toolbox_starknet_fee_estimation_failed",S)}return DT.from({chain:n,value:"0.00001"})}async function w({recipient:Y,assetValue:X,memo:Z}){let D=await L();if(!D)throw new Ny("toolbox_starknet_no_signer");await J();let k=await W({assetValue:X,memo:Z,recipient:Y});return(await D.execute(k)).transaction_hash}async function N(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");let Z=await X.signMessage(Y);return Array.isArray(Z)?Z:[Z.r.toString(),Z.s.toString()]}async function Q(Y){let X=await L();if(!X)throw new Ny("toolbox_starknet_no_signer");return await J(),(await X.execute(Y)).transaction_hash}function O(Y){return Q(Y)}function B(Y,X=!0){try{return Qy(n)(Y,X)}catch{return q(Y)}}return{broadcastTransaction:Q,createKeysForPath:lo,createTransaction:W,deployAccount:A,estimateTransactionFee:M,getAddress:G,getBalance:B,getProvider:U,isAccountDeployed:_,signAndBroadcastTransaction:O,signMessage:N,transfer:w,validateAddress:kT}}var So="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",OH="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xo="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var RH=P(()=>{jy()});var FT={};ny(FT,{validateStarknetAddress:()=>kT,starknetCreateKeysForPath:()=>lo,getStarknetToolbox:()=>DH,deriveStarknetKeys:()=>ST});var xT=P(()=>{RH()});import{isValidSuiAddress as I8}from"@mysten/sui/utils";import{AssetValue as Vf,Chain as lT,getChainConfig as P8,SwapKitError as ky}from"@swapkit/helpers";import{match as p8,P as kH}from"ts-pattern";async function FH(y,n,o,f=[],T){let C=await y.getCoins({coinType:o,cursor:T,owner:n}),H=[...f,...C.data];return C.hasNextPage?FH(y,n,o,H,C.nextCursor):H}function E8(y,n,o){let f=n.reduce((_,A)=>_+BigInt(A.balance),0n);if(f<o)throw new ky("toolbox_sui_insufficient_balance",{available:f.toString(),required:o.toString()});let{ids:T}=n.reduce((_,A)=>{if(_.total>=o)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),C=T[0],H=T.slice(1);if(H.length>0)y.mergeCoins(C,H);let[U]=y.splitCoins(C,[o]);return U}function xH(y){try{return I8(y)}catch{return!1}}function SH(y){return"signWithIntent"in y}function V8({provider:y,...n}={}){let o;async function f(){if(o)return o;return o=await p8(n).with({phrase:kH.string},async({phrase:W})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(W)}).with({signer:kH.any},({signer:W})=>W).otherwise(()=>{return}),o}async function T(W=y){let{SuiClient:M,getFullnodeUrl:w}=await import("@mysten/sui/client");return new M({url:W||w("mainnet")})}async function C(){return(await f())?.toSuiAddress()||""}function H(W){try{let M=Vf.from({address:W,chain:lT.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function U(W){let M=W||await C();if(!M)throw new ky("toolbox_sui_address_required");let{baseDecimal:w,chain:N}=P8(lT.Sui);try{let Q=await T(),{totalBalance:O}=await Q.getBalance({owner:M}),B=[Vf.from({chain:N,fromBaseDecimal:w,value:O})],Y=await Q.getAllBalances({owner:M});for(let{coinType:X,totalBalance:Z}of Y){if(X==="0x2::sui::SUI"||Number(Z)<=0)continue;let D=H(X);if(D)B.push(Vf.from({asset:D.asset,fromBaseDecimal:D.decimals,value:Z}))}return B}catch{return[Vf.from({chain:N})]}}async function _(W){let M=Vf.from({chain:lT.Sui,value:"0.01"});if(!W)return M;try{let w=await T(),{txBytes:N}=await A(W),{effects:{status:Q,gasUsed:O}}=await w.dryRunTransactionBlock({transactionBlock:N});if(Q.status!=="success")return M;let B=Number(O.computationCost)+Number(O.storageCost)-Number(O.storageRebate);return Vf.from({chain:lT.Sui,value:B.toString()})}catch{return M}}async function A({recipient:W,assetValue:M,gasBudget:w,sender:N}){let{Transaction:Q}=await import("@mysten/sui/transactions"),O=N||await C();if(!O)throw new ky("toolbox_sui_no_sender");try{let B=new Q;if(B.setSender(O),M.isGasAsset||M.symbol==="SUI"){let[Z]=B.splitCoins(B.gas,[M.getBaseValue("string")]);B.transferObjects([Z],W)}else{let Z=M.address;if(!Z)throw new ky("toolbox_sui_missing_coin_type");let D=await T(),k=M.getBaseValue("bigint"),R=await FH(D,O,Z);if(!R.length)throw new ky("toolbox_sui_no_coins_found",{coinType:Z});let S=E8(B,R,k);B.transferObjects([S],W)}if(w)B.setGasBudget(w);let Y=await T(),X=await B.build({client:Y});return{tx:B,txBytes:X}}catch(B){if(B instanceof ky)throw B;throw new ky("toolbox_sui_transaction_creation_error",{error:B})}}async function J(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");if(W instanceof Uint8Array)return M.signTransaction(W);let{txBytes:w}="tx"in W?W:await A(W);return M.signTransaction(w)}async function L({assetValue:W,gasBudget:M,recipient:w}){let N=await f();if(!N)throw new ky("toolbox_sui_no_signer");let Q=N.toSuiAddress()||await C();if(!Q)throw new ky("toolbox_sui_no_sender");let{txBytes:O}=await A({assetValue:W,gasBudget:M,recipient:w,sender:Q}),B=await T();if(!SH(N)){let X=await N.signTransaction(O),{digest:Z}=await B.executeTransactionBlock({signature:X.signature,transactionBlock:X.bytes});return Z}let{digest:Y}=await B.signAndExecuteTransaction({signer:N,transaction:O});return Y}async function G(W){let M=await T(),{digest:w}=await M.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return w}async function q(W){let M=await f();if(!M)throw new ky("toolbox_sui_no_signer");let w=await T(),N;if(typeof W==="string")N=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)N=W;else N=await W.build({client:w});if(!SH(M)){let O=await M.signTransaction(N),{digest:B}=await w.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return B}let{digest:Q}=await w.signAndExecuteTransaction({signer:M,transaction:N});return Q}return{broadcastTransaction:G,createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:U,signAndBroadcastTransaction:q,signTransaction:J,transfer:L,validateAddress:xH}}var lH=()=>{};var $T={};ny($T,{validateSuiAddress:()=>xH,getSuiToolbox:()=>V8});var IT=P(()=>{lH()});import{getHttpEndpoint as t8}from"@orbs-network/ton-access";import{AssetValue as b8,Chain as zn,getChainConfig as v8,getRPCUrl as u8,SwapKitError as Bn,SwapKitNumber as j8}from"@swapkit/helpers";import{mnemonicToWalletKey as K8}from"@ton/crypto";import{Address as iy,beginCell as $o,Cell as $H,external as h8,internal as m8,JettonMaster as c8,loadStateInit as g8,SendMode as IH,storeMessage as i8,TonClient as d8,toNano as VH,WalletContractV4 as r8}from"@ton/ton";import{match as PH,P as Io}from"ts-pattern";async function fA(){let y=Date.now();if(PT&&y-EH<yA)return PT;try{return PT=await t8(),EH=y,PT}catch{return u8(zn.Ton)}}function nA(y={}){let n,o,f;async function T(){if(!n){let B=y.provider??await fA();n=new d8({endpoint:B})}return n}async function C(){return(await U()).address.toString()}async function H(){if(f)return f;return f=await PH(y).with({phrase:Io.string},async({phrase:B})=>K8(B.split(" "))).with({signer:Io.any},({signer:B})=>B).otherwise(()=>{return}),f}async function U(B){if(!o||B){let Y=await H(),X=await T(),Z=B||Y;if(!Z)throw new Bn("core_wallet_connection_not_found");let D=r8.create({publicKey:Z.publicKey,workchain:0});o=X.open(D)}return o}let _=Qy(zn.Ton);async function A({assetValue:B,recipient:Y,memo:X,sender:Z}){if(B.isGasAsset){let V=X?O(X).toBoc().toString("base64"):void 0;return[{address:Y,amount:B.getBaseValue("string"),payload:V}]}let D=B.address;if(!D)throw new Bn({errorKey:"core_swap_contract_not_found",info:{asset:B.toString()}});let k=Z??await C(),R=await N({jettonMasterAddress:D,ownerAddress:k}),S=iy.parse(Y),x=iy.parse(k),z=B.getBaseValue("bigint"),F=X?O(X):void 0,l=Q({destinationAddress:S,forwardPayload:F,jettonAmount:z,responseAddress:x});return[{address:R.toString(),amount:e8.toString(),payload:l.toBoc().toString("base64")}]}function J({sender:B,...Y}){return A({...Y,sender:B})}function L(B){return B.map((Y)=>{let X=Y.payload?$H.fromBase64(Y.payload):void 0,Z=Y.stateInit?g8($H.fromBase64(Y.stateInit).asSlice()):void 0,D=iy.parse(Y.address),k=iy.isFriendly(Y.address)?iy.parseFriendly(Y.address).isBounceable:!0;return m8({body:X,bounce:k,init:Z,to:D,value:BigInt(Y.amount)})})}async function G(B){let Y=await H(),X=await U();if(!X||!Y)throw new Bn("core_wallet_connection_not_found");let Z=await T(),{state:D}=await Z.getContractState(X.address),k=D==="active",R=k?await X.getSeqno():0,S=X.createTransfer({messages:L(B),secretKey:Y.secretKey,sendMode:pH,seqno:R}),x=h8({body:S,init:k?void 0:X.init,to:X.address});return $o().store(i8(x)).endCell()}async function q(B){return await(await T()).sendFile(B.toBoc()),B.hash().toString("hex")}async function W(B){let Y=await G(B);return q(Y)}async function M({assetValue:B,recipient:Y,memo:X}){let Z=await J({assetValue:B,memo:X,recipient:Y});return W(Z)}async function w({sender:B,...Y}){let{baseDecimal:X}=v8(zn.Ton),Z=await PH(B).with(Io.string,(R)=>{return iy.parseFriendly(R).address}).otherwise(async()=>{return(await U()).address});if(!Z)throw new Bn("toolbox_fee_estimation_failed",{chain:zn.Ton});let D=b8.from({chain:zn.Ton,value:"0.01"}),k=await T();try{let R=await J({sender:B,...Y}),S=await H(),x=await U();if(!x||!S)return D;let z=await x.getSeqno(),F=x.createTransfer({messages:L(R),secretKey:S.secretKey,sendMode:pH,seqno:z}),{source_fees:l}=await k.estimateExternalMessageFee(Z,{body:F,ignoreSignature:!0,initCode:null,initData:null}),V=l.in_fwd_fee+l.storage_fee+l.gas_fee+l.fwd_fee;return D.set(j8.fromBigInt(BigInt(V),X))}catch{return D}}async function N({jettonMasterAddress:B,ownerAddress:Y}){try{let X=await T(),Z=iy.parse(B),D=iy.parse(Y);return await X.open(c8.create(Z)).getWalletAddress(D)}catch{throw new Bn({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:B,ownerAddress:Y}})}}function Q({jettonAmount:B,destinationAddress:Y,responseAddress:X,forwardAmount:Z=s8,forwardPayload:D}){let k=$o().storeUint(a8,32).storeUint(0,64).storeCoins(B).storeAddress(Y).storeAddress(X).storeBit(0).storeCoins(Z);if(D)k.storeBit(1).storeRef(D);else k.storeBit(0);return k.endCell()}function O(B){return $o().storeUint(0,32).storeStringTail(B).endCell()}return{broadcastTransaction:q,createTransaction:J,estimateTransactionFee:w,getAddress:C,getBalance:_,getJettonWalletAddress:N,sign:G,signAndBroadcastTransaction:W,transfer:M,validateAddress:tH}}function tH(y){try{return iy.parse(y),!0}catch{return!1}}var a8=260734629,s8,e8,pH,yA=60000,PT,EH=0;var bH=P(()=>{jy();s8=VH("0.01"),e8=VH("0.05"),pH=IH.PAY_GAS_SEPARATELY+IH.IGNORE_ERRORS});var pT={};ny(pT,{validateTonAddress:()=>tH,getTONToolbox:()=>nA});var ET=P(()=>{bH()});import{NetworkDerivationPath as TA}from"@swapkit/helpers";function Sy(y,n){if(!Number.isInteger(n)||n<0)throw RangeError(`${y} must be a non-negative integer, got: ${n}`)}function of({accountIndex:y,chain:n,derivationPath:o}){if(y!==void 0)Sy("accountIndex",y);let f=[...o?.slice(0,3)??TA[n].slice(0,3)];if(y!==void 0)f[2]=y;return f}function tf({accountIndex:y,change:n=!1,chain:o,derivationPath:f,index:T}){return Sy("index",T),[...of({accountIndex:y,chain:o,derivationPath:f}),Number(n),T]}function Lf(y){return y[2]??0}function vH({deriveAddress:y,getBalance:n,getUtxos:o}){async function f(U){let{accountIndex:_,count:A,startIndex:J=0,change:L=!1}=U;if(Sy("count",A),A<1)throw RangeError("count must be at least 1");Sy("startIndex",J);let G=[];for(let q=0;q<A;q++){let W=await y({accountIndex:_,change:L,index:J+q});if(W)G.push(W)}return G}async function T(U){let{gapLimit:_=20,change:A=!1}=U??{},J=[],L=0,G=0;while(L<_){let q=await y({change:A,index:G});if(!q)break;if((await n(q.address)).some((w)=>w.getValue("number")>0))J.push(q),L=0;else L++;G++}return J}async function C(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A],L=await Promise.all(J.map(async(q)=>{let M=(await n(q.address)).reduce((w,N)=>w+N.getValue("number"),0);return{...q,balance:M}})),G=L.reduce((q,W)=>q+W.balance,0);return{addresses:L,total:G}}async function H(U=20){let[_,A]=await Promise.all([T({change:!1,gapLimit:U}),T({change:!0,gapLimit:U})]),J=[..._,...A];return(await Promise.all(J.map(async(G)=>{return(await o(G.address)).map((W)=>({...W,address:G.address,derivationIndex:G.index,isChange:G.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:C,getAggregatedUtxos:H,scanForAddresses:T}}var Nn=()=>{};import{Chain as Uy,getRPCUrl as oA,RequestClient as VT,SKConfig as CA,SwapKitError as Vy,warnOnce as HA}from"@swapkit/helpers";import{NETWORKS as bf}from"@swapkit/utxo-signer";async function UA({chain:y,txHash:n}){let o=`${On(y)}/push/transaction`,f=JSON.stringify({data:n});try{let T=await VT.post(o,{body:f,headers:{"Content-Type":"application/json"}});if(T.context.code!==200)throw new Vy("toolbox_utxo_broadcast_failed",{error:T.context.error||"Transaction broadcast failed"});return T.data?.transaction_hash||n}catch(T){let C=await oA(y);if(C){let H=JSON.stringify({id:VC(),jsonrpc:"2.0",method:"sendrawtransaction",params:[n]}),U=await VT.post(C,{body:H,headers:{"Content-Type":"application/json"}});if(U.error)throw new Vy("toolbox_utxo_broadcast_failed",{error:U.error?.message});if(U.result.includes('"code":-26'))throw new Vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return U.result}throw T}}function On(y){return`https://api.blockchair.com/${_A(y)}`}function uH(y){switch(y){case Uy.Bitcoin:return 5;case Uy.Dogecoin:return 1e4;case Uy.Litecoin:return 1;case Uy.Zcash:return 1;default:return 2}}function _A(y){switch(y){case Uy.BitcoinCash:return"bitcoin-cash";case Uy.Litecoin:return"litecoin";case Uy.Dash:return"dash";case Uy.Dogecoin:return"dogecoin";case Uy.Zcash:return"zcash";case Uy.Polkadot:return"polkadot";default:return"bitcoin"}}async function AA(y){try{let{feePerKb:n}=await VT.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),o=n/1000;return Math.max(o,uH(y))}catch{return uH(y)}}async function tT(y,n){let o=await VT.get(`${y}${n?`${y.includes("?")?"&":"?"}key=${n}`:""}`);if(!o||o.context.code!==200)throw new Vy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return o.data}async function KH({address:y,chain:n,apiKey:o}){if(!y)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await tT(`${On(n)}/dashboards/address/${y}?transaction_details=true`,o))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function qA({address:y,chain:n,apiKey:o}){return(await KH({address:y,apiKey:o,chain:n}))?.address.balance||0}async function hH({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await tT(`${On(y)}/raw/transaction/${o}`,n))?.[o]?.raw_transaction||""}catch(f){let T=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${T}`),""}}async function WA({chain:y,apiKey:n,txHash:o}){if(!o)throw new Vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let T=(await tT(`${On(y)}/dashboards/transaction/${o}`,n))?.[o];if(!T)throw new Vy("toolbox_utxo_tx_not_found",{txHash:o});let{transaction:C,inputs:H,outputs:U}=T,_=H.map((J)=>J.spending_sequence),A=C.is_rbf===!0||_.some((J)=>J<GA);return{blockId:C.block_id,confirmed:C.block_id!==-1,fee:C.fee,inputs:H,isRBF:A,outputs:U,sequences:_,size:C.size,txid:C.hash,weight:C.weight}}async function XA({chain:y,address:n,apiKey:o,offset:f=0,limit:T=30}){return(await tT(`${On(y)}/outputs?q=recipient(${n}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${T}&offset=${f}`,o)).map(({is_spent:_,script_hex:A,block_id:J,transaction_hash:L,index:G,value:q,spending_signature_hex:W})=>({hash:L,index:G,is_confirmed:J!==-1,is_spent:_,script_hex:A,txHex:W,value:q}))}function QA(y){return y.reduce((n,o)=>n+o.value,0)}function jH(y,n){let o=[...y].sort((f,T)=>T.value-f.value);if(n){let f=[],T=0;for(let C of o)if(f.push(C),T+=C.value,T>=n)break;return f}return o}async function mH({chain:y,address:n,apiKey:o,targetValue:f,accumulativeValue:T=0,offset:C=0,limit:H=30}){if(!n)throw new Vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let U=await XA({address:n,apiKey:o,chain:y,limit:H,offset:C,targetValue:f}),A=U.length<H,J=U.filter(({is_spent:w})=>!w),L=QA(J),G=T+L,q=f&&G>=f;if(A||q)return jH(J,f);let W=await mH({accumulativeValue:G,address:n,apiKey:o,chain:y,limit:H,offset:C+H,targetValue:f}),M=[...J,...W];return jH(M,f)}catch(U){let _=U instanceof Error?U.message:String(U);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function JA({address:y,chain:n,apiKey:o,fetchTxHex:f=!0,targetValue:T}){let C=await mH({address:y,apiKey:o,chain:n,targetValue:T}),H=[];for(let{hash:U,index:_,script_hex:A,value:J}of C){let L;if(f)L=await hH({apiKey:o,chain:n,txHash:U});H.push({address:y,hash:U,index:_,txHex:L,value:J,witnessUtxo:{script:Buffer.from(A,"hex"),value:J}})}return H}function yy(y){let n=CA.get("apiKeys").blockchair||"";return HA({condition:!n,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(o)=>UA({chain:y,txHash:o}),getAddressData:(o)=>KH({address:o,apiKey:n,chain:y}),getBalance:(o)=>qA({address:o,apiKey:n,chain:y}),getRawTx:(o)=>hH({apiKey:n,chain:y,txHash:o}),getSuggestedTxFee:()=>AA(y),getTransactionDetails:(o)=>WA({apiKey:n,chain:y,txHash:o}),getUtxos:(o)=>JA({...o,apiKey:n,chain:y})}}function ZA(y){return y}function LA(){return function(n){switch(n){case Uy.Bitcoin:return bf.bitcoin;case Uy.BitcoinCash:return bf.bitcoinCash;case Uy.Dash:return bf.dash;case Uy.Litecoin:return bf.litecoin;case Uy.Dogecoin:return bf.dogecoin;case Uy.Zcash:return bf.zcash;default:throw new Vy("toolbox_utxo_not_supported",{chain:n})}}}var GA=4294967294;var cH=P(()=>{jy()});import{CashAddrType as bT,decodeCashAddr as MA,encodeCashAddr as YA}from"@swapkit/utxo-signer";function NA(y,n,o){return YA({hash:o,prefix:y,type:BA[n]})}function OA(y){let n=MA(y),o=zA[n.type];if(!o)throw Error(`Unknown CashAddr type: ${n.type}`);return{hash:n.hash,prefix:n.prefix,type:o}}var BA,zA,Po;var gH=P(()=>{BA={P2PKH:bT.P2PKH,P2SH:bT.P2SH},zA={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};Po={decode:OA,encode:NA}});import{sha256 as wA}from"@noble/hashes/sha2.js";import{createBase58check as DA}from"@scure/base";import{SwapKitError as dH}from"@swapkit/helpers";function Eo(y){try{return vT(y),!0}catch{return!1}}function Vo(y){return vT(y)?.network}function dy(y){let n=vT(y);if(n?.format==="legacy")return y;return SA(n)}function wn(y){let n=vT(y);return FA(n)}function vT(y){try{let n=RA(y);if(n)return n}catch{}try{let n=kA(y);if(n)return n}catch{}throw new dH("toolbox_utxo_invalid_address",{address:y})}function RA(y){try{let n=rH.decode(y);if(n.length!==21)throw new dH("toolbox_utxo_invalid_address",{address:y});let o=n[0],f=Array.prototype.slice.call(n,1);switch(o){case Mf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Mf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Mf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Mf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Mf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Mf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function kA(y){if(y.indexOf(":")!==-1)try{return iH(y)}catch{}else{let n=["bitcoincash","bchtest","bchreg"];for(let o of n)try{return iH(`${o}:${y}`)}catch{}}return}function iH(y){try{let{hash:n,prefix:o,type:f}=Po.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(n,0),network:o==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function SA(y){let n=Mf.legacy[y.network][y.type],o=Buffer.alloc(1+y.hash.length);return o[0]=n,o.set(y.hash,1),rH.encode(o)}function FA(y){let n=y.network==="mainnet"?"bitcoincash":"bchtest",o=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return Po.encode(n,o,f)}var rH,po,Mf;var aH=P(()=>{gH();rH=DA(wA);((o)=>{o.Mainnet="mainnet";o.Testnet="testnet"})(po||={});Mf={["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 xA}from"@swapkit/helpers";import{Script as lA}from"@swapkit/utxo-signer";function My(y){let n=new Uint8Array(Buffer.from(y,"utf8"));return lA.encode(["RETURN",n])}var $A=1000,jT=10,KT=2,sH=10,IA=41,PA=107,hT,uT,Dn,vf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new xA("toolbox_utxo_invalid_address",{address:y})},Yf=({inputs:y,outputs:n,feeRate:o})=>{let f=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",C=(o?y.filter((A)=>A.value>=uT["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(o)):y).reduce((A,J)=>A+Cf(J),0),H=n?.reduce((A,J)=>A+Rn(J),0)||Dn[f],U=jT+C+H;return f==="P2WPKH"?Math.ceil(U+KT/4):U},Cf=(y)=>{if("type"in y&&y.type)return uT[y.type];if("address"in y&&y.address)return uT[vf(y.address)];return IA+PA},Rn=(y,n)=>{if(y?.script)return sH+y.script.length+(y.script.length>=74?2:1);if(n)return Dn[n];if("address"in y&&y.address)return Dn[vf(y.address)];return Dn.P2PKH};var to=P(()=>{((o)=>{o.P2PKH="P2PKH";o.P2WPKH="P2WPKH"})(hT||={});uT={["P2PKH"]:148,["P2WPKH"]:68},Dn={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Bf,SwapKitError as pA}from"@swapkit/helpers";function kn(y){switch(y){case Bf.Bitcoin:case Bf.BitcoinCash:return 550;case Bf.Dash:case Bf.Litecoin:return 5500;case Bf.Dogecoin:return 1e5;case Bf.Zcash:return 546;default:throw new pA("toolbox_utxo_not_supported",{chain:y})}}function Fy({inputs:y,outputs:n,feeRate:o=1,chain:f=Bf.Bitcoin,changeAddress:T=""}){let C=y[0]&&"address"in y[0]&&y[0].address?vf(y[0].address):"P2PKH",H=y.filter((W)=>Cf(W)*o<=W.value),_=C==="P2WPKH"?Math.ceil(KT/4):0,A=jT+_+n.reduce((W,M)=>W+Rn(M),0),J=n.reduce((W,M)=>W+M.value,0),L=A*o,G=0,q=[];for(let W of H){let M=Cf(W),w=o*M;L+=w,G+=W.value,q.push(W);let N=L+J;if(G<N)continue;let Q=G-N,O=o*Rn({address:T,value:0});if(Q>O){let B=O+L,Y=G-(J+Math.ceil(B));if(Y>Math.max(Cf({value:0})*o,kn(f)))return{fee:Math.ceil(B),inputs:q,outputs:n.concat({address:T,value:Y})}}return{fee:Math.ceil(L),inputs:q,outputs:n}}return{fee:Math.ceil(o*Yf({inputs:y,outputs:n}))}}var eH=P(()=>{to()});var uf=P(()=>{cH();aH();eH();to()});import{Address as EA,ZCASH_NETWORK as VA}from"@swapkit/utxo-signer";function zf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Hf(y){let n=zf(y);return Eo(n)&&Vo(n)==="mainnet"}function jf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let o=EA(VA).decode(y);return o.type==="pkh"||o.type==="sh"}catch{return!1}}var Sn=P(()=>{uf()});import{secp256k1 as tA}from"@noble/curves/secp256k1.js";import{hex as Nf}from"@scure/base";import{HDKey as T5}from"@scure/bip32";import{mnemonicToSeedSync as vo}from"@scure/bip39";import{AssetValue as mT,applyFeeMultiplier as y5,Chain as fy,derivationPathToString as Fn,FeeOption as ty,NetworkDerivationPath as o5,SwapKitError as g,SwapKitNumber as bA,updateDerivationPath as vA,warnOnce as uA}from"@swapkit/helpers";import{Address as jA,BCHSigHash as uo,CashAddrPrefix as KA,CashAddrType as hA,encodeCashAddr as mA,NETWORKS as Kf,p2pkh as f5,p2wpkh as cA,RBF_SEQUENCE as gA,SigHash as C5,Transaction as bo,WIF as H5}from"@swapkit/utxo-signer";import{match as U5}from"ts-pattern";function jo({address:y,chain:n}){return U5(n).with(fy.BitcoinCash,()=>Hf(y)).with(fy.Zcash,()=>jf(y)).otherwise(()=>{try{return jA(Gy(n)).decode(y),!0}catch{return!1}})}function Gy(y){return U5(y).with(fy.Bitcoin,()=>Kf.bitcoin).with(fy.BitcoinCash,()=>Kf.bitcoinCash).with(fy.Dash,()=>Kf.dash).with(fy.Dogecoin,()=>Kf.dogecoin).with(fy.Litecoin,()=>Kf.litecoin).with(fy.Zcash,()=>Kf.zcash).exhaustive()}function iA({phrase:y,derivationPath:n,network:o,seed:f}){let T=f??vo(y),H=T5.fromMasterSeed(T,o.bip32).derive(n);if(!H.privateKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return H.privateKey}function n5(y){return tA.getPublicKey(y,!0)}function ln({publicKey:y,chain:n,network:o}){if(n===fy.BitcoinCash){let C=f5(y,o);if(!C.hash)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return mA({hash:C.hash,prefix:KA.MAINNET,type:hA.P2PKH}).replace(/^bitcoincash:/,"")}let T=!xn.includes(n)?cA(y,o):f5(y,o);if(!T.address)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive address"});return T.address}function hf({phrase:y,derivationPath:n,chain:o,wif:f,seed:T}){let C=Gy(o);if(f){let A=H5(C).decode(f),J=n5(A);return{privateKey:A,publicKey:J}}if(!y)throw new g("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let H=n||Fn(o5[o]),U=iA({derivationPath:H,network:C,phrase:y,seed:T}),_=n5(U);return{privateKey:U,publicKey:_}}function dA(y,n){return H5(Gy(n)).encode(y)}function rA({phrase:y,derivationPath:n,chain:o,seed:f}){let T=n.split("/");if(T.length<4)throw new g("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${T.length}): ${n}`});let C=Gy(o),H=f??vo(y),U=T5.fromMasterSeed(H,C.bip32),_=T.slice(0,4).join("/");return U.derive(_)}function Uf({inputs:y,outputs:n,chain:o,tx:f,sender:T,compiledMemo:C,enableRBF:H=!1}){let U=Gy(o),_=!xn.includes(o),A=H?gA:void 0,J=new Set;for(let L of y){let G=`${L.hash}:${L.index}`;if(J.has(G))throw new g("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});J.add(G);let q=typeof L.hash==="string"?Nf.decode(L.hash):L.hash;if(_&&L.witnessUtxo)f.addInput({index:L.index,sequence:A,txid:q,witnessUtxo:{amount:BigInt(L.witnessUtxo.value),script:L.witnessUtxo.script}});else if(L.txHex)f.addInput({index:L.index,nonWitnessUtxo:Nf.decode(L.txHex),sequence:A,txid:q,...o===fy.BitcoinCash?{sighashType:uo.ALL}:{}});else throw new g("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let L of n){let G="address"in L&&L.address?L.address:T;if(o===fy.BitcoinCash)G=dy(G);if(L.script){if(C)f.addOutput({amount:0n,script:C})}else f.addOutputAddress(G,BigInt(L.value),U)}return{inputs:y,tx:f}}async function mf(y){let n=await yy(y).getSuggestedTxFee();return{[ty.Average]:n,[ty.Fast]:y5(n,ty.Fast),[ty.Fastest]:y5(n,ty.Fastest)}}async function _5({assetValue:y,recipient:n,memo:o,sender:f,fetchTxHex:T=!1}){let C=y.chain,H=(await mf(C))[ty.Fastest],U=T||xn.includes(C),_=y.getBaseValue("number"),A=Math.ceil(_+H*5000);return{inputs:await yy(C).getUtxos({address:f,fetchTxHex:U,targetValue:A}),outputs:[{address:n,value:_},...o?[{address:"",script:My(o),value:0}]:[]]}}async function A5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T,fetchTxHex:C=!1,enableRBF:H=!1}){let U=y.chain,_=o?My(o):null,A=await _5({assetValue:y,fetchTxHex:C,memo:o,recipient:n,sender:T}),{inputs:J,outputs:L}=Fy({...A,chain:U,feeRate:f});if(!(J&&L))throw new g("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new bo({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:q,tx:W}=Uf({chain:U,compiledMemo:_,enableRBF:H,inputs:J,outputs:L,sender:T,tx:G});return{inputs:q,tx:W,utxos:A.inputs}}async function q5({assetValue:y,feeOptionKey:n=ty.Fast,feeRate:o,memo:f,sender:T,recipient:C}){let H=y.chain,U=await _5({assetValue:y,memo:f,recipient:C,sender:T}),_=o?Math.floor(o):(await mf(H))[n];return Fy({...U,chain:H,feeRate:_})}function aA(y){return async function({from:o,memo:f,feeRate:T,feeOptionKey:C=ty.Fast,recipients:H=1}){let U=await yy(y).getAddressData(o),_=T?Math.ceil(T):(await mf(y))[C],A=U?.utxo.map((M)=>({...M,hash:"",type:"P2PKH"})).filter((M)=>M.value>Math.max(kn(y),Cf(M)*_));if(!A?.length)return mT.from({chain:y});let J=BigInt(A.reduce((M,w)=>M+w.value,0)),L=mT.from({chain:y,value:J}),G=typeof H==="number"?Array.from({length:H},()=>({address:o,value:0})):H;if(f)G.push({address:o,script:My(f),value:0});let q=Yf({inputs:A,outputs:G}),W=mT.from({chain:y,value:BigInt(q*_)});return L.sub(W)}}function sA(y){return async function(o){let{fee:f}=await q5(o);return mT.from({chain:y,value:bA.fromBigInt(BigInt(f),8).getValue("string")})}}function eA({chain:y,phrase:n,derivationPath:o,seed:f}){let T=Gy(y),{privateKey:C,publicKey:H}=hf({chain:y,derivationPath:o,phrase:n,seed:f}),U=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];return{getAddress:()=>ln({chain:y,network:T,publicKey:H}),privateKey:C,publicKey:H,signTransaction:(_)=>{return _.sign(C,U),_}}}function yq(y,n){return async function({memo:f,recipient:T,feeOptionKey:C,feeRate:H,assetValue:U,enableRBF:_=!1}){let A=await n?.getAddress();if(!(n&&A))throw new g("toolbox_utxo_no_signer");if(!T)throw new g("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});uA({condition:_&&!cT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let J=_&&cT.includes(y),L=H||(await mf(y))[C||ty.Fast],{tx:G}=await A5({assetValue:U,enableRBF:J,feeRate:L,memo:f,recipient:T,sender:A}),q=await n.signTransaction(G);return q.finalize(),yy(y).broadcastTx(Nf.encode(q.extract()))}}function Ko(y){return(n)=>jo({address:n,chain:y})}function ho(y){let n=Gy(y);return function(f){if(!f)throw new g("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return ln({chain:y,network:n,publicKey:f.publicKey})}}function _f({chain:y,...n}){let o="phrase"in n?n.phrase:void 0,f="index"in n?n.index||0:0,T=o?vo(o):void 0,C="derivationPath"in n&&n.derivationPath?n.derivationPath:vA(o5[y],{index:f}),H=Fn(C),U=o?eA({chain:y,derivationPath:H,phrase:o,seed:T}):void 0,_="signer"in n?n.signer:void 0,A=U||_,J=o?hf({chain:y,derivationPath:H,phrase:o,seed:T}):void 0;function L(){if(A)return A.getAddress();return Promise.resolve(void 0)}function G(R){if(!o)return;let S=of({accountIndex:R,chain:y,derivationPath:C});return rA({chain:y,derivationPath:Fn(S),phrase:o,seed:T})}let q=G();function W(){if(!q)return;return q.publicExtendedKey}function M({accountIndex:R}={}){let S=R===void 0?q:G(R);if(!S)return;let x=of({accountIndex:R,chain:y,derivationPath:C});return{accountIndex:Lf(x),path:Fn(x),xpub:S.publicExtendedKey}}function w({accountIndex:R,index:S,change:x=!1}){let z=R===void 0?q:G(R);if(!z)return;let F=tf({accountIndex:R,chain:y,change:x,derivationPath:C,index:S}),l=Gy(y),V=z.deriveChild(Number(x)).deriveChild(S);if(!V.publicKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let p=ln({chain:y,network:l,publicKey:V.publicKey}),b=Nf.encode(V.publicKey);return{accountIndex:Lf(F),address:p,change:x,index:S,path:Fn(F),pubkey:b}}async function N(R){if(!cT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let S=await yy(y).getTransactionDetails(R);return{canReplace:S.isRBF&&!S.confirmed,confirmed:S.confirmed,enabled:S.isRBF,fee:S.fee,sequences:S.sequences,supported:!0}}async function Q({txid:R,newFeeRate:S,recipient:x,memo:z}){if(!cT.includes(y))throw new g("toolbox_utxo_rbf_not_supported",{chain:y});let F=await yy(y).getTransactionDetails(R);if(!F.isRBF)throw new g("toolbox_utxo_tx_not_replaceable",{txid:R});if(F.confirmed)throw new g("toolbox_utxo_tx_already_confirmed",{blockId:F.blockId,txid:R});let l=F.inputs.reduce((e,wy)=>e+wy.value,0),p=F.outputs.find((e)=>e.recipient===x)?.value||0;if(p===0)throw new g("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let b=await Promise.all(F.inputs.map(async(e)=>{let wy=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:wy,value:e.value,witnessUtxo:void 0}})),K=z?My(z):null,s=Yf({feeRate:S,inputs:b.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:x,value:p}]}),m=Math.ceil(s*S);if(m<=F.fee)throw new g("toolbox_utxo_rbf_fee_too_low",{newFee:m,originalFee:F.fee});let Ly=m-F.fee,oy=p-Ly;if(oy<=0)throw new g("toolbox_utxo_rbf_insufficient_change");let $y=new bo({allowLegacyWitnessUtxo:!0,version:1}),Iy=[{address:x,value:oy},...z?[{address:"",script:My(z),value:0}]:[]],Py=l-oy-m,Xy=await L();if(Py>kn(y)&&Xy)Iy.push({address:Xy,value:Py});return Uf({chain:y,compiledMemo:K,inputs:b,outputs:Iy,sender:Xy||x,tx:$y}),{feeDelta:Ly,newFee:m,originalFee:F.fee,tx:$y}}async function O({txid:R,newFeeRate:S,recipient:x,memo:z}){let{tx:F,originalFee:l,newFee:V}=await Q({memo:z,newFeeRate:S,recipient:x,txid:R}),p=await D(F);p.finalize();let b=await yy(y).broadcastTx(Nf.encode(p.extract()));return{newFee:V,originalFee:l,txid:b}}function B({accountIndex:R,index:S,change:x=!1}){Sy("index",S);let z=R===void 0?q:G(R);if(!z)return;return z.deriveChild(Number(x)).deriveChild(S).privateKey||void 0}function Y({tx:R,inputDerivations:S}){if(!q)throw new g("toolbox_utxo_no_signer");let x=y===fy.BitcoinCash?[uo.ALL]:[C5.ALL];for(let z=0;z<S.length;z++){let F=S[z];if(!F)continue;let{derivationIndex:l,isChange:V}=F,p=B({change:V,index:l});if(!p)throw new g("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${z} at index ${l}`});R.signIdx(p,z,x)}return R}async function X({utxos:R,recipient:S,assetValue:x,memo:z,feeRate:F,feeOptionKey:l,changeAddress:V}){if(!q)throw new g("toolbox_utxo_no_signer");let p=F||(await mf(y))[l||ty.Fast],b=z?My(z):null,K=[{address:S,value:x.getBaseValue("number")}];if(b)K.push({address:"",script:b,value:0});let s=R.map(({hash:Xy,index:e,value:wy,txHex:IU,witnessUtxo:X0})=>({hash:Xy,index:e,txHex:IU,value:wy,witnessUtxo:X0?{script:X0.script,value:X0.value}:void 0})),{inputs:m,outputs:Ly}=Fy({chain:y,feeRate:p,inputs:s,outputs:K});if(!(m&&Ly))throw new g("toolbox_utxo_insufficient_balance",{assetValue:x,sender:"multiple addresses"});let oy=new bo({allowLegacyWitnessUtxo:!0,version:1}),$y=R[0]?.address,Iy=V||await L()||$y||S;Uf({chain:y,compiledMemo:b,inputs:m,outputs:Ly,sender:Iy,tx:oy});let Py=m.map((Xy)=>{let e=R.find((wy)=>wy.hash===Xy.hash&&wy.index===Xy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return Y({inputDerivations:Py,tx:oy}),oy.finalize(),yy(y).broadcastTx(Nf.encode(oy.extract()))}function Z({address:R,gapLimit:S=20}){if(!q)return;for(let x=0;x<S;x++){let z=w({change:!1,index:x}),F=w({change:!0,index:x}),l=z?.address===R?!1:F?.address===R;if(z?.address===R||F?.address===R)return{change:l,index:x}}return}function D(R){if(!A)throw new g("toolbox_utxo_no_signer");return A.signTransaction(R)}async function k(R){let S=await D(R);return S.finalize(),await yy(y).broadcastTx(Nf.encode(S.extract()))}return{accumulative:Fy,broadcastTx:(R)=>yy(y).broadcastTx(R),bumpFee:O,calculateTxSize:Yf,createKeysForPath:(R)=>hf({...R,chain:y}),createReplacementTransaction:Q,createTransaction:A5,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:aA(y),estimateTransactionFee:sA(y),getAddress:L,getAddressFromKeys:ho(y),getBalance:Qy(y),getExtendedPublicKey:W,getExtendedPublicKeyInfo:M,getFeeRates:()=>mf(y),getInputsOutputsFee:q5,getNetworkForChain:()=>Gy(y),getPrivateKeyFromMnemonic:(R)=>dA(hf({...R,chain:y}).privateKey,y),isRBFEnabled:N,keys:J,resolveDerivationIndex:Z,signAndBroadcastTransaction:k,signTransaction:D,signTransactionWithMultipleKeys:Y,transfer:yq(y,A),transferFromMultipleAddresses:X,validateAddress:Ko(y)}}var xn,cT;var cf=P(()=>{jy();Nn();uf();Sn();xn=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],cT=[fy.Bitcoin]});import{hex as G5}from"@scure/base";import{Chain as fq,derivationPathToString as nq,FeeOption as Tq,NetworkDerivationPath as oq,SwapKitError as ry,updateDerivationPath as Cq}from"@swapkit/helpers";import{BCHSigHash as Hq,CashAddrPrefix as W5,CashAddrType as X5,encodeCashAddr as Q5,NETWORKS as Uq,p2pkh as J5,Transaction as Z5}from"@swapkit/utxo-signer";function $n(y){return zf(wn(y))}function _q(y){let n=Gy(by);function o(T){return T.sign(y.privateKey,[Hq.ALL]),T}function f(){let T=J5(y.publicKey,n);if(!T.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let C=Q5({hash:T.hash,prefix:W5.MAINNET,type:X5.P2PKH});return Promise.resolve(C.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:o}}function mo(y){let n="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=nq("derivationPath"in y&&y.derivationPath?y.derivationPath:Cq(oq[by],{index:o})),T=n?hf({chain:by,derivationPath:f,phrase:n}):void 0,C=T?_q(T):("signer"in y)?y.signer:void 0;function H(){return Promise.resolve(C?.getAddress())}let{getBalance:U,getFeeRates:_,broadcastTx:A,...J}=_f({chain:by});function L(W,M=!0){return U(zf(wn(W)))}function G(W){if(!C)throw new ry("toolbox_utxo_no_signer");return C.signTransaction(W)}async function q(W){let M=await G(W);return M.finalize(),await A(G5.encode(M.extract()))}return{...J,broadcastTx:A,buildTx:qq,createTransaction:L5,getAddress:H,getAddressFromKeys:Gq,getBalance:L,getFeeRates:_,signAndBroadcastTransaction:q,signTransaction:G,stripPrefix:zf,stripToCashAddress:$n,transfer:Aq({broadcastTx:A,getFeeRates:_,signer:C}),validateAddress:Hf}}async function L5({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){if(!Hf(n))throw new ry("toolbox_utxo_invalid_address",{address:n});let C=Math.ceil(y.getBaseValue("number")+f*7500),H=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:C}),U=o?My(o):null,_=[],A=dy(n);if(_.push({address:A,value:y.getBaseValue("number")}),U)_.push({script:U,value:0});let{inputs:J,outputs:L}=Fy({chain:by,feeRate:f,inputs:H,outputs:_});if(!(J&&L))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let G=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!U,version:1}),q=dy(T),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:U,inputs:J,outputs:L.map((w)=>("address"in w)&&w.address?{...w,address:dy(w.address)}:w),sender:q,tx:G});return{inputs:W,tx:M,utxos:J}}function Aq({broadcastTx:y,getFeeRates:n,signer:o}){return async function({recipient:T,assetValue:C,feeOptionKey:H=Tq.Fast,...U}){let _=await o?.getAddress();if(!(o&&_))throw new ry("toolbox_utxo_no_signer");if(!T)throw new ry("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=U.feeRate||(await n())[H],{tx:J}=await L5({...U,assetValue:C,feeRate:A,recipient:T,sender:_}),L=await o.signTransaction(J);return L.finalize(),y(G5.encode(L.extract()))}}async function qq({assetValue:y,recipient:n,memo:o,feeRate:f,sender:T}){let C=wn(n);if(!Hf(C))throw new ry("toolbox_utxo_invalid_address",{address:C});let H=Math.ceil(y.getBaseValue("number")+f*7500),U=await yy(by).getUtxos({address:$n(T),fetchTxHex:!0,targetValue:H}),_=Number(f.toFixed(0)),A=o?My(o):null,J=[];if(J.push({address:dy(n),value:y.getBaseValue("number")}),A)J.push({script:A,value:0});let{inputs:L,outputs:G}=Fy({chain:by,feeRate:_,inputs:U,outputs:J});if(!(L&&G))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let q=new Z5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:M}=Uf({chain:by,compiledMemo:A,inputs:L,outputs:G,sender:dy(T),tx:q});return{inputs:W,tx:M,utxos:U}}function Gq(y){let n=Uq.bitcoinCash,o=J5(y.publicKey,n);if(!o.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return Q5({hash:o.hash,prefix:W5.MAINNET,type:X5.P2PKH}).replace(/^bitcoincash:/,"")}var by;var gT=P(()=>{uf();cf();Sn();by=fq.BitcoinCash});import{createBase58check as Wq,hex as Xq}from"@scure/base";import{HDKey as Y5}from"@scure/bip32";import{mnemonicToSeedSync as B5}from"@scure/bip39";import{Chain as iT,derivationPathToString as Qq,FeeOption as Jq,NetworkDerivationPath as Zq,SKConfig as z5,SwapKitError as In,updateDerivationPath as Lq}from"@swapkit/helpers";import{Address as Mq,createZcashTransaction as Yq,OutScript as Bq,PCZT as zq,utils as N5,WIF as Nq,ZCASH_NETWORK as Oq,ZCASH_TEST_NETWORK as wq,ZcashConsensusBranchId as Dq,ZcashPSBT as Rq,ZcashSigHash as co,ZcashVersionGroupId as kq}from"@swapkit/utxo-signer";import{match as Sq,P as go}from"ts-pattern";function O5(){let{isStagenet:y}=z5.get("envs");return y?wq:Oq}function xq(y){return Fq.encode(y)}function lq({phrase:y,derivationPath:n}){let o=B5(y),T=Y5.fromMasterSeed(o).derive(n);if(!T.privateKey||!T.publicKey)throw new In("toolbox_utxo_invalid_params");let{privateKey:C,publicKey:H}=T,U=N5.hash160(H),{isStagenet:_}=z5.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),J=new Uint8Array(A.length+U.length);J.set(A,0),J.set(U,A.length);let L=xq(J);return{getAddress:()=>Promise.resolve(L),signTransaction:(G)=>{if(G instanceof Rq){let q=G.toPCZT();return q.signAllInputs(C,H,co.ALL),q.finalizeAllInputs(),Promise.resolve(q.extract())}if(G instanceof zq)return G.signAllInputs(C,H,co.ALL),G.finalizeAllInputs(),Promise.resolve(G.extract());return G.signAllInputs(C,H,co.ALL),Promise.resolve(G)}}}function $q({inputs:y,outputs:n,tx:o,sender:f,compiledMemo:T}){let C=O5();for(let H of y){let U=Mq(C).decode(f),_=Bq.encode(U);o.addInput({index:H.index,script:_,sequence:4294967295,txid:Xq.decode(H.hash),value:BigInt(H.value)})}for(let H of n){let U="address"in H&&H.address?H.address:f,_=H.script;if(_&&!T)continue;if(_&&T)o.addOutput({amount:0n,script:T});else o.addOutputAddress(U,BigInt(H.value),C)}return{inputs:y,tx:o}}async function M5(y){let{assetValue:n,recipient:o,memo:f,feeRate:T,sender:C,fetchTxHex:H}=y,U=f?My(f):null,_=await yy(iT.Zcash).getUtxos({address:C,fetchTxHex:H!==!1}),A=[{address:o,value:Number(n.getBaseValue("string"))},...U?[{script:U,value:0}]:[]],{inputs:J,outputs:L}=Fy({chain:iT.Zcash,changeAddress:C,feeRate:T,inputs:_,outputs:A});if(!(J&&L))throw new In("toolbox_utxo_insufficient_balance",{assetValue:n,sender:C});let G=Yq({consensusBranchId:Dq.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:kq.SAPLING}),{tx:q,inputs:W}=$q({compiledMemo:U,inputs:J,outputs:L,sender:C,tx:G});return{inputs:W,outputs:L,tx:q}}function io(y){let n=Sq(y).with({signer:go.not(go.nullish)},({signer:_})=>_).with({phrase:go.string},({phrase:_,derivationPath:A,index:J=0})=>{let L=A||Zq[iT.Zcash]||[44,133,0,0,0],G=Lq(L,{index:J}),q=Qq(G);return lq({derivationPath:q,phrase:_})}).otherwise(()=>{return}),o=_f({chain:iT.Zcash,signer:n});async function f(_){if(!n)throw new In("toolbox_utxo_no_signer");return await n.signTransaction(_)}async function T(_){let A=await f(_);return o.broadcastTx(A.toHex())}async function C({recipient:_,assetValue:A,feeOptionKey:J=Jq.Fast,...L}){let G=await n?.getAddress();if(!(n&&G))throw new In("toolbox_utxo_no_signer");let q=L.feeRate||(await o.getFeeRates())[J],{tx:W}=await M5({...L,assetValue:A,feeRate:q,recipient:_,sender:G}),w=(await n.signTransaction(W)).toHex();return o.broadcastTx(w)}function H({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=B5(_),G=Y5.fromMasterSeed(J).derive(A);if(!G.privateKey||!G.publicKey)throw new In("toolbox_utxo_invalid_params");return{privateKey:G.privateKey,publicKey:G.publicKey}}function U({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let J=H({derivationPath:A,phrase:_}),L=O5();return Nq(L).encode(J.privateKey)}return{...o,createKeysForPath:H,createTransaction:M5,getPrivateKeyFromMnemonic:U,signAndBroadcastTransaction:T,signTransaction:f,transfer:C,validateAddress:jf}}var Fq;var ro=P(()=>{uf();cf();Sn();Fq=Wq(N5.sha256)});import{hex as Iq}from"@scure/base";import{HDKey as Pq}from"@scure/bip32";import{derivationPathToString as pq}from"@swapkit/helpers";function w5({xpub:y,chain:n,count:o,startIndex:f=0,accountIndex:T}){if(Sy("count",o),o<1)throw RangeError("count must be at least 1");Sy("startIndex",f);let C=Gy(n),H=Pq.fromExtendedKey(y,C.bip32),U=of({accountIndex:T,chain:n}),_=Lf(U),A=[];for(let J of[!1,!0]){let L=H.deriveChild(Number(J));for(let G=0;G<o;G++){let q=f+G,W=L.deriveChild(q);if(!W.publicKey)continue;let M=tf({accountIndex:T,chain:n,change:J,index:q});A.push({accountIndex:_,address:ln({chain:n,network:C,publicKey:W.publicKey}),change:J,index:q,path:pq(M),pubkey:Iq.encode(W.publicKey)})}}return A}var D5=P(()=>{Nn();cf()});import{Chain as gf,SwapKitError as Eq}from"@swapkit/helpers";function Vq(y,n){switch(y){case gf.BitcoinCash:return mo(n||{});case gf.Zcash:return io(n);case gf.Bitcoin:case gf.Dogecoin:case gf.Litecoin:case gf.Dash:return _f({chain:y,...n});default:throw new Eq("toolbox_utxo_not_supported",{chain:y})}}var R5=P(()=>{gT();cf();ro();Nn();D5();gT();Sn()});var ao={};ny(ao,{validateZcashAddress:()=>jf,validateUtxoAddress:()=>jo,validateBchAddress:()=>Hf,toLegacyAddress:()=>dy,toCashAddress:()=>wn,stripToCashAddress:()=>$n,stripPrefix:()=>zf,nonSegwitChains:()=>xn,isValidAddress:()=>Eo,getUtxoToolbox:()=>Vq,getUtxoNetwork:()=>LA,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>Ko,getUTXOAddressPath:()=>tf,getUTXOAccountPath:()=>of,getUTXOAccountIndexFromPath:()=>Lf,getScriptTypeForAddress:()=>vf,getOutputSize:()=>Rn,getNetworkForChain:()=>Gy,getInputSize:()=>Cf,getDustThreshold:()=>kn,detectAddressNetwork:()=>Vo,deriveAddressesFromXpub:()=>w5,createZcashToolbox:()=>io,createUTXOToolbox:()=>_f,createHDWalletHelpers:()=>vH,createCustomUtxoApi:()=>ZA,createBCHToolbox:()=>mo,compileMemo:()=>My,calculateTxSize:()=>Yf,assertDerivationIndex:()=>Sy,addressFromKeysGetter:()=>ho,addInputsAndOutputs:()=>Uf,accumulative:()=>Fy,UtxoNetwork:()=>po,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>jT,SEGWIT_MARKER_FLAG_WEIGHT:()=>KT,OutputSizes:()=>Dn,OP_RETURN_OVERHEAD:()=>sH,MIN_TX_FEE:()=>$A,InputSizes:()=>uT});var so=P(()=>{cf();Nn();uf();R5();gT();ro()});import{KeyPairSigner as tq}from"@near-js/signers";import{derivationPathToString as bq,SwapKitError as vq}from"@swapkit/helpers";import*as k5 from"near-seed-phrase";function Pn(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function dT(y){let{KeyPair:n}=await import("@near-js/crypto"),o=y.index||0,f=y.derivationPath?bq(y.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=k5.parseSeedPhrase(y.phrase,f),C=n.fromString(T);return F5(C)}async function eo(y){let{KeyPair:n}=await import("@near-js/crypto"),o=n.fromString(y);return F5(o)}function F5(y){return new S5(y)}async function rT(y,n){let f=(await y.query({account_id:n,finality:"final",request_type:"view_access_key_list"})).keys.find((U)=>U.access_key.permission==="FullAccess");if(!f)throw new vq("toolbox_near_no_public_key_found");let{PublicKey:T}=await import("@near-js/crypto"),C=T.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:C}}var S5;var yC=P(()=>{S5=class S5 extends tq{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),n=Buffer.from(y.data).toString("hex");return Promise.resolve(n)}}});function fC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function nC(y){return"contractId"in y&&"methodName"in y}function TC(y){return"actions"in y}function oC(y){return"newAccountId"in y}function CC(y){return"contractCode"in y}function HC(y){return"customEstimator"in y}function UC(y){let n=0;for(let o of y)switch(o.enum){case"transfer":n+=Number(_y.SIMPLE_TRANSFER);break;case"functionCall":n+=Number(_y.CONTRACT_CALL);break;case"createAccount":n+=Number(_y.ACCOUNT_CREATION);break;case"deployContract":n+=Number(_y.CONTRACT_DEPLOYMENT);break;case"addKey":n+=Number(_y.ACCESS_KEY_ADDITION);break;case"deleteKey":n+=Number(_y.ACCESS_KEY_DELETION);break;case"stake":n+=Number(_y.STAKE);break;default:n+=Number(_y.CONTRACT_CALL)}return n.toString()}function _C(y){if(y==="ft_transfer"||y==="ft_transfer_call")return _y.TOKEN_TRANSFER;if(y==="storage_deposit")return _y.STORAGE_DEPOSIT;return _y.CONTRACT_CALL}function uq(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function jq(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var _y;var AC=P(()=>{_y={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 qC({account:y,contractId:n,viewMethods:o,changeMethods:f}){let{Contract:T}=await import("@near-js/accounts");return new T(y,n,{changeMethods:f,useLocalViewExecution:!0,viewMethods:o})}import{JsonRpcProvider as Kq}from"@near-js/providers";import{AssetValue as GC,Chain as df,getRPCUrl as x5,SwapKitError as Ay}from"@swapkit/helpers";import{match as l5,P as $5}from"ts-pattern";function hq(y){let n;async function o(){if(n)return n;return n=await l5(y).with({phrase:$5.string},async(z)=>{return await dT(z)}).with({signer:$5.any},({signer:z})=>z).otherwise(()=>{return}),n}async function f(){let z=await x5(df.Near);return new Kq({url:z})}async function T(z){let{Account:F}=await import("@near-js/accounts"),l=await f(),V=await o(),p=z||await C();return new F(p,l,V)}async function C(){let z=await o();if(!z)throw new Ay("toolbox_near_no_signer");return await z.getAddress()}async function H(z){return(await Z({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function U(z){let l=[await G({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await G({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return D({actions:l,receiverId:z.contractId})}async function _(z){if(!await o())throw new Ay("toolbox_near_no_signer");let{assetValue:l,recipient:V,memo:p}=z,b=await C();if(!l.isGasAsset&&l.address){if(!await H({accountId:V,contractId:l.address}))return U({assetValue:l,contractId:l.address,memo:p,recipient:V})}let K=await A({...z,sender:b});return Q(K)}async function A({recipient:z,assetValue:F,memo:l,attachedDeposit:V,sender:p,functionCall:b}){let K=await f();if(!Pn(z))throw new Ay("toolbox_near_invalid_address",{recipient:z});if(!Pn(p))throw new Ay("toolbox_near_invalid_address",{sender:p});if(b)return L({...b,sender:p});if(!F.isGasAsset){let wy=F.address;if(!wy)throw new Ay("toolbox_near_missing_contract_address");return L({args:{amount:F.getBaseValue("string"),memo:l||null,receiver_id:z},attachedDeposit:V||"1",contractId:wy,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:s,nonce:m}=await rT(K,p),Ly=F.getBaseValue("bigint"),{actionCreators:oy,createTransaction:$y}=await import("@near-js/transactions"),{baseDecode:Iy}=await import("@near-js/utils"),Py=[oy.transfer(Ly)];if(l&&V)Py.push(oy.functionCall("memo",{memo:l},BigInt("250000000000000"),BigInt(V)));let Xy=await K.block({finality:"final"}),e=Iy(Xy.header.hash);return $y(p,s,z,m+1,Py,e)}function J(z){let F=z.encode();return Buffer.from(F).toString("base64")}async function L({args:z,attachedDeposit:F,contractId:l,gas:V,methodName:p,sender:b}){let K=await f(),{publicKey:s,nonce:m}=await rT(K,b),{createTransaction:Ly,actionCreators:oy}=await import("@near-js/transactions"),{baseDecode:$y}=await import("@near-js/utils"),Iy=await K.block({finality:"final"}),Py=$y(Iy.header.hash),Xy=[oy.functionCall(p,Buffer.from(JSON.stringify(z)),BigInt(V),BigInt(F))];return Ly(b,s,l,m+1,Xy,Py)}async function G(z){let{actionCreators:F}=await import("@near-js/transactions");return F.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");await W(z);let[l,V]=await F.signTransaction(z);return V}async function W(z){let F=z.publicKey;if(F.toString?.().startsWith("ed25519:")||F.toString?.().startsWith("secp256k1:"))return;let{KeyType:l,PublicKey:V}=await import("@near-js/crypto"),p=F.data||F.ed25519Key?.data,b=F.secp256k1Key?.data;if(p){z.publicKey=new V({data:Uint8Array.from(p),keyType:l.ED25519});return}if(b)z.publicKey=new V({data:Uint8Array.from(b),keyType:l.SECP256K1})}function M(z){if(typeof z==="string")return z;if(Array.isArray(z))return z.map(M).find(Boolean);if(!(z&&typeof z==="object"))return;let F=z;return F.transaction?.hash||F.transaction_outcome?.id}function w(z){return z instanceof Error?z.message:String(z)}async function N(z){let l=await(await f()).sendTransaction(z),V=M(l);if(!V)throw new Ay("toolbox_near_transfer_failed",{result:l});return V}async function Q(z){let F=await o();if(!F)throw new Ay("toolbox_near_no_signer");let l;try{l=await q(z)}catch(V){let p;try{p=F.signAndSendTransaction?await F.signAndSendTransaction({actions:z.actions,receiverId:z.receiverId,signerId:z.signerId}):await F.signAndSendTransactions?.({transactions:[z]})}catch(K){throw new Ay({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:w(V),signAndSendError:w(K)}},K)}let b=M(p);if(b)return b;throw V}return N(l)}async function O(z){let F=await o();if("assetValue"in z){let V=await B();try{let p=await x5(df.Near),b=await fetch(p,{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:K}}=await b.json(),{execution:s,send_sir:m}=K.transaction_costs.action_receipt_creation_config,{execution:Ly,send_sir:oy}=K.transaction_costs.action_creation_config.transfer_cost,$y=BigInt(oy)+BigInt(Ly),Iy=BigInt(m)+BigInt(s),Xy=($y+Iy)*BigInt(V.toString());return GC.from({chain:df.Near,value:Xy})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let b=BigInt("115123062500"),K=BigInt("108059500000"),m=(b+K)*BigInt(V.toString());return GC.from({chain:df.Near,value:m})}}let l=F?await T():void 0;return k(z,l)}async function B(){let z=await f();try{return await z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(z,F,l){if(!await o())throw new Ay("toolbox_near_no_signer");let p=await T(),{formatNearAmount:b}=await import("@near-js/utils"),{PublicKey:K}=await import("@near-js/crypto"),s=b(l)||"0";return(await p.createAccount(z,K.fromString(F),BigInt(s))).transaction.hash}async function X(z){let F=await o();try{if(!F)throw new Ay("toolbox_near_no_signer");let{actionCreators:l}=await import("@near-js/transactions"),{contractId:V,methodName:p,args:b,deposit:K}=z,s=await T(),m=await k({args:b||{},contractId:V,methodName:p}),Ly=l.functionCall(p,b||{},m.getBaseValue("bigint"),BigInt(K||"1"));return(await s.signAndSendTransaction({actions:[Ly],receiverId:V})).transaction_outcome.id}catch(l){throw new Ay("toolbox_near_transfer_failed",{error:l})}}async function Z(z){let F=await T();return qC({account:F,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function D(z){if(!await o())throw new Ay("toolbox_near_no_signer");if(z.actions.length===0)throw new Ay("toolbox_near_empty_batch");return(await(await T()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function k(z,F){let l=await l5(z).when(fC,()=>_y.SIMPLE_TRANSFER).when(nC,(p)=>_C(p.methodName)).when(TC,(p)=>UC(p.actions)).when(oC,()=>_y.ACCOUNT_CREATION).when(CC,()=>_y.CONTRACT_DEPLOYMENT).when(HC,(p)=>{if(!F)throw new Ay("toolbox_near_no_account");return p.customEstimator(F)}).otherwise(()=>{throw new Ay("toolbox_near_invalid_gas_params")}),V=BigInt(l)*BigInt(1000000000000);return GC.from({chain:df.Near,value:V})}function R(z,F){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),k(z,F)}async function S(){let z=await f();try{return(await z.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function x(){let z=await o();return z?(await z.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:X,createAction:G,createContract:Z,createContractFunctionCall:L,createSubAccount:Y,createTransaction:A,estimateGas:R,estimateGasLimit:k,estimateTransactionFee:O,executeBatchTransaction:D,getAddress:C,getBalance:Qy(df.Near),getGasPrice:S,getNearProvider:f,getPublicKey:x,getSignerFromPhrase:dT,getSignerFromPrivateKey:eo,serializeTransaction:J,signAndBroadcastTransaction:Q,signTransaction:q,transfer:_,validateAddress:Pn}}var WC=P(()=>{jy();yC();AC()});var I5=P(()=>{WC()});var XC={};ny(XC,{validateNearAddress:()=>Pn,tgasToGas:()=>uq,isSimpleTransfer:()=>fC,isCustomEstimator:()=>HC,isContractDeployment:()=>CC,isContractCall:()=>nC,isBatchTransaction:()=>TC,isAccountCreation:()=>oC,getNearToolbox:()=>hq,getNearSignerFromPrivateKey:()=>eo,getNearSignerFromPhrase:()=>dT,getFullAccessPublicKey:()=>rT,getContractMethodGas:()=>_C,gasToTGas:()=>jq,estimateBatchGas:()=>UC,createNearContract:()=>qC,GAS_COSTS:()=>_y});var QC=P(()=>{yC();AC();WC();I5()});var ZC={};ny(ZC,{validateRadixAddress:()=>p5,getRadixToolbox:()=>eq});import{GatewayApiClient as mq}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as cq}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as P5,Chain as JC,SKConfig as gq,SwapKitError as iq}from"@swapkit/helpers";function p5(y){return y.startsWith("account_rdx1")&&y.length===66}function dq({networkApi:y}){return async function(o){let f=await rq({address:o,networkApi:y}),T=await aq({networkApi:y,resources:f});if(!T.some((H)=>H.isGasAsset))return[P5.from({chain:JC.Radix}),...T];return T}}async function rq({address:y,networkApi:n}){let o=!0,f,T=[],C=await sq(n);while(o){let H={address:y,at_ledger_state:{state_version:C},cursor:f,limit_per_page:100},U=await n.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:H});if(T=T.concat(U.items),U.next_cursor)f=U.next_cursor;else o=!1}return T}async function aq({resources:y,networkApi:n}){let o=[],f=50,T=[];for(let C=0;C<y.length;C+=50)T.push(y.slice(C,C+50));for(let C of T){let H=C.map((A)=>A.resource_address),U=await n.state.getEntityDetailsVaultAggregated(H),_=new Map;for(let A of U)if(A.details!==void 0){let J=A.metadata?.items.find((G)=>G.key==="symbol"),L=J?.value.typed.type==="String"?J.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:L})}for(let A of C)if(A.aggregation_level==="Global"){let J=_.get(A.resource_address)||{decimals:0,symbol:"?"},L=P5.from({asset:J.symbol!==JC.Radix?`${JC.Radix}.${J.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});o.push(L)}}return o}async function sq(y){return(await y.status.getCurrent()).ledger_state.state_version}function eq({dappConfig:y}={}){let n=y||gq.get("integrations").radix,o=cq({...n,networkId:n.network?.networkId||1}),f=mq.initialize(o.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:dq({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new iq("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:p5}}var LC=()=>{};import{SwapKitError as yG}from"@swapkit/helpers";function aT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function pn(y){if(aT(y))return y.toUpperCase();if(y.length<=3){let o=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${o}${"0".repeat(10)}`.toUpperCase()}let n=Buffer.from(y).toString("hex").toUpperCase();if(n.length>40)throw new yG({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return n.padEnd(40,"0")}function fG(y){if(!aT(y))return y;if(y.toUpperCase().startsWith("00")){let n=y.slice(24,30);try{let o=Buffer.from(n,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(o)&&o.length>0)return o}catch{}return y.toUpperCase()}try{let n=y.replace(/0+$/,""),o=n.length%2===0?n:`${n}0`,f=Buffer.from(o,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function rf(y){if(aT(y))return y.toUpperCase();if(y.length<=3)return y;return pn(y)}var sT=()=>{};import{RequestClient as nG,warnOnce as TG}from"@swapkit/helpers";async function oG(y,n){let o=rf(y),f=eT.find((T)=>rf(T.currency)===o&&T.issuer===n);if(f)return f;try{let T=await nG.get(`https://api.xrplmeta.org/token/${y}:${n}`);if(T)return{currency:y,decimals:15,description:T.desc,domain:T.domain,icon:T.icon,issuer:n,name:T.name,verified:T.self_assessment?.is_regulated||T.self_assessment?.is_licensed}}catch(T){TG({condition:!0,id:`xrpl_token_lookup_${y}_${n}`,warning:`Failed to fetch XRPL token info for ${y}:${n}: ${T}`})}return{currency:y,decimals:15,issuer:n,verified:!1}}function CG(y){return eT.filter((n)=>n.issuer===y)}function HG(y,n){let o=rf(y);return eT.some((f)=>rf(f.currency)===o&&f.issuer===n)}var eT;var E5=P(()=>{sT();eT=[{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 MC={};ny(MC,{validateRippleAddress:()=>n0,parseXrplTokenIdentifier:()=>K5,normalizeCurrency:()=>rf,isKnownToken:()=>HG,isHexCurrency:()=>aT,hexToCurrency:()=>fG,hashes:()=>XG,getXrplTokenInfo:()=>oG,getRippleToolbox:()=>WG,getKnownTokensByIssuer:()=>CG,formatXrplTokenIdentifier:()=>h5,currencyToHex:()=>pn,XRPL_TOKEN_ERROR_CODES:()=>f0,XRPL_KNOWN_TOKENS:()=>eT});import{AssetValue as y0,Chain as xy,getChainConfig as V5,getRPCUrl as UG,SwapKitError as Wy}from"@swapkit/helpers";import{match as t5,P as b5}from"ts-pattern";import{Client as _G,isValidAddress as j5,Wallet as AG,xrpToDrops as qG}from"xrpl";import{hashes as XG}from"xrpl";function K5(y){let n=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!n?.[1]||!n?.[2])return null;if(!j5(n[2]))return null;return{currency:n[1],issuer:n[2]}}function h5(y,n){return`${xy.Ripple}.${y}-${n}`}function GG(y){if(y.isGasAsset)return qG(y.getValue("string"));let n=K5(y.toString());if(!n)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:n.currency,issuer:n.issuer,value:y.getValue("string")}}function u5(y){let n=AG.fromMnemonic(y);return{getAddress:()=>Promise.resolve(n.address),signTransaction:(o)=>Promise.resolve(n.sign(o))}}function n0(y){return j5(y)}function WG(y={}){let n=t5(y).with({phrase:b5.string},({phrase:Q})=>u5(Q)).with({signer:b5.any},({signer:Q})=>Q).otherwise(()=>{return}),o;async function f(){let Q=await UG(xy.Ripple);if(!Q)throw new Wy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:xy.Ripple}});let O=new _G(Q);return await O.connect(),O}async function T(){if(o){let Q=await o.catch(()=>null);if(Q?.isConnected())return Q}return o=f(),o}let C=()=>{if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.getAddress()},H=async(Q)=>{let O=Q||await C(),{baseDecimal:B}=V5(xy.Ripple),Y=await T();try{let[X,Z]=await Promise.all([Y.request({account:O,command:"account_info"}),Y.request({account:O,command:"account_lines"})]),D=X.result.account_data.Balance,k=[y0.from({chain:xy.Ripple,fromBaseDecimal:B,value:D})];for(let R of Z.result.lines){let S=h5(R.currency,R.account);if(Number.parseFloat(R.balance)!==0)k.push(y0.from({asset:S,asyncTokenLookup:!1,value:R.balance}))}return k}catch(X){if(X.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[y0.from({chain:xy.Ripple,value:0})];throw new Wy({errorKey:"toolbox_ripple_get_balance_error",info:{address:O,error:X}})}},U=async()=>{let{baseDecimal:Q}=V5(xy.Ripple),Y=(await(await T()).request({command:"fee"})).result.drops.open_ledger_fee;return y0.from({chain:xy.Ripple,fromBaseDecimal:Q,value:Y})};async function _(Q){let O=Q||await C(),B=await T();try{return(await B.request({account:O,command:"account_lines"})).result.lines.map((X)=>({account:X.account,authorized:X.authorized??!1,balance:X.balance,currency:X.currency,freeze:X.freeze??!1,freezePeer:X.freeze_peer??!1,limit:X.limit,limitPeer:X.limit_peer,noRipple:X.no_ripple??!1,noRipplePeer:X.no_ripple_peer??!1,peerAuthorized:X.peer_authorized??!1,qualityIn:X.quality_in??0,qualityOut:X.quality_out??0}))}catch(Y){if(Y.data?.error_code===v5.ACCOUNT_NOT_FOUND)return[];throw new Wy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:O,error:Y}})}}async function A({address:Q,currency:O,issuer:B}){let Y=await _(Q),X=pn(O);return Y.some((Z)=>{return pn(Z.currency)===X&&Z.account===B})}async function J({currency:Q,issuer:O,limit:B,sender:Y}){let X=Y||await C();if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address",info:{address:O}});let Z=Number.parseFloat(B);if(Number.isNaN(Z)||Z<0)throw new Wy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:B}});let D=await T(),k={Account:X,LimitAmount:{currency:Q,issuer:O,value:B},TransactionType:"TrustSet"};return D.autofill(k)}async function L({assetValue:Q,recipient:O,memo:B,sender:Y,destinationTag:X,extendBySeconds:Z=150}){if(!n0(O))throw new Wy({errorKey:"core_transaction_invalid_recipient_address"});let D=Y||await C();if(Q.chain!==xy.Ripple)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Q.toString()}});let k=GG(Q),R={Account:D,Amount:k,Destination:O,TransactionType:"Payment",...X!==void 0&&{DestinationTag:X}};if(B)R.Memos=[{Memo:{MemoData:Buffer.from(B).toString("hex")}}];let x=await(await T()).autofill(R);if(x.LastLedgerSequence&&Z>0)x.LastLedgerSequence+=Math.ceil(Z/4);return x}function G(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return n.signTransaction(Q)}async function q(Q){let B=await(await T()).submitAndWait(Q),{result:Y}=B;if(Y.validated)return Y.hash;let X=Y.meta?.TransactionResult,Z=t5(X).with(f0.tecNO_LINE,()=>"No trust line exists for this token").with(f0.tecPATH_DRY,()=>"Payment path could not deliver funds").with(f0.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,...Z?{reason:Z}:{txResult:X}}})}let W=async(Q)=>{try{let O=await G(Q);return q(O.tx_blob)}catch(O){if(O instanceof Wy)throw O;throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:xy.Ripple,error:O}})}};async function M(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await L({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}async function w(Q){if(!n)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let O=await n.getAddress(),B=await J({...Q,sender:O}),Y=await G(B);return q(Y.tx_blob)}function N(){let Q=o;if(o=null,Q)Q.then((O)=>{if(O?.isConnected())return O.disconnect();return}).catch((O)=>{console.warn("XRPL Cleanup failed silently:",O)})}return{broadcastTransaction:q,createSigner:u5,createTransaction:L,disconnect:N,estimateTransactionFee:U,getAddress:C,getBalance:H,getTrustLines:_,hasTrustLine:A,setTrustLine:J,setTrustLineAndBroadcast:w,signAndBroadcastTransaction:W,signTransaction:G,transfer:M,validateAddress:n0}}var v5,f0;var YC=P(()=>{sT();sT();E5();v5={ACCOUNT_NOT_FOUND:19},f0={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 QG}from"@noble/hashes/sha2.js";import{bytesToHex as m5,hexToBytes as c5}from"@noble/hashes/utils.js";import{SwapKitError as af}from"@swapkit/helpers";function BC(y,n){let o=0n,f=0n,T=n;while(T<y.length&&T-n<10){let C=y[T++];if(C===void 0)break;if(o|=BigInt(C&127)<<f,f+=7n,(C&128)===0)return[o,T]}throw new af("toolbox_tron_transaction_creation_failed")}function En(y){let n=[],o=y<0n?y+2n**64n:y;while(o>=128n)n.push(Number(o&0x7fn)|128),o>>=7n;return n.push(Number(o)),n}function T0(y,n,o){let f=y.get(n);if(f)f.push(o);else y.set(n,[o])}function MG(y){let n=new Map,o=0;while(o<y.length){let[f,T]=BC(y,o);o=T;let C=Number(f>>3n),H=Number(f&7n);if(H===o0){let[U,_]=BC(y,o);o=_,T0(n,C,{data:new Uint8Array(En(U)),wireType:o0})}else if(H===C0){let[U,_]=BC(y,o);o=_;let A=Number(U);if(A<0||o+A>y.length)throw new af("toolbox_tron_transaction_creation_failed");let J=y.slice(o,o+A);o+=A,T0(n,C,{data:J,wireType:C0})}else if(H===g5){if(o+8>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+8);o+=8,T0(n,C,{data:U,wireType:g5})}else if(H===i5){if(o+4>y.length)throw new af("toolbox_tron_transaction_creation_failed");let U=y.slice(o,o+4);o+=4,T0(n,C,{data:U,wireType:i5})}else throw new af("toolbox_tron_transaction_creation_failed")}return n}function YG(y){let n=[];for(let[C,H]of[...y.entries()].sort(([U],[_])=>U-_))for(let{wireType:U,data:_}of H){let A=BigInt(C<<3|U);if(n.push(new Uint8Array(En(A))),U===C0)n.push(new Uint8Array(En(BigInt(_.length))));n.push(_)}let o=n.reduce((C,H)=>C+H.length,0),f=new Uint8Array(o),T=0;for(let C of n)f.set(C,T),T+=C.length;return f}function d5(y,n){if(!y||y.length%2!==0)throw new af("toolbox_tron_transaction_creation_failed");let o=c5(y),f=MG(o);if(n.expiration!==void 0)f.set(JG,[{data:new Uint8Array(En(BigInt(n.expiration))),wireType:o0}]);if(n.data!==void 0)f.set(ZG,[{data:c5(n.data),wireType:C0}]);if(n.fee_limit!==void 0)f.set(LG,[{data:new Uint8Array(En(BigInt(n.fee_limit))),wireType:o0}]);let T=YG(f),C=m5(T),H=m5(QG(T));return{raw_data_hex:C,txID:H}}var o0=0,g5=1,C0=2,i5=5,JG=8,ZG=10,LG=18;var r5=()=>{};import{secp256k1 as a5}from"@noble/curves/secp256k1.js";import{sha256 as s5}from"@noble/hashes/sha2.js";import{keccak_256 as BG}from"@noble/hashes/sha3.js";import{bytesToHex as sf,hexToBytes as H0}from"@noble/hashes/utils.js";import{createBase58check as zG}from"@scure/base";import{SwapKitError as e5}from"@swapkit/helpers";function ly(y){if(typeof y!=="string")return!1;try{let n=U0.decode(y);return n.length===21&&n[0]===yU}catch{return!1}}function fU(y){return sf(U0.decode(y))}function OG(y){return U0.decode(y).slice(1)}function nU(y){let n=a5.getPublicKey(H0(y),!1),o=BG(n.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=yU,f.set(o,1),U0.encode(f)}function TU({txID:y,privateKey:n}){let o=a5.sign(H0(y),H0(n),{format:"recovered",prehash:!1}),f=o[0]??0,T=sf(o.slice(1,33)),C=sf(o.slice(33,65)),H=(f+27).toString(16).padStart(2,"0");return T+C+H}function ef({txID:y,raw_data_hex:n}){let o=sf(s5(H0(n)));if(y!==o)throw new e5("toolbox_tron_invalid_transaction_integrity",{expected:o,txID:y})}function wG(y){return`000000000000000000000000${sf(OG(y))}`}function DG(y){let n=typeof y==="bigint"?y:BigInt(y);if(n<0n||n>=NG)throw new e5("toolbox_tron_invalid_token_identifier",{identifier:n.toString()});return n.toString(16).padStart(64,"0")}function yn(y){return y.map(({type:n,value:o})=>n==="address"?wG(o):DG(BigInt(o))).join("")}function oU(y){return sf(new TextEncoder().encode(y))}var U0,yU=65,NG;var zC=P(()=>{U0=zG(s5),NG=2n**256n});import{Chain as RG,getRPCUrlSync as kG,SwapKitError as Yy,warnOnce as _0}from"@swapkit/helpers";function HU(){try{return kG(RG.Tron)}catch{return CU}}function UU(){let y=new AbortController,n=setTimeout(()=>y.abort(),$G);return{cleanup:()=>clearTimeout(n),signal:y.signal}}async function Of(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${HU()}${y}`,{body:JSON.stringify(n),headers:{"Content-Type":"application/json"},method:"POST",signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function _U(y,n){let{signal:o,cleanup:f}=UU();try{let T=await fetch(`${n??HU()}${y}`,{headers:{"Content-Type":"application/json"},signal:o});if(!T.ok)throw new Yy("toolbox_tron_trongrid_api_error",{message:`${T.status} ${T.statusText} on ${y}`});return await T.json()}finally{f()}}async function AU(y){if(!ly(y))throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let n=await _U(`/v1/accounts/${y}`,CU);if(!(n.success&&n.data)||n.data.length===0)return;let o;try{o=fU(y).toLowerCase()}catch{o=y.toLowerCase()}let f=n.data.find((T)=>T.address.toLowerCase()===o);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(n){if(n instanceof Yy)throw n;throw new Yy("toolbox_tron_trongrid_api_error",{address:y,message:n instanceof Error?n.message:"Unknown error"})}}async function qU({from:y,to:n,amount:o}){let T=await Of("/wallet/createtransaction",{amount:o,owner_address:y,to_address:n,visible:!0});if(!T.txID||!T.raw_data_hex||!T.raw_data)throw new Yy("toolbox_tron_transaction_creation_failed");let H=T.raw_data?.contract?.[0]?.parameter?.value;if(H?.to_address!==n||H?.owner_address!==y||H?.amount!==o)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(T),T}async function GU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f,feeLimit:T,callValue:C=0}){let H=await Of("/wallet/triggersmartcontract",{call_value:C,contract_address:n,fee_limit:T,function_selector:o,owner_address:y,parameter:f,visible:!0});if(!H.result.result||!H.transaction?.txID||!H.transaction?.raw_data_hex)throw new Yy("toolbox_tron_transaction_creation_failed");let _=H.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==n||_?.owner_address!==y)throw new Yy("toolbox_tron_transaction_creation_failed");return ef(H.transaction),H.transaction}function WU({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/triggerconstantcontract",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}function IG({ownerAddress:y,contractAddress:n,functionSelector:o,parameter:f}){return Of("/wallet/estimateenergy",{contract_address:n,function_selector:o,owner_address:y,parameter:f,visible:!0})}async function Vn(y){try{let{result:n,txid:o}=await Of("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!n||!o)throw new Yy("toolbox_tron_token_transfer_failed");return o}catch(n){throw new Yy("toolbox_tron_broadcast_failed",{error:n})}}async function tn(){let y={};try{let{chainParameter:n}=await _U("/wallet/getchainparameters");for(let o of n)y[o.key]=o.value}catch(n){_0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${n instanceof Error?n.message:n}`})}return{bandwidthFee:y.getTransactionFee??SG,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??FG,energyFee:y.getEnergyFee??xG,memoFee:y.getMemoFee??lG}}async function NC(y){try{let n=await Of("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(n.freeNetLimit??600)-(n.freeNetUsed??0),total:n.NetLimit??0,used:n.NetUsed??0},energy:{total:n.EnergyLimit??0,used:n.EnergyUsed??0}}}catch(n){return _0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${n instanceof Error?n.message:n}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function bn(y){try{let n=await Of("/wallet/getaccount",{address:y,visible:!0});return n&&Object.keys(n).length>0}catch{return!1}}async function OC(y){try{let n=await IG({...y,ownerAddress:y.sender}),o=n.energy_required??n.energyRequired;if(n.result&&!n.result.result)throw new Yy("toolbox_tron_trongrid_api_error",{message:n.result.message||"estimateenergy failed"});if(o!==void 0){if(Number.isFinite(o)&&o>0)return o;throw new Yy("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(n){_0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${n instanceof Error?n.message:n}`})}try{let{energy_used:n}=await WU({...y,ownerAddress:y.sender});return n}catch(n){return _0({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${n instanceof Error?n.message:n}`}),65000}}async function XU({assetAddress:y,owner:n,spender:o}){let f=yn([{type:"address",value:n},{type:"address",value:o}]),C=(await WU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:o,parameter:f})).constant_result?.[0];if(!C)return 0n;try{return BigInt(`0x${C}`)}catch{return 0n}}var CU="https://api.trongrid.io",SG=1000,FG=1e6,xG=420,lG=1e6,$G=30000;var QU=P(()=>{zC()});import{bytesToHex as PG}from"@noble/hashes/utils.js";import{HDKey as pG}from"@scure/bip32";import{mnemonicToSeedSync as EG}from"@scure/bip39";import{AssetValue as ay,BaseDecimal as A0,Chain as Oy,derivationPathToString as BU,getRPCUrl as VG,NetworkDerivationPath as zU,SwapKitError as qy,updateDerivationPath as NU,warnOnce as JU}from"@swapkit/helpers";import{match as tG,P as wC}from"ts-pattern";function wU({phrase:y,derivationPath:n}){let o=pG.fromMasterSeed(EG(y)).derive(n);if(!o.privateKey)throw new qy("toolbox_tron_no_signer");return PG(o.privateKey)}function DU({phrase:y,derivationPath:n,index:o}){let f=n||BU(NU(zU[Oy.Tron],{index:o||0}));return wU({derivationPath:f,phrase:y})}function vG({phrase:y,derivationPath:n}){let o=wU({derivationPath:n,phrase:y}),f=nU(o);return{getAddress:()=>Promise.resolve(f),signTransaction:(T)=>{ef(T);let C=TU({privateKey:o,txID:T.txID});return Promise.resolve({...T,signature:[C]})}}}function YU({transaction:y,memo:n,expiration:o,feeLimit:f}){let T={},C={};if(f!==void 0&&y.raw_data)T.fee_limit=f,C.fee_limit=f;if(n){let _=oU(n);T.data=_,C.data=_}if(o){let _=y.raw_data.expiration+o*1000;T.expiration=_,C.expiration=_}if(Object.keys(T).length===0)return y;let{raw_data_hex:H,txID:U}=d5(y.raw_data_hex,T);return{...y,raw_data:{...y.raw_data,...C},raw_data_hex:H,txID:U}}function RU(y={}){let n="index"in y?y.index||0:0,o=BU("derivationPath"in y&&y.derivationPath?y.derivationPath:NU(zU[Oy.Tron],{index:n})),f,T=!1;function C(){if(T)return Promise.resolve(f);return f=tG(y).with({phrase:wC.string},({phrase:X})=>vG({derivationPath:o,phrase:X})).with({signer:wC.not(wC.nullish)},({signer:X})=>X).otherwise(()=>{return}),T=!0,Promise.resolve(f)}async function H(){let X=await C();if(!X)throw new qy("toolbox_tron_no_signer");return X.getAddress()}async function U(X,Z){let D=X||LU,k=Z??(await tn()).energyFee,R=D*k,S=Math.ceil(R*1.5);return Math.min(Math.max(S,1e7),150000000)}async function _({contractAddress:X,functionSelector:Z,parameter:D,sender:k,memo:R,expiration:S,extraEnergy:x=0}){let z=await OC({contractAddress:X,functionSelector:Z,parameter:D,sender:k}),F=await U(z+x),l=await GU({contractAddress:X,feeLimit:F,functionSelector:Z,ownerAddress:k,parameter:D});return YU({expiration:S,feeLimit:F,memo:R,transaction:l})}async function A(X){if(!ly(X))return[ay.from({chain:Oy.Tron})];try{let Z=await AU(X);if(!Z)return[ay.from({chain:Oy.Tron})];let D=[ay.from({chain:Oy.Tron,fromBaseDecimal:6,value:String(Z.balance)})],k=Z.trc20?.find((R)=>(RC in R));if(k){let R=k[RC];D.push(ay.from({asset:`TRON.USDT-${RC}`,fromBaseDecimal:6,value:R}))}return D}catch(Z){return JU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${Z instanceof Error?Z.message:Z}`}),[ay.from({chain:Oy.Tron})]}}async function J({recipient:X,assetValue:Z,memo:D,expiration:k}){if(!ly(X))throw new qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");try{let S=await H(),x=await w({assetValue:Z,expiration:k,memo:D,recipient:X,sender:S}),z=await R.signTransaction(x),F=await Vn(z);if(!F)throw new qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return F}catch(S){throw new qy("toolbox_tron_token_transfer_failed",{message:S instanceof Error?S.message:String(S)})}}function L({requiredBandwidth:X,resources:Z,feePerUnit:D}){let k=Math.max(0,Z.free+Z.total-Z.used);return X>k?(X-k)*D:0}async function G({memo:X,recipient:Z,senderAddress:D}){let[k,R,S]=await Promise.all([tn(),bn(Z),NC(D)]),x=R?0:k.createAccountFee,z=L({feePerUnit:k.bandwidthFee,requiredBandwidth:ZU,resources:S.bandwidth}),F=X?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+z+F})}async function q({assetValue:X,memo:Z,recipient:D,senderAddress:k}){let R=X.address;if(!R)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:X.toString()});let[S,x,z,F]=await Promise.all([tn(),bn(D),NC(k),OC({contractAddress:R,functionSelector:"transfer(address,uint256)",parameter:yn([{type:"address",value:D},{type:"uint256",value:X.getBaseValue("string")}]),sender:k})]),V=F+(x?0:DC),p=L({feePerUnit:S.bandwidthFee,requiredBandwidth:MU,resources:z.bandwidth}),b=Math.max(0,z.energy.total-z.energy.used),K=V>b?(V-b)*S.energyFee:0,s=Z?S.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:p+K+s})}async function W({assetValue:X,memo:Z,recipient:D}){let[k,R]=await Promise.all([tn(),bn(D)]);if(X.isGasAsset){let F=R?0:k.createAccountFee,l=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:F+ZU*k.bandwidthFee+l})}let x=await U(LU+(R?0:DC),k.energyFee),z=Z?k.memoFee:0;return ay.from({chain:Oy.Tron,fromBaseDecimal:A0.TRON,value:x+MU*k.bandwidthFee+z})}async function M({assetValue:X,memo:Z,recipient:D,sender:k}){let R=await C();try{let S=k?k:R?await H():void 0;if(!S)return W({assetValue:X,memo:Z,recipient:D});return X.isGasAsset?G({memo:Z,recipient:D,senderAddress:S}):q({assetValue:X,memo:Z,recipient:D,senderAddress:S})}catch(S){throw JU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${S instanceof Error?S.message:S}`}),new qy("toolbox_fee_estimation_failed",{chain:Oy.Tron,error:S})}}async function w({recipient:X,assetValue:Z,memo:D,sender:k,expiration:R}){if(!ly(X)||!ly(k))throw new qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(Z.isGasAsset){let z=await qU({amount:Z.getBaseValue("number"),from:k,to:X});return YU({expiration:R,memo:D,transaction:z})}let S=Z.address;if(!S)throw new qy("toolbox_tron_invalid_token_identifier",{identifier:Z.toString()});let x=await bn(X);return _({contractAddress:S,expiration:R,extraEnergy:x?0:DC,functionSelector:"transfer(address,uint256)",memo:D,parameter:yn([{type:"address",value:X},{type:"uint256",value:Z.getBaseValue("string")}]),sender:k})}async function N(X){ef(X);let Z=await C();if(!Z)throw new qy("toolbox_tron_no_signer");return Z.signTransaction(X)}async function Q(X){let Z=await N(X);return Vn(Z)}function O({assetAddress:X,spenderAddress:Z,from:D}){return XU({assetAddress:X,owner:D,spender:Z})}async function B({assetAddress:X,spenderAddress:Z,from:D,amount:k}){let R=await O({assetAddress:X,from:D,spenderAddress:Z});if(!k)return R>0n;return R>=BigInt(k)}async function Y({assetAddress:X,spenderAddress:Z,amount:D,from:k}){if(!ly(X)||!ly(Z))throw new qy("toolbox_tron_approve_failed");let R=await C();if(!R)throw new qy("toolbox_tron_no_signer");let S=k||await H(),x=D!==void 0?BigInt(D).toString():bG;try{let z=await _({contractAddress:X,functionSelector:"approve(address,uint256)",parameter:yn([{type:"address",value:Z},{type:"uint256",value:x}]),sender:S}),F=await R.signTransaction(z),l=await Vn(F);if(!l)throw new qy("toolbox_tron_approve_failed");return l}catch(z){if(z instanceof qy)throw z;throw new qy("toolbox_tron_approve_failed",{error:z})}}return{approve:Y,broadcastTransaction:Vn,createTransaction:w,estimateTransactionFee:M,getAddress:H,getApprovedAmount:O,getBalance:A,getRpcUrl:()=>VG(Oy.Tron),isApproved:B,signAndBroadcastTransaction:Q,signTransaction:N,transfer:J,validateAddress:ly}}var OU,ZU=268,LU=65000,DC=25000,MU=345,RC="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",bG="115792089237316195423570985008687907853269984665640564039457584007913129639935";var kU=P(()=>{r5();QU();zC();OU=ly});var kC={};ny(kC,{validateTronAddress:()=>OU,getTronToolbox:()=>RU,getTronPrivateKeyFromMnemonic:()=>DU});var SC=P(()=>{kU()});import{AssetValue as vn,Chain as vy,derivationPathToString as uG,getChainConfig as jG,getRPCUrl as SU,NetworkDerivationPath as KG,SKConfig as hG,SwapKitError as fn}from"@swapkit/helpers";import{match as mG,P as cG}from"ts-pattern";function q0(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return gG.test(y)}function iG(y){if(typeof y!=="object"||y===null)return;let n="response"in y?y.response:void 0;return typeof n?.status==="number"?n.status:void 0}function dG(y){return iG(y)===504}function rG(y){return y.hash?.().toString("hex")}function aG(y){return[...new Set([y,...hG.get("rpcUrls")[vy.Stellar]])].filter(Boolean)}async function sG(y){if(!q0(y))return!1;try{let{StrKey:n}=await import("@stellar/stellar-sdk");return n.isValidEd25519PublicKey(y)}catch{return!1}}function FU(y={}){let n,o=y.derivationPath||KG[vy.Stellar],f=uG(o.slice(0,3));async function T({phrase:N,path:Q}){let{HDKey:O}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:B}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),X=B(N),D=O.fromMasterSeed(X).derive(Q,!0);return Y.fromRawEd25519Seed(Buffer.from(D.privateKey))}async function C(){if(n)return n;let N=mG(y).with({phrase:cG.string},({phrase:Q})=>Q).otherwise(()=>{return});if(!N)throw new fn("toolbox_stellar_no_signer");return n=await T({path:f,phrase:N}),n}async function H(N){let{Horizon:Q}=await import("@stellar/stellar-sdk"),O=N||await SU(vy.Stellar);return new Q.Server(O)}async function U(N,Q){for(let O of Q)try{return(await(await H(O)).transactions().transaction(N).call()).hash||N}catch{}return}async function _(N,Q){let O=await SU(vy.Stellar),B=aG(O),Y=rG(N),X;for(let Z of B)try{let D=await H(Z),{hash:k}=await D.submitTransaction(N);return k}catch(D){if(X=D,!dG(D))break;let k=Y?await U(Y,B):void 0;if(k)return k}throw new fn(Q,X)}async function A(){try{return(await C()).publicKey()}catch{return""}}async function J(N){let Q=N||await A();if(!Q)throw new fn("toolbox_stellar_account_not_found");try{return(await(await H()).loadAccount(Q)).balances.map((Y)=>{if(Y.asset_type==="native")return vn.from({chain:vy.Stellar,value:Y.balance});let X="asset_code"in Y?Y.asset_code:"",Z="asset_issuer"in Y?Y.asset_issuer:"";return vn.from({asset:`${vy.Stellar}.${X}-${Z}`,asyncTokenLookup:!1,value:Y.balance})})}catch{return[vn.from({chain:vy.Stellar,value:0})]}}async function L({recipient:N,assetValue:Q,memo:O,sender:B}){if(O){if(new TextEncoder().encode(O).length>28)throw new fn("helpers_invalid_memo_type")}if(!await sG(N))throw new fn("core_transaction_invalid_recipient_address");let X=B||await A();if(!X)throw new fn("toolbox_stellar_no_signer");let{Asset:Z,Memo:D,Networks:k,Operation:R,TransactionBuilder:S}=await import("@stellar/stellar-sdk"),x=await H(),z=await x.fetchBaseFee(),F=await x.loadAccount(X),l=new S(F,{fee:String(z),networkPassphrase:k.PUBLIC});if(Q.isGasAsset)try{await x.loadAccount(N),l.addOperation(R.payment({amount:Q.getValue("string"),asset:Z.native(),destination:N}))}catch{l.addOperation(R.createAccount({destination:N,startingBalance:Q.getValue("string")}))}else l.addOperation(R.payment({amount:Q.getValue("string"),asset:new Z(Q.symbol,Q.address),destination:N}));if(O)l.addMemo(D.text(O));return l.setTimeout(30).build()}async function G(N){let{TransactionBuilder:Q,Networks:O}=await import("@stellar/stellar-sdk"),B=await C(),Y=Q.fromXDR(N.toXDR(),O.PUBLIC);return Y.sign(B),Y}function q(N){return _(N,"toolbox_stellar_broadcast_error")}async function W({recipient:N,assetValue:Q,memo:O}){let B=await C(),Y=B.publicKey(),X=await L({assetValue:Q,memo:O,recipient:N,sender:Y});return X.sign(B),_(X,"toolbox_stellar_transaction_failed")}async function M(N){let Q=await G(N);return q(Q)}async function w(){let{baseDecimal:N}=jG(vy.Stellar);try{let B=(await(await H()).feeStats()).fee_charged.p50;return vn.from({chain:vy.Stellar,fromBaseDecimal:N,value:B})}catch{return vn.from({chain:vy.Stellar,fromBaseDecimal:N,value:"100"})}}return{broadcastTransaction:q,createTransaction:L,estimateTransactionFee:w,getAddress:A,getBalance:J,signAndBroadcastTransaction:M,signTransaction:G,transfer:W,validateAddress:q0}}var gG;var xU=P(()=>{gG=/^G[A-Z2-7]{55}$/});var G0={};ny(G0,{validateStellarAddress:()=>q0,getStellarToolbox:()=>FU});var W0=P(()=>{xU()});import{AssetValue as eG,Chain as v,CosmosChains as FC,EVMChains as xC,FeeOption as yW,SwapKitError as fW,UTXOChains as $U}from"@swapkit/helpers";async function BQ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:n}=await Promise.resolve().then(() => (jn(),un)),{validateEVMAddress:o}=await Promise.resolve().then(() => (b0(),X1)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (m0(),h0)),{getCosmosAddressValidator:T}=await Promise.resolve().then(() => (zT(),BT)),{validateHyperCoreAddress:C}=await Promise.resolve().then(() => (zo(),Bo)),{validateSolanaAddress:H}=await Promise.resolve().then(() => (Ro(),Do)),{validateStarknetAddress:U}=await Promise.resolve().then(() => (xT(),FT)),{validateSuiAddress:_}=await Promise.resolve().then(() => (IT(),$T)),{validateTonAddress:A}=await Promise.resolve().then(() => (ET(),pT)),{getUTXOAddressValidator:J}=await Promise.resolve().then(() => (so(),ao)),{validateNearAddress:L}=await Promise.resolve().then(() => (QC(),XC)),{validateRadixAddress:G}=await Promise.resolve().then(() => (LC(),ZC)),{validateRippleAddress:q}=await Promise.resolve().then(() => (YC(),MC)),{validateTronAddress:W}=await Promise.resolve().then(() => (SC(),kC)),{validateStellarAddress:M}=await Promise.resolve().then(() => (W0(),G0));return function({address:N,chain:Q}){return y(Q).with(...xC,()=>o(N)).with(...$U,(B)=>{return J(B)(N)}).with(...FC,(B)=>{return T(B)(N)}).with(v.Aptos,()=>n(N)).with(v.Radix,()=>G(N)).with(v.HyperCore,()=>C(N)).with(v.Near,()=>L(N)).with(v.Ripple,()=>q(N)).with(v.Solana,()=>H(N)).with(v.Stellar,()=>M(N)).with(v.Starknet,()=>U(N)).with(v.Sui,()=>_(N)).with(v.Ton,()=>A(N)).with(v.Tron,()=>W(N)).with(v.Cardano,()=>f(N)).otherwise(()=>!1)}}function zQ(y){return async function(o){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...xC,async(T)=>{let C=await lU(T),H=await C.createTransaction(o),U="feeOptionKey"in o?o.feeOptionKey:yW.Fast;return C.estimateTransactionFee({...H,feeOption:U})}).with(v.Bitcoin,v.BitcoinCash,v.Dogecoin,v.Dash,v.Litecoin,v.Solana,v.Ripple,v.Tron,v.Near,v.Cardano,v.HyperCore,async(T)=>{return(await lU(T)).estimateTransactionFee(o)}).with(v.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (jn(),un));return T().estimateTransactionFee(o)}).with(v.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (xT(),FT));return(await T()).estimateTransactionFee(o)}).with(v.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (W0(),G0));return T().estimateTransactionFee()}).with(v.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (IT(),$T));return T().estimateTransactionFee(o)}).with(v.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (ET(),pT));return T().estimateTransactionFee(o)}).with(...FC,async()=>{let{estimateTransactionFee:T}=await Promise.resolve().then(() => (zT(),BT));return T(o)}).otherwise(async()=>eG.from({chain:y}))}}async function lU(y,n){let{match:o}=await import("ts-pattern");return o(y).returnType().with(...xC,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (t0(),q1));return await f(y,n)}).with(...$U,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (so(),ao));return f(y,n)}).with(...FC,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (zT(),BT));return f(y,n)}).with(v.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (jn(),un));return f(n)}).with(v.HyperCore,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (zo(),Bo));return f(n)}).with(v.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (LC(),ZC));return f(n)}).with(v.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (YC(),MC));return f(n)}).with(v.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (Ro(),Do));return f(n)}).with(v.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (W0(),G0));return f(n)}).with(v.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (xT(),FT));return f(n)}).with(v.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (IT(),$T));return f(n)}).with(v.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (SC(),kC));return f(n)}).with(v.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (QC(),XC));return f(n)}).with(v.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (m0(),h0));return f(n)}).with(v.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (ET(),pT));return f(n)}).otherwise(()=>{throw new fW("toolbox_not_supported",{chain:y})})}export{lU as getToolbox,zQ as getFeeEstimator,BQ as getAddressValidator};