@swapkit/toolboxes 4.13.3 → 4.14.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 EX=Object.defineProperty;var nX=(f)=>f;function VX(f,y){this[f]=nX.bind(null,y)}var fT=(f,y)=>{for(var G in y)EX(f,G,{get:y[G],enumerable:!0,configurable:!0,set:VX.bind(y,G)})};var S=(f,y)=>()=>(f&&(y=f(f=0)),y);var P=((f)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(f,{get:(y,G)=>(typeof require<"u"?require:y)[G]}):f)(function(f){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+f+'" is not supported')});import{AssetValue as bf,Chain as xT,derivationPathToString as vX,getChainConfig as hy,getRPCUrlSync as a5,NetworkDerivationPath as oX,SwapKitError as yT}from"@swapkit/helpers";import{match as s5,P as my}from"ts-pattern";function Lf(f){if(!f||typeof f!=="string"||!f.startsWith("0x"))return!1;let y=f.slice(2);if(y.length===0||y.length>64)return!1;return KX.test(y)}function e5({derivationPath:f,provider:y,...G}={}){let T,_=vX(f||oX[xT.Aptos],{allHardened:!0});async function X(){if(T)return T;return T=await s5(G).with({phrase:my.string},async({phrase:z})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:z,path:_})}).with({signer:my.any},({signer:z})=>z).otherwise(()=>{return}),T}async function W(){let{Aptos:z,AptosConfig:B}=await import("@aptos-labs/ts-sdk"),k=new B({fullnode:y||a5(xT.Aptos)});return new z(k)}async function Z(){return(await X())?.accountAddress.toString()||""}async function J(z){let B=z||await Z();if(!B)throw new yT("toolbox_aptos_address_required");let{baseDecimal:k,chain:R}=hy(xT.Aptos);try{let F=await W(),w=await F.getAccountAPTAmount({accountAddress:B}),Y=[bf.from({chain:R,fromBaseDecimal:k,value:w.toString()})],q=await F.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let D of q){if(D.asset_type===eT.COIN_TYPE||Number(D.amount)<=0)continue;let C=D.asset_type;if(C){let H=("metadata"in D&&typeof D.metadata==="object"&&D.metadata!==null?D.metadata:void 0)?.decimals??k;Y.push(bf.from({asset:`${xT.Aptos}.APT-${C}`,fromBaseDecimal:H,value:String(D.amount)}))}}return Y}catch{return[bf.from({chain:R})]}}async function Q(z){if(!z){let{baseDecimal:q}=hy(xT.Aptos),D=y||a5(xT.Aptos),C=await fetch(`${D}/estimate_gas_price`),{gas_estimate:$}=await C.json();return bf.from({chain:xT.Aptos,fromBaseDecimal:q,value:String($)})}let B=await X();if(!B)throw new yT("toolbox_aptos_no_signer");let k=await L(z),R=await W(),[F]=await R.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:k});if(!F)throw new yT("toolbox_aptos_transaction_creation_error");let w=BigInt(F.gas_used)*BigInt(F.gas_unit_price),{baseDecimal:Y}=hy(xT.Aptos);return bf.from({chain:xT.Aptos,fromBaseDecimal:Y,value:w.toString()})}async function L({recipient:z,assetValue:B,maxGasAmount:k,sender:R}){if(!Lf(z))throw new yT("core_transaction_invalid_recipient_address");let F=R||await Z();if(!F)throw new yT("toolbox_aptos_no_sender");let{AccountAddress:w}=await import("@aptos-labs/ts-sdk"),Y=await W(),q=w.from(F);try{let D=B.isGasAsset?eT.TRANSFER:eT.FUNGIBLE_STORE_TRANSFER,C=s5({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[w.from(z),B.getBaseValue("bigint")]).with({address:my.string},({address:$})=>[w.from($),w.from(z),B.getBaseValue("bigint")]).otherwise(()=>null);if(!C)throw new yT("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:D,functionArguments:C,typeArguments:B.isGasAsset?[]:[eT.FUNGIBLE_ASSET_METADATA]},options:k?{maxGasAmount:k}:void 0,sender:q})}catch(D){if(D instanceof yT)throw D;throw new yT("toolbox_aptos_transaction_creation_error",D)}}async function O(z){let B=await X();if(!B)throw new yT("toolbox_aptos_no_signer");return(await W()).transaction.sign({signer:B,transaction:z})}async function U({assetValue:z,maxGasAmount:B,recipient:k}){let R=await X();if(!R)throw new yT("toolbox_aptos_no_signer");if(!Lf(k))throw new yT("core_transaction_invalid_recipient_address");try{let F=R.accountAddress.toString(),w=await L({assetValue:z,maxGasAmount:B,recipient:k,sender:F});return(await(await W()).signAndSubmitTransaction({signer:R,transaction:w})).hash}catch(F){if(F instanceof yT)throw F;throw new yT("toolbox_aptos_transaction_creation_error",F)}}async function M({senderAuthenticator:z,transaction:B}){try{return(await(await W()).transaction.submit.simple({senderAuthenticator:z,transaction:B})).hash}catch(k){throw new yT("toolbox_aptos_broadcast_error",k)}}async function N(z){let B=await O(z);return M({senderAuthenticator:B,transaction:z})}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:Q,getAddress:Z,getBalance:J,signAndBroadcastTransaction:N,signTransaction:O,transfer:U,validateAddress:Lf}}function T_({provider:f}){return async function({assetValue:G,recipient:T}){if(!Lf(T))throw new yT("core_transaction_invalid_recipient_address");let{AccountAddress:_}=await import("@aptos-labs/ts-sdk");if(G.isGasAsset)return(await f.signAndSubmitTransaction({arguments:[_.from(T).toString(),G.getBaseValue("string")],function:eT.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let X=G.address;if(!X)throw new yT("toolbox_aptos_missing_asset_type");return(await f.signAndSubmitTransaction({arguments:[X,_.from(T).toString(),G.getBaseValue("string")],function:eT.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[eT.FUNGIBLE_ASSET_METADATA]})).hash}}var eT,KX;var f_=S(()=>{eT={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"},KX=/^[0-9a-fA-F]+$/});var D0={};fT(D0,{validateAptosAddress:()=>Lf,getAptosToolbox:()=>e5,createAptosExtensionTransfer:()=>T_});var O0=S(()=>{f_()});import{AssetValue as y_,getChainConfig as jX}from"@swapkit/helpers";import{SwapKitApi as bX}from"@swapkit/helpers/api";function __(){function f(){let y=Date.now(),G=py||y;return py=G,y>py?y:G+1}return lX+f().toString(36)}function UT(f){return async function(G,T=!0){let _=await bX.getChainBalance({address:G,chain:f,scamFilter:T}),{baseDecimal:X}=jX(f),W=_.map(({identifier:J,value:Q,decimal:L})=>{return new y_({decimal:L||X,identifier:J,value:Q})});if(!W.some((J)=>J.isGasAsset))return[y_.from({chain:f}),...W];return W}}var lX,py=0;var bT=S(()=>{lX=typeof process<"u"&&process.pid?process.pid.toString(36):""});function lf(f){return{getBalance:UT(f)}}function uX(f){return f}var H0=S(()=>{bT()});import{Chain as c,getChainConfig as iy,getRPCUrl as hX,SwapKitError as R0}from"@swapkit/helpers";import{getAddress as X_,Interface as mX,JsonRpcProvider as pX}from"ethers";import{match as W_}from"ts-pattern";function Z_(f){return new pX(f)}async function dy(f,y){return Z_(y||await hX(f))}function uf(f){return f>0n?`0x${f.toString(16)}`:"0x0"}function ry(f){let{explorerUrl:y,chainIdHex:G,rpcUrls:T}=iy(f);return function(){return f!==c.Ethereum?{...tX({chain:f}),blockExplorerUrls:[y],chainId:G,rpcUrls:T}:void 0}}function ay(f){return![c.Adi,c.Arbitrum,c.BinanceSmartChain].includes(f)}function tX({chain:f}){let{name:y,nativeCurrency:G,baseDecimal:T}=iy(f);return W_(f).with(c.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:T,name:"Avalanche",symbol:f}})).with(c.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:T,name:"Berachain",symbol:"BERA"}})).with(c.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:T,name:"OKB",symbol:"OKB"}})).with(c.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:T,name:"Binance Coin",symbol:"BNB"}})).with(c.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:T,name:"xDAI",symbol:"XDAI"}})).with(c.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:T,name:"Ethereum",symbol:c.Ethereum}})).with(c.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:T,name:"Polygon",symbol:c.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:T,name:G,symbol:G}}))}async function sy(f,y){if(!("authorize"in f))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let G={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await f.authorize(G)}function J_(f,y){let G=y!==void 0?`index ${y}: `:"",T=(_,X)=>{throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:_,message:`${G}${X}`}})};W_(f).when(({chainId:_})=>typeof _!=="bigint",()=>T("chainId","chainId must be a bigint")).when(({address:_})=>!cX(_),()=>T("address","address must be a valid checksummed address")).when(({nonce:_})=>typeof _!=="bigint"||_<0n,()=>T("nonce","nonce must be a non-negative bigint")).when(({signature:_})=>!_,()=>T("signature","signature is required")).when(({signature:_})=>typeof _?.yParity!=="number"||![0,1].includes(_.yParity),()=>T("signature.yParity","yParity must be 0 or 1")).when(({signature:_})=>!G_(_?.r),()=>T("signature.r","r must be a 32-byte hex string")).when(({signature:_})=>!G_(_?.s),()=>T("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function Q_(f){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>f[y]!=null).map(({key:y,type:G})=>({name:y,type:G}))}function ty(f){return f.charAt(0).toUpperCase()+f.slice(1)}function cy(f,y){if(f.isTuple()&&f.components){let G=ty(f.name);return y[G]=f.components.map((T)=>({name:T.name,type:cy(T,y)})),G}if(f.isArray()){let G=f.arrayChildren;if(G?.isTuple()&&G.components){let T=ty(f.name.replace(/s$/,""));return y[T]=G.components.map((_)=>({name:_.name,type:cy(_,y)})),`${T}[]`}return`${G?.type??"bytes"}[]`}return f.type}function gy(f,y){if(typeof f==="bigint")return f;if(y?.isTuple()&&typeof f?.toObject==="function"){let G=f.toObject(),T={};for(let[_,X]of(y.components??[]).entries())T[X.name]=gy(G[X.name]??f[_],X);return T}if(Array.isArray(f)){let G=y?.arrayChildren;return f.map((T)=>gy(T,G??void 0))}return f}function gX({chain:f,abi:y,data:G,to:T}){let X=new mX(y).parseTransaction({data:G});if(!X)throw new R0({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let W={},Z=ty(X.name);W[Z]=X.fragment.inputs.map((U)=>({name:U.name,type:cy(U,W)}));let J={};for(let[U,M]of X.fragment.inputs.entries())J[M.name]=gy(X.args[U],M);let{chainId:Q}=iy(f),L={chainId:Number(Q),verifyingContract:X_(T)},O=Q_(L);return{domain:L,message:J,primaryType:Z,types:{EIP712Domain:O,...W}}}function ey(f,y){if(!Array.isArray(f)||f.length===0)throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[G,T]of f.entries())if(J_(T,G),y!==void 0&&T.chainId!==y)throw new R0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${G}: authorization chainId (${T.chainId}) does not match transaction chainId (${y})`}})}var G_=(f)=>typeof f==="string"&&/^0x[a-fA-F0-9]{64}$/.test(f),cX=(f)=>{try{return typeof f==="string"&&!!X_(f)}catch{return!1}};var hf=()=>{};var Y_;var q_=S(()=>{Y_=[{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 iX,applyFeeMultiplierToBigInt as MT,Chain as OT,EVMChains as dX,FeeOption as l,isGasAsset as rX,SwapKitError as m,SwapKitNumber as C0}from"@swapkit/helpers";import{erc20ABI as mf}from"@swapkit/helpers/contracts";import{BrowserProvider as aX,Contract as L_,getAddress as F0,Interface as z_}from"ethers";import{match as N_}from"ts-pattern";function zf({chain:f=OT.Ethereum,provider:y,signer:G,isEIP1559Compatible:T=!0}){return{approve:y6({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),approvedAmount:B_({chain:f,provider:y}),broadcastTransaction:y.broadcastTransaction,call:X1({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),createApprovalTx:W6({chain:f,provider:y,signer:G}),createContract:y1({chain:f,provider:y}),createContractTxObject:Tf({chain:f,provider:y}),createTransaction:T1({chain:f,provider:y,signer:G}),createTransferTx:T1({chain:f,provider:y,signer:G}),EIP1193SendTransaction:Uf(y),estimateCall:w_({provider:y,signer:G}),estimateGasLimit:G6({chain:f,provider:y,signer:G}),estimateGasPrices:ff({chain:f,isEIP1559Compatible:T,provider:y}),estimateTransactionFee:Z6({chain:f,isEIP1559Compatible:T,provider:y}),getAddress:()=>{return G?G.getAddress():void 0},getBalance:lf(f).getBalance,getNetworkParams:ry(f),isApproved:f6({chain:f,provider:y}),sendTransaction:D_({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),signAuthorization:X6({signer:G}),signMessage:G?(_)=>G.signMessage(_):void 0,signTypedData:G?({domain:_,types:X,value:W})=>G.signTypedData(_,X,W):void 0,transfer:_6({chain:f,isEIP1559Compatible:T,provider:y,signer:G}),validateAddress:f1}}function f1(f){try{return F0(f),!0}catch{return!1}}function Nf(f){return f instanceof aX}function tf(f,y,G){return new L_(f,z_.from(y),G)}function y1({provider:f}){return function(G,T){return new L_(G,z_.from(T),f)}}function _1({abi:f,funcName:y}){let G=f.find((T)=>T.name===y);if(!G)throw new m("toolbox_evm_no_abi_fragment",{funcName:y});return G.stateMutability&&sX.includes(G.stateMutability)}function U_(f){return F0(f)}function Uf(f){return function({value:G,...T}){if(!Nf(f))throw new m("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:_,gasPrice:X,maxFeePerGas:W,maxPriorityFeePerGas:Z,...J}=T;return f.send("eth_sendTransaction",[{...J,value:uf(BigInt(G||0))}])}}function M_(f,y){let G=Mf(f,y);if(G)return F0(G.toLowerCase());throw new m("toolbox_evm_invalid_gas_asset_address")}function Mf({chain:f,symbol:y,ticker:G},T){try{let _=f===OT.BinanceSmartChain&&y==="BNB"&&G==="BNB",X=f===OT.Hyperevm&&y==="HYPE"&&G==="HYPE",W=f===T&&y===T&&G===T,Z=T6.includes(f)&&y==="ETH"&&G==="ETH";if(W||_||X||Z)return G1[T];return F0(y.slice(G.length+1).replace(/^0X/,""))}catch{return null}}function Tf({provider:f}){return async({contractAddress:y,abi:G,funcName:T,funcParams:_=[],txOverrides:X})=>tf(y,G,f).getFunction(T).populateTransaction(..._.concat(X).filter((W)=>typeof W<"u"))}function ff({chain:f,provider:y,isEIP1559Compatible:G=!0}){return N_(f).with(OT.Gnosis,()=>{return async function(){try{let{gasPrice:_,maxPriorityFeePerGas:X}=await y.getFeeData();if(!_||X===null)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{maxFeePerGas:MT(_,l.Average),maxPriorityFeePerGas:MT(X,l.Average)},[l.Fast]:{maxFeePerGas:MT(_,l.Fast),maxPriorityFeePerGas:MT(X,l.Fast)},[l.Fastest]:{maxFeePerGas:MT(_,l.Fastest),maxPriorityFeePerGas:MT(X,l.Fastest)}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).with(OT.Arbitrum,()=>{return async function(){try{let{gasPrice:_}=await y.getFeeData();if(!_)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{gasPrice:_},[l.Fast]:{gasPrice:_},[l.Fastest]:{gasPrice:_}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:_,maxPriorityFeePerGas:X,gasPrice:W}=await y.getFeeData();if(G){if(_===null||X===null)throw new m("toolbox_evm_no_fee_data");return{[l.Average]:{maxFeePerGas:_,maxPriorityFeePerGas:X},[l.Fast]:{maxFeePerGas:MT(_,l.Fast),maxPriorityFeePerGas:MT(X,l.Fast)},[l.Fastest]:{maxFeePerGas:MT(_,l.Fastest),maxPriorityFeePerGas:MT(X,l.Fastest)}}}if(!W)throw new m("toolbox_evm_no_gas_price");return{[l.Average]:{gasPrice:W},[l.Fast]:{gasPrice:MT(W,l.Fast)},[l.Fastest]:{gasPrice:MT(W,l.Fastest)}}}catch(_){throw new m("toolbox_evm_gas_estimation_error",{error:_.msg??_.toString()})}}})}function X1({provider:f,isEIP1559Compatible:y,signer:G,chain:T}){return async function({callProvider:X,contractAddress:W,abi:Z,funcName:J,funcParams:Q=[],txOverrides:L={},feeOption:O=l.Fast}){let U=X||f;if(!W)throw new m("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let M=_1({abi:Z,funcName:J});if(M&&Nf(U)&&G){let B=Tf({chain:T,provider:U}),k=L?.from||await G?.getAddress(),R=await B({abi:Z,contractAddress:W,funcName:J,funcParams:Q,txOverrides:{...L,from:k}});return Uf(U)(R)}let N=tf(W,Z,U);if(M){if(!G)throw new m("toolbox_evm_no_signer");let B=L?.from||await G.getAddress();if(!B)throw new m("toolbox_evm_no_signer_address");let k=N.connect(G),R=ff({chain:T,isEIP1559Compatible:y,provider:f}),{maxFeePerGas:F,maxPriorityFeePerGas:w,gasPrice:Y}=(await R())[O],q=await N.getFunction(J).estimateGas(...Q,L),D=await k[J](...Q,{...L,gasLimit:q,gasPrice:Y,maxFeePerGas:F,maxPriorityFeePerGas:w,nonce:L?.nonce||await U.getTransactionCount(B)});return typeof D?.hash==="string"?D?.hash:D}let z=await N[J]?.(...Q);return typeof z?.hash==="string"?z?.hash:z}}function B_({provider:f,chain:y}){return function({assetAddress:T,spenderAddress:_,from:X}){return X1({chain:y,isEIP1559Compatible:!0,provider:f})({abi:mf,contractAddress:T,funcName:"allowance",funcParams:[X,_]})}}function f6({provider:f,chain:y}){return async function({assetAddress:T,spenderAddress:_,from:X,amount:W=pf}){let Z=await B_({chain:y,provider:f})({assetAddress:T,from:X,spenderAddress:_});return C0.fromBigInt(Z).gte(C0.fromBigInt(BigInt(W)))}}function y6({signer:f,isEIP1559Compatible:y=!0,provider:G,chain:T}){return async function({assetAddress:X,spenderAddress:W,feeOptionKey:Z=l.Fast,amount:J,gasLimitFallback:Q,from:L,nonce:O}){let U=[W,BigInt(J||pf)],M=await f?.getAddress()||L,N={abi:mf,contractAddress:X,funcName:"approve",funcParams:U,signer:f,txOverrides:{from:M}};if(Nf(G)){let B=Tf({chain:T,provider:G}),k=Uf(G),R=await B(N);return k(R)}return X1({chain:T,isEIP1559Compatible:y,provider:G,signer:f})({...N,feeOption:Z,funcParams:U,txOverrides:{from:M,gasLimit:Q?BigInt(Q.toString()):void 0,nonce:O}})}}function _6({signer:f,isEIP1559Compatible:y=!0,provider:G}){return async function({assetValue:_,memo:X,recipient:W,feeOptionKey:Z=l.Fast,sender:J,...Q}){let{hexlify:L,toUtf8Bytes:O}=await import("ethers"),U=_.getBaseValue("bigint"),M=_.chain,N=J||await f?.getAddress(),z=D_({chain:M,isEIP1559Compatible:y,provider:G,signer:f});if(!N)throw new m("toolbox_evm_no_from_address");if(_.isGasAsset){let Y={...Q,data:L(O(X||"")),feeOptionKey:Z,from:N,to:W,value:U};return z(Y)}if(!Mf(_,M))throw new m("toolbox_evm_no_contract_address");let{maxFeePerGas:k,maxPriorityFeePerGas:R,gasPrice:F}=(await ff({chain:M,isEIP1559Compatible:y,provider:G})())[Z],w=await T1({chain:M,provider:G,signer:f})({assetValue:_,data:L(O(X||"")),gasPrice:F,maxFeePerGas:k,maxPriorityFeePerGas:R,memo:X,recipient:W,sender:N});return z(w)}}function w_({provider:f,signer:y}){return function({contractAddress:T,abi:_,funcName:X,funcParams:W=[],txOverrides:Z}){if(!T)throw new m("toolbox_evm_no_contract_address");let J=tf(T,_,f);return y?J.connect(y).getFunction(X).estimateGas(...W,Z):J.getFunction(X).estimateGas(...W,Z)}}function G6({provider:f,signer:y}){return async function({assetValue:T,recipient:_,memo:X,data:W,sender:Z,funcName:J,funcParams:Q,txOverrides:L}){let O=T.bigIntValue,U=T.isGasAsset?null:Mf(T,T.chain);if(U&&J)return w_({provider:f,signer:y})({abi:mf,contractAddress:U,funcName:J,funcParams:Q,txOverrides:L});let{hexlify:M,toUtf8Bytes:N}=await import("ethers");return f.estimateGas({data:W?W:X?M(N(X)):void 0,from:Z,to:_,value:O})}}function X6({signer:f}){if(!f)return;return(y)=>sy(f,y)}function D_({provider:f,signer:y,isEIP1559Compatible:G=!0,chain:T}){return async function({feeOptionKey:X=l.Fast,...W}){let{from:Z,to:J,data:Q,value:L,...O}=W;if(!y)throw new m("toolbox_evm_no_signer");if(!J)throw new m("toolbox_evm_no_to_address");let U={...O,data:Q||"0x",from:Z,to:J,value:BigInt(L||0)};if(Nf(f))return Uf(f)(U);let M=Z||await y.getAddress(),N=W.nonce||await f.getTransactionCount(M),z=(await f.getNetwork()).chainId,B=Z1(U,G);if(B==="eip7702")ey(U.authorizations||[],z);let k=N_(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),R={...U,chainId:z,nonce:N,type:k,...B==="eip7702"&&{authorizationList:U.authorizations}},F=ff({chain:T,isEIP1559Compatible:G,provider:f}),Y=B!=="legacy"&&!(U.maxFeePerGas&&U.maxPriorityFeePerGas)||!U.gasPrice?Object.entries((await F())[X]).reduce((D,[C,$])=>({...D,[C]:uf(BigInt($))}),{}):{},q;try{q=uf(U.gasLimit||await f.estimateGas(R)*11n/10n)}catch(D){throw new m("toolbox_evm_error_estimating_gas_limit",{error:D})}try{let D={...R,gasLimit:q,...Y};try{return(await y.sendTransaction(D)).hash}catch{let C=await y.signTransaction({...D,from:M});return(await f.broadcastTransaction(C)).hash}}catch(D){throw new m("toolbox_evm_error_sending_transaction",{error:D})}}}function T1({provider:f,signer:y}){return async function({assetValue:T,memo:_,recipient:X,data:W,sender:Z,maxFeePerGas:J,maxPriorityFeePerGas:Q,gasPrice:L,...O}){let U=T.getBaseValue("bigint"),M=T.chain,N=Z||await y?.getAddress();if(!N)throw new m("toolbox_evm_no_from_address");if(rX(T)){let{hexlify:k,toUtf8Bytes:R}=await import("ethers");return{...O,data:W||k(R(_||"")),from:N,to:X,value:U}}let z=Mf(T,M);if(!z)throw new m("toolbox_evm_no_contract_address");return Tf({chain:T.chain,provider:f})({abi:mf,contractAddress:z,funcName:"transfer",funcParams:[X,U],txOverrides:{from:N,gasPrice:L,maxFeePerGas:J,maxPriorityFeePerGas:Q}})}}function W6({provider:f,signer:y,chain:G}){return async function({assetAddress:_,spenderAddress:X,amount:W,from:Z}){let J=await y?.getAddress()||Z,Q=Tf({chain:G,provider:f}),L=["bigint","number"].includes(typeof W)?W:W||pf;return await Q({abi:mf,contractAddress:_,funcName:"approve",funcParams:[X,BigInt(L)],txOverrides:{from:J}})}}function Z6({provider:f,isEIP1559Compatible:y=!0,chain:G}){return async function({feeOption:_=l.Fast,...X}){let Z=await ff({chain:G,isEIP1559Compatible:y,provider:f})(),J=await f.estimateGas(X),Q=iX.from({chain:G}),{gasPrice:L,maxFeePerGas:O,maxPriorityFeePerGas:U}=Z[_];if(!y&&L)return Q.set(C0.fromBigInt(L*J,Q.decimal));if(O&&U){let M=(O+U)*J;return Q.set(C0.fromBigInt(M,Q.decimal))}throw new m("toolbox_evm_no_gas_price")}}var pf,sX,eX,G1,T6,k0=(f)=>f.type===4||(f.authorizations?.length??0)>0,W1=(f)=>!k0(f)&&(f.type===2||!!f.maxFeePerGas||!!f.maxPriorityFeePerGas),Z1=(f,y=!0)=>{if(k0(f))return"eip7702";if(W1(f)||y)return"eip1559";return"legacy"};var $0=S(()=>{H0();hf();pf=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");sX=["payable","nonpayable"];eX=dX.reduce((f,y)=>{return f[y]="0x0000000000000000000000000000000000000000",f},{}),G1={...eX,[OT.Optimism]:"0x4200000000000000000000000000000000000042",[OT.Polygon]:"0x0000000000000000000000000000000000001010"},T6=[OT.Arbitrum,OT.Aurora,OT.Base,OT.Optimism]});import{Chain as i,FeeOption as J6}from"@swapkit/helpers";import{HDNodeWallet as Q6}from"ethers";import{match as Y6,P as O_}from"ts-pattern";function I0(f){let y=d(i.Ethereum)(f);async function G(T,_="0x5ba1e12693dc8f9c48aad8770482f4739beed696",X="aggregate",W=J6.Fast){let Z=await y.createContractTxObject({abi:Y_,contractAddress:_,funcName:X,funcParams:[T]});return y.sendTransaction({...Z,feeOptionKey:W})}return{...y,multicall:G}}function d(f){return function({provider:G,...T}){let _=ay(f),X=Y6(T).with({phrase:O_.string},({phrase:Z})=>Q6.fromPhrase(Z).connect(G)).with({signer:O_.any},({signer:Z})=>Z).otherwise(()=>{return});return zf({chain:f,isEIP1559Compatible:_,provider:G,signer:X})}}var A0,P0,x0,S0,E0,n0,V0,H_,v0,o0,K0,j0,b0,l0,cf,u0,h0,m0,p0;var J1=S(()=>{q_();hf();$0();A0=d(i.Adi),P0=d(i.Arbitrum),x0=d(i.Aurora),S0=d(i.Avalanche),E0=d(i.Base),n0=d(i.Berachain),V0=d(i.BinanceSmartChain),H_=d(i.Botanix),v0=d(i.Core),o0=d(i.Corn),K0=d(i.Cronos),j0=d(i.Gnosis),b0=d(i.Hyperevm),l0=d(i.Polygon),cf=d(i.Sonic),u0=d(i.Unichain),h0=d(i.XLayer),m0=d(i.Monad),p0=d(i.MegaETH)});var R_;var C_=S(()=>{R_=[{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 Bf,Chain as L6,FeeOption as ST,SwapKitError as Q1}from"@swapkit/helpers";import{Contract as z6,HDNodeWallet as N6}from"ethers";import{match as U6,P as F_}from"ts-pattern";function Y1(f){return new z6(M6,R_,f)}function k_(f){return async function(){let G=Y1(f);if(G&&"l1BaseFee"in G)return await G?.l1BaseFee();return}}function $_(f){return async function({from:G,to:T,nonce:_,...X}){let{Transaction:W}=await import("ethers");if(!T)throw new Q1("toolbox_evm_invalid_transaction",{error:"Missing to address"});return W.from({...X,authorizationList:X.authorizationList,nonce:_?_:G?await f.getTransactionCount(G):0,to:T}).serialized}}function I_(f){return async function(G){let T=Y1(f),_=await $_(f)(G);if(T&&"getL1Fee"in T)return T.getL1Fee(_)}}function A_(f){return async function(G){let _=(await f.getFeeData()).gasPrice??0n,X=await f.estimateGas(G);return _*X}}function B6(f){return async function(G){let T=await I_(f)(G)??0n,_=await A_(f)(G);return T+_}}function w6(f){return async function(G){let T=Y1(f),_=await $_(f)(G);if(T&&"getL1GasUsed"in T)return T.getL1GasUsed(_)}}function D6(f){return async function(){try{let{maxFeePerGas:G,maxPriorityFeePerGas:T,gasPrice:_}=await f.getFeeData(),X=await k_(f)(),W=_;if(!(G&&T))throw new Q1("toolbox_evm_no_fee_data");return{[ST.Average]:{gasPrice:W,l1GasPrice:X,maxFeePerGas:G,maxPriorityFeePerGas:T},[ST.Fast]:{gasPrice:Bf(W,ST.Fast),l1GasPrice:Bf(X||0n,ST.Fast),maxFeePerGas:G,maxPriorityFeePerGas:Bf(T,ST.Fast)},[ST.Fastest]:{gasPrice:Bf(W,ST.Fastest),l1GasPrice:Bf(X||0n,ST.Fastest),maxFeePerGas:G,maxPriorityFeePerGas:Bf(T,ST.Fastest)}}}catch(G){throw new Q1("toolbox_evm_gas_estimation_error",{error:G.msg??G.toString()})}}}function t0({provider:f,...y}){let G=U6(y).with({phrase:F_.string},({phrase:X})=>N6.fromPhrase(X).connect(f)).with({signer:F_.any},({signer:X})=>X).otherwise(()=>{return}),T=zf({provider:f,signer:G}),_=k_(f);return{...T,estimateGasPrices:D6(f),estimateL1Gas:w6(f),estimateL1GasCost:I_(f),estimateL2GasCost:A_(f),estimateTotalGasCost:B6(f),getBalance:lf(L6.Optimism).getBalance,getL1GasPrice:_}}var M6="0x420000000000000000000000000000000000000f";var q1=S(()=>{H0();C_();$0()});var x_={};fT(x_,{validateEVMAddress:()=>f1,toChecksumAddress:()=>U_,isStateChangingCall:()=>_1,isEIP7702Transaction:()=>k0,isEIP1559Transaction:()=>W1,isBrowserProvider:()=>Nf,getTokenAddress:()=>Mf,getEvmToolboxAsync:()=>P_,getEvmToolbox:()=>L1,getEstimateGasPrices:()=>ff,getEVMTxType:()=>Z1,getEIP1193SendTransaction:()=>Uf,getCreateContractTxObject:()=>Tf,getCreateContract:()=>y1,getChecksumAddressFromAsset:()=>M_,createContract:()=>tf,XLayerToolbox:()=>h0,UNIToolbox:()=>u0,SONICToolbox:()=>cf,OPToolbox:()=>t0,MONADToolbox:()=>m0,MEGAETHToolbox:()=>p0,MAX_APPROVAL:()=>pf,MATICToolbox:()=>l0,HYPEREVMToolbox:()=>b0,GNOToolbox:()=>j0,ETHToolbox:()=>I0,ContractAddress:()=>G1,CROToolbox:()=>K0,CORNToolbox:()=>o0,COREToolbox:()=>v0,BotanixToolbox:()=>H_,BaseEVMToolbox:()=>zf,BSCToolbox:()=>V0,BERAToolbox:()=>n0,BASEToolbox:()=>E0,AVAXToolbox:()=>S0,AURORAToolbox:()=>x0,ARBToolbox:()=>P0,ADIToolbox:()=>A0});import{Chain as g}from"@swapkit/helpers";import{match as O6}from"ts-pattern";function L1(f,y){return O6(f).with(g.Adi,()=>A0(y)).with(g.Arbitrum,()=>P0(y)).with(g.Aurora,()=>x0(y)).with(g.Avalanche,()=>S0(y)).with(g.Base,()=>E0(y)).with(g.Berachain,()=>n0(y)).with(g.BinanceSmartChain,()=>V0(y)).with(g.Botanix,()=>cf(y)).with(g.Core,()=>v0(y)).with(g.Corn,()=>o0(y)).with(g.Cronos,()=>K0(y)).with(g.Ethereum,()=>I0(y)).with(g.Gnosis,()=>j0(y)).with(g.Hyperevm,()=>b0(y)).with(g.Optimism,()=>t0(y)).with(g.Polygon,()=>l0(y)).with(g.Sonic,()=>cf(y)).with(g.Unichain,()=>u0(y)).with(g.XLayer,()=>h0(y)).with(g.Monad,()=>m0(y)).with(g.MegaETH,()=>p0(y)).exhaustive()}async function P_(f,y){let G={...y,provider:y?.provider||await dy(f)};return L1(f,G)}var z1=S(()=>{hf();J1();q1();$0();J1();q1()});var S_;var E_=S(()=>{((G)=>{G.Test="goerli";G.Main="homestead"})(S_||={})});var n_={};fT(n_,{validateEVMAddress:()=>f1,validateAuthorizations:()=>ey,validateAuthorization:()=>J_,toHexString:()=>uf,toChecksumAddress:()=>U_,signAuthorization:()=>sy,parseEIP712FromEVMTx:()=>gX,isStateChangingCall:()=>_1,isEIP7702Transaction:()=>k0,isEIP1559Transaction:()=>W1,isBrowserProvider:()=>Nf,getTokenAddress:()=>Mf,getProviderSync:()=>Z_,getProvider:()=>dy,getNetworkParams:()=>ry,getIsEIP1559Compatible:()=>ay,getEvmToolboxAsync:()=>P_,getEvmToolbox:()=>L1,getEvmApi:()=>lf,getEstimateGasPrices:()=>ff,getEVMTxType:()=>Z1,getEIP1193SendTransaction:()=>Uf,getCreateContractTxObject:()=>Tf,getCreateContract:()=>y1,getChecksumAddressFromAsset:()=>M_,createCustomEvmApi:()=>uX,createContract:()=>tf,buildEIP712DomainType:()=>Q_,XLayerToolbox:()=>h0,UNIToolbox:()=>u0,SONICToolbox:()=>cf,OPToolbox:()=>t0,MONADToolbox:()=>m0,MEGAETHToolbox:()=>p0,MAX_APPROVAL:()=>pf,MATICToolbox:()=>l0,HYPEREVMToolbox:()=>b0,GNOToolbox:()=>j0,EthNetwork:()=>S_,ETHToolbox:()=>I0,ContractAddress:()=>G1,CROToolbox:()=>K0,CORNToolbox:()=>o0,COREToolbox:()=>v0,BotanixToolbox:()=>H_,BaseEVMToolbox:()=>zf,BSCToolbox:()=>V0,BERAToolbox:()=>n0,BASEToolbox:()=>E0,AVAXToolbox:()=>S0,AURORAToolbox:()=>x0,ARBToolbox:()=>P0,ADIToolbox:()=>A0});var V_=S(()=>{H0();hf();z1();E_()});import{bech32 as H6}from"@scure/base";import{mnemonicToSeed as R6}from"@scure/bip39";import{Bip32PrivateKey as C6}from"@stricahq/bip32ed25519";import{Transaction as F6,types as M1,address as k6,crypto as N1,utils as v_}from"@stricahq/typhonjs";import{AssetValue as wf,Chain as yf,getChainConfig as $6,SwapKitError as gf}from"@swapkit/helpers";import LT from"bignumber.js";async function B1(f,y){let G=await fetch(`${b_}${f}`,{...y,headers:{project_id:j_,...y?.headers}});if(!G.ok)throw Error(`Blockfrost API error: ${G.status} ${G.statusText}`);return G.json()}async function l_(f){try{return await B1(`/addresses/${f}/utxos`)}catch{return[]}}async function A6(){return(await B1("/blocks/latest")).slot}async function P6(){let f=await B1("/epochs/latest/parameters"),y={PlutusScriptV1:f.cost_models.PlutusV1?Object.values(f.cost_models.PlutusV1):[],PlutusScriptV2:f.cost_models.PlutusV2?Object.values(f.cost_models.PlutusV2):[],PlutusScriptV3:f.cost_models.PlutusV3?Object.values(f.cost_models.PlutusV3):[]};return{collateralPercent:new LT(f.collateral_percent),languageView:y,lovelacePerUtxoWord:new LT(0),maxValueSize:Number.parseInt(f.max_val_size,10),minFeeA:new LT(f.min_fee_a),minFeeB:new LT(f.min_fee_b),minFeeRefScriptCostPerByte:new LT(15),priceMem:new LT(f.price_mem),priceSteps:new LT(f.price_step),stakeKeyDeposit:new LT(2000000),utxoCostPerByte:new LT(f.coins_per_utxo_size)}}async function K_(f){let y=await fetch(`${b_}/tx/submit`,{body:Buffer.from(f,"hex"),headers:{"Content-Type":"application/cbor",project_id:j_},method:"POST"});if(!y.ok){let G=await y.text();throw Error(`Transaction submission failed: ${G}`)}return y.json()}function x6(f,y){return f.map((G)=>{let T=G.amount.find((W)=>W.unit==="lovelace"),_=T?new LT(T.quantity):new LT(0),X=G.amount.filter((W)=>W.unit!=="lovelace").map((W)=>({amount:new LT(W.quantity),assetName:W.unit.slice(56),policyId:W.unit.slice(0,56)}));return{address:y,amount:_,index:G.output_index,tokens:X,txId:G.tx_hash}})}async function S6(f){try{let y=await l_(f),G=0n,T=new Map;for(let W of y){if(!W.amount||!Array.isArray(W.amount))continue;for(let Z of W.amount){let{unit:J,quantity:Q}=Z;if(J==="lovelace")G+=BigInt(Q);else{let L=T.get(J)||0n;T.set(J,L+BigInt(Q))}}}let _=[],{baseDecimal:X}=$6(yf.Cardano);if(G>0n)_.push(wf.from({chain:yf.Cardano,fromBaseDecimal:X,value:G.toString()}));for(let[W,Z]of T)_.push(wf.from({asset:`${yf.Cardano}.${W}`,value:Z.toString()}));if(_.length===0)return[wf.from({chain:yf.Cardano})];return _}catch(y){let G=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${G}`),[wf.from({chain:yf.Cardano})]}}function u_(f){if(!f||typeof f!=="string")return!1;try{let y=H6.decode(f,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function E6(f,y=0,G=0){let T=await R6(f,""),X=(await C6.fromEntropy(Buffer.from(T.slice(0,64)))).derive(U1+1852).derive(U1+1815).derive(U1+y),W=X.derive(0).derive(G),Z=W.toBip32PublicKey().toPublicKey().toBytes(),J=N1.hash28(Z),L=X.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),O=N1.hash28(L),U={hash:J,type:M1.HashType.ADDRESS},M={hash:O,type:M1.HashType.ADDRESS},z=new k6.BaseAddress(I6,U,M).getBech32(),B=W.toPrivateKey();return{getAddress:()=>z,publicKey:Z,publicKeyHash:J,signTransaction:async(k)=>{try{let R=await import("@stricahq/cbors"),F=Buffer.from(k,"hex"),w=R.Decoder.decode(F),[Y,q,D,C]=w.value,$=R.Encoder.encode(Y),H=N1.hash32($),I=B.sign(H),A=q instanceof Map?q:new Map,E=A.get(o_)||[];E.push([Z,I]),A.set(o_,E);let V=[Y,A,D,C];return R.Encoder.encode(V).toString("hex")}catch(R){throw new gf("toolbox_cardano_sign_transaction_failed",{message:String(R)})}}}}function n6(f){let y,G,T;async function _(){if(!T)T=await P6();return T}async function X(){if(y!==void 0)return y;if(f&&"phrase"in f&&f.phrase){let M=f.index??0;return y=await E6(f.phrase,0,M),y}if(f&&"signer"in f&&f.signer)return y=f.signer,y;return}async function W(){if(G)return G;let M=await X();if(!M)return"";if("getAddress"in M)return G=await M.getAddress(),G;return""}async function Z(M){let N=M||await W();if(!N)throw new gf("core_wallet_connection_not_found");return S6(N)}async function J(M){if(M)try{let{tx:k}=await Q(M),R=k.getFee();return wf.from({chain:yf.Cardano,fromBaseDecimal:6,value:R.toString()})}catch{}let N=await _(),z=400,B=N.minFeeB.plus(N.minFeeA.times(z));return wf.from({chain:yf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function Q({sender:M="",recipient:N,assetValue:z,memo:B,pureLovelaceOnly:k=!1}){let R=M||await W();if(!R)throw new gf("core_wallet_connection_not_found");let[F,w,Y]=await Promise.all([l_(R),A6(),_()]),q=F.filter((j)=>k?j.amount.every((u)=>u.unit==="lovelace"):j.amount.some((u)=>u.unit==="lovelace")).sort((j,u)=>{let r=j.amount.some((TT)=>TT.unit!=="lovelace"),JT=u.amount.some((TT)=>TT.unit!=="lovelace");if(r===JT)return 0;return r?1:-1}),D=v_.getAddressFromString(R),C=v_.getAddressFromString(N),$=x6(q,D),H=new LT(z.getBaseValue("string")),I=[{address:C,amount:H,tokens:[]}],A;if(B){let j=new Map;j.set("msg",[B]),A={metadata:[{data:j,label:674}]}}let V=new F6({protocolParams:Y}).paymentTransaction({auxiliaryData:A,changeAddress:D,inputs:$,outputs:I,ttl:w+3600}),{payload:o}=V.buildTransaction();return{tx:V,unsignedTx:o}}async function L(M){let N=await X();if(!N||!("signTransaction"in N))throw new gf("core_wallet_connection_not_found");return N.signTransaction(M)}async function O({recipient:M,assetValue:N,memo:z}){let B=await X();if(!B||!("signTransaction"in B))throw new gf("core_wallet_connection_not_found");let{unsignedTx:k}=await Q({assetValue:N,memo:z,recipient:M,sender:await W()}),R=await L(k);return await K_(R)}async function U(M){let N=await L(M);return await K_(N)}return{createTransaction:Q,estimateTransactionFee:J,getAddress:W,getBalance:Z,signAndBroadcastTransaction:U,signTransaction:L,transfer:O,validateAddress:u_}}var j_="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",b_="https://cardano-mainnet.blockfrost.io/api/v0",I6,U1=2147483648,o_=0;var h_=S(()=>{I6=M1.NetworkId.MAINNET});var w1={};fT(w1,{validateCardanoAddress:()=>u_,getCardanoToolbox:()=>n6});var D1=S(()=>{h_()});import{base64 as g0,bech32 as c0}from"@scure/base";import{SwapKitError as V6}from"@swapkit/helpers";function df(f){return g0.encode(Uint8Array.from(c0.fromWords(c0.decode(f).words)))}function rf(f,y="thor"){return c0.encode(y,c0.toWords(g0.decode(f)))}function v6(f){return g0.encode(f)}function o6(f){if(!f.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new V6("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return g0.decode(f)}var O1=()=>{};import{AssetValue as H1,Chain as b,getChainConfig as $T,getRPCUrl as K6,SwapKitError as m_}from"@swapkit/helpers";function ET(f){switch(f){case b.Maya:return{amount:[],gas:"10000000000"};case b.THORChain:return{amount:[],gas:"500000000"};case b.Kujira:return c_;case b.Noble:return g_;default:return t_}}async function nT(f){let y=await import("@cosmjs/stargate"),G=y.StargateClient??y.default?.StargateClient,T=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return G.connect({headers:T,url:f})}async function _f(f,y,G={}){let T=await import("@cosmjs/stargate"),_=T.SigningStargateClient??T.default?.SigningStargateClient,X=T.GasPrice??T.default?.GasPrice,W=typeof G==="string"?G:"0.0003uatom",Z=typeof G==="string"?{}:G;return _.connectWithSigner(f,y,{gasPrice:X.fromString(W),...Z})}async function C1(f,y){let G=await import("@cosmjs/stargate");return(G.SigningStargateClient??G.default?.SigningStargateClient).offline(f,y)}async function F1({sender:f,recipient:y,assetValue:G,memo:T="",feeRate:_,sequence:X,accountNumber:W}){let{chain:Z,chainId:J}=G,Q=await K6(Z),O=await(await nT(Q)).getAccount(f);if(!O)throw new m_("toolbox_cosmos_account_not_found",{sender:f});let U=H1.from({chain:Z}),M=lT(U.symbol),N=ET(Z),z=M&&_?{amount:[{amount:_.toString(),denom:M}],gas:N.gas}:N,B={amount:[{amount:G.getBaseValue("string"),denom:lT(G.symbol)}],fromAddress:f,toAddress:y};return{accountNumber:W??O.accountNumber,chainId:J,fee:z,memo:T,msgs:[{typeUrl:j6(Z),value:B}],sequence:X??O.sequence}}var R1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",p_="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",t_,c_,g_,lT=(f,y=!1)=>{if(y)return f.toLowerCase();switch(f){case"uUSK":case"USK":return R1;case"uYUM":case"YUM":return p_;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return f}},af=({symbol:f,chain:y})=>{if(y===b.Maya)return(f.toUpperCase()!=="CACAO"?f:`${b.Maya}.${f}`).toUpperCase();if(y===b.THORChain)return(["RUNE","TCY","RUJI"].includes(f.toUpperCase())?`${b.THORChain}.${f}`:f).toUpperCase();return lT(f,!1)},j6=(f)=>{switch(f){case b.Maya:case b.THORChain:return"/types.MsgSend";case b.Cosmos:case b.Kujira:case b.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new m_("toolbox_cosmos_not_supported",{chain:f})}},b6,k1=(f,y)=>{let G=b6[f.toLowerCase()];if(!G)return H1.from({asset:f,fromBaseDecimal:8,value:y});let{chain:T,asset:_,decimals:X}=G,W=T?{chain:T}:{asset:_};return H1.from({...W,fromBaseDecimal:X,value:y})};var sf=S(()=>{t_={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},c_={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},g_={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};b6={atom:{chain:b.Cosmos,decimals:$T(b.Cosmos).baseDecimal},cacao:{chain:b.Maya,decimals:10},kuji:{chain:b.Kujira,decimals:$T(b.Kujira).baseDecimal},maya:{asset:`${b.Maya}.${b.Maya}`,decimals:4},rune:{chain:b.THORChain,decimals:$T(b.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:$T(b.THORChain).baseDecimal},uatom:{chain:b.Cosmos,decimals:$T(b.Cosmos).baseDecimal},ukuji:{chain:b.Kujira,decimals:$T(b.Kujira).baseDecimal},usdc:{chain:b.Noble,decimals:$T(b.Noble).baseDecimal},uusdc:{chain:b.Noble,decimals:$T(b.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:$T(b.THORChain).baseDecimal},[R1.toLowerCase()]:{asset:`${b.Kujira}.USK`,decimals:$T(b.Kujira).baseDecimal}}});var i_={};fT(i_,{$root:()=>x});import e from"protobufjs/minimal.js";var v,BT,n,x;var d_=S(()=>{v=e.Reader,BT=e.Writer,n=e.util,x=e.roots.default||(e.roots.default={});x.common=(()=>{let f={};return f.Asset=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(10).string(T.chain);if(T.symbol!=null&&Object.hasOwnProperty.call(T,"symbol"))_.uint32(18).string(T.symbol);if(T.ticker!=null&&Object.hasOwnProperty.call(T,"ticker"))_.uint32(26).string(T.ticker);if(T.synth!=null&&Object.hasOwnProperty.call(T,"synth"))_.uint32(32).bool(T.synth);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Asset;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.chain=T.string();break;case 2:W.symbol=T.string();break;case 3:W.ticker=T.string();break;case 4:W.synth=T.bool();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.chain!=null&&T.hasOwnProperty("chain")){if(!n.isString(T.chain))return"chain: string expected"}if(T.symbol!=null&&T.hasOwnProperty("symbol")){if(!n.isString(T.symbol))return"symbol: string expected"}if(T.ticker!=null&&T.hasOwnProperty("ticker")){if(!n.isString(T.ticker))return"ticker: string expected"}if(T.synth!=null&&T.hasOwnProperty("synth")){if(typeof T.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Asset)return T;let _=new x.common.Asset;if(T.chain!=null)_.chain=String(T.chain);if(T.symbol!=null)_.symbol=String(T.symbol);if(T.ticker!=null)_.ticker=String(T.ticker);if(T.synth!=null)_.synth=Boolean(T.synth);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.chain="",X.symbol="",X.ticker="",X.synth=!1;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.symbol!=null&&T.hasOwnProperty("symbol"))X.symbol=T.symbol;if(T.ticker!=null&&T.hasOwnProperty("ticker"))X.ticker=T.ticker;if(T.synth!=null&&T.hasOwnProperty("synth"))X.synth=T.synth;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Coin=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=n.Long?n.Long.fromBits(0,0,!1):0,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.asset!=null&&Object.hasOwnProperty.call(T,"asset"))x.common.Asset.encode(T.asset,_.uint32(10).fork()).ldelim();if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))_.uint32(18).string(T.amount);if(T.decimals!=null&&Object.hasOwnProperty.call(T,"decimals"))_.uint32(24).int64(T.decimals);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Coin;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.asset=x.common.Asset.decode(T,T.uint32());break;case 2:W.amount=T.string();break;case 3:W.decimals=T.int64();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.asset!=null&&T.hasOwnProperty("asset")){let _=x.common.Asset.verify(T.asset);if(_)return"asset."+_}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!n.isString(T.amount))return"amount: string expected"}if(T.decimals!=null&&T.hasOwnProperty("decimals")){if(!n.isInteger(T.decimals)&&!(T.decimals&&n.isInteger(T.decimals.low)&&n.isInteger(T.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Coin)return T;let _=new x.common.Coin;if(T.asset!=null){if(typeof T.asset!=="object")throw TypeError(".common.Coin.asset: object expected");_.asset=x.common.Asset.fromObject(T.asset)}if(T.amount!=null)_.amount=String(T.amount);if(T.decimals!=null){if(n.Long)(_.decimals=n.Long.fromValue(T.decimals)).unsigned=!1;else if(typeof T.decimals==="string")_.decimals=Number.parseInt(T.decimals,10);else if(typeof T.decimals==="number")_.decimals=T.decimals;else if(typeof T.decimals==="object")_.decimals=new n.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber()}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)if(X.asset=null,X.amount="",n.Long){let W=new n.Long(0,0,!1);X.decimals=_.longs===String?W.toString():_.longs===Number?W.toNumber():W}else X.decimals=_.longs===String?"0":0;if(T.asset!=null&&T.hasOwnProperty("asset"))X.asset=x.common.Asset.toObject(T.asset,_);if(T.amount!=null&&T.hasOwnProperty("amount"))X.amount=T.amount;if(T.decimals!=null&&T.hasOwnProperty("decimals"))if(typeof T.decimals==="number")X.decimals=_.longs===String?String(T.decimals):T.decimals;else X.decimals=_.longs===String?n.Long.prototype.toString.call(T.decimals):_.longs===Number?new n.LongBits(T.decimals.low>>>0,T.decimals.high>>>0).toNumber():T.decimals;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.PubKeySet=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.secp256k1!=null&&Object.hasOwnProperty.call(T,"secp256k1"))_.uint32(10).string(T.secp256k1);if(T.ed25519!=null&&Object.hasOwnProperty.call(T,"ed25519"))_.uint32(18).string(T.ed25519);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.PubKeySet;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.secp256k1=T.string();break;case 2:W.ed25519=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1")){if(!n.isString(T.secp256k1))return"secp256k1: string expected"}if(T.ed25519!=null&&T.hasOwnProperty("ed25519")){if(!n.isString(T.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.PubKeySet)return T;let _=new x.common.PubKeySet;if(T.secp256k1!=null)_.secp256k1=String(T.secp256k1);if(T.ed25519!=null)_.ed25519=String(T.ed25519);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.secp256k1="",X.ed25519="";if(T.secp256k1!=null&&T.hasOwnProperty("secp256k1"))X.secp256k1=T.secp256k1;if(T.ed25519!=null&&T.hasOwnProperty("ed25519"))X.ed25519=T.ed25519;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Tx=(()=>{function y(G){if(this.coins=[],this.gas=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=n.emptyArray,y.prototype.gas=n.emptyArray,y.prototype.memo="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.id!=null&&Object.hasOwnProperty.call(T,"id"))_.uint32(10).string(T.id);if(T.chain!=null&&Object.hasOwnProperty.call(T,"chain"))_.uint32(18).string(T.chain);if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(26).string(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(34).string(T.toAddress);if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(42).fork()).ldelim();if(T.gas?.length)for(let X=0;X<T.gas.length;++X)x.common.Coin.encode(T.gas[X],_.uint32(50).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(58).string(T.memo);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Tx;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.id=T.string();break;case 2:W.chain=T.string();break;case 3:W.fromAddress=T.string();break;case 4:W.toAddress=T.string();break;case 5:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 6:if(!W.gas?.length)W.gas=[];W.gas.push(x.common.Coin.decode(T,T.uint32()));break;case 7:W.memo=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.id!=null&&T.hasOwnProperty("id")){if(!n.isString(T.id))return"id: string expected"}if(T.chain!=null&&T.hasOwnProperty("chain")){if(!n.isString(T.chain))return"chain: string expected"}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!n.isString(T.fromAddress))return"fromAddress: string expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!n.isString(T.toAddress))return"toAddress: string expected"}if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.gas!=null&&T.hasOwnProperty("gas")){if(!Array.isArray(T.gas))return"gas: array expected";for(let _=0;_<T.gas.length;++_){let X=x.common.Coin.verify(T.gas[_]);if(X)return"gas."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!n.isString(T.memo))return"memo: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Tx)return T;let _=new x.common.Tx;if(T.id!=null)_.id=String(T.id);if(T.chain!=null)_.chain=String(T.chain);if(T.fromAddress!=null)_.fromAddress=String(T.fromAddress);if(T.toAddress!=null)_.toAddress=String(T.toAddress);if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Tx.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Tx.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.gas){if(!Array.isArray(T.gas))throw TypeError(".common.Tx.gas: array expected");_.gas=[];for(let X=0;X<T.gas.length;++X){if(typeof T.gas[X]!=="object")throw TypeError(".common.Tx.gas: object expected");_.gas[X]=x.common.Coin.fromObject(T.gas[X])}}if(T.memo!=null)_.memo=String(T.memo);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[],X.gas=[];if(_.defaults)X.id="",X.chain="",X.fromAddress="",X.toAddress="",X.memo="";if(T.id!=null&&T.hasOwnProperty("id"))X.id=T.id;if(T.chain!=null&&T.hasOwnProperty("chain"))X.chain=T.chain;if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=T.toAddress;if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.gas?.length){X.gas=[];for(let W=0;W<T.gas.length;++W)X.gas[W]=x.common.Coin.toObject(T.gas[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.Fee=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=n.emptyArray,y.prototype.poolDeduct="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.poolDeduct!=null&&Object.hasOwnProperty.call(T,"poolDeduct"))_.uint32(18).string(T.poolDeduct);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.Fee;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 2:W.poolDeduct=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct")){if(!n.isString(T.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.Fee)return T;let _=new x.common.Fee;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".common.Fee.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".common.Fee.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.poolDeduct!=null)_.poolDeduct=String(T.poolDeduct);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults)X.poolDeduct="";if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.poolDeduct!=null&&T.hasOwnProperty("poolDeduct"))X.poolDeduct=T.poolDeduct;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.ProtoUint=(()=>{function y(G){if(G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.value="",y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.value!=null&&Object.hasOwnProperty.call(T,"value"))_.uint32(10).string(T.value);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.common.ProtoUint;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.value=T.string();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.value!=null&&T.hasOwnProperty("value")){if(!n.isString(T.value))return"value: string expected"}return null},y.fromObject=function(T){if(T instanceof x.common.ProtoUint)return T;let _=new x.common.ProtoUint;if(T.value!=null)_.value=String(T.value);return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.defaults)X.value="";if(T.value!=null&&T.hasOwnProperty("value"))X.value=T.value;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f})();x.types=(()=>{let f={};return f.MsgDeposit=(()=>{function y(G){if(this.coins=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.coins=n.emptyArray,y.prototype.memo="",y.prototype.signer=n.newBuffer([]),y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.coins?.length)for(let X=0;X<T.coins.length;++X)x.common.Coin.encode(T.coins[X],_.uint32(10).fork()).ldelim();if(T.memo!=null&&Object.hasOwnProperty.call(T,"memo"))_.uint32(18).string(T.memo);if(T.signer!=null&&Object.hasOwnProperty.call(T,"signer"))_.uint32(26).bytes(T.signer);return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.types.MsgDeposit;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:if(!W.coins?.length)W.coins=[];W.coins.push(x.common.Coin.decode(T,T.uint32()));break;case 2:W.memo=T.string();break;case 3:W.signer=T.bytes();break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.coins!=null&&T.hasOwnProperty("coins")){if(!Array.isArray(T.coins))return"coins: array expected";for(let _=0;_<T.coins.length;++_){let X=x.common.Coin.verify(T.coins[_]);if(X)return"coins."+X}}if(T.memo!=null&&T.hasOwnProperty("memo")){if(!n.isString(T.memo))return"memo: string expected"}if(T.signer!=null&&T.hasOwnProperty("signer")){if(!(T.signer&&typeof T.signer.length==="number"||n.isString(T.signer)))return"signer: buffer expected"}return null},y.fromObject=function(T){if(T instanceof x.types.MsgDeposit)return T;let _=new x.types.MsgDeposit;if(T.coins){if(!Array.isArray(T.coins))throw TypeError(".types.MsgDeposit.coins: array expected");_.coins=[];for(let X=0;X<T.coins.length;++X){if(typeof T.coins[X]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");_.coins[X]=x.common.Coin.fromObject(T.coins[X])}}if(T.memo!=null)_.memo=String(T.memo);if(T.signer!=null){if(typeof T.signer==="string")n.base64.decode(T.signer,_.signer=n.newBuffer(n.base64.length(T.signer)),0);else if(T.signer.length)_.signer=T.signer}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.coins=[];if(_.defaults){if(X.memo="",_.bytes===String)X.signer="";else if(X.signer=[],_.bytes!==Array)X.signer=n.newBuffer(X.signer)}if(T.coins?.length){X.coins=[];for(let W=0;W<T.coins.length;++W)X.coins[W]=x.common.Coin.toObject(T.coins[W],_)}if(T.memo!=null&&T.hasOwnProperty("memo"))X.memo=T.memo;if(T.signer!=null&&T.hasOwnProperty("signer"))X.signer=_.bytes===String?n.base64.encode(T.signer,0,T.signer.length):_.bytes===Array?Array.prototype.slice.call(T.signer):T.signer;return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f.MsgSend=(()=>{function y(G){if(this.amount=[],G){for(let T=Object.keys(G),_=0;_<T.length;++_)if(G[T[_]]!=null)this[T[_]]=G[T[_]]}}return y.prototype.fromAddress=n.newBuffer([]),y.prototype.toAddress=n.newBuffer([]),y.prototype.amount=n.emptyArray,y.create=function(T){return new y(T)},y.encode=function(T,_){if(!_)_=BT.create();if(T.fromAddress!=null&&Object.hasOwnProperty.call(T,"fromAddress"))_.uint32(10).bytes(T.fromAddress);if(T.toAddress!=null&&Object.hasOwnProperty.call(T,"toAddress"))_.uint32(18).bytes(T.toAddress);if(T.amount?.length)for(let X=0;X<T.amount.length;++X)x.cosmos.base.v1beta1.Coin.encode(T.amount[X],_.uint32(26).fork()).ldelim();return _},y.encodeDelimited=function(T,_){return this.encode(T,_).ldelim()},y.decode=function(T,_){if(!(T instanceof v))T=v.create(T);let X=_===void 0?T.len:T.pos+_,W=new x.types.MsgSend;while(T.pos<X){let Z=T.uint32();switch(Z>>>3){case 1:W.fromAddress=T.bytes();break;case 2:W.toAddress=T.bytes();break;case 3:if(!W.amount?.length)W.amount=[];W.amount.push(x.cosmos.base.v1beta1.Coin.decode(T,T.uint32()));break;default:T.skipType(Z&7);break}}return W},y.decodeDelimited=function(T){if(!(T instanceof v))T=new v(T);return this.decode(T,T.uint32())},y.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress")){if(!(T.fromAddress&&typeof T.fromAddress.length==="number"||n.isString(T.fromAddress)))return"fromAddress: buffer expected"}if(T.toAddress!=null&&T.hasOwnProperty("toAddress")){if(!(T.toAddress&&typeof T.toAddress.length==="number"||n.isString(T.toAddress)))return"toAddress: buffer expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!Array.isArray(T.amount))return"amount: array expected";for(let _=0;_<T.amount.length;++_){let X=x.cosmos.base.v1beta1.Coin.verify(T.amount[_]);if(X)return"amount."+X}}return null},y.fromObject=function(T){if(T instanceof x.types.MsgSend)return T;let _=new x.types.MsgSend;if(T.fromAddress!=null){if(typeof T.fromAddress==="string")n.base64.decode(T.fromAddress,_.fromAddress=n.newBuffer(n.base64.length(T.fromAddress)),0);else if(T.fromAddress.length)_.fromAddress=T.fromAddress}if(T.toAddress!=null){if(typeof T.toAddress==="string")n.base64.decode(T.toAddress,_.toAddress=n.newBuffer(n.base64.length(T.toAddress)),0);else if(T.toAddress.length)_.toAddress=T.toAddress}if(T.amount){if(!Array.isArray(T.amount))throw TypeError(".types.MsgSend.amount: array expected");_.amount=[];for(let X=0;X<T.amount.length;++X){if(typeof T.amount[X]!=="object")throw TypeError(".types.MsgSend.amount: object expected");_.amount[X]=x.cosmos.base.v1beta1.Coin.fromObject(T.amount[X])}}return _},y.toObject=function(T,_){if(!_)_={};let X={};if(_.arrays||_.defaults)X.amount=[];if(_.defaults){if(_.bytes===String)X.fromAddress="";else if(X.fromAddress=[],_.bytes!==Array)X.fromAddress=n.newBuffer(X.fromAddress);if(_.bytes===String)X.toAddress="";else if(X.toAddress=[],_.bytes!==Array)X.toAddress=n.newBuffer(X.toAddress)}if(T.fromAddress!=null&&T.hasOwnProperty("fromAddress"))X.fromAddress=_.bytes===String?n.base64.encode(T.fromAddress,0,T.fromAddress.length):_.bytes===Array?Array.prototype.slice.call(T.fromAddress):T.fromAddress;if(T.toAddress!=null&&T.hasOwnProperty("toAddress"))X.toAddress=_.bytes===String?n.base64.encode(T.toAddress,0,T.toAddress.length):_.bytes===Array?Array.prototype.slice.call(T.toAddress):T.toAddress;if(T.amount?.length){X.amount=[];for(let W=0;W<T.amount.length;++W)X.amount[W]=x.cosmos.base.v1beta1.Coin.toObject(T.amount[W],_)}return X},y.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},y})(),f})();x.cosmos=(()=>{let f={};return f.base=(()=>{let y={};return y.v1beta1=(()=>{let G={};return G.Coin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.Coin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!n.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!n.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.Coin)return X;let W=new x.cosmos.base.v1beta1.Coin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.DecCoin=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.denom="",T.prototype.amount="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.denom!=null&&Object.hasOwnProperty.call(X,"denom"))W.uint32(10).string(X.denom);if(X.amount!=null&&Object.hasOwnProperty.call(X,"amount"))W.uint32(18).string(X.amount);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.DecCoin;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.denom=X.string();break;case 2:J.amount=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.denom!=null&&X.hasOwnProperty("denom")){if(!n.isString(X.denom))return"denom: string expected"}if(X.amount!=null&&X.hasOwnProperty("amount")){if(!n.isString(X.amount))return"amount: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.DecCoin)return X;let W=new x.cosmos.base.v1beta1.DecCoin;if(X.denom!=null)W.denom=String(X.denom);if(X.amount!=null)W.amount=String(X.amount);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.denom="",Z.amount="";if(X.denom!=null&&X.hasOwnProperty("denom"))Z.denom=X.denom;if(X.amount!=null&&X.hasOwnProperty("amount"))Z.amount=X.amount;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.IntProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.int="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.int!=null&&Object.hasOwnProperty.call(X,"int"))W.uint32(10).string(X.int);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.IntProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.int=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.int!=null&&X.hasOwnProperty("int")){if(!n.isString(X.int))return"int: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.IntProto)return X;let W=new x.cosmos.base.v1beta1.IntProto;if(X.int!=null)W.int=String(X.int);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.int="";if(X.int!=null&&X.hasOwnProperty("int"))Z.int=X.int;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G.DecProto=(()=>{function T(_){if(_){for(let X=Object.keys(_),W=0;W<X.length;++W)if(_[X[W]]!=null)this[X[W]]=_[X[W]]}}return T.prototype.dec="",T.create=function(X){return new T(X)},T.encode=function(X,W){if(!W)W=BT.create();if(X.dec!=null&&Object.hasOwnProperty.call(X,"dec"))W.uint32(10).string(X.dec);return W},T.encodeDelimited=function(X,W){return this.encode(X,W).ldelim()},T.decode=function(X,W){if(!(X instanceof v))X=v.create(X);let Z=W===void 0?X.len:X.pos+W,J=new x.cosmos.base.v1beta1.DecProto;while(X.pos<Z){let Q=X.uint32();switch(Q>>>3){case 1:J.dec=X.string();break;default:X.skipType(Q&7);break}}return J},T.decodeDelimited=function(X){if(!(X instanceof v))X=new v(X);return this.decode(X,X.uint32())},T.verify=function(X){if(typeof X!=="object"||X===null)return"object expected";if(X.dec!=null&&X.hasOwnProperty("dec")){if(!n.isString(X.dec))return"dec: string expected"}return null},T.fromObject=function(X){if(X instanceof x.cosmos.base.v1beta1.DecProto)return X;let W=new x.cosmos.base.v1beta1.DecProto;if(X.dec!=null)W.dec=String(X.dec);return W},T.toObject=function(X,W){if(!W)W={};let Z={};if(W.defaults)Z.dec="";if(X.dec!=null&&X.hasOwnProperty("dec"))Z.dec=X.dec;return Z},T.prototype.toJSON=function(){return this.constructor.toObject(this,e.util.toJSONOptions)},T})(),G})(),y})(),f})()});import{Chain as l6}from"@swapkit/helpers";async function Gf(){let{$root:f}=await Promise.resolve().then(() => (d_(),i_)),y=await import("@cosmjs/proto-signing"),G=y.Registry??y.default?.Registry,T=await import("@cosmjs/stargate"),_=T.defaultRegistryTypes??T.default?.defaultRegistryTypes;return new G([..._,["/types.MsgSend",f.types.MsgSend],["/types.MsgDeposit",f.types.MsgDeposit]])}async function uT(f){let y=await import("@cosmjs/stargate"),G=y.AminoTypes??y.default?.AminoTypes,T=f===l6.THORChain?"thorchain":"mayachain";return new G({"/types.MsgDeposit":{aminoType:`${T}/MsgDeposit`,fromAmino:({signer:_,...X})=>({...X,signer:df(_)}),toAmino:({signer:_,...X})=>({...X,signer:rf(_)})},"/types.MsgSend":{aminoType:`${T}/MsgSend`,fromAmino:({from_address:_,to_address:X,...W})=>({...W,fromAddress:df(_),toAddress:df(X)}),toAmino:({fromAddress:_,toAddress:X,...W})=>({...W,from_address:rf(_),to_address:rf(X)})}})}var $1=S(()=>{O1()});import{AssetValue as u6,Chain as i0,getChainConfig as r_,getRPCUrl as a_,SwapKitError as h6}from"@swapkit/helpers";function P1(f){let{assetValue:y,recipient:G,memo:T,sender:_,asSignable:X,asAminoMessage:W}=f;if(G)return e_({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,recipient:G,sender:_});return T2({asAminoMessage:W,asSignable:X,assetValue:y,memo:T,sender:_})}async function e_({sender:f,recipient:y,assetValue:G,memo:T="",asSignable:_=!0,asAminoMessage:X=!1,sequence:W,accountNumber:Z}){let J=G.chain,Q=await a_(J),L=await s_({rpcUrl:Q,sender:f}),{chainId:O}=r_(J),U=I1({assetValue:G,recipient:y,sender:f}),M=_?await hT(X?U:mT(U),J):U;return{accountNumber:Z||L.accountNumber,chainId:O,fee:ET(J),memo:T,msgs:[M],sequence:W||L.sequence}}async function T2({sender:f,assetValue:y,memo:G="",asSignable:T=!0,asAminoMessage:_=!1,sequence:X,accountNumber:W}){let Z=y.chain,J=await a_(Z),Q=await s_({rpcUrl:J,sender:f}),{chainId:L}=r_(Z),O=A1({assetValue:y,memo:G,sender:f}),U=T?await hT(_?O:mT(O),Z):O;return{accountNumber:W||Q.accountNumber,chainId:L,fee:ET(Z),memo:G,msgs:[U],sequence:X||Q.sequence}}function mT(f){if(f.type==="thorchain/MsgSend"||f.type==="mayachain/MsgSend")return f;return{...f,value:{...f.value,coins:f.value.coins.map((y)=>{let G=u6.from({asset:y.asset}),T=(G.isSynthetic?G.symbol.split("/")?.[1]:G.symbol)?.toUpperCase(),_=(G.isSynthetic?G.symbol.split("/")?.[0]:G.chain)?.toUpperCase();return{...y,asset:{chain:_,symbol:T,synth:G.isSynthetic,ticker:G.ticker}}})}}}async function ef({chain:f,memo:y,msgs:G}){let T=await Gf(),_=await uT(f),X={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:G.map((W)=>_.fromAmino(W))}};return T.encode(X)}var m6,p6,I1=({sender:f,recipient:y,assetValue:G})=>{return{type:`${G.chain===i0.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:G.getBaseValue("string"),denom:lT(G.symbol,!0)}],from_address:f,to_address:y}}},A1=({sender:f,assetValue:y,memo:G=""})=>{return{type:`${y.chain===i0.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:af(y)}],memo:G,signer:f}}},d0=({sender:f,recipient:y,assetValue:G,memo:T})=>{return!y?A1({assetValue:G,memo:T,sender:f}):I1({assetValue:G,recipient:y,sender:f})},hT=async(f,y)=>{return(await uT(y)).fromAmino(f)},s_=async({rpcUrl:f,sender:y})=>{let T=await(await nT(f)).getAccount(y);if(!T)throw new h6("toolbox_cosmos_account_not_found",{sender:y});return T};var f2=S(()=>{sf();$1();m6=ET(i0.THORChain).gas,p6=ET(i0.Maya).gas});var y2=()=>{};var _2=S(()=>{y2()});var x1=S(()=>{O1();f2();$1();_2()});import{stringToPath as t6}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as c6}from"@cosmjs/proto-signing";import{base64 as n1,bech32 as S1}from"@scure/base";import{AssetValue as V1,applyFeeMultiplier as G2,Chain as _T,CosmosChainPrefixes as Y2,DerivationPath as g6,derivationPathToString as X2,FeeOption as v1,getChainConfig as i6,getRPCUrl as T0,NetworkDerivationPath as d6,SwapKitError as Df,SwapKitNumber as E1,updateDerivationPath as r6}from"@swapkit/helpers";import{SwapKitApi as q2}from"@swapkit/helpers/api";import{match as a6,P as W2}from"ts-pattern";async function K1(f,y){try{let T=(await q2.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}async function o1({phrase:f,prefix:y,...G}){let T="derivationPath"in G?G.derivationPath:`${g6[G.chain]}/${G.index}`;return await c6.fromMnemonic(f,{hdPaths:[t6(T)],prefix:y})}async function s6({privateKey:f,prefix:y}){let G=await import("@cosmjs/proto-signing");return(G.DirectSecp256k1Wallet??G.default?.DirectSecp256k1Wallet).fromKey(f,y)}function L2(f){return async function({signature:G,message:T,address:_}){let X=await f(_);if(!X?.pubkey)throw new Df("toolbox_cosmos_verify_signature_no_pubkey");let W=await import("@cosmjs/crypto"),Z=W.Secp256k1Signature??W.default?.Secp256k1Signature,J=W.Secp256k1??W.default?.Secp256k1,Q=Z.fromFixedLength(n1.decode(G));return J.verifySignature(Q,n1.decode(T),X.pubkey.value)}}function f0({chain:f,...y}){let G=Y2[f],T="index"in y?y.index||0:0,_=X2("derivationPath"in y&&y.derivationPath?y.derivationPath:r6(d6[f],{index:T})),X;async function W(){if(X)return X;return X=await a6(y).with({phrase:W2.string},({phrase:M})=>o1({derivationPath:_,phrase:M,prefix:G})).with({signer:W2.any},({signer:M})=>M).otherwise(()=>{return}),X}async function Z(M){let N=await T0(f);return(await nT(N)).getAccount(M)}async function J(){let M=await W(),[N]=await M?.getAccounts()||[];return N?.address}async function Q(){let M=await W(),[N]=await M?.getAccounts()||[];if(!N?.pubkey)throw new Df("toolbox_cosmos_signer_not_defined");return n1.encode(N?.pubkey)}async function L(M){let N=await W(),z=await J(),B=await T0(f);if(!(N&&z))throw new Df("toolbox_cosmos_signer_not_defined");return await(await _f(B,N)).sign(z,M.msgs,M.fee,M.memo,{accountNumber:M.accountNumber,chainId:M.chainId,sequence:M.sequence})}async function O(M){let N=await W(),z=await J(),B=await T0(f);if(!(N&&z))throw new Df("toolbox_cosmos_signer_not_defined");let R=await(await _f(B,N)).signAndBroadcast(z,M.msgs,M.fee,M.memo);if(R.code!==0)throw new Df("core_swap_transaction_error",{code:R.code,message:R.rawLog});return R.transactionHash}async function U({recipient:M,assetValue:N,memo:z="",feeRate:B,feeOptionKey:k=v1.Fast}){let R=await W(),F=await J();if(!(R&&F))throw new Df("toolbox_cosmos_signer_not_defined");let w=await T0(f),Y=V1.from({chain:f}),q=af(Y),D=B||f8((await J2(f,Z2[f]))[k],q),C=await _f(w,R),$=lT(N.symbol),H=[{amount:N.getBaseValue("string"),denom:$}],{transactionHash:I}=await C.sendTokens(F,M,H,D,z);return I}return{createPrivateKeyFromPhrase:_8(_),createTransaction:F1,fetchFeeRateFromSwapKit:K1,getAccount:Z,getAddress:J,getBalance:async(M,N)=>{let z=await Q2(f)(M),B=await Promise.all(z.filter(({denom:k})=>k&&!k.includes("IBC/")&&!([_T.THORChain,_T.Maya].includes(f)&&k.split("-").length>2)).map(({denom:k,amount:R})=>{let F=[_T.THORChain,_T.Maya].includes(f)&&(k.includes("/")||k.includes("˜"))?`${f}.${k}`:k;return k1(F,R)}));if(B.length===0)return[V1.from({chain:f})];return B},getBalanceAsDenoms:Q2(f),getFees:()=>J2(f,Z2[f]),getPubKey:Q,getSignerFromPhrase:({phrase:M,derivationPath:N})=>o1({derivationPath:X2(N),index:T,phrase:M,prefix:G}),getSignerFromPrivateKey:async(M)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(M,G)},signAndBroadcastTransaction:O,signTransaction:L,transfer:U,validateAddress:z2(f),verifySignature:L2(Z)}}async function e6(f,y){try{let T=(await q2.getGasRate()).find((_)=>_.chainId===f)?.value;return T?Number.parseFloat(T):y}catch{return y}}function T8({assetValue:{chain:f}}){return V1.from({chain:f,value:y8(f)})}async function J2(f,y){let{chainId:G,baseDecimal:T}=i6(f),_=await K1(G,y);return{average:E1.fromBigInt(BigInt(_),T),fast:E1.fromBigInt(BigInt(G2(_,v1.Fast,!0)),T),fastest:E1.fromBigInt(BigInt(G2(_,v1.Fastest,!0)),T)}}function f8(f,y){return{amount:[{amount:f.getBaseValue("string"),denom:y}],gas:"200000"}}function y8(f){return{[_T.Cosmos]:0.007,[_T.Kujira]:0.02,[_T.Noble]:0.01,[_T.THORChain]:0.02,[_T.Maya]:0.02,[_T.Harbor]:0.02}[f]||0}function z2(f){let y=Y2[f];return function(T){if(!T.startsWith(y))return!1;try{let{prefix:_,words:X}=S1.decode(T);return S1.encode(_,X)===T.toLocaleLowerCase()}catch{return!1}}}function Q2(f){return async function(G){let T=await T0(f);return(await(await nT(T)).getAllBalances(G)).map((Z)=>({...Z,denom:Z.denom.includes("/")?Z.denom.toUpperCase():Z.denom}))}}function _8(f){return async function(G){let T=await import("@cosmjs/crypto"),_=T.stringToPath??T.default?.stringToPath,X=T.Slip10Curve??T.default?.Slip10Curve,W=T.Slip10??T.default?.Slip10,Z=T.EnglishMnemonic??T.default?.EnglishMnemonic,J=T.Bip39??T.default?.Bip39,Q=new Z(G),L=await J.mnemonicToSeed(Q),{privkey:O}=W.derivePath(X.Secp256k1,L,_(f));return O}}var Z2;var r0=S(()=>{sf();Z2={[_T.Cosmos]:1000,[_T.Kujira]:1000,[_T.Noble]:1000,[_T.THORChain]:5000000,[_T.Maya]:5000000,[_T.Harbor]:5000000}});import{base64 as Xf}from"@scure/base";import{Chain as G8,CosmosChainPrefixes as X8,derivationPathToString as W8,FeeOption as j1,getChainConfig as N2,getRPCUrl as w2,NetworkDerivationPath as Z8,RequestClient as J8,SKConfig as Q8,SwapKitError as U2,SwapKitNumber as M2,updateDerivationPath as Y8}from"@swapkit/helpers";import{match as q8,P as B2}from"ts-pattern";function L8({prefix:f,derivationPath:y}){return async function(T,_=0){let X=await import("@cosmjs/amino"),W=X.Secp256k1HdWallet??X.default?.Secp256k1HdWallet,Z=await import("@cosmjs/crypto"),J=Z.stringToPath??Z.default?.stringToPath;return W.fromMnemonic(T,{hdPaths:[J(`${y}/${_}`)],prefix:f})}}function z8(f){return Xf.encode(f)}function N8(f){return async function({wallet:G,tx:T}){let{msgs:_,accountNumber:X,sequence:W,chainId:Z,fee:J,memo:Q}=typeof T==="string"?JSON.parse(T):T,L=(await G.getAccounts())?.[0]?.address||"",O=await uT(f),U=await Gf(),M=await C1(G,{aminoTypes:O,registry:U}),N=[];for(let k of _){let R=await hT(k,f);N.push(R)}let{signatures:[z]}=await M.sign(L,N,J,Q,{accountNumber:X,chainId:Z,sequence:W});return{bodyBytes:await ef({chain:f,memo:Q,msgs:_.map(mT)}),signature:z8(z)}}}function U8({prefix:f,chain:y}){return async function(T,_,X,W,Z){let J=await w2(y),{encodeSecp256k1Pubkey:Q,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:O}=(await import("@cosmjs/stargate")).default,{sequence:U,fee:M}=JSON.parse(T),N=await D2(X,W),z=_.map((R)=>[L(Q(Xf.decode(R.pubKey)),f),Xf.decode(R.signature)]),B=await nT(J),{transactionHash:k}=await B.broadcastTx(O(N,U,M,Z,new Map(z)));return k}}async function D2(f,y,G=!0){let{createMultisigThresholdPubkey:T,encodeSecp256k1Pubkey:_}=(await import("@cosmjs/amino")).default;return T(f.map((X)=>_(Xf.decode(X))),y,G)}function M8(f){return Xf.decode(f)}async function B8({privateKey:f,message:y}){let{Secp256k1:G}=(await import("@cosmjs/crypto")).default,T=await G.createSignature(Xf.decode(y),f);return Xf.encode(Buffer.concat([T.r(32),T.s(32)]))}function b1({chain:f,...y}){let{nodeUrl:G}=N2(f),{isStagenet:T}=Q8.get("envs"),_=f===G8.THORChain,X=`${T?"s":""}${X8[f]}`,W="index"in y?y.index||0:0,Z="derivationPath"in y&&y.derivationPath?y.derivationPath:Y8(Z8[f],{index:W}),J=f0({chain:f,...y}),Q=ET(f);async function L(){let U,M=`${G}/${_?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await J8.get(M);if(!N||Number.isNaN(N)||N<0)throw new U2("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});U=new M2(N)}catch{U=new M2({decimal:N2(f).baseDecimal,value:_?0.02:1})}return{[j1.Average]:U,[j1.Fast]:U,[j1.Fastest]:U}}async function O({assetValue:U,memo:M="",recipient:N}){let z=await w2(f),B=await q8(y).with({phrase:B2.string},({phrase:I})=>J.getSignerFromPhrase({derivationPath:Z,phrase:I})).with({signer:B2.any},({signer:I})=>I).otherwise(()=>{return}),{TxRaw:k}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),R=(await B?.getAccounts())?.[0]?.address;if(!(R&&B))throw new U2("toolbox_cosmos_no_signer");let F="signAmino"in B,w=await Gf(),Y=await uT(f),q=await _f(z,B,{aminoTypes:Y,registry:w}),D=d0({assetValue:U,memo:M,recipient:N,sender:R});if(F){let I=await hT(D,f),{signatures:A,authInfoBytes:E}=await q.sign(R,[I],Q,M),V=k.encode({authInfoBytes:E,bodyBytes:await ef({chain:f,memo:M,msgs:[D].map(mT)}),signatures:A}).finish();return(await q.broadcastTx(V)).transactionHash}let C=mT(D),$=await hT(C,f);return(await q.signAndBroadcast(R,[$],Q,M)).transactionHash}return{...J,broadcastMultisigTx:U8({chain:f,prefix:X}),buildAminoMsg:d0,buildEncodedTxBody:ef,convertToSignable:hT,createDefaultAminoTypes:()=>uT(f),createDefaultRegistry:Gf,createMultisig:D2,createTransaction:P1,deposit:O,getFees:L,importSignature:M8,parseAminoMessageForDirectSigning:mT,pubkeyToAddress:async(U)=>{let{pubkeyToAddress:M}=(await import("@cosmjs/amino")).default;return M(U,X)},secp256k1HdWalletFromMnemonic:L8({derivationPath:W8(Z),prefix:X}),signMultisigTx:N8(f),signWithPrivateKey:B8,transfer:O}}var l1=S(()=>{x1();sf();r0()});import{Chain as y0,SwapKitError as w8}from"@swapkit/helpers";var D8=(f,y)=>{switch(f){case y0.Cosmos:case y0.Kujira:case y0.Noble:return f0({chain:f,...y});case y0.Maya:case y0.THORChain:return b1({chain:f,...y});default:throw new w8("toolbox_cosmos_not_supported",{chain:f})}};var O2=S(()=>{r0();l1();r0();l1()});var a0={};fT(a0,{verifySignature:()=>L2,transferMsgAmino:()=>I1,toBase64:()=>v6,parseAminoMessageForDirectSigning:()=>mT,getSignerFromPrivateKey:()=>s6,getSignerFromPhrase:()=>o1,getMsgSendDenom:()=>lT,getFeeRateFromSwapKit:()=>e6,getDenomWithChain:()=>af,getDefaultChainFee:()=>ET,getCosmosToolbox:()=>D8,getCosmosAddressValidator:()=>z2,getAssetFromDenom:()=>k1,fromBase64:()=>o6,fetchFeeRateFromSwapKit:()=>K1,estimateTransactionFee:()=>T8,depositMsgAmino:()=>A1,createTransaction:()=>P1,createThorchainToolbox:()=>b1,createStargateClient:()=>nT,createSigningStargateClient:()=>_f,createOfflineStargateClient:()=>C1,createDefaultRegistry:()=>Gf,createDefaultAminoTypes:()=>uT,createCosmosToolbox:()=>f0,cosmosCreateTransaction:()=>F1,convertToSignable:()=>hT,buildTransferTx:()=>e_,buildEncodedTxBody:()=>ef,buildDepositTx:()=>T2,buildAminoMsg:()=>d0,bech32ToBase64:()=>df,base64ToBech32:()=>rf,YUM_KUJIRA_FACTORY_DENOM:()=>p_,USK_KUJIRA_FACTORY_DENOM:()=>R1,THORCHAIN_GAS_VALUE:()=>m6,MAYA_GAS_VALUE:()=>p6,DEFAULT_NOBLE_FEE_MAINNET:()=>g_,DEFAULT_KUJI_FEE_MAINNET:()=>c_,DEFAULT_COSMOS_FEE_MAINNET:()=>t_});var s0=S(()=>{x1();O2();sf()});import{PublicKey as pT}from"@solana/web3.js";import{AssetValue as e0,Chain as vT,DerivationPath as O8,derivationPathToString as H8,getChainConfig as F2,getRPCUrl as R8,NetworkDerivationPath as C8,SwapKitError as Of,updateDerivationPath as F8}from"@swapkit/helpers";import{match as k8,P as H2}from"ts-pattern";async function k2(f){let y=e0.from({address:f,chain:vT.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:f,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let G=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(f)}`;try{let T=await fetch(G);if(!T.ok)return null;let _=await T.json();if(!Array.isArray(_)||_.length===0)return null;return _.find((W)=>W.id===f)||null}catch{return null}}async function $8(f){let y=await VT(),{PublicKey:G}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:T}=await import("@solana/spl-token"),_=new G(f),{baseDecimal:X}=F2(vT.Solana),W=await y.getBalance(_),Z=[e0.from({chain:vT.Solana,fromBaseDecimal:X,value:W||0})],J=await y.getParsedTokenAccountsByOwner(_,{programId:T});for(let{account:Q}of J.value){let L=Q.data.parsed.info,O=L.mint,U=L.tokenAmount.amount;if(Number(U)===0)continue;let M=await k2(O),N=M?.symbol||"UNKNOWN",z=M?.decimals||L.tokenAmount.decimals;Z.push(e0.from({asset:`${vT.Solana}.${N}-${O}`,fromBaseDecimal:z,value:U}))}return Z}function h1(f){try{let y=new pT(f);return pT.isOnCurve(y.toBytes())}catch{return!1}}function I8(f){let y=f&&"index"in f?f.index||0:0,G=H8(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:F8(C8[vT.Solana],{index:y})),T;async function _(){if(T)return T;return T=await k8(f).with({phrase:H2.string},({phrase:W})=>u1({derivationPath:G,phrase:W})).with({signer:H2.any},({signer:W})=>W).otherwise(()=>{return}),T}async function X(){let W=await _();return W?.publicKey?C2(W.publicKey):""}return{broadcastTransaction:Ty(VT),createKeysForPath:u1,createTransaction:m1(VT),createTransactionFromInstructions:S8,estimateTransactionFee:A8(VT),getAddress:X,getAddressFromPubKey:C2,getBalance:UT(vT.Solana),getBalanceFromRPC:$8,getConnection:VT,getPubkeyFromAddress:(W)=>new pT(W),signAndBroadcastTransaction:async(W)=>{let Z=await R2(VT,_)(W);return Ty(VT)(Z)},signTransaction:R2(VT,_),transfer:E8(VT,_),validateAddress:h1}}function A8(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let W=await f(),J=(await m1(f)({assetValue:G,isProgramDerivedAddress:_,memo:T,recipient:y,sender:X})).compileMessage(),Q=await W.getFeeForMessage(J);if(Q.value===null)throw new Of("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:L}=F2(vT.Solana);return e0.from({chain:vT.Solana,fromBaseDecimal:L,value:Q.value})}}async function VT(){let{Connection:f}=await import("@solana/web3.js"),y=await R8(vT.Solana);return new f(y,{commitment:"confirmed",fetchMiddleware:(G,T,_)=>{let X={};for(let[W,Z]of Object.entries(T?.headers??{})){let J=W.toLowerCase();if(J!=="pragma"&&J!=="solana-client")X[W]=Z}_(G,{...T,headers:X})}})}function P8(f){return async({assetValue:y,recipient:G,sender:T,isProgramDerivedAddress:_})=>{let X=await f(),W=new pT(T);if(y.isGasAsset){let{Transaction:Z,SystemProgram:J}=await import("@solana/web3.js");return new Z().add(J.transfer({fromPubkey:W,lamports:y.getBaseValue("number"),toPubkey:new pT(G)}))}if(y.address)return x8({amount:y.getBaseValue("number"),connection:X,decimals:y.decimal,from:W,isProgramDerivedAddress:_,recipient:G,tokenAddress:y.address});return}}async function x8({tokenAddress:f,recipient:y,from:G,connection:T,amount:_,decimals:X,isProgramDerivedAddress:W}){let{getAssociatedTokenAddress:Z,getAccount:J,createAssociatedTokenAccountInstruction:Q,createTransferCheckedInstruction:L}=await import("@solana/spl-token"),{Transaction:O}=await import("@solana/web3.js"),U=new O,M=new pT(f),N=await Z(M,G),z=new pT(y),B=await Z(M,z,W),k=!1;try{await J(T,B),k=!0}catch{}if(!k)U.add(Q(G,B,z,M));return U.add(L(N,M,B,G,_,X)),U}function m1(f){return async({recipient:y,assetValue:G,memo:T,isProgramDerivedAddress:_,sender:X})=>{let{createMemoInstruction:W}=await import("@solana/spl-memo"),Z=new pT(X);if(!(_||h1(y)))throw new Of("core_transaction_invalid_recipient_address");let J=await f(),Q=await P8(f)({assetValue:G,isProgramDerivedAddress:_,recipient:y,sender:X});if(!Q)throw new Of("core_transaction_invalid_sender_address");if(T)Q.add(W(T));let L=await J.getLatestBlockhash();return Q.recentBlockhash=L.blockhash,Q.feePayer=Z,Q}}async function S8({instructions:f}){let{Transaction:y}=await import("@solana/web3.js"),G=new y().add(...f);if(!G)throw new Of("core_transaction_invalid_sender_address");return G}function E8(f,y){return async({recipient:G,assetValue:T,memo:_,isProgramDerivedAddress:X})=>{let W=await y();if(!W)throw new Of("core_transaction_invalid_sender_address");let Z=W.publicKey?.toString()??(await W.connect()).publicKey.toString(),J=await m1(f)({assetValue:T,isProgramDerivedAddress:X,memo:_,recipient:G,sender:Z});if("signTransaction"in W){let Q=await W.signTransaction(J);return Ty(f)(Q)}return J.sign(W),Ty(f)(J)}}function Ty(f){return async(y)=>{return(await f()).sendRawTransaction(y.serialize())}}function R2(f,y){return async(G)=>{let T=await y();if(!T)throw new Of("toolbox_solana_no_signer");let{VersionedTransaction:_}=await import("@solana/web3.js");if(!(G instanceof _)){let W=await(await f()).getLatestBlockhash();G.recentBlockhash=W.blockhash,G.feePayer=T.publicKey||void 0}if("connect"in T)return await T.signTransaction(G);return G.sign([T]),G}}async function u1({phrase:f,derivationPath:y=O8.SOL}){let{HDKey:G}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{Keypair:_}=await import("@solana/web3.js"),X=T(f),W=G.fromMasterSeed(X);return _.fromSeed(W.derive(y,!0).privateKey)}function C2(f){return f.toString()}var $2=S(()=>{bT()});var p1={};fT(p1,{validateSolanaAddress:()=>h1,getSolanaToolbox:()=>I8,fetchTokenMetaData:()=>k2,createKeysForPath:()=>u1});var t1=S(()=>{$2()});import{AssetValue as fy,Chain as yy,DerivationPath as A2,derivationPathToString as n8,getChainConfig as V8,getRPCUrl as i1,NetworkDerivationPath as v8,SwapKitError as wT,updateDerivationPath as o8}from"@swapkit/helpers";import{match as c1,P as Hf}from"ts-pattern";function _y(f){if(!f)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(f)}async function Gy({phrase:f,derivationPath:y=A2.STRK}){let{HDKey:G}=await import("@scure/bip32"),{mnemonicToSeedSync:T}=await import("@scure/bip39"),{ec:_,hash:X,encode:W,CallData:Z}=await import("starknet"),J=T(f),L=G.fromMasterSeed(J).derive(y);if(!L.privateKey)throw new wT("toolbox_starknet_no_signer");let O=W.addHexPrefix(Buffer.from(L.privateKey).toString("hex")),U=_.starkCurve.grindKey(O),M=W.addHexPrefix(U),N=_.starkCurve.getStarkKey(M),z=Z.compile([N,0]);return{address:X.calculateContractAddressFromHash(N,d1,z,0),privateKey:M,publicKey:N}}async function r1({phrase:f,derivationPath:y=A2.STRK}){let{Account:G,RpcProvider:T}=await import("starknet"),{privateKey:_,address:X}=await Gy({derivationPath:y,phrase:f}),W=await i1(yy.Starknet),Z=new T({nodeUrl:W});return new G({address:X,provider:Z,signer:_})}function P2(f){let y=yy.Starknet,G=f&&"index"in f?f.index||0:0,T=n8(f&&"derivationPath"in f&&f.derivationPath?f.derivationPath:o8(v8[y],{index:G})),_,X,W;async function Z(){if(X)return X;let{RpcProvider:Y}=await import("starknet"),q=await i1(y);return X=new Y({nodeUrl:q}),X}async function J(Y){let q=await Z(),D=Y||await U();if(!D)return!1;try{return await q.getClassHashAt(D),!0}catch(C){if(C instanceof Error&&C.message.includes("Contract not found"))return!1;let $=C;if($?.code===20||$?.code===19)return!1;throw C}}async function Q(){let{CallData:Y,hash:q}=await import("starknet"),D=await Z(),C=await O();if(!C)throw new wT("toolbox_starknet_no_signer");if(!W)throw new wT({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await J())return C.address;let H=Y.compile([W,0]);if(q.calculateContractAddressFromHash(W,d1,H,0).toLowerCase()!==C.address.toLowerCase())throw new wT({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let A={addressSalt:W,classHash:d1,constructorCalldata:H},{transaction_hash:E}=await C.deployAccount(A);return await D.waitForTransaction(E),E}async function L(){if(!await J()){if(!W)throw new wT({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 Q()}}async function O(){if(_)return _;return _=await c1(f).with({phrase:Hf.string},async({phrase:Y})=>{let{Account:q,RpcProvider:D}=await import("starknet"),{privateKey:C,address:$,publicKey:H}=await Gy({derivationPath:T,phrase:Y});W=H;let I=await i1(yy.Starknet),A=new D({nodeUrl:I});return new q({address:$,provider:A,signer:C})}).with({address:Hf.string,privateKey:Hf.string},async({privateKey:Y,address:q})=>{let{Account:D}=await import("starknet"),C=await Z();return new D({address:q,provider:C,signer:Y})}).with({signer:Hf.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),_}async function U(){return(await O())?.address??""}async function M(Y){let q=await Z(),{uint256:D,CallData:C}=await import("starknet"),$=[],H=[g1,I2];for(let I of H)try{let[A="0",E="0"]=await q.callContract({calldata:C.compile({account:Y}),contractAddress:I,entrypoint:"balanceOf"}),V=D.uint256ToBN({high:A,low:E});c1(I).with(g1,()=>{$.push(fy.from({chain:y,value:V}))}).with(I2,()=>{if(V>0n)$.push(fy.from({asset:`${y}.ETH-${I}`,value:V}))}).otherwise(()=>{})}catch{}return $}async function N({recipient:Y,assetValue:q}){let{CallData:D,uint256:C}=await import("starknet");if(!_y(Y))throw new wT("core_transaction_invalid_recipient_address",{address:Y});let $=q.isGasAsset?g1:q.address;if(!$)throw new wT("toolbox_starknet_invalid_address",{address:$,assetValue:q});let H=C.bnToUint256(q.getBaseValue("bigint"));return[{calldata:D.compile([Y,H]),contractAddress:$,entrypoint:"transfer"}]}async function z({recipient:Y,assetValue:q,sender:D}){let{baseDecimal:C}=V8(yy.Starknet),$=await O(),H=await c1({sender:D,signer:$}).with({sender:Hf.string},async({sender:I})=>{let{Account:A}=await import("starknet"),E=await Z();return new A({address:I,provider:E,signer:"0x0"})}).with({signer:Hf.nonNullable},({signer:I})=>I).otherwise((I)=>{throw new wT({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:I}})});try{let I=await N({assetValue:q,recipient:Y}),A=await H.estimateInvokeFee(I);if(A?.overall_fee)return fy.from({chain:y,fromBaseDecimal:C,value:A.overall_fee})}catch(I){throw new wT("toolbox_starknet_fee_estimation_failed",I)}return fy.from({chain:y,value:"0.00001"})}async function B({recipient:Y,assetValue:q,memo:D}){let C=await O();if(!C)throw new wT("toolbox_starknet_no_signer");await L();let $=await N({assetValue:q,memo:D,recipient:Y});return(await C.execute($)).transaction_hash}async function k(Y){let q=await O();if(!q)throw new wT("toolbox_starknet_no_signer");let D=await q.signMessage(Y);return Array.isArray(D)?D:[D.r.toString(),D.s.toString()]}async function R(Y){let q=await O();if(!q)throw new wT("toolbox_starknet_no_signer");return await L(),(await q.execute(Y)).transaction_hash}function F(Y){return R(Y)}function w(Y,q=!0){try{return UT(y)(Y,q)}catch{return M(Y)}}return{broadcastTransaction:R,createKeysForPath:r1,createTransaction:N,deployAccount:Q,estimateTransactionFee:z,getAddress:U,getBalance:w,getProvider:Z,isAccountDeployed:J,signAndBroadcastTransaction:F,signMessage:k,transfer:B,validateAddress:_y}}var g1="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",I2="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",d1="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var x2=S(()=>{bT()});var Xy={};fT(Xy,{validateStarknetAddress:()=>_y,starknetCreateKeysForPath:()=>r1,getStarknetToolbox:()=>P2,deriveStarknetKeys:()=>Gy});var Wy=S(()=>{x2()});import{isValidSuiAddress as K8}from"@mysten/sui/utils";import{AssetValue as Rf,Chain as Zy,getChainConfig as j8,SwapKitError as HT}from"@swapkit/helpers";import{match as b8,P as S2}from"ts-pattern";async function n2(f,y,G,T=[],_){let X=await f.getCoins({coinType:G,cursor:_,owner:y}),W=[...T,...X.data];return X.hasNextPage?n2(f,y,G,W,X.nextCursor):W}function l8(f,y,G){let T=y.reduce((J,Q)=>J+BigInt(Q.balance),0n);if(T<G)throw new HT("toolbox_sui_insufficient_balance",{available:T.toString(),required:G.toString()});let{ids:_}=y.reduce((J,Q)=>{if(J.total>=G)return J;return{ids:[...J.ids,Q.coinObjectId],total:J.total+BigInt(Q.balance)}},{ids:[],total:0n}),X=_[0],W=_.slice(1);if(W.length>0)f.mergeCoins(X,W);let[Z]=f.splitCoins(X,[G]);return Z}function V2(f){try{return K8(f)}catch{return!1}}function E2(f){return"signWithIntent"in f}function u8({provider:f,...y}={}){let G;async function T(){if(G)return G;return G=await b8(y).with({phrase:S2.string},async({phrase:N})=>{let{Ed25519Keypair:z}=await import("@mysten/sui/keypairs/ed25519");return z.deriveKeypair(N)}).with({signer:S2.any},({signer:N})=>N).otherwise(()=>{return}),G}async function _(N=f){let{SuiClient:z,getFullnodeUrl:B}=await import("@mysten/sui/client");return new z({url:N||B("mainnet")})}async function X(){return(await T())?.toSuiAddress()||""}function W(N){try{let z=Rf.from({address:N,chain:Zy.Sui});return{asset:z.toString(),decimals:z.decimal}}catch{}return null}async function Z(N){let z=N||await X();if(!z)throw new HT("toolbox_sui_address_required");let{baseDecimal:B,chain:k}=j8(Zy.Sui);try{let R=await _(),{totalBalance:F}=await R.getBalance({owner:z}),w=[Rf.from({chain:k,fromBaseDecimal:B,value:F})],Y=await R.getAllBalances({owner:z});for(let{coinType:q,totalBalance:D}of Y){if(q==="0x2::sui::SUI"||Number(D)<=0)continue;let C=W(q);if(C)w.push(Rf.from({asset:C.asset,fromBaseDecimal:C.decimals,value:D}))}return w}catch{return[Rf.from({chain:k})]}}async function J(N){let z=Rf.from({chain:Zy.Sui,value:"0.01"});if(!N)return z;try{let B=await _(),{txBytes:k}=await Q(N),{effects:{status:R,gasUsed:F}}=await B.dryRunTransactionBlock({transactionBlock:k});if(R.status!=="success")return z;let w=Number(F.computationCost)+Number(F.storageCost)-Number(F.storageRebate);return Rf.from({chain:Zy.Sui,value:w.toString()})}catch{return z}}async function Q({recipient:N,assetValue:z,gasBudget:B,sender:k}){let{Transaction:R}=await import("@mysten/sui/transactions"),F=k||await X();if(!F)throw new HT("toolbox_sui_no_sender");try{let w=new R;if(w.setSender(F),z.isGasAsset||z.symbol==="SUI"){let[D]=w.splitCoins(w.gas,[z.getBaseValue("string")]);w.transferObjects([D],N)}else{let D=z.address;if(!D)throw new HT("toolbox_sui_missing_coin_type");let C=await _(),$=z.getBaseValue("bigint"),H=await n2(C,F,D);if(!H.length)throw new HT("toolbox_sui_no_coins_found",{coinType:D});let I=l8(w,H,$);w.transferObjects([I],N)}if(B)w.setGasBudget(B);let Y=await _(),q=await w.build({client:Y});return{tx:w,txBytes:q}}catch(w){if(w instanceof HT)throw w;throw new HT("toolbox_sui_transaction_creation_error",{error:w})}}async function L(N){let z=await T();if(!z)throw new HT("toolbox_sui_no_signer");if(N instanceof Uint8Array)return z.signTransaction(N);let{txBytes:B}="tx"in N?N:await Q(N);return z.signTransaction(B)}async function O({assetValue:N,gasBudget:z,recipient:B}){let k=await T();if(!k)throw new HT("toolbox_sui_no_signer");let R=k.toSuiAddress()||await X();if(!R)throw new HT("toolbox_sui_no_sender");let{txBytes:F}=await Q({assetValue:N,gasBudget:z,recipient:B,sender:R}),w=await _();if(!E2(k)){let q=await k.signTransaction(F),{digest:D}=await w.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return D}let{digest:Y}=await w.signAndExecuteTransaction({signer:k,transaction:F});return Y}async function U(N){let z=await _(),{digest:B}=await z.executeTransactionBlock({signature:N.signature,transactionBlock:N.bytes});return B}async function M(N){let z=await T();if(!z)throw new HT("toolbox_sui_no_signer");let B=await _(),k;if(typeof N==="string")k=Uint8Array.from(Buffer.from(N,"base64"));else if(N instanceof Uint8Array)k=N;else k=await N.build({client:B});if(!E2(z)){let F=await z.signTransaction(k),{digest:w}=await B.executeTransactionBlock({signature:F.signature,transactionBlock:F.bytes});return w}let{digest:R}=await B.signAndExecuteTransaction({signer:z,transaction:k});return R}return{broadcastTransaction:U,createTransaction:Q,estimateTransactionFee:J,getAddress:X,getBalance:Z,signAndBroadcastTransaction:M,signTransaction:L,transfer:O,validateAddress:V2}}var v2=()=>{};var Jy={};fT(Jy,{validateSuiAddress:()=>V2,getSuiToolbox:()=>u8});var Qy=S(()=>{v2()});import{getHttpEndpoint as h8}from"@orbs-network/ton-access";import{AssetValue as m8,Chain as G0,getChainConfig as p8,getRPCUrl as t8,SwapKitError as _0,SwapKitNumber as c8}from"@swapkit/helpers";import{mnemonicToWalletKey as g8}from"@ton/crypto";import{Address as oT,beginCell as a1,Cell as o2,external as i8,internal as d8,JettonMaster as r8,loadStateInit as a8,SendMode as K2,storeMessage as s8,TonClient as e8,toNano as u2,WalletContractV4 as T9}from"@ton/ton";import{match as j2,P as s1}from"ts-pattern";async function X9(){let f=Date.now();if(Yy&&f-l2<G9)return Yy;try{return Yy=await h8(),l2=f,Yy}catch{return t8(G0.Ton)}}function W9(f={}){let y,G,T;async function _(){if(!y){let w=f.provider??await X9();y=new e8({endpoint:w})}return y}async function X(){return(await Z()).address.toString()}async function W(){if(T)return T;return T=await j2(f).with({phrase:s1.string},async({phrase:w})=>g8(w.split(" "))).with({signer:s1.any},({signer:w})=>w).otherwise(()=>{return}),T}async function Z(w){if(!G||w){let Y=await W(),q=await _(),D=w||Y;if(!D)throw new _0("core_wallet_connection_not_found");let C=T9.create({publicKey:D.publicKey,workchain:0});G=q.open(C)}return G}let J=UT(G0.Ton);async function Q({assetValue:w,recipient:Y,memo:q,sender:D}){if(w.isGasAsset){let j=q?F(q).toBoc().toString("base64"):void 0;return[{address:Y,amount:w.getBaseValue("string"),payload:j}]}let C=w.address;if(!C)throw new _0({errorKey:"core_swap_contract_not_found",info:{asset:w.toString()}});let $=D??await X(),H=await k({jettonMasterAddress:C,ownerAddress:$}),I=oT.parse(Y),A=oT.parse($),E=w.getBaseValue("bigint"),V=q?F(q):void 0,o=R({destinationAddress:I,forwardPayload:V,jettonAmount:E,responseAddress:A});return[{address:H.toString(),amount:_9.toString(),payload:o.toBoc().toString("base64")}]}function L({sender:w,...Y}){return Q({...Y,sender:w})}function O(w){return w.map((Y)=>{let q=Y.payload?o2.fromBase64(Y.payload):void 0,D=Y.stateInit?a8(o2.fromBase64(Y.stateInit).asSlice()):void 0,C=oT.parse(Y.address),$=oT.isFriendly(Y.address)?oT.parseFriendly(Y.address).isBounceable:!0;return d8({body:q,bounce:$,init:D,to:C,value:BigInt(Y.amount)})})}async function U(w){let Y=await W(),q=await Z();if(!q||!Y)throw new _0("core_wallet_connection_not_found");let D=await _(),{state:C}=await D.getContractState(q.address),$=C==="active",H=$?await q.getSeqno():0,I=q.createTransfer({messages:O(w),secretKey:Y.secretKey,sendMode:b2,seqno:H}),A=i8({body:I,init:$?void 0:q.init,to:q.address});return a1().store(s8(A)).endCell()}async function M(w){return await(await _()).sendFile(w.toBoc()),w.hash().toString("hex")}async function N(w){let Y=await U(w);return M(Y)}async function z({assetValue:w,recipient:Y,memo:q}){let D=await L({assetValue:w,memo:q,recipient:Y});return N(D)}async function B({sender:w,...Y}){let{baseDecimal:q}=p8(G0.Ton),D=await j2(w).with(s1.string,(H)=>{return oT.parseFriendly(H).address}).otherwise(async()=>{return(await Z()).address});if(!D)throw new _0("toolbox_fee_estimation_failed",{chain:G0.Ton});let C=m8.from({chain:G0.Ton,value:"0.01"}),$=await _();try{let H=await L({sender:w,...Y}),I=await W(),A=await Z();if(!A||!I)return C;let E=await A.getSeqno(),V=A.createTransfer({messages:O(H),secretKey:I.secretKey,sendMode:b2,seqno:E}),{source_fees:o}=await $.estimateExternalMessageFee(D,{body:V,ignoreSignature:!0,initCode:null,initData:null}),j=o.in_fwd_fee+o.storage_fee+o.gas_fee+o.fwd_fee;return C.set(c8.fromBigInt(BigInt(j),q))}catch{return C}}async function k({jettonMasterAddress:w,ownerAddress:Y}){try{let q=await _(),D=oT.parse(w),C=oT.parse(Y);return await q.open(r8.create(D)).getWalletAddress(C)}catch{throw new _0({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:w,ownerAddress:Y}})}}function R({jettonAmount:w,destinationAddress:Y,responseAddress:q,forwardAmount:D=y9,forwardPayload:C}){let $=a1().storeUint(f9,32).storeUint(0,64).storeCoins(w).storeAddress(Y).storeAddress(q).storeBit(0).storeCoins(D);if(C)$.storeBit(1).storeRef(C);else $.storeBit(0);return $.endCell()}function F(w){return a1().storeUint(0,32).storeStringTail(w).endCell()}return{broadcastTransaction:M,createTransaction:L,estimateTransactionFee:B,getAddress:X,getBalance:J,getJettonWalletAddress:k,sign:U,signAndBroadcastTransaction:N,transfer:z,validateAddress:h2}}function h2(f){try{return oT.parse(f),!0}catch{return!1}}var f9=260734629,y9,_9,b2,G9=60000,Yy,l2=0;var m2=S(()=>{bT();y9=u2("0.01"),_9=u2("0.05"),b2=K2.PAY_GAS_SEPARATELY+K2.IGNORE_ERRORS});var qy={};fT(qy,{validateTonAddress:()=>h2,getTONToolbox:()=>W9});var Ly=S(()=>{m2()});function p2({deriveAddress:f,getBalance:y,getUtxos:G}){async function T(Z){let{count:J,startIndex:Q=0,change:L=!1}=Z,O=[];for(let U=0;U<J;U++){let M=await f({change:L,index:Q+U});if(M)O.push(M)}return O}async function _(Z){let{gapLimit:J=20,change:Q=!1}=Z??{},L=[],O=0,U=0;while(O<J){let M=await f({change:Q,index:U});if(!M)break;if((await y(M.address)).some((B)=>B.getValue("number")>0))L.push(M),O=0;else O++;U++}return L}async function X(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q],O=await Promise.all(L.map(async(M)=>{let z=(await y(M.address)).reduce((B,k)=>B+k.getValue("number"),0);return{...M,balance:z}})),U=O.reduce((M,N)=>M+N.balance,0);return{addresses:O,total:U}}async function W(Z=20){let[J,Q]=await Promise.all([_({change:!1,gapLimit:Z}),_({change:!0,gapLimit:Z})]),L=[...J,...Q];return(await Promise.all(L.map(async(U)=>{return(await G(U.address)).map((N)=>({...N,address:U.address,derivationIndex:U.index,isChange:U.change}))}))).flat()}return{deriveAddresses:T,getAggregatedBalance:X,getAggregatedUtxos:W,scanForAddresses:_}}import{Chain as GT,getRPCUrl as Z9,RequestClient as zy,SKConfig as J9,SwapKitError as IT,warnOnce as Q9}from"@swapkit/helpers";import{NETWORKS as Cf}from"@swapkit/utxo-signer";async function Y9({chain:f,txHash:y}){let G=`${X0(f)}/push/transaction`,T=JSON.stringify({data:y});try{let _=await zy.post(G,{body:T,headers:{"Content-Type":"application/json"}});if(_.context.code!==200)throw new IT("toolbox_utxo_broadcast_failed",{error:_.context.error||"Transaction broadcast failed"});return _.data?.transaction_hash||y}catch(_){let X=await Z9(f);if(X){let W=JSON.stringify({id:__(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),Z=await zy.post(X,{body:W,headers:{"Content-Type":"application/json"}});if(Z.error)throw new IT("toolbox_utxo_broadcast_failed",{error:Z.error?.message});if(Z.result.includes('"code":-26'))throw new IT("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return Z.result}throw _}}function X0(f){return`https://api.blockchair.com/${q9(f)}`}function t2(f){switch(f){case GT.Bitcoin:return 5;case GT.Dogecoin:return 1e4;case GT.Litecoin:return 1;case GT.Zcash:return 1;default:return 2}}function q9(f){switch(f){case GT.BitcoinCash:return"bitcoin-cash";case GT.Litecoin:return"litecoin";case GT.Dash:return"dash";case GT.Dogecoin:return"dogecoin";case GT.Zcash:return"zcash";case GT.Polkadot:return"polkadot";default:return"bitcoin"}}async function L9(f){try{let{feePerKb:y}=await zy.get(`https://app.bitgo.com/api/v2/${f.toLowerCase()}/tx/fee`),G=y/1000;return Math.max(G,t2(f))}catch{return t2(f)}}async function Ny(f,y){let G=await zy.get(`${f}${y?`${f.includes("?")?"&":"?"}key=${y}`:""}`);if(!G||G.context.code!==200)throw new IT("toolbox_utxo_api_error",{error:`Failed to query ${f}`});return G.data}async function g2({address:f,chain:y,apiKey:G}){if(!f)throw new IT("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Ny(`${X0(y)}/dashboards/address/${f}?transaction_details=true`,G))[f]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function z9({address:f,chain:y,apiKey:G}){return(await g2({address:f,apiKey:G,chain:y}))?.address.balance||0}async function i2({chain:f,apiKey:y,txHash:G}){if(!G)throw new IT("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Ny(`${X0(f)}/raw/transaction/${G}`,y))?.[G]?.raw_transaction||""}catch(T){let _=T instanceof Error?T.message:String(T);return console.error(`Failed to fetch raw transaction: ${_}`),""}}async function U9({chain:f,apiKey:y,txHash:G}){if(!G)throw new IT("toolbox_utxo_invalid_params",{error:"TxHash is required"});let _=(await Ny(`${X0(f)}/dashboards/transaction/${G}`,y))?.[G];if(!_)throw new IT("toolbox_utxo_tx_not_found",{txHash:G});let{transaction:X,inputs:W,outputs:Z}=_,J=W.map((L)=>L.spending_sequence),Q=X.is_rbf===!0||J.some((L)=>L<N9);return{blockId:X.block_id,confirmed:X.block_id!==-1,fee:X.fee,inputs:W,isRBF:Q,outputs:Z,sequences:J,size:X.size,txid:X.hash,weight:X.weight}}async function M9({chain:f,address:y,apiKey:G,offset:T=0,limit:_=30}){return(await Ny(`${X0(f)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${_}&offset=${T}`,G)).map(({is_spent:J,script_hex:Q,block_id:L,transaction_hash:O,index:U,value:M,spending_signature_hex:N})=>({hash:O,index:U,is_confirmed:L!==-1,is_spent:J,script_hex:Q,txHex:N,value:M}))}function B9(f){return f.reduce((y,G)=>y+G.value,0)}function c2(f,y){let G=[...f].sort((T,_)=>_.value-T.value);if(y){let T=[],_=0;for(let X of G)if(T.push(X),_+=X.value,_>=y)break;return T}return G}async function d2({chain:f,address:y,apiKey:G,targetValue:T,accumulativeValue:_=0,offset:X=0,limit:W=30}){if(!y)throw new IT("toolbox_utxo_invalid_params",{error:"Address is required"});try{let Z=await M9({address:y,apiKey:G,chain:f,limit:W,offset:X,targetValue:T}),Q=Z.length<W,L=Z.filter(({is_spent:B})=>!B),O=B9(L),U=_+O,M=T&&U>=T;if(Q||M)return c2(L,T);let N=await d2({accumulativeValue:U,address:y,apiKey:G,chain:f,limit:W,offset:X+W,targetValue:T}),z=[...L,...N];return c2(z,T)}catch(Z){let J=Z instanceof Error?Z.message:String(Z);return console.error(`Failed to fetch unspent UTXOs: ${J}`),[]}}async function w9({address:f,chain:y,apiKey:G,fetchTxHex:T=!0,targetValue:_}){let X=await d2({address:f,apiKey:G,chain:y,targetValue:_}),W=[];for(let{hash:Z,index:J,script_hex:Q,value:L}of X){let O;if(T)O=await i2({apiKey:G,chain:y,txHash:Z});W.push({address:f,hash:Z,index:J,txHex:O,value:L,witnessUtxo:{script:Buffer.from(Q,"hex"),value:L}})}return W}function a(f){let y=J9.get("apiKeys").blockchair||"";return Q9({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(G)=>Y9({chain:f,txHash:G}),getAddressData:(G)=>g2({address:G,apiKey:y,chain:f}),getBalance:(G)=>z9({address:G,apiKey:y,chain:f}),getRawTx:(G)=>i2({apiKey:y,chain:f,txHash:G}),getSuggestedTxFee:()=>L9(f),getTransactionDetails:(G)=>U9({apiKey:y,chain:f,txHash:G}),getUtxos:(G)=>w9({...G,apiKey:y,chain:f})}}function D9(f){return f}function O9(){return function(y){switch(y){case GT.Bitcoin:return Cf.bitcoin;case GT.BitcoinCash:return Cf.bitcoinCash;case GT.Dash:return Cf.dash;case GT.Litecoin:return Cf.litecoin;case GT.Dogecoin:return Cf.dogecoin;case GT.Zcash:return Cf.zcash;default:throw new IT("toolbox_utxo_not_supported",{chain:y})}}}var N9=4294967294;var r2=S(()=>{bT()});import{CashAddrType as Uy,decodeCashAddr as H9,encodeCashAddr as R9}from"@swapkit/utxo-signer";function k9(f,y,G){return R9({hash:G,prefix:f,type:C9[y]})}function $9(f){let y=H9(f),G=F9[y.type];if(!G)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:G}}var C9,F9,e1;var a2=S(()=>{C9={P2PKH:Uy.P2PKH,P2SH:Uy.P2SH},F9={[Uy.P2PKH]:"P2PKH",[Uy.P2SH]:"P2SH"};e1={decode:$9,encode:k9}});import{sha256 as I9}from"@noble/hashes/sha2.js";import{createBase58check as A9}from"@scure/base";import{SwapKitError as e2}from"@swapkit/helpers";function f5(f){try{return My(f),!0}catch{return!1}}function y5(f){return My(f)?.network}function KT(f){let y=My(f);if(y?.format==="legacy")return f;return S9(y)}function W0(f){let y=My(f);return E9(y)}function My(f){try{let y=P9(f);if(y)return y}catch{}try{let y=x9(f);if(y)return y}catch{}throw new e2("toolbox_utxo_invalid_address",{address:f})}function P9(f){try{let y=TG.decode(f);if(y.length!==21)throw new e2("toolbox_utxo_invalid_address",{address:f});let G=y[0],T=Array.prototype.slice.call(y,1);switch(G){case Wf.legacy.mainnet.p2pkh:return{format:"legacy",hash:T,network:"mainnet",type:"p2pkh"};case Wf.legacy.mainnet.p2sh:return{format:"legacy",hash:T,network:"mainnet",type:"p2sh"};case Wf.legacy.testnet.p2pkh:return{format:"legacy",hash:T,network:"testnet",type:"p2pkh"};case Wf.legacy.testnet.p2sh:return{format:"legacy",hash:T,network:"testnet",type:"p2sh"};case Wf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2pkh"};case Wf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:T,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function x9(f){if(f.indexOf(":")!==-1)try{return s2(f)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let G of y)try{return s2(`${G}:${f}`)}catch{}}return}function s2(f){try{let{hash:y,prefix:G,type:T}=e1.decode(f);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:G==="bitcoincash"?"mainnet":"testnet",type:T==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function S9(f){let y=Wf.legacy[f.network][f.type],G=Buffer.alloc(1+f.hash.length);return G[0]=y,G.set(f.hash,1),TG.encode(G)}function E9(f){let y=f.network==="mainnet"?"bitcoincash":"bchtest",G=f.type==="p2pkh"?"P2PKH":"P2SH",T=new Uint8Array(f.hash);return e1.encode(y,G,T)}var TG,T5,Wf;var fG=S(()=>{a2();TG=A9(I9);((G)=>{G.Mainnet="mainnet";G.Testnet="testnet"})(T5||={});Wf={["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 n9}from"@swapkit/helpers";import{Script as V9}from"@swapkit/utxo-signer";function zT(f){let y=new Uint8Array(Buffer.from(f,"utf8"));return V9.encode(["RETURN",y])}var v9=1000,wy=10,Dy=2,yG=10,o9=41,K9=107,Oy,By,Z0,Ff=(f)=>{if(f.startsWith("bc1")||f.startsWith("tb1")||f.startsWith("ltc1")||f.startsWith("tltc1"))return"P2WPKH";if(f.startsWith("1")||f.startsWith("m")||f.startsWith("n")||f.startsWith("bitcoincash:q")||f.startsWith("bitcoincash:p")||f.startsWith("q")||f.startsWith("p")||f.startsWith("L")||f.startsWith("M")||f.startsWith("3")||f.startsWith("D")||f.startsWith("A")||f.startsWith("9")||f.startsWith("X")||f.startsWith("7")||f.startsWith("y")||f.startsWith("t1")||f.startsWith("t3")||f.startsWith("tm"))return"P2PKH";throw new n9("toolbox_utxo_invalid_address",{address:f})},Zf=({inputs:f,outputs:y,feeRate:G})=>{let T=f[0]&&"address"in f[0]&&f[0].address?Ff(f[0].address):"P2PKH",X=(G?f.filter((Q)=>Q.value>=By["type"in Q&&Q.type?Q.type:"P2PKH"]*Math.ceil(G)):f).reduce((Q,L)=>Q+tT(L),0),W=y?.reduce((Q,L)=>Q+J0(L),0)||Z0[T],Z=wy+X+W;return T==="P2WPKH"?Math.ceil(Z+Dy/4):Z},tT=(f)=>{if("type"in f&&f.type)return By[f.type];if("address"in f&&f.address)return By[Ff(f.address)];return o9+K9},J0=(f,y)=>{if(f?.script)return yG+f.script.length+(f.script.length>=74?2:1);if(y)return Z0[y];if("address"in f&&f.address)return Z0[Ff(f.address)];return Z0.P2PKH};var _5=S(()=>{((G)=>{G.P2PKH="P2PKH";G.P2WPKH="P2WPKH"})(Oy||={});By={["P2PKH"]:148,["P2WPKH"]:68},Z0={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Jf,SwapKitError as j9}from"@swapkit/helpers";function Q0(f){switch(f){case Jf.Bitcoin:case Jf.BitcoinCash:return 550;case Jf.Dash:case Jf.Litecoin:return 5500;case Jf.Dogecoin:return 1e5;case Jf.Zcash:return 546;default:throw new j9("toolbox_utxo_not_supported",{chain:f})}}function RT({inputs:f,outputs:y,feeRate:G=1,chain:T=Jf.Bitcoin,changeAddress:_=""}){let X=f[0]&&"address"in f[0]&&f[0].address?Ff(f[0].address):"P2PKH",W=f.filter((N)=>tT(N)*G<=N.value),J=X==="P2WPKH"?Math.ceil(Dy/4):0,Q=wy+J+y.reduce((N,z)=>N+J0(z),0),L=y.reduce((N,z)=>N+z.value,0),O=Q*G,U=0,M=[];for(let N of W){let z=tT(N),B=G*z;O+=B,U+=N.value,M.push(N);let k=O+L;if(U<k)continue;let R=U-k,F=G*J0({address:_,value:0});if(R>F){let w=F+O,Y=U-(L+Math.ceil(w));if(Y>Math.max(tT({value:0})*G,Q0(T)))return{fee:Math.ceil(w),inputs:M,outputs:y.concat({address:_,value:Y})}}return{fee:Math.ceil(O),inputs:M,outputs:y}}return{fee:Math.ceil(G*Zf({inputs:f,outputs:y}))}}var _G=S(()=>{_5()});var kf=S(()=>{r2();fG();_G();_5()});import{Address as b9,ZCASH_NETWORK as l9}from"@swapkit/utxo-signer";function Qf(f){return f.replace(/(bchtest:|bitcoincash:)/,"")}function cT(f){let y=Qf(f);return f5(y)&&y5(y)==="mainnet"}function $f(f){try{if(f.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let G=b9(l9).decode(f);return G.type==="pkh"||G.type==="sh"}catch{return!1}}var Y0=S(()=>{kf()});import{secp256k1 as u9}from"@noble/curves/secp256k1.js";import{hex as Yf}from"@scure/base";import{HDKey as ZG}from"@scure/bip32";import{mnemonicToSeedSync as X5}from"@scure/bip39";import{AssetValue as Hy,applyFeeMultiplier as GG,Chain as s,derivationPathToString as JG,FeeOption as AT,NetworkDerivationPath as QG,SwapKitError as h,SwapKitNumber as h9,updateDerivationPath as m9,warnOnce as p9}from"@swapkit/helpers";import{Address as t9,BCHSigHash as W5,CashAddrPrefix as c9,CashAddrType as g9,encodeCashAddr as i9,NETWORKS as If,p2pkh as XG,p2wpkh as d9,RBF_SEQUENCE as r9,SigHash as YG,Transaction as G5,WIF as qG}from"@swapkit/utxo-signer";import{match as LG}from"ts-pattern";function Z5({address:f,chain:y}){return LG(y).with(s.BitcoinCash,()=>cT(f)).with(s.Zcash,()=>$f(f)).otherwise(()=>{try{return t9(NT(y)).decode(f),!0}catch{return!1}})}function NT(f){return LG(f).with(s.Bitcoin,()=>If.bitcoin).with(s.BitcoinCash,()=>If.bitcoinCash).with(s.Dash,()=>If.dash).with(s.Dogecoin,()=>If.dogecoin).with(s.Litecoin,()=>If.litecoin).with(s.Zcash,()=>If.zcash).exhaustive()}function a9({phrase:f,derivationPath:y,network:G,seed:T}){let _=T??X5(f),W=ZG.fromMasterSeed(_,G.bip32).derive(y);if(!W.privateKey)throw new h("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return W.privateKey}function WG(f){return u9.getPublicKey(f,!0)}function J5({publicKey:f,chain:y,network:G}){if(y===s.BitcoinCash){let X=XG(f,G);if(!X.hash)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return i9({hash:X.hash,prefix:c9.MAINNET,type:g9.P2PKH}).replace(/^bitcoincash:/,"")}let _=!q0.includes(y)?d9(f,G):XG(f,G);if(!_.address)throw new h("toolbox_utxo_invalid_address",{error:"Could not derive address"});return _.address}function Af({phrase:f,derivationPath:y,chain:G,wif:T,seed:_}){let X=NT(G);if(T){let Q=qG(X).decode(T),L=WG(Q);return{privateKey:Q,publicKey:L}}if(!f)throw new h("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let W=y||JG(QG[G]),Z=a9({derivationPath:W,network:X,phrase:f,seed:_}),J=WG(Z);return{privateKey:Z,publicKey:J}}function s9(f,y){return qG(NT(y)).encode(f)}function e9({phrase:f,derivationPath:y,chain:G,seed:T}){let _=y.split("/");if(_.length<4)throw new h("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${_.length}): ${y}`});let X=NT(G),W=T??X5(f),Z=ZG.fromMasterSeed(W,X.bip32),J=_.slice(0,4).join("/");return Z.derive(J)}function gT({inputs:f,outputs:y,chain:G,tx:T,sender:_,compiledMemo:X,enableRBF:W=!1}){let Z=NT(G),J=!q0.includes(G),Q=W?r9:void 0,L=new Set;for(let O of f){let U=`${O.hash}:${O.index}`;if(L.has(U))throw new h("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(U);let M=typeof O.hash==="string"?Yf.decode(O.hash):O.hash;if(J&&O.witnessUtxo)T.addInput({index:O.index,sequence:Q,txid:M,witnessUtxo:{amount:BigInt(O.witnessUtxo.value),script:O.witnessUtxo.script}});else if(O.txHex)T.addInput({index:O.index,nonWitnessUtxo:Yf.decode(O.txHex),sequence:Q,txid:M,...G===s.BitcoinCash?{sighashType:W5.ALL}:{}});else throw new h("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let O of y){let U="address"in O&&O.address?O.address:_;if(G===s.BitcoinCash)U=KT(U);if(O.script){if(X)T.addOutput({amount:0n,script:X})}else T.addOutputAddress(U,BigInt(O.value),Z)}return{inputs:f,tx:T}}async function Pf(f){let y=await a(f).getSuggestedTxFee();return{[AT.Average]:y,[AT.Fast]:GG(y,AT.Fast),[AT.Fastest]:GG(y,AT.Fastest)}}async function zG({assetValue:f,recipient:y,memo:G,sender:T,fetchTxHex:_=!1}){let X=f.chain,W=(await Pf(X))[AT.Fastest],Z=_||q0.includes(X),J=f.getBaseValue("number"),Q=Math.ceil(J+W*5000);return{inputs:await a(X).getUtxos({address:T,fetchTxHex:Z,targetValue:Q}),outputs:[{address:y,value:J},...G?[{address:"",script:zT(G),value:0}]:[]]}}async function NG({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_,fetchTxHex:X=!1,enableRBF:W=!1}){let Z=f.chain,J=G?zT(G):null,Q=await zG({assetValue:f,fetchTxHex:X,memo:G,recipient:y,sender:_}),{inputs:L,outputs:O}=RT({...Q,chain:Z,feeRate:T});if(!(L&&O))throw new h("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new G5({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!J,version:1}),{inputs:M,tx:N}=gT({chain:Z,compiledMemo:J,enableRBF:W,inputs:L,outputs:O,sender:_,tx:U});return{inputs:M,tx:N,utxos:Q.inputs}}async function UG({assetValue:f,feeOptionKey:y=AT.Fast,feeRate:G,memo:T,sender:_,recipient:X}){let W=f.chain,Z=await zG({assetValue:f,memo:T,recipient:X,sender:_}),J=G?Math.floor(G):(await Pf(W))[y];return RT({...Z,chain:W,feeRate:J})}function T4(f){return async function({from:G,memo:T,feeRate:_,feeOptionKey:X=AT.Fast,recipients:W=1}){let Z=await a(f).getAddressData(G),J=_?Math.ceil(_):(await Pf(f))[X],Q=Z?.utxo.map((z)=>({...z,hash:"",type:"P2PKH"})).filter((z)=>z.value>Math.max(Q0(f),tT(z)*J));if(!Q?.length)return Hy.from({chain:f});let L=BigInt(Q.reduce((z,B)=>z+B.value,0)),O=Hy.from({chain:f,value:L}),U=typeof W==="number"?Array.from({length:W},()=>({address:G,value:0})):W;if(T)U.push({address:G,script:zT(T),value:0});let M=Zf({inputs:Q,outputs:U}),N=Hy.from({chain:f,value:BigInt(M*J)});return O.sub(N)}}function f4(f){return async function(G){let{fee:T}=await UG(G);return Hy.from({chain:f,value:h9.fromBigInt(BigInt(T),8).getValue("string")})}}function y4({chain:f,phrase:y,derivationPath:G,seed:T}){let _=NT(f),{privateKey:X,publicKey:W}=Af({chain:f,derivationPath:G,phrase:y,seed:T}),Z=f===s.BitcoinCash?[W5.ALL]:[YG.ALL];return{getAddress:()=>J5({chain:f,network:_,publicKey:W}),privateKey:X,publicKey:W,signTransaction:(J)=>{return J.sign(X,Z),J}}}function _4(f,y){return async function({memo:T,recipient:_,feeOptionKey:X,feeRate:W,assetValue:Z,enableRBF:J=!1}){let Q=y?.getAddress();if(!(y&&Q))throw new h("toolbox_utxo_no_signer");if(!_)throw new h("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});p9({condition:J&&!Ry.includes(f),id:`rbf_not_supported_${f}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${f}. Transaction will be created without RBF signaling.`});let L=J&&Ry.includes(f),O=W||(await Pf(f))[X||AT.Fast],{tx:U}=await NG({assetValue:Z,enableRBF:L,feeRate:O,memo:T,recipient:_,sender:Q});return y.signTransaction(U),U.finalize(),a(f).broadcastTx(Yf.encode(U.extract()))}}function Q5(f){return(y)=>Z5({address:y,chain:f})}function Y5(f){let y=NT(f);return function(T){if(!T)throw new h("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return J5({chain:f,network:y,publicKey:T.publicKey})}}function iT({chain:f,...y}){let G="phrase"in y?y.phrase:void 0,T="index"in y?y.index||0:0,_=G?X5(G):void 0,X=JG("derivationPath"in y&&y.derivationPath?y.derivationPath:m9(QG[f],{index:T})),W=G?y4({chain:f,derivationPath:X,phrase:G,seed:_}):void 0,Z="signer"in y?y.signer:void 0,J=G?Af({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function Q(){if(W)return Promise.resolve(W.getAddress());if(Z)return Z.getAddress();return Promise.resolve(void 0)}let L=G?e9({chain:f,derivationPath:X,phrase:G,seed:_}):void 0;function O(){if(!L)return;return L.publicExtendedKey}function U({index:w,change:Y=!1}){if(!L)return;if(!Number.isInteger(w)||w<0)throw RangeError(`index must be a non-negative integer, got: ${w}`);let q=NT(f),D=L.deriveChild(Number(Y)).deriveChild(w);if(!D.publicKey)throw new h("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let C=J5({chain:f,network:q,publicKey:D.publicKey}),$=Yf.encode(D.publicKey);return{address:C,change:Y,index:w,pubkey:$}}async function M(w){if(!Ry.includes(f))return{reason:`RBF is not supported on ${f}`,supported:!1};let Y=await a(f).getTransactionDetails(w);return{canReplace:Y.isRBF&&!Y.confirmed,confirmed:Y.confirmed,enabled:Y.isRBF,fee:Y.fee,sequences:Y.sequences,supported:!0}}async function N({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!Ry.includes(f))throw new h("toolbox_utxo_rbf_not_supported",{chain:f});let C=await a(f).getTransactionDetails(w);if(!C.isRBF)throw new h("toolbox_utxo_tx_not_replaceable",{txid:w});if(C.confirmed)throw new h("toolbox_utxo_tx_already_confirmed",{blockId:C.blockId,txid:w});let $=C.inputs.reduce((t,YT)=>t+YT.value,0),I=C.outputs.find((t)=>t.recipient===q)?.value||0;if(I===0)throw new h("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let A=await Promise.all(C.inputs.map(async(t)=>{let YT=await a(f).getRawTx(t.transaction_hash);return{hash:t.transaction_hash,index:t.index,txHex:YT,value:t.value,witnessUtxo:void 0}})),E=D?zT(D):null,V=Zf({feeRate:Y,inputs:A.map((t)=>({...t,type:"P2WPKH"})),outputs:[{address:q,value:I}]}),o=Math.ceil(V*Y);if(o<=C.fee)throw new h("toolbox_utxo_rbf_fee_too_low",{newFee:o,originalFee:C.fee});let j=o-C.fee,u=I-j;if(u<=0)throw new h("toolbox_utxo_rbf_insufficient_change");let r=new G5({allowLegacyWitnessUtxo:!0,version:1}),JT=[{address:q,value:u},...D?[{address:"",script:zT(D),value:0}]:[]],TT=$-u-o,QT=await Q();if(TT>Q0(f)&&QT)JT.push({address:QT,value:TT});return gT({chain:f,compiledMemo:E,inputs:A,outputs:JT,sender:QT||q,tx:r}),{feeDelta:j,newFee:o,originalFee:C.fee,tx:r}}async function z({txid:w,newFeeRate:Y,recipient:q,memo:D}){if(!W)throw new h("toolbox_utxo_no_signer");let{tx:C,originalFee:$,newFee:H}=await N({memo:D,newFeeRate:Y,recipient:q,txid:w});W.signTransaction(C),C.finalize();let I=await a(f).broadcastTx(Yf.encode(C.extract()));return{newFee:H,originalFee:$,txid:I}}function B({index:w,change:Y=!1}){if(!L)return;return L.deriveChild(Number(Y)).deriveChild(w).privateKey||void 0}function k({tx:w,inputDerivations:Y}){if(!L)throw new h("toolbox_utxo_no_signer");let q=f===s.BitcoinCash?[W5.ALL]:[YG.ALL];for(let D=0;D<Y.length;D++){let C=Y[D];if(!C)continue;let{derivationIndex:$,isChange:H}=C,I=B({change:H,index:$});if(!I)throw new h("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${D} at index ${$}`});w.signIdx(I,D,q)}return w}async function R({utxos:w,recipient:Y,assetValue:q,memo:D,feeRate:C,feeOptionKey:$,changeAddress:H}){if(!L)throw new h("toolbox_utxo_no_signer");let I=C||(await Pf(f))[$||AT.Fast],A=D?zT(D):null,E=[{address:Y,value:q.getBaseValue("number")}];if(A)E.push({address:"",script:A,value:0});let V=w.map(({hash:QT,index:t,value:YT,txHex:sT,witnessUtxo:qf})=>({hash:QT,index:t,txHex:sT,value:YT,witnessUtxo:qf?{script:qf.script,value:qf.value}:void 0})),{inputs:o,outputs:j}=RT({chain:f,feeRate:I,inputs:V,outputs:E});if(!(o&&j))throw new h("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let u=new G5({allowLegacyWitnessUtxo:!0,version:1}),r=w[0]?.address,JT=H||await Q()||r||Y;gT({chain:f,compiledMemo:A,inputs:o,outputs:j,sender:JT,tx:u});let TT=o.map((QT)=>{let t=w.find((YT)=>YT.hash===QT.hash&&YT.index===QT.index);return t?{derivationIndex:t.derivationIndex,isChange:t.isChange}:{derivationIndex:0,isChange:!1}});return k({inputDerivations:TT,tx:u}),u.finalize(),a(f).broadcastTx(Yf.encode(u.extract()))}function F({address:w,gapLimit:Y=20}){if(!L)return;for(let q=0;q<Y;q++){let D=U({change:!1,index:q}),C=U({change:!0,index:q}),$=D?.address===w?!1:C?.address===w;if(D?.address===w||C?.address===w)return{change:$,index:q}}return}return{accumulative:RT,broadcastTx:(w)=>a(f).broadcastTx(w),bumpFee:z,calculateTxSize:Zf,createKeysForPath:(w)=>Af({...w,chain:f}),createReplacementTransaction:N,createTransaction:NG,deriveAddressAtIndex:U,derivePrivateKeyAtIndex:B,estimateMaxSendableAmount:T4(f),estimateTransactionFee:f4(f),getAddress:Q,getAddressFromKeys:Y5(f),getBalance:UT(f),getExtendedPublicKey:O,getFeeRates:()=>Pf(f),getInputsOutputsFee:UG,getNetworkForChain:()=>NT(f),getPrivateKeyFromMnemonic:(w)=>s9(Af({...w,chain:f}).privateKey,f),isRBFEnabled:M,keys:J,resolveDerivationIndex:F,signAndBroadcastTransaction:async(w)=>{if(!W)throw new h("toolbox_utxo_no_signer");return W.signTransaction(w),w.finalize(),await a(f).broadcastTx(Yf.encode(w.extract()))},signTransactionWithMultipleKeys:k,transfer:_4(f,W),transferFromMultipleAddresses:R,validateAddress:Q5(f)}}var q0,Ry;var L0=S(()=>{bT();kf();Y0();q0=[s.Dash,s.Dogecoin,s.Zcash,s.BitcoinCash],Ry=[s.Bitcoin]});import{hex as G4}from"@scure/base";import{Chain as X4,derivationPathToString as W4,FeeOption as Z4,NetworkDerivationPath as J4,SwapKitError as dT,updateDerivationPath as Q4}from"@swapkit/helpers";import{BCHSigHash as Y4,CashAddrPrefix as MG,CashAddrType as BG,encodeCashAddr as wG,NETWORKS as q4,p2pkh as DG,Transaction as OG}from"@swapkit/utxo-signer";function z0(f){return Qf(W0(f))}function L4(f){let y=NT(PT);function G(_){return _.sign(f.privateKey,[Y4.ALL]),_}function T(){let _=DG(f.publicKey,y);if(!_.hash)throw new dT("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let X=wG({hash:_.hash,prefix:MG.MAINNET,type:BG.P2PKH});return Promise.resolve(X.replace(/^bitcoincash:/,""))}return{getAddress:T,signTransaction:G}}function q5(f){let y="phrase"in f?f.phrase:void 0,G="index"in f?f.index||0:0,T=W4("derivationPath"in f&&f.derivationPath?f.derivationPath:Q4(J4[PT],{index:G})),_=y?Af({chain:PT,derivationPath:T,phrase:y}):void 0,X=_?L4(_):("signer"in f)?f.signer:void 0;function W(){return Promise.resolve(X?.getAddress())}let{getBalance:Z,getFeeRates:J,broadcastTx:Q,...L}=iT({chain:PT});function O(U,M=!0){return Z(Qf(W0(U)))}return{...L,broadcastTx:Q,buildTx:N4,createTransaction:HG,getAddress:W,getAddressFromKeys:U4,getBalance:O,getFeeRates:J,stripPrefix:Qf,stripToCashAddress:z0,transfer:z4({broadcastTx:Q,getFeeRates:J,signer:X}),validateAddress:cT}}async function HG({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){if(!cT(y))throw new dT("toolbox_utxo_invalid_address",{address:y});let X=Math.ceil(f.getBaseValue("number")+T*7500),W=await a(PT).getUtxos({address:z0(_),fetchTxHex:!0,targetValue:X}),Z=G?zT(G):null,J=[],Q=KT(y);if(J.push({address:Q,value:f.getBaseValue("number")}),Z)J.push({script:Z,value:0});let{inputs:L,outputs:O}=RT({chain:PT,feeRate:T,inputs:W,outputs:J});if(!(L&&O))throw new dT("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let U=new OG({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Z,version:1}),M=KT(_),{inputs:N,tx:z}=gT({chain:PT,compiledMemo:Z,inputs:L,outputs:O.map((B)=>("address"in B)&&B.address?{...B,address:KT(B.address)}:B),sender:M,tx:U});return{inputs:N,tx:z,utxos:L}}function z4({broadcastTx:f,getFeeRates:y,signer:G}){return async function({recipient:_,assetValue:X,feeOptionKey:W=Z4.Fast,...Z}){let J=await G?.getAddress();if(!(G&&J))throw new dT("toolbox_utxo_no_signer");if(!_)throw new dT("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let Q=Z.feeRate||(await y())[W],{tx:L}=await HG({...Z,assetValue:X,feeRate:Q,recipient:_,sender:J}),O=await G.signTransaction(L);return O.finalize(),f(G4.encode(O.extract()))}}async function N4({assetValue:f,recipient:y,memo:G,feeRate:T,sender:_}){let X=W0(y);if(!cT(X))throw new dT("toolbox_utxo_invalid_address",{address:X});let W=Math.ceil(f.getBaseValue("number")+T*7500),Z=await a(PT).getUtxos({address:z0(_),fetchTxHex:!0,targetValue:W}),J=Number(T.toFixed(0)),Q=G?zT(G):null,L=[];if(L.push({address:KT(y),value:f.getBaseValue("number")}),Q)L.push({script:Q,value:0});let{inputs:O,outputs:U}=RT({chain:PT,feeRate:J,inputs:Z,outputs:L});if(!(O&&U))throw new dT("toolbox_utxo_insufficient_balance",{assetValue:f,sender:_});let M=new OG({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!Q,version:1}),{inputs:N,tx:z}=gT({chain:PT,compiledMemo:Q,inputs:O,outputs:U,sender:KT(_),tx:M});return{inputs:N,tx:z,utxos:Z}}function U4(f){let y=q4.bitcoinCash,G=DG(f.publicKey,y);if(!G.hash)throw new dT("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return wG({hash:G.hash,prefix:MG.MAINNET,type:BG.P2PKH}).replace(/^bitcoincash:/,"")}var PT;var Cy=S(()=>{kf();L0();Y0();PT=X4.BitcoinCash});import{createBase58check as M4,hex as B4}from"@scure/base";import{HDKey as FG}from"@scure/bip32";import{mnemonicToSeedSync as kG}from"@scure/bip39";import{Chain as Fy,derivationPathToString as w4,FeeOption as D4,NetworkDerivationPath as O4,SKConfig as $G,SwapKitError as xf,updateDerivationPath as H4}from"@swapkit/helpers";import{Address as R4,createZcashTransaction as C4,OutScript as F4,PCZT as k4,utils as IG,WIF as $4,ZCASH_NETWORK as I4,ZCASH_TEST_NETWORK as A4,ZcashConsensusBranchId as P4,ZcashSigHash as RG,ZcashVersionGroupId as x4}from"@swapkit/utxo-signer";import{match as S4,P as L5}from"ts-pattern";function AG(){let{isStagenet:f}=$G.get("envs");return f?A4:I4}function n4(f){return E4.encode(f)}function V4({phrase:f,derivationPath:y}){let G=kG(f),_=FG.fromMasterSeed(G).derive(y);if(!_.privateKey||!_.publicKey)throw new xf("toolbox_utxo_invalid_params");let{privateKey:X,publicKey:W}=_,Z=IG.hash160(W),{isStagenet:J}=$G.get("envs"),Q=J?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(Q.length+Z.length);L.set(Q,0),L.set(Z,Q.length);let O=n4(L);return{getAddress:()=>Promise.resolve(O),signTransaction:(U)=>{if(U instanceof k4)return U.signAllInputs(X,W,RG.ALL),U.finalizeAllInputs(),Promise.resolve(U.extract());return U.signAllInputs(X,W,RG.ALL),Promise.resolve(U)}}}function v4({inputs:f,outputs:y,tx:G,sender:T,compiledMemo:_}){let X=AG();for(let W of f){let Z=R4(X).decode(T),J=F4.encode(Z);G.addInput({index:W.index,script:J,sequence:4294967295,txid:B4.decode(W.hash),value:BigInt(W.value)})}for(let W of y){let Z="address"in W&&W.address?W.address:T,J=W.script;if(J&&!_)continue;if(J&&_)G.addOutput({amount:0n,script:_});else G.addOutputAddress(Z,BigInt(W.value),X)}return{inputs:f,tx:G}}async function CG(f){let{assetValue:y,recipient:G,memo:T,feeRate:_,sender:X,fetchTxHex:W}=f,Z=T?zT(T):null,J=await a(Fy.Zcash).getUtxos({address:X,fetchTxHex:W!==!1}),Q=[{address:G,value:Number(y.getBaseValue("string"))},...Z?[{script:Z,value:0}]:[]],{inputs:L,outputs:O}=RT({chain:Fy.Zcash,changeAddress:X,feeRate:_,inputs:J,outputs:Q});if(!(L&&O))throw new xf("toolbox_utxo_insufficient_balance",{assetValue:y,sender:X});let U=C4({consensusBranchId:P4.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:x4.SAPLING}),{tx:M,inputs:N}=v4({compiledMemo:Z,inputs:L,outputs:O,sender:X,tx:U});return{inputs:N,outputs:O,tx:M}}function z5(f){let y=S4(f).with({signer:L5.not(L5.nullish)},({signer:J})=>J).with({phrase:L5.string},({phrase:J,derivationPath:Q,index:L=0})=>{let O=Q||O4[Fy.Zcash]||[44,133,0,0,0],U=H4(O,{index:L}),M=w4(U);return V4({derivationPath:M,phrase:J})}).otherwise(()=>{return}),G=iT({chain:Fy.Zcash,signer:y});async function T({recipient:J,assetValue:Q,feeOptionKey:L=D4.Fast,...O}){let U=await y?.getAddress();if(!(y&&U))throw new xf("toolbox_utxo_no_signer");let M=O.feeRate||(await G.getFeeRates())[L],{tx:N}=await CG({...O,assetValue:Q,feeRate:M,recipient:J,sender:U}),B=(await y.signTransaction(N)).toHex();return G.broadcastTx(B)}function _({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=kG(J),U=FG.fromMasterSeed(L).derive(Q);if(!U.privateKey||!U.publicKey)throw new xf("toolbox_utxo_invalid_params");return{privateKey:U.privateKey,publicKey:U.publicKey}}function X({phrase:J,derivationPath:Q="m/44'/133'/0'/0/0"}){let L=_({derivationPath:Q,phrase:J}),O=AG();return $4(O).encode(L.privateKey)}function W(J){return async function(L){if(!J)throw new xf("toolbox_utxo_no_signer");return await J.signTransaction(L)}}function Z(J){return async function(L){if(!J)throw new xf("toolbox_utxo_no_signer");let O=await J.signTransaction(L);return G.broadcastTx(O.toHex())}}return{...G,createKeysForPath:_,createTransaction:CG,getPrivateKeyFromMnemonic:X,signAndBroadcastTransaction:Z(y),signTransaction:W(y),transfer:T,validateAddress:$f}}var E4;var N5=S(()=>{kf();L0();Y0();E4=M4(IG.sha256)});import{Chain as Sf,SwapKitError as o4}from"@swapkit/helpers";function K4(f,y){switch(f){case Sf.BitcoinCash:return q5(y||{});case Sf.Zcash:return z5(y);case Sf.Bitcoin:case Sf.Dogecoin:case Sf.Litecoin:case Sf.Dash:return iT({chain:f,...y});default:throw new o4("toolbox_utxo_not_supported",{chain:f})}}var PG=S(()=>{Cy();L0();N5();Cy();Y0()});var U5={};fT(U5,{validateZcashAddress:()=>$f,validateUtxoAddress:()=>Z5,validateBchAddress:()=>cT,toLegacyAddress:()=>KT,toCashAddress:()=>W0,stripToCashAddress:()=>z0,stripPrefix:()=>Qf,nonSegwitChains:()=>q0,isValidAddress:()=>f5,getUtxoToolbox:()=>K4,getUtxoNetwork:()=>O9,getUtxoApi:()=>a,getUTXOAddressValidator:()=>Q5,getScriptTypeForAddress:()=>Ff,getOutputSize:()=>J0,getNetworkForChain:()=>NT,getInputSize:()=>tT,getDustThreshold:()=>Q0,detectAddressNetwork:()=>y5,createZcashToolbox:()=>z5,createUTXOToolbox:()=>iT,createHDWalletHelpers:()=>p2,createCustomUtxoApi:()=>D9,createBCHToolbox:()=>q5,compileMemo:()=>zT,calculateTxSize:()=>Zf,addressFromKeysGetter:()=>Y5,addInputsAndOutputs:()=>gT,accumulative:()=>RT,UtxoNetwork:()=>T5,UTXOScriptType:()=>Oy,TX_OVERHEAD:()=>wy,SEGWIT_MARKER_FLAG_WEIGHT:()=>Dy,OutputSizes:()=>Z0,OP_RETURN_OVERHEAD:()=>yG,MIN_TX_FEE:()=>v9,InputSizes:()=>By});var M5=S(()=>{L0();kf();PG();Cy();N5()});import{KeyPairSigner as j4}from"@near-js/signers";import{derivationPathToString as b4,SwapKitError as l4}from"@swapkit/helpers";function N0(f){return f.length>=2&&f.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(f)}async function ky(f){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:G}=await import("@near-js/crypto"),T=f.index||0,_=f.derivationPath?b4(f.derivationPath.slice(0,3)):`m/44'/397'/${T}'`,{secretKey:X}=y(f.phrase,_),W=G.fromString(X);return SG(W)}async function B5(f){let{KeyPair:y}=await import("@near-js/crypto"),G=y.fromString(f);return SG(G)}function SG(f){return new xG(f)}async function $y(f,y){let T=(await f.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((Z)=>Z.access_key.permission==="FullAccess");if(!T)throw new l4("toolbox_near_no_public_key_found");let{PublicKey:_}=await import("@near-js/crypto"),X=_.fromString(T.public_key);return{nonce:T.access_key.nonce||0,publicKey:X}}var xG;var w5=S(()=>{xG=class xG extends j4{#T;constructor(f){super(f);this.#T=f}getAddress(){let f=this.#T.getPublicKey(),y=Buffer.from(f.data).toString("hex");return Promise.resolve(y)}}});function D5(f){return"recipient"in f&&"amount"in f&&!("contractId"in f)}function O5(f){return"contractId"in f&&"methodName"in f}function H5(f){return"actions"in f}function R5(f){return"newAccountId"in f}function C5(f){return"contractCode"in f}function F5(f){return"customEstimator"in f}function k5(f){let y=0;for(let G of f)switch(G.enum){case"transfer":y+=Number(XT.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(XT.CONTRACT_CALL);break;case"createAccount":y+=Number(XT.ACCOUNT_CREATION);break;case"deployContract":y+=Number(XT.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(XT.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(XT.ACCESS_KEY_DELETION);break;case"stake":y+=Number(XT.STAKE);break;default:y+=Number(XT.CONTRACT_CALL)}return y.toString()}function $5(f){if(f==="ft_transfer"||f==="ft_transfer_call")return XT.TOKEN_TRANSFER;if(f==="storage_deposit")return XT.STORAGE_DEPOSIT;return XT.CONTRACT_CALL}function u4(f){return(BigInt(f)*BigInt(1000000000000)).toString()}function h4(f){return(BigInt(f)/BigInt(1000000000000)).toString()}var XT;var I5=S(()=>{XT={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 A5({account:f,contractId:y,viewMethods:G,changeMethods:T}){let{Contract:_}=await import("@near-js/accounts");return new _(f,y,{changeMethods:T,useLocalViewExecution:!0,viewMethods:G})}import{JsonRpcProvider as m4}from"@near-js/providers";import{AssetValue as P5,Chain as Ef,getRPCUrl as EG,SwapKitError as qT}from"@swapkit/helpers";import{match as nG,P as VG}from"ts-pattern";function p4(f){let y;async function G(){if(y)return y;return y=await nG(f).with({phrase:VG.string},async(H)=>{return await ky(H)}).with({signer:VG.any},({signer:H})=>H).otherwise(()=>{return}),y}async function T(){let H=await EG(Ef.Near);return new m4({url:H})}async function _(H){let{Account:I}=await import("@near-js/accounts"),A=await T(),E=await G(),V=H||await X();return new I(V,A,E)}async function X(){let H=await G();if(!H)throw new qT("toolbox_near_no_signer");return await H.getAddress()}async function W(H){return(await w({changeMethods:[],contractId:H.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:H.accountId})}async function Z(H){let A=[await U({args:{account_id:H.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await U({args:{amount:H.assetValue.getBaseValue("string"),memo:H.memo||null,receiver_id:H.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return Y({actions:A,receiverId:H.contractId})}async function J(H){if(!await G())throw new qT("toolbox_near_no_signer");let{assetValue:A,recipient:E,memo:V}=H,o=await X();if(!A.isGasAsset&&A.address){if(!await W({accountId:E,contractId:A.address}))return Z({assetValue:A,contractId:A.address,memo:V,recipient:E})}let j=await Q({...H,sender:o});return z(j)}async function Q({recipient:H,assetValue:I,memo:A,attachedDeposit:E,sender:V,functionCall:o}){let j=await T();if(!N0(H))throw new qT("toolbox_near_invalid_address",{recipient:H});if(!N0(V))throw new qT("toolbox_near_invalid_address",{sender:V});if(o)return O({...o,sender:V});if(!I.isGasAsset){let r5=I.address;if(!r5)throw new qT("toolbox_near_missing_contract_address");return O({args:{amount:I.getBaseValue("string"),memo:A||null,receiver_id:H},attachedDeposit:E||"1",contractId:r5,gas:"250000000000000",methodName:"ft_transfer",sender:V})}let{publicKey:u,nonce:r}=await $y(j,V),JT=I.getBaseValue("bigint"),{actionCreators:TT,createTransaction:QT}=await import("@near-js/transactions"),{baseDecode:t}=await import("@near-js/utils"),YT=[TT.transfer(JT)];if(A&&E)YT.push(TT.functionCall("memo",{memo:A},BigInt("250000000000000"),BigInt(E)));let sT=await j.block({finality:"final"}),qf=t(sT.header.hash);return QT(V,u,H,r+1,YT,qf)}function L(H){let I=H.encode();return Buffer.from(I).toString("base64")}async function O({args:H,attachedDeposit:I,contractId:A,gas:E,methodName:V,sender:o}){let j=await T(),{publicKey:u,nonce:r}=await $y(j,o),{createTransaction:JT,actionCreators:TT}=await import("@near-js/transactions"),{baseDecode:QT}=await import("@near-js/utils"),t=await j.block({finality:"final"}),YT=QT(t.header.hash),sT=[TT.functionCall(V,Buffer.from(JSON.stringify(H)),BigInt(E),BigInt(I))];return JT(o,u,A,r+1,sT,YT)}async function U(H){let{actionCreators:I}=await import("@near-js/transactions");return I.functionCall(H.methodName,Buffer.from(JSON.stringify(H.args)),BigInt(H.gas),BigInt(H.attachedDeposit))}async function M(H){let I=await G();if(!I)throw new qT("toolbox_near_no_signer");let[A,E]=await I.signTransaction(H);return E}async function N(H){return(await(await T()).sendTransaction(H)).transaction.hash}async function z(H){let I=await G();if(!I)throw new qT("toolbox_near_no_signer");try{let A=await M(H);return await N(A)}catch{return I.signAndSendTransactions?.({transactions:[H]})}}async function B(H){let I=await G();if("assetValue"in H){let E=await k();try{let V=await EG(Ef.Near),o=await fetch(V,{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:j}}=await o.json(),{execution:u,send_sir:r}=j.transaction_costs.action_receipt_creation_config,{execution:JT,send_sir:TT}=j.transaction_costs.action_creation_config.transfer_cost,QT=BigInt(TT)+BigInt(JT),t=BigInt(r)+BigInt(u),sT=(QT+t)*BigInt(E.toString());return P5.from({chain:Ef.Near,value:sT})}catch(V){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",V);let o=BigInt("115123062500"),j=BigInt("108059500000"),r=(o+j)*BigInt(E.toString());return P5.from({chain:Ef.Near,value:r})}}let A=I?await _():void 0;return q(H,A)}async function k(){let H=await T();try{return await H.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function R(H,I,A){if(!await G())throw new qT("toolbox_near_no_signer");let V=await _(),{formatNearAmount:o}=await import("@near-js/utils"),{PublicKey:j}=await import("@near-js/crypto"),u=o(A)||"0";return(await V.createAccount(H,j.fromString(I),BigInt(u))).transaction.hash}async function F(H){let I=await G();try{if(!I)throw new qT("toolbox_near_no_signer");let{actionCreators:A}=await import("@near-js/transactions"),{contractId:E,methodName:V,args:o,deposit:j}=H,u=await _(),r=await q({args:o||{},contractId:E,methodName:V}),JT=A.functionCall(V,o||{},r.getBaseValue("bigint"),BigInt(j||"1"));return(await u.signAndSendTransaction({actions:[JT],receiverId:E})).transaction_outcome.id}catch(A){throw new qT("toolbox_near_transfer_failed",{error:A})}}async function w(H){let I=await _();return A5({account:I,changeMethods:H.changeMethods,contractId:H.contractId,viewMethods:H.viewMethods})}async function Y(H){if(!await G())throw new qT("toolbox_near_no_signer");if(H.actions.length===0)throw new qT("toolbox_near_empty_batch");return(await(await _()).signAndSendTransaction({actions:H.actions,receiverId:H.receiverId})).transaction.hash}async function q(H,I){let A=await nG(H).when(D5,()=>XT.SIMPLE_TRANSFER).when(O5,(V)=>$5(V.methodName)).when(H5,(V)=>k5(V.actions)).when(R5,()=>XT.ACCOUNT_CREATION).when(C5,()=>XT.CONTRACT_DEPLOYMENT).when(F5,(V)=>{if(!I)throw new qT("toolbox_near_no_account");return V.customEstimator(I)}).otherwise(()=>{throw new qT("toolbox_near_invalid_gas_params")}),E=BigInt(A)*BigInt(1000000000000);return P5.from({chain:Ef.Near,value:E})}function D(H,I){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(H,I)}async function C(){let H=await T();try{return(await H.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function $(){let H=await G();return H?(await H.getPublicKey()).toString():""}return{broadcastTransaction:N,callFunction:F,createAction:U,createContract:w,createContractFunctionCall:O,createSubAccount:R,createTransaction:Q,estimateGas:D,estimateGasLimit:q,estimateTransactionFee:B,executeBatchTransaction:Y,getAddress:X,getBalance:UT(Ef.Near),getGasPrice:C,getNearProvider:T,getPublicKey:$,getSignerFromPhrase:ky,getSignerFromPrivateKey:B5,serializeTransaction:L,signAndBroadcastTransaction:z,signTransaction:M,transfer:J,validateAddress:N0}}var x5=S(()=>{bT();w5();I5()});var vG=S(()=>{x5()});var S5={};fT(S5,{validateNearAddress:()=>N0,tgasToGas:()=>u4,isSimpleTransfer:()=>D5,isCustomEstimator:()=>F5,isContractDeployment:()=>C5,isContractCall:()=>O5,isBatchTransaction:()=>H5,isAccountCreation:()=>R5,getNearToolbox:()=>p4,getNearSignerFromPrivateKey:()=>B5,getNearSignerFromPhrase:()=>ky,getFullAccessPublicKey:()=>$y,getContractMethodGas:()=>$5,gasToTGas:()=>h4,estimateBatchGas:()=>k5,createNearContract:()=>A5,GAS_COSTS:()=>XT});var E5=S(()=>{w5();I5();x5();vG()});var V5={};fT(V5,{validateRadixAddress:()=>KG,getRadixToolbox:()=>e4});import{GatewayApiClient as t4}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as c4}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as oG,Chain as n5,SKConfig as g4,SwapKitError as i4}from"@swapkit/helpers";function KG(f){return f.startsWith("account_rdx1")&&f.length===66}function d4({networkApi:f}){return async function(G){let T=await r4({address:G,networkApi:f}),_=await a4({networkApi:f,resources:T});if(!_.some((W)=>W.isGasAsset))return[oG.from({chain:n5.Radix}),..._];return _}}async function r4({address:f,networkApi:y}){let G=!0,T,_=[],X=await s4(y);while(G){let W={address:f,at_ledger_state:{state_version:X},cursor:T,limit_per_page:100},Z=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:W});if(_=_.concat(Z.items),Z.next_cursor)T=Z.next_cursor;else G=!1}return _}async function a4({resources:f,networkApi:y}){let G=[],T=50,_=[];for(let X=0;X<f.length;X+=50)_.push(f.slice(X,X+50));for(let X of _){let W=X.map((Q)=>Q.resource_address),Z=await y.state.getEntityDetailsVaultAggregated(W),J=new Map;for(let Q of Z)if(Q.details!==void 0){let L=Q.metadata?.items.find((U)=>U.key==="symbol"),O=L?.value.typed.type==="String"?L.value.typed.value:"?";if(Q.details.type==="FungibleResource")J.set(Q.address,{decimals:Q.details.divisibility,symbol:O})}for(let Q of X)if(Q.aggregation_level==="Global"){let L=J.get(Q.resource_address)||{decimals:0,symbol:"?"},O=oG.from({asset:L.symbol!==n5.Radix?`${n5.Radix}.${L.symbol}-${Q.resource_address}`:"XRD.XRD",value:Q.amount});G.push(O)}}return G}async function s4(f){return(await f.status.getCurrent()).ledger_state.state_version}function e4({dappConfig:f}={}){let y=f||g4.get("integrations").radix,G=c4({...y,networkId:y.network?.networkId||1}),T=t4.initialize(G.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:d4({networkApi:T}),networkApi:T,signAndBroadcast:()=>{throw new i4("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:KG}}var v5=()=>{};import{SwapKitError as TW}from"@swapkit/helpers";function Iy(f){return/^[0-9A-Fa-f]{40}$/.test(f)}function U0(f){if(Iy(f))return f.toUpperCase();if(f.length<=3){let G=Buffer.from(f.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${G}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(f).toString("hex").toUpperCase();if(y.length>40)throw new TW({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function fW(f){if(!Iy(f))return f;if(f.toUpperCase().startsWith("00")){let y=f.slice(24,30);try{let G=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(G)&&G.length>0)return G}catch{}return f.toUpperCase()}try{let y=f.replace(/0+$/,""),G=y.length%2===0?y:`${y}0`,T=Buffer.from(G,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(T))return T}catch{}return f.toUpperCase()}function nf(f){if(Iy(f))return f.toUpperCase();if(f.length<=3)return f;return U0(f)}var Ay=()=>{};import{RequestClient as yW,warnOnce as _W}from"@swapkit/helpers";async function GW(f,y){let G=nf(f),T=Py.find((_)=>nf(_.currency)===G&&_.issuer===y);if(T)return T;try{let _=await yW.get(`https://api.xrplmeta.org/token/${f}:${y}`);if(_)return{currency:f,decimals:15,description:_.desc,domain:_.domain,icon:_.icon,issuer:y,name:_.name,verified:_.self_assessment?.is_regulated||_.self_assessment?.is_licensed}}catch(_){_W({condition:!0,id:`xrpl_token_lookup_${f}_${y}`,warning:`Failed to fetch XRPL token info for ${f}:${y}: ${_}`})}return{currency:f,decimals:15,issuer:y,verified:!1}}function XW(f){return Py.filter((y)=>y.issuer===f)}function WW(f,y){let G=nf(f);return Py.some((T)=>nf(T.currency)===G&&T.issuer===y)}var Py;var jG=S(()=>{Ay();Py=[{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 o5={};fT(o5,{validateRippleAddress:()=>Ey,parseXrplTokenIdentifier:()=>tG,normalizeCurrency:()=>nf,isKnownToken:()=>WW,isHexCurrency:()=>Iy,hexToCurrency:()=>fW,hashes:()=>zW,getXrplTokenInfo:()=>GW,getRippleToolbox:()=>LW,getKnownTokensByIssuer:()=>XW,formatXrplTokenIdentifier:()=>cG,currencyToHex:()=>U0,XRPL_TOKEN_ERROR_CODES:()=>Sy,XRPL_KNOWN_TOKENS:()=>Py});import{AssetValue as xy,Chain as CT,getChainConfig as bG,getRPCUrl as ZW,SwapKitError as ZT}from"@swapkit/helpers";import{match as lG,P as uG}from"ts-pattern";import{Client as JW,isValidAddress as pG,Wallet as QW,xrpToDrops as YW}from"xrpl";import{hashes as zW}from"xrpl";function tG(f){let y=f.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!pG(y[2]))return null;return{currency:y[1],issuer:y[2]}}function cG(f,y){return`${CT.Ripple}.${f}-${y}`}function qW(f){if(f.isGasAsset)return YW(f.getValue("string"));let y=tG(f.toString());if(!y)throw new ZT({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:f.toString()}});return{currency:y.currency,issuer:y.issuer,value:f.getValue("string")}}function mG(f){let y=QW.fromMnemonic(f);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(G)=>Promise.resolve(y.sign(G))}}function Ey(f){return pG(f)}function LW(f={}){let y=lG(f).with({phrase:uG.string},({phrase:R})=>mG(R)).with({signer:uG.any},({signer:R})=>R).otherwise(()=>{return}),G;async function T(){let R=await ZW(CT.Ripple);if(!R)throw new ZT({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:CT.Ripple}});let F=new JW(R);return await F.connect(),F}async function _(){if(G){let R=await G.catch(()=>null);if(R?.isConnected())return R}return G=T(),G}let X=()=>{if(!y)throw new ZT({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},W=async(R)=>{let F=R||await X(),{baseDecimal:w}=bG(CT.Ripple),Y=await _();try{let[q,D]=await Promise.all([Y.request({account:F,command:"account_info"}),Y.request({account:F,command:"account_lines"})]),C=q.result.account_data.Balance,$=[xy.from({chain:CT.Ripple,fromBaseDecimal:w,value:C})];for(let H of D.result.lines){let I=cG(H.currency,H.account);if(Number.parseFloat(H.balance)!==0)$.push(xy.from({asset:I,asyncTokenLookup:!1,value:H.balance}))}return $}catch(q){if(q.data?.error_code===hG.ACCOUNT_NOT_FOUND)return[xy.from({chain:CT.Ripple,value:0})];throw new ZT({errorKey:"toolbox_ripple_get_balance_error",info:{address:F,error:q}})}},Z=async()=>{let{baseDecimal:R}=bG(CT.Ripple),Y=(await(await _()).request({command:"fee"})).result.drops.open_ledger_fee;return xy.from({chain:CT.Ripple,fromBaseDecimal:R,value:Y})};async function J(R){let F=R||await X(),w=await _();try{return(await w.request({account:F,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(Y){if(Y.data?.error_code===hG.ACCOUNT_NOT_FOUND)return[];throw new ZT({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:F,error:Y}})}}async function Q({address:R,currency:F,issuer:w}){let Y=await J(R),q=U0(F);return Y.some((D)=>{return U0(D.currency)===q&&D.account===w})}async function L({currency:R,issuer:F,limit:w,sender:Y}){let q=Y||await X();if(!Ey(F))throw new ZT({errorKey:"core_transaction_invalid_recipient_address",info:{address:F}});let D=Number.parseFloat(w);if(Number.isNaN(D)||D<0)throw new ZT({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:w}});let C=await _(),$={Account:q,LimitAmount:{currency:R,issuer:F,value:w},TransactionType:"TrustSet"};return C.autofill($)}async function O({assetValue:R,recipient:F,memo:w,sender:Y,destinationTag:q,extendBySeconds:D=150}){if(!Ey(F))throw new ZT({errorKey:"core_transaction_invalid_recipient_address"});let C=Y||await X();if(R.chain!==CT.Ripple)throw new ZT({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:R.toString()}});let $=qW(R),H={Account:C,Amount:$,Destination:F,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(w)H.Memos=[{Memo:{MemoData:Buffer.from(w).toString("hex")}}];let A=await(await _()).autofill(H);if(A.LastLedgerSequence&&D>0)A.LastLedgerSequence+=Math.ceil(D/4);return A}function U(R){if(!y)throw new ZT({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(R)}async function M(R){let w=await(await _()).submitAndWait(R),{result:Y}=w;if(Y.validated)return Y.hash;let q=Y.meta?.TransactionResult,D=lG(q).with(Sy.tecNO_LINE,()=>"No trust line exists for this token").with(Sy.tecPATH_DRY,()=>"Payment path could not deliver funds").with(Sy.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new ZT({errorKey:"toolbox_ripple_broadcast_error",info:{chain:CT.Ripple,...D?{reason:D}:{txResult:q}}})}let N=async(R)=>{try{let F=await U(R);return M(F.tx_blob)}catch(F){if(F instanceof ZT)throw F;throw new ZT({errorKey:"toolbox_ripple_broadcast_error",info:{chain:CT.Ripple,error:F}})}};async function z(R){if(!y)throw new ZT({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await O({...R,sender:F}),Y=await U(w);return M(Y.tx_blob)}async function B(R){if(!y)throw new ZT({errorKey:"toolbox_ripple_signer_not_found"});let F=await y.getAddress(),w=await L({...R,sender:F}),Y=await U(w);return M(Y.tx_blob)}function k(){let R=G;if(G=null,R)R.then((F)=>{if(F?.isConnected())return F.disconnect();return}).catch((F)=>{console.warn("XRPL Cleanup failed silently:",F)})}return{broadcastTransaction:M,createSigner:mG,createTransaction:O,disconnect:k,estimateTransactionFee:Z,getAddress:X,getBalance:W,getTrustLines:J,hasTrustLine:Q,setTrustLine:L,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:N,signTransaction:U,transfer:z,validateAddress:Ey}}var hG,Sy;var K5=S(()=>{Ay();Ay();jG();hG={ACCOUNT_NOT_FOUND:19},Sy={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 NW}from"@noble/hashes/sha2.js";import{bytesToHex as gG,hexToBytes as iG}from"@noble/hashes/utils.js";import{SwapKitError as Vf}from"@swapkit/helpers";function j5(f,y){let G=0n,T=0n,_=y;while(_<f.length&&_-y<10){let X=f[_++];if(X===void 0)break;if(G|=BigInt(X&127)<<T,T+=7n,(X&128)===0)return[G,_]}throw new Vf("toolbox_tron_transaction_creation_failed")}function M0(f){let y=[],G=f<0n?f+2n**64n:f;while(G>=128n)y.push(Number(G&0x7fn)|128),G>>=7n;return y.push(Number(G)),y}function ny(f,y,G){let T=f.get(y);if(T)T.push(G);else f.set(y,[G])}function wW(f){let y=new Map,G=0;while(G<f.length){let[T,_]=j5(f,G);G=_;let X=Number(T>>3n),W=Number(T&7n);if(W===Vy){let[Z,J]=j5(f,G);G=J,ny(y,X,{data:new Uint8Array(M0(Z)),wireType:Vy})}else if(W===vy){let[Z,J]=j5(f,G);G=J;let Q=Number(Z);if(Q<0||G+Q>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let L=f.slice(G,G+Q);G+=Q,ny(y,X,{data:L,wireType:vy})}else if(W===dG){if(G+8>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+8);G+=8,ny(y,X,{data:Z,wireType:dG})}else if(W===rG){if(G+4>f.length)throw new Vf("toolbox_tron_transaction_creation_failed");let Z=f.slice(G,G+4);G+=4,ny(y,X,{data:Z,wireType:rG})}else throw new Vf("toolbox_tron_transaction_creation_failed")}return y}function DW(f){let y=[];for(let[X,W]of[...f.entries()].sort(([Z],[J])=>Z-J))for(let{wireType:Z,data:J}of W){let Q=BigInt(X<<3|Z);if(y.push(new Uint8Array(M0(Q))),Z===vy)y.push(new Uint8Array(M0(BigInt(J.length))));y.push(J)}let G=y.reduce((X,W)=>X+W.length,0),T=new Uint8Array(G),_=0;for(let X of y)T.set(X,_),_+=X.length;return T}function aG(f,y){if(!f||f.length%2!==0)throw new Vf("toolbox_tron_transaction_creation_failed");let G=iG(f),T=wW(G);if(y.expiration!==void 0)T.set(UW,[{data:new Uint8Array(M0(BigInt(y.expiration))),wireType:Vy}]);if(y.data!==void 0)T.set(MW,[{data:iG(y.data),wireType:vy}]);if(y.fee_limit!==void 0)T.set(BW,[{data:new Uint8Array(M0(BigInt(y.fee_limit))),wireType:Vy}]);let _=DW(T),X=gG(_),W=gG(NW(_));return{raw_data_hex:X,txID:W}}var Vy=0,dG=1,vy=2,rG=5,UW=8,MW=10,BW=18;var sG=()=>{};import{secp256k1 as eG}from"@noble/curves/secp256k1.js";import{sha256 as TX}from"@noble/hashes/sha2.js";import{keccak_256 as OW}from"@noble/hashes/sha3.js";import{bytesToHex as vf,hexToBytes as oy}from"@noble/hashes/utils.js";import{createBase58check as HW}from"@scure/base";import{SwapKitError as fX}from"@swapkit/helpers";function FT(f){if(typeof f!=="string")return!1;try{let y=Ky.decode(f);return y.length===21&&y[0]===yX}catch{return!1}}function _X(f){return vf(Ky.decode(f))}function CW(f){return Ky.decode(f).slice(1)}function GX(f){let y=eG.getPublicKey(oy(f),!1),G=OW(y.slice(1)).slice(-20),T=new Uint8Array(21);return T[0]=yX,T.set(G,1),Ky.encode(T)}function XX({txID:f,privateKey:y}){let G=eG.sign(oy(f),oy(y),{format:"recovered",prehash:!1}),T=G[0]??0,_=vf(G.slice(1,33)),X=vf(G.slice(33,65)),W=(T+27).toString(16).padStart(2,"0");return _+X+W}function of({txID:f,raw_data_hex:y}){let G=vf(TX(oy(y)));if(f!==G)throw new fX("toolbox_tron_invalid_transaction_integrity",{expected:G,txID:f})}function FW(f){return`000000000000000000000000${vf(CW(f))}`}function kW(f){let y=typeof f==="bigint"?f:BigInt(f);if(y<0n||y>=RW)throw new fX("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function Kf(f){return f.map(({type:y,value:G})=>y==="address"?FW(G):kW(BigInt(G))).join("")}function WX(f){return vf(new TextEncoder().encode(f))}var Ky,yX=65,RW;var b5=S(()=>{Ky=HW(TX),RW=2n**256n});import{Chain as $W,getRPCUrlSync as IW,SwapKitError as kT,warnOnce as l5}from"@swapkit/helpers";function JX(){try{return IW($W.Tron)}catch{return ZX}}function QX(){let f=new AbortController,y=setTimeout(()=>f.abort(),SW);return{cleanup:()=>clearTimeout(y),signal:f.signal}}async function jf(f,y){let{signal:G,cleanup:T}=QX();try{let _=await fetch(`${JX()}${f}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:G});if(!_.ok)throw new kT("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function YX(f,y){let{signal:G,cleanup:T}=QX();try{let _=await fetch(`${y??JX()}${f}`,{headers:{"Content-Type":"application/json"},signal:G});if(!_.ok)throw new kT("toolbox_tron_trongrid_api_error",{message:`${_.status} ${_.statusText} on ${f}`});return await _.json()}finally{T()}}async function qX(f){if(!FT(f))throw new kT("toolbox_tron_trongrid_api_error",{address:f,message:"Invalid address"});try{let y=await YX(`/v1/accounts/${f}`,ZX);if(!(y.success&&y.data)||y.data.length===0)return;let G;try{G=_X(f).toLowerCase()}catch{G=f.toLowerCase()}let T=y.data.find((_)=>_.address.toLowerCase()===G);if(!T)return;return{balance:T.balance,trc20:T.trc20||[]}}catch(y){if(y instanceof kT)throw y;throw new kT("toolbox_tron_trongrid_api_error",{address:f,message:y instanceof Error?y.message:"Unknown error"})}}async function LX({from:f,to:y,amount:G}){let _=await jf("/wallet/createtransaction",{amount:G,owner_address:f,to_address:y,visible:!0});if(!_.txID||!_.raw_data_hex||!_.raw_data)throw new kT("toolbox_tron_transaction_creation_failed");let W=_.raw_data?.contract?.[0]?.parameter?.value;if(W?.to_address!==y||W?.owner_address!==f||W?.amount!==G)throw new kT("toolbox_tron_transaction_creation_failed");return of(_),_}async function zX({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T,feeLimit:_,callValue:X=0}){let W=await jf("/wallet/triggersmartcontract",{call_value:X,contract_address:y,fee_limit:_,function_selector:G,owner_address:f,parameter:T,visible:!0});if(!W.result.result||!W.transaction?.txID||!W.transaction?.raw_data_hex)throw new kT("toolbox_tron_transaction_creation_failed");let J=W.transaction.raw_data?.contract?.[0]?.parameter?.value;if(J?.contract_address!==y||J?.owner_address!==f)throw new kT("toolbox_tron_transaction_creation_failed");return of(W.transaction),W.transaction}function NX({ownerAddress:f,contractAddress:y,functionSelector:G,parameter:T}){return jf("/wallet/triggerconstantcontract",{contract_address:y,function_selector:G,owner_address:f,parameter:T,visible:!0})}async function B0(f){try{let{result:y,txid:G}=await jf("/wallet/broadcasttransaction",{raw_data:f.raw_data,raw_data_hex:f.raw_data_hex,signature:f.signature,txID:f.txID,visible:f.visible});if(!y||!G)throw new kT("toolbox_tron_token_transfer_failed");return G}catch(y){throw new kT("toolbox_tron_broadcast_failed",{error:y})}}async function jy(){let f={};try{let{chainParameter:y}=await YX("/wallet/getchainparameters");for(let G of y)f[G.key]=G.value}catch(y){l5({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:f.getTransactionFee??AW,createAccountFee:f.getCreateAccountFee??PW,energyFee:f.getEnergyFee??xW}}async function u5(f){try{let y=await jf("/wallet/getaccountresource",{address:f,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return l5({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function h5(f){try{let y=await jf("/wallet/getaccount",{address:f,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function m5(f){try{let{energy_used:y}=await NX({...f,ownerAddress:f.sender});return y}catch(y){return l5({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function UX({assetAddress:f,owner:y,spender:G}){let T=Kf([{type:"address",value:y},{type:"address",value:G}]),X=(await NX({contractAddress:f,functionSelector:"allowance(address,address)",ownerAddress:G,parameter:T})).constant_result?.[0];if(!X)return 0n;try{return BigInt(`0x${X}`)}catch{return 0n}}var ZX="https://api.trongrid.io",AW=1000,PW=1e5,xW=420,SW=30000;var MX=S(()=>{b5()});import{bytesToHex as EW}from"@noble/hashes/utils.js";import{HDKey as nW}from"@scure/bip32";import{mnemonicToSeedSync as VW}from"@scure/bip39";import{AssetValue as jT,BaseDecimal as BX,Chain as DT,derivationPathToString as OX,getRPCUrl as vW,NetworkDerivationPath as HX,SwapKitError as WT,updateDerivationPath as RX,warnOnce as wX}from"@swapkit/helpers";import{match as oW,P as p5}from"ts-pattern";function FX({phrase:f,derivationPath:y}){let G=nW.fromMasterSeed(VW(f)).derive(y);if(!G.privateKey)throw new WT("toolbox_tron_no_signer");return EW(G.privateKey)}function kX({phrase:f,derivationPath:y,index:G}){let T=y||OX(RX(HX[DT.Tron],{index:G||0}));return FX({derivationPath:T,phrase:f})}function uW({phrase:f,derivationPath:y}){let G=FX({derivationPath:y,phrase:f}),T=GX(G);return{getAddress:()=>Promise.resolve(T),signTransaction:(_)=>{of(_);let X=XX({privateKey:G,txID:_.txID});return Promise.resolve({..._,signature:[X]})}}}function DX({transaction:f,memo:y,expiration:G,feeLimit:T}){let _={},X={};if(T!==void 0&&f.raw_data)_.fee_limit=T,X.fee_limit=T;if(y){let J=WX(y);_.data=J,X.data=J}if(G){let J=f.raw_data.expiration+G*1000;_.expiration=J,X.expiration=J}if(Object.keys(_).length===0)return f;let{raw_data_hex:W,txID:Z}=aG(f.raw_data_hex,_);return{...f,raw_data:{...f.raw_data,...X},raw_data_hex:W,txID:Z}}function $X(f={}){let y="index"in f?f.index||0:0,G=OX("derivationPath"in f&&f.derivationPath?f.derivationPath:RX(HX[DT.Tron],{index:y})),T,_=!1;function X(){if(_)return Promise.resolve(T);return T=oW(f).with({phrase:p5.string},({phrase:Y})=>uW({derivationPath:G,phrase:Y})).with({signer:p5.not(p5.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),_=!0,Promise.resolve(T)}async function W(){let Y=await X();if(!Y)throw new WT("toolbox_tron_no_signer");return Y.getAddress()}async function Z(Y){let q=Y||jW,D=await jy(),C=q*D.energyFee,$=Math.ceil(C*1.5);return Math.min(Math.max($,1e7),150000000)}async function J({contractAddress:Y,functionSelector:q,parameter:D,sender:C,memo:$,expiration:H}){let I=await m5({contractAddress:Y,functionSelector:q,parameter:D,sender:C}),A=await Z(I),E=await zX({contractAddress:Y,feeLimit:A,functionSelector:q,ownerAddress:C,parameter:D});return DX({expiration:H,feeLimit:A,memo:$,transaction:E})}async function Q(Y){if(!FT(Y))return[jT.from({chain:DT.Tron})];try{let q=await qX(Y);if(!q)return[jT.from({chain:DT.Tron})];let D=[jT.from({chain:DT.Tron,fromBaseDecimal:6,value:String(q.balance)})],C=q.trc20?.find(($)=>(t5 in $));if(C){let $=C[t5];D.push(jT.from({asset:`TRON.USDT-${t5}`,fromBaseDecimal:6,value:$}))}return D}catch(q){return wX({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[jT.from({chain:DT.Tron})]}}async function L({recipient:Y,assetValue:q,memo:D,expiration:C}){if(!FT(Y))throw new WT("toolbox_tron_token_transfer_failed",{message:"invalid address"});let $=await X();if(!$)throw new WT("toolbox_tron_no_signer");try{let H=await W(),I=await z({assetValue:q,expiration:C,memo:D,recipient:Y,sender:H}),A=await $.signTransaction(I),E=await B0(A);if(!E)throw new WT("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return E}catch(H){throw new WT("toolbox_tron_token_transfer_failed",{message:H instanceof Error?H.message:String(H)})}}function O({requiredBandwidth:Y,resources:q,feePerUnit:D}){let C=Math.max(0,q.free+q.total-q.used);return Y>C?(Y-C)*D:0}async function U({recipient:Y,senderAddress:q}){let[D,C,$]=await Promise.all([jy(),h5(Y),u5(q)]),H=C?0:D.createAccountFee,I=O({feePerUnit:D.bandwidthFee,requiredBandwidth:KW,resources:$.bandwidth});return jT.from({chain:DT.Tron,fromBaseDecimal:BX.TRON,value:H+I})}async function M({assetValue:Y,recipient:q,senderAddress:D}){let C=Y.address;if(!C)throw new WT("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[$,H,I,A]=await Promise.all([jy(),h5(q),u5(D),m5({contractAddress:C,functionSelector:"transfer(address,uint256)",parameter:Kf([{type:"address",value:q},{type:"uint256",value:Y.getBaseValue("string")}]),sender:D})]),E=H?0:$.createAccountFee,V=O({feePerUnit:$.bandwidthFee,requiredBandwidth:bW,resources:I.bandwidth}),o=Math.max(0,I.energy.total-I.energy.used),j=A>o?(A-o)*$.energyFee:0;return jT.from({chain:DT.Tron,fromBaseDecimal:BX.TRON,value:E+V+j})}async function N({assetValue:Y,recipient:q,sender:D}){let C=await X();try{let $=D?D:C?await W():void 0;if(!$)return Y.isGasAsset?jT.from({chain:DT.Tron,value:0.1}):jT.from({chain:DT.Tron,value:15});return Y.isGasAsset?U({recipient:q,senderAddress:$}):M({assetValue:Y,recipient:q,senderAddress:$})}catch($){throw wX({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new WT("toolbox_fee_estimation_failed",{chain:DT.Tron,error:$})}}async function z({recipient:Y,assetValue:q,memo:D,sender:C,expiration:$}){if(!FT(Y)||!FT(C))throw new WT("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(q.isGasAsset){let I=await LX({amount:q.getBaseValue("number"),from:C,to:Y});return DX({expiration:$,memo:D,transaction:I})}let H=q.address;if(!H)throw new WT("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return J({contractAddress:H,expiration:$,functionSelector:"transfer(address,uint256)",memo:D,parameter:Kf([{type:"address",value:Y},{type:"uint256",value:q.getBaseValue("string")}]),sender:C})}async function B(Y){of(Y);let q=await X();if(!q)throw new WT("toolbox_tron_no_signer");return q.signTransaction(Y)}async function k(Y){let q=await B(Y);return B0(q)}function R({assetAddress:Y,spenderAddress:q,from:D}){return UX({assetAddress:Y,owner:D,spender:q})}async function F({assetAddress:Y,spenderAddress:q,from:D,amount:C}){let $=await R({assetAddress:Y,from:D,spenderAddress:q});if(!C)return $>0n;return $>=BigInt(C)}async function w({assetAddress:Y,spenderAddress:q,amount:D,from:C}){if(!FT(Y)||!FT(q))throw new WT("toolbox_tron_approve_failed");let $=await X();if(!$)throw new WT("toolbox_tron_no_signer");let H=C||await W(),I=D!==void 0?BigInt(D).toString():lW;try{let A=await J({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:Kf([{type:"address",value:q},{type:"uint256",value:I}]),sender:H}),E=await $.signTransaction(A),V=await B0(E);if(!V)throw new WT("toolbox_tron_approve_failed");return V}catch(A){if(A instanceof WT)throw A;throw new WT("toolbox_tron_approve_failed",{error:A})}}return{approve:w,broadcastTransaction:B0,createTransaction:z,estimateTransactionFee:N,getAddress:W,getApprovedAmount:R,getBalance:Q,getRpcUrl:()=>vW(DT.Tron),isApproved:F,signAndBroadcastTransaction:k,signTransaction:B,transfer:L,validateAddress:FT}}var CX,KW=268,jW=65000,bW=345,t5="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",lW="115792089237316195423570985008687907853269984665640564039457584007913129639935";var IX=S(()=>{sG();MX();b5();CX=FT});var c5={};fT(c5,{validateTronAddress:()=>CX,getTronToolbox:()=>$X,getTronPrivateKeyFromMnemonic:()=>kX});var g5=S(()=>{IX()});import{AssetValue as w0,Chain as rT,derivationPathToString as hW,getChainConfig as mW,getRPCUrl as pW,NetworkDerivationPath as tW,SwapKitError as aT}from"@swapkit/helpers";import{match as cW,P as gW}from"ts-pattern";function by(f){if(!f||typeof f!=="string"||!f.startsWith("G")||f.length!==56)return!1;return iW.test(f)}async function dW(f){if(!by(f))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(f)}catch{return!1}}function AX(f={}){let y,G=f.derivationPath||tW[rT.Stellar],T=hW(G.slice(0,3));async function _({phrase:z,path:B}){let{HDKey:k}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:R}=await import("@scure/bip39"),{Keypair:F}=await import("@stellar/stellar-sdk"),w=R(z),q=k.fromMasterSeed(w).derive(B,!0);return F.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function X(){if(y)return y;let z=cW(f).with({phrase:gW.string},({phrase:B})=>B).otherwise(()=>{return});if(!z)throw new aT("toolbox_stellar_no_signer");return y=await _({path:T,phrase:z}),y}async function W(){let{Horizon:z}=await import("@stellar/stellar-sdk"),B=await pW(rT.Stellar);return new z.Server(B)}async function Z(){try{return(await X()).publicKey()}catch{return""}}async function J(z){let B=z||await Z();if(!B)throw new aT("toolbox_stellar_account_not_found");try{return(await(await W()).loadAccount(B)).balances.map((F)=>{if(F.asset_type==="native")return w0.from({chain:rT.Stellar,value:F.balance});let w="asset_code"in F?F.asset_code:"",Y="asset_issuer"in F?F.asset_issuer:"";return w0.from({asset:`${rT.Stellar}.${w}-${Y}`,asyncTokenLookup:!1,value:F.balance})})}catch{return[w0.from({chain:rT.Stellar,value:0})]}}async function Q({recipient:z,assetValue:B,memo:k,sender:R}){if(k){if(new TextEncoder().encode(k).length>28)throw new aT("helpers_invalid_memo_type")}if(!await dW(z))throw new aT("core_transaction_invalid_recipient_address");let w=R||await Z();if(!w)throw new aT("toolbox_stellar_no_signer");let{Asset:Y,Memo:q,Networks:D,Operation:C,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),H=await W(),I=await H.fetchBaseFee(),A=await H.loadAccount(w),E=new $(A,{fee:String(I),networkPassphrase:D.PUBLIC});if(B.isGasAsset)try{await H.loadAccount(z),E.addOperation(C.payment({amount:B.getValue("string"),asset:Y.native(),destination:z}))}catch{E.addOperation(C.createAccount({destination:z,startingBalance:B.getValue("string")}))}else E.addOperation(C.payment({amount:B.getValue("string"),asset:new Y(B.symbol,B.address),destination:z}));if(k)E.addMemo(q.text(k));return E.setTimeout(30).build()}async function L(z){let{TransactionBuilder:B,Networks:k}=await import("@stellar/stellar-sdk"),R=await X(),F=B.fromXDR(z.toXDR(),k.PUBLIC);return F.sign(R),F}async function O(z){try{let B=await W(),{hash:k}=await B.submitTransaction(z);return k}catch(B){throw new aT("toolbox_stellar_broadcast_error",B)}}async function U({recipient:z,assetValue:B,memo:k}){let R=await X(),F=R.publicKey(),w=await Q({assetValue:B,memo:k,recipient:z,sender:F});w.sign(R);try{return(await(await W()).submitTransaction(w)).hash}catch(Y){if(Y instanceof aT)throw Y;throw new aT("toolbox_stellar_transaction_failed",Y)}}async function M(z){let B=await L(z);return O(B)}async function N(){let{baseDecimal:z}=mW(rT.Stellar);try{let R=(await(await W()).feeStats()).fee_charged.p50;return w0.from({chain:rT.Stellar,fromBaseDecimal:z,value:R})}catch{return w0.from({chain:rT.Stellar,fromBaseDecimal:z,value:"100"})}}return{broadcastTransaction:O,createTransaction:Q,estimateTransactionFee:N,getAddress:Z,getBalance:J,signAndBroadcastTransaction:M,signTransaction:L,transfer:U,validateAddress:by}}var iW;var PX=S(()=>{iW=/^G[A-Z2-7]{55}$/});var ly={};fT(ly,{validateStellarAddress:()=>by,getStellarToolbox:()=>AX});var uy=S(()=>{PX()});import{AssetValue as rW,Chain as K,CosmosChains as i5,EVMChains as d5,FeeOption as aW,SwapKitError as sW,UTXOChains as SX}from"@swapkit/helpers";async function iq(){let{match:f}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (O0(),D0)),{validateEVMAddress:G}=await Promise.resolve().then(() => (V_(),n_)),{validateCardanoAddress:T}=await Promise.resolve().then(() => (D1(),w1)),{getCosmosAddressValidator:_}=await Promise.resolve().then(() => (s0(),a0)),{validateSolanaAddress:X}=await Promise.resolve().then(() => (t1(),p1)),{validateStarknetAddress:W}=await Promise.resolve().then(() => (Wy(),Xy)),{validateSuiAddress:Z}=await Promise.resolve().then(() => (Qy(),Jy)),{validateTonAddress:J}=await Promise.resolve().then(() => (Ly(),qy)),{getUTXOAddressValidator:Q}=await Promise.resolve().then(() => (M5(),U5)),{validateNearAddress:L}=await Promise.resolve().then(() => (E5(),S5)),{validateRadixAddress:O}=await Promise.resolve().then(() => (v5(),V5)),{validateRippleAddress:U}=await Promise.resolve().then(() => (K5(),o5)),{validateTronAddress:M}=await Promise.resolve().then(() => (g5(),c5)),{validateStellarAddress:N}=await Promise.resolve().then(() => (uy(),ly));return function({address:B,chain:k}){return f(k).with(...d5,()=>G(B)).with(...SX,(F)=>{return Q(F)(B)}).with(...i5,(F)=>{return _(F)(B)}).with(K.Aptos,()=>y(B)).with(K.Radix,()=>O(B)).with(K.Near,()=>L(B)).with(K.Ripple,()=>U(B)).with(K.Solana,()=>X(B)).with(K.Stellar,()=>N(B)).with(K.Starknet,()=>W(B)).with(K.Sui,()=>Z(B)).with(K.Ton,()=>J(B)).with(K.Tron,()=>M(B)).with(K.Cardano,()=>T(B)).otherwise(()=>!1)}}function dq(f){return async function(G){let{match:T}=await import("ts-pattern");return T(f).returnType().with(...d5,async(_)=>{let X=await xX(_),W=await X.createTransaction(G),Z="feeOptionKey"in G?G.feeOptionKey:aW.Fast;return X.estimateTransactionFee({...W,feeOption:Z})}).with(K.Bitcoin,K.BitcoinCash,K.Dogecoin,K.Dash,K.Litecoin,K.Solana,K.Ripple,K.Tron,K.Near,K.Cardano,async(_)=>{return(await xX(_)).estimateTransactionFee(G)}).with(K.Aptos,async()=>{let{getAptosToolbox:_}=await Promise.resolve().then(() => (O0(),D0));return _().estimateTransactionFee(G)}).with(K.Starknet,async()=>{let{getStarknetToolbox:_}=await Promise.resolve().then(() => (Wy(),Xy));return(await _()).estimateTransactionFee(G)}).with(K.Stellar,async()=>{let{getStellarToolbox:_}=await Promise.resolve().then(() => (uy(),ly));return _().estimateTransactionFee()}).with(K.Sui,async()=>{let{getSuiToolbox:_}=await Promise.resolve().then(() => (Qy(),Jy));return _().estimateTransactionFee(G)}).with(K.Ton,async()=>{let{getTONToolbox:_}=await Promise.resolve().then(() => (Ly(),qy));return _().estimateTransactionFee(G)}).with(...i5,async()=>{let{estimateTransactionFee:_}=await Promise.resolve().then(() => (s0(),a0));return _(G)}).otherwise(async()=>rW.from({chain:f}))}}async function xX(f,y){let{match:G}=await import("ts-pattern");return G(f).returnType().with(...d5,async()=>{let{getEvmToolboxAsync:T}=await Promise.resolve().then(() => (z1(),x_));return await T(f,y)}).with(...SX,async()=>{let{getUtxoToolbox:T}=await Promise.resolve().then(() => (M5(),U5));return T(f,y)}).with(...i5,async()=>{let{getCosmosToolbox:T}=await Promise.resolve().then(() => (s0(),a0));return T(f,y)}).with(K.Aptos,async()=>{let{getAptosToolbox:T}=await Promise.resolve().then(() => (O0(),D0));return T(y)}).with(K.Radix,async()=>{let{getRadixToolbox:T}=await Promise.resolve().then(() => (v5(),V5));return T(y)}).with(K.Ripple,async()=>{let{getRippleToolbox:T}=await Promise.resolve().then(() => (K5(),o5));return T(y)}).with(K.Solana,async()=>{let{getSolanaToolbox:T}=await Promise.resolve().then(() => (t1(),p1));return T(y)}).with(K.Stellar,async()=>{let{getStellarToolbox:T}=await Promise.resolve().then(() => (uy(),ly));return T(y)}).with(K.Starknet,async()=>{let{getStarknetToolbox:T}=await Promise.resolve().then(() => (Wy(),Xy));return T(y)}).with(K.Sui,async()=>{let{getSuiToolbox:T}=await Promise.resolve().then(() => (Qy(),Jy));return T(y)}).with(K.Tron,async()=>{let{getTronToolbox:T}=await Promise.resolve().then(() => (g5(),c5));return T(y)}).with(K.Near,async()=>{let{getNearToolbox:T}=await Promise.resolve().then(() => (E5(),S5));return T(y)}).with(K.Cardano,async()=>{let{getCardanoToolbox:T}=await Promise.resolve().then(() => (D1(),w1));return T(y)}).with(K.Ton,async()=>{let{getTONToolbox:T}=await Promise.resolve().then(() => (Ly(),qy));return T(y)}).otherwise(()=>{throw new sW("toolbox_not_supported",{chain:f})})}export{xX as getToolbox,dq as getFeeEstimator,iq as getAddressValidator};
1
+ var B_=Object.defineProperty;var X_=(n)=>n;function L_(n,y){this[n]=X_.bind(null,y)}var nn=(n,y)=>{for(var t in y)B_(n,t,{get:y[t],enumerable:!0,configurable:!0,set:L_.bind(y,t)})};var F=(n,y)=>()=>(n&&(y=n(n=0)),y);var R=((n)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(y,t)=>(typeof require<"u"?require:y)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});import{AssetValue as ho,Chain as un,derivationPathToString as Q_,getChainConfig as ef,getRPCUrlSync as X0,NetworkDerivationPath as M_,SwapKitError as yn}from"@swapkit/helpers";import{match as L0,P as nt}from"ts-pattern";function Lo(n){if(!n||typeof n!=="string"||!n.startsWith("0x"))return!1;let y=n.slice(2);if(y.length===0||y.length>64)return!1;return Z_.test(y)}function Q0({derivationPath:n,provider:y,...t}={}){let o,f=Q_(n||M_[un.Aptos],{allHardened:!0});async function T(){if(o)return o;return o=await L0(t).with({phrase:nt.string},async({phrase:l})=>{let{Ed25519Account:M}=await import("@aptos-labs/ts-sdk");return M.fromDerivationPath({mnemonic:l,path:f})}).with({signer:nt.any},({signer:l})=>l).otherwise(()=>{return}),o}async function C(){let{Aptos:l,AptosConfig:M}=await import("@aptos-labs/ts-sdk"),N=new M({fullnode:y||X0(un.Aptos)});return new l(N)}async function H(){return(await T())?.accountAddress.toString()||""}async function _(l){let M=l||await H();if(!M)throw new yn("toolbox_aptos_address_required");let{baseDecimal:N,chain:Z}=ef(un.Aptos);try{let z=await C(),X=await z.getAccountAPTAmount({accountAddress:M}),U=[ho.from({chain:Z,fromBaseDecimal:N,value:X.toString()})],q=await z.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:M}}}});for(let L of q){if(L.asset_type===to.COIN_TYPE||Number(L.amount)<=0)continue;let Y=L.asset_type;if(Y){let J=("metadata"in L&&typeof L.metadata==="object"&&L.metadata!==null?L.metadata:void 0)?.decimals??N;U.push(ho.from({asset:`${un.Aptos}.APT-${Y}`,fromBaseDecimal:J,value:String(L.amount)}))}}return U}catch{return[ho.from({chain:Z})]}}async function A(l){if(!l){let{baseDecimal:q}=ef(un.Aptos),L=y||X0(un.Aptos),Y=await fetch(`${L}/estimate_gas_price`),{gas_estimate:D}=await Y.json();return ho.from({chain:un.Aptos,fromBaseDecimal:q,value:String(D)})}let M=await T();if(!M)throw new yn("toolbox_aptos_no_signer");let N=await G(l),Z=await C(),[z]=await Z.transaction.simulate.simple({signerPublicKey:M.publicKey,transaction:N});if(!z)throw new yn("toolbox_aptos_transaction_creation_error");let X=BigInt(z.gas_used)*BigInt(z.gas_unit_price),{baseDecimal:U}=ef(un.Aptos);return ho.from({chain:un.Aptos,fromBaseDecimal:U,value:X.toString()})}async function G({recipient:l,assetValue:M,maxGasAmount:N,sender:Z}){if(!Lo(l))throw new yn("core_transaction_invalid_recipient_address");let z=Z||await H();if(!z)throw new yn("toolbox_aptos_no_sender");let{AccountAddress:X}=await import("@aptos-labs/ts-sdk"),U=await C(),q=X.from(z);try{let L=M.isGasAsset?to.TRANSFER:to.FUNGIBLE_STORE_TRANSFER,Y=L0({address:M?.address,isGasAsset:M.isGasAsset}).with({isGasAsset:!0},()=>[X.from(l),M.getBaseValue("bigint")]).with({address:nt.string},({address:D})=>[X.from(D),X.from(l),M.getBaseValue("bigint")]).otherwise(()=>null);if(!Y)throw new yn("toolbox_aptos_missing_asset_type");return U.transaction.build.simple({data:{function:L,functionArguments:Y,typeArguments:M.isGasAsset?[]:[to.FUNGIBLE_ASSET_METADATA]},options:N?{maxGasAmount:N}:void 0,sender:q})}catch(L){if(L instanceof yn)throw L;throw new yn("toolbox_aptos_transaction_creation_error",L)}}async function Q(l){let M=await T();if(!M)throw new yn("toolbox_aptos_no_signer");return(await C()).transaction.sign({signer:M,transaction:l})}async function w({assetValue:l,maxGasAmount:M,recipient:N}){let Z=await T();if(!Z)throw new yn("toolbox_aptos_no_signer");if(!Lo(N))throw new yn("core_transaction_invalid_recipient_address");try{let z=Z.accountAddress.toString(),X=await G({assetValue:l,maxGasAmount:M,recipient:N,sender:z});return(await(await C()).signAndSubmitTransaction({signer:Z,transaction:X})).hash}catch(z){if(z instanceof yn)throw z;throw new yn("toolbox_aptos_transaction_creation_error",z)}}async function B({senderAuthenticator:l,transaction:M}){try{return(await(await C()).transaction.submit.simple({senderAuthenticator:l,transaction:M})).hash}catch(N){throw new yn("toolbox_aptos_broadcast_error",N)}}async function W(l){let M=await Q(l);return B({senderAuthenticator:M,transaction:l})}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:A,getAddress:H,getBalance:_,signAndBroadcastTransaction:W,signTransaction:Q,transfer:w,validateAddress:Lo}}function M0({provider:n}){return async function({assetValue:t,recipient:o}){if(!Lo(o))throw new yn("core_transaction_invalid_recipient_address");let{AccountAddress:f}=await import("@aptos-labs/ts-sdk");if(t.isGasAsset)return(await n.signAndSubmitTransaction({arguments:[f.from(o).toString(),t.getBaseValue("string")],function:to.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let T=t.address;if(!T)throw new yn("toolbox_aptos_missing_asset_type");return(await n.signAndSubmitTransaction({arguments:[T,f.from(o).toString(),t.getBaseValue("string")],function:to.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[to.FUNGIBLE_ASSET_METADATA]})).hash}}var to,Z_;var Z0=F(()=>{to={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"},Z_=/^[0-9a-fA-F]+$/});var xy={};nn(xy,{validateAptosAddress:()=>Lo,getAptosToolbox:()=>Q0,createAptosExtensionTransfer:()=>M0});var Ry=F(()=>{Z0()});import{AssetValue as J0,getChainConfig as J_}from"@swapkit/helpers";import{SwapKitApi as Y_}from"@swapkit/helpers/api";function Y0(){function n(){let y=Date.now(),t=ot||y;return ot=t,y>ot?y:t+1}return N_+n().toString(36)}function wn(n){return async function(t,o=!0){let f=await Y_.getChainBalance({address:t,chain:n,scamFilter:o}),{baseDecimal:T}=J_(n),C=f.map(({identifier:_,value:A,decimal:G})=>{return new J0({decimal:G||T,identifier:_,value:A})});if(!C.some((_)=>_.isGasAsset))return[J0.from({chain:n}),...C];return C}}var N_,ot=0;var kn=F(()=>{N_=typeof process<"u"&&process.pid?process.pid.toString(36):""});function mo(n){return{getBalance:wn(n)}}function z_(n){return n}var Sy=F(()=>{kn()});import{Chain as h,getChainConfig as Tt,getRPCUrl as D_,SwapKitError as Fy}from"@swapkit/helpers";import{getAddress as z0,Interface as O_,JsonRpcProvider as x_}from"ethers";import{match as D0}from"ts-pattern";function O0(n){return new x_(n)}async function Ct(n,y){return O0(y||await D_(n))}function ro(n){return n>0n?`0x${n.toString(16)}`:"0x0"}function Ht(n){let{explorerUrl:y,chainIdHex:t,rpcUrls:o}=Tt(n);return function(){return n!==h.Ethereum?{...R_({chain:n}),blockExplorerUrls:[y],chainId:t,rpcUrls:o}:void 0}}function _t(n){return![h.Adi,h.Arbitrum,h.BinanceSmartChain].includes(n)}function R_({chain:n}){let{name:y,nativeCurrency:t,baseDecimal:o}=Tt(n);return D0(n).with(h.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:o,name:"Avalanche",symbol:n}})).with(h.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:o,name:"Berachain",symbol:"BERA"}})).with(h.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:o,name:"OKB",symbol:"OKB"}})).with(h.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:o,name:"Binance Coin",symbol:"BNB"}})).with(h.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:o,name:"xDAI",symbol:"XDAI"}})).with(h.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:o,name:"Ethereum",symbol:h.Ethereum}})).with(h.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:o,name:"Polygon",symbol:h.Polygon}})).otherwise(()=>({chainName:y,nativeCurrency:{decimals:o,name:t,symbol:t}}))}async function At(n,y){if(!("authorize"in n))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let t={...y,nonce:y.nonce!==void 0?BigInt(y.nonce):void 0};return await n.authorize(t)}function x0(n,y){let t=y!==void 0?`index ${y}: `:"",o=(f,T)=>{throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:f,message:`${t}${T}`}})};D0(n).when(({chainId:f})=>typeof f!=="bigint",()=>o("chainId","chainId must be a bigint")).when(({address:f})=>!S_(f),()=>o("address","address must be a valid checksummed address")).when(({nonce:f})=>typeof f!=="bigint"||f<0n,()=>o("nonce","nonce must be a non-negative bigint")).when(({signature:f})=>!f,()=>o("signature","signature is required")).when(({signature:f})=>typeof f?.yParity!=="number"||![0,1].includes(f.yParity),()=>o("signature.yParity","yParity must be 0 or 1")).when(({signature:f})=>!N0(f?.r),()=>o("signature.r","r must be a 32-byte hex string")).when(({signature:f})=>!N0(f?.s),()=>o("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function R0(n){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:y})=>n[y]!=null).map(({key:y,type:t})=>({name:y,type:t}))}function yt(n){return n.charAt(0).toUpperCase()+n.slice(1)}function ft(n,y){if(n.isTuple()&&n.components){let t=yt(n.name);return y[t]=n.components.map((o)=>({name:o.name,type:ft(o,y)})),t}if(n.isArray()){let t=n.arrayChildren;if(t?.isTuple()&&t.components){let o=yt(n.name.replace(/s$/,""));return y[o]=t.components.map((f)=>({name:f.name,type:ft(f,y)})),`${o}[]`}return`${t?.type??"bytes"}[]`}return n.type}function tt(n,y){if(typeof n==="bigint")return n;if(y?.isTuple()&&typeof n?.toObject==="function"){let t=n.toObject(),o={};for(let[f,T]of(y.components??[]).entries())o[T.name]=tt(t[T.name]??n[f],T);return o}if(Array.isArray(n)){let t=y?.arrayChildren;return n.map((o)=>tt(o,t??void 0))}return n}function F_({chain:n,abi:y,data:t,to:o}){let T=new O_(y).parseTransaction({data:t});if(!T)throw new Fy({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let C={},H=yt(T.name);C[H]=T.fragment.inputs.map((w)=>({name:w.name,type:ft(w,C)}));let _={};for(let[w,B]of T.fragment.inputs.entries())_[B.name]=tt(T.args[w],B);let{chainId:A}=Tt(n),G={chainId:Number(A),verifyingContract:z0(o)},Q=R0(G);return{domain:G,message:_,primaryType:H,types:{EIP712Domain:Q,...C}}}function Ut(n,y){if(!Array.isArray(n)||n.length===0)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[t,o]of n.entries())if(x0(o,t),y!==void 0&&o.chainId!==y)throw new Fy({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${t}: authorization chainId (${o.chainId}) does not match transaction chainId (${y})`}})}var N0=(n)=>typeof n==="string"&&/^0x[a-fA-F0-9]{64}$/.test(n),S_=(n)=>{try{return typeof n==="string"&&!!z0(n)}catch{return!1}};var go=()=>{};var S0;var F0=F(()=>{S0=[{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 u_,applyFeeMultiplierToBigInt as Xn,Chain as Zn,EVMChains as k_,FeeOption as b,isGasAsset as p_,SwapKitError as c,SwapKitNumber as uy}from"@swapkit/helpers";import{erc20ABI as ao}from"@swapkit/helpers/contracts";import{BrowserProvider as I_,Contract as u0,getAddress as ky,Interface as k0}from"ethers";import{match as p0}from"ts-pattern";function Qo({chain:n=Zn.Ethereum,provider:y,signer:t,isEIP1559Compatible:o=!0}){return{approve:b_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),approvedAmount:$0({chain:n,provider:y}),broadcastTransaction:y.broadcastTransaction,call:Wt({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),createApprovalTx:c_({chain:n,provider:y,signer:t}),createContract:qt({chain:n,provider:y}),createContractTxObject:To({chain:n,provider:y}),createTransaction:wt({chain:n,provider:y,signer:t}),createTransferTx:wt({chain:n,provider:y,signer:t}),EIP1193SendTransaction:Zo(y),estimateCall:E0({provider:y,signer:t}),estimateGasLimit:K_({chain:n,provider:y,signer:t}),estimateGasPrices:Co({chain:n,isEIP1559Compatible:o,provider:y}),estimateTransactionFee:i_({chain:n,isEIP1559Compatible:o,provider:y}),getAddress:()=>{return t?t.getAddress():void 0},getBalance:mo(n).getBalance,getNetworkParams:Ht(n),isApproved:v_({chain:n,provider:y}),sendTransaction:v0({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),signAuthorization:j_({signer:t}),signMessage:t?(f)=>t.signMessage(f):void 0,signTypedData:t?({domain:f,types:T,value:C})=>t.signTypedData(f,T,C):void 0,transfer:V_({chain:n,isEIP1559Compatible:o,provider:y,signer:t}),validateAddress:eo}}function eo(n){try{return ky(n),!0}catch{return!1}}function Mo(n){return n instanceof I_}function ny(n,y,t){return new u0(n,k0.from(y),t)}function qt({provider:n}){return function(t,o){return new u0(t,k0.from(o),n)}}function Gt({abi:n,funcName:y}){let t=n.find((o)=>o.name===y);if(!t)throw new c("toolbox_evm_no_abi_fragment",{funcName:y});return t.stateMutability&&P_.includes(t.stateMutability)}function I0(n){return ky(n)}function Zo(n){return function({value:t,...o}){if(!Mo(n))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:f,gasPrice:T,maxFeePerGas:C,maxPriorityFeePerGas:H,..._}=o;return n.send("eth_sendTransaction",[{..._,value:ro(BigInt(t||0))}])}}function P0(n,y){let t=Jo(n,y);if(t)return ky(t.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function Jo({chain:n,symbol:y,ticker:t},o){try{let f=n===Zn.BinanceSmartChain&&y==="BNB"&&t==="BNB",T=n===Zn.Hyperevm&&y==="HYPE"&&t==="HYPE",C=n===o&&y===o&&t===o,H=E_.includes(n)&&y==="ETH"&&t==="ETH";if(C||f||T||H)return lt[o];return ky(y.slice(t.length+1).replace(/^0X/,""))}catch{return null}}function To({provider:n}){return async({contractAddress:y,abi:t,funcName:o,funcParams:f=[],txOverrides:T})=>ny(y,t,n).getFunction(o).populateTransaction(...f.concat(T).filter((C)=>typeof C<"u"))}function Co({chain:n,provider:y,isEIP1559Compatible:t=!0}){return p0(n).with(Zn.Gnosis,()=>{return async function(){try{let{gasPrice:f,maxPriorityFeePerGas:T}=await y.getFeeData();if(!f||T===null)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:Xn(f,b.Average),maxPriorityFeePerGas:Xn(T,b.Average)},[b.Fast]:{maxFeePerGas:Xn(f,b.Fast),maxPriorityFeePerGas:Xn(T,b.Fast)},[b.Fastest]:{maxFeePerGas:Xn(f,b.Fastest),maxPriorityFeePerGas:Xn(T,b.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).with(Zn.Arbitrum,()=>{return async function(){try{let{gasPrice:f}=await y.getFeeData();if(!f)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{gasPrice:f},[b.Fast]:{gasPrice:f},[b.Fastest]:{gasPrice:f}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:f,maxPriorityFeePerGas:T,gasPrice:C}=await y.getFeeData();if(t){if(f===null||T===null)throw new c("toolbox_evm_no_fee_data");return{[b.Average]:{maxFeePerGas:f,maxPriorityFeePerGas:T},[b.Fast]:{maxFeePerGas:Xn(f,b.Fast),maxPriorityFeePerGas:Xn(T,b.Fast)},[b.Fastest]:{maxFeePerGas:Xn(f,b.Fastest),maxPriorityFeePerGas:Xn(T,b.Fastest)}}}if(!C)throw new c("toolbox_evm_no_gas_price");return{[b.Average]:{gasPrice:C},[b.Fast]:{gasPrice:Xn(C,b.Fast)},[b.Fastest]:{gasPrice:Xn(C,b.Fastest)}}}catch(f){throw new c("toolbox_evm_gas_estimation_error",{error:f.msg??f.toString()})}}})}function Wt({provider:n,isEIP1559Compatible:y,signer:t,chain:o}){return async function({callProvider:T,contractAddress:C,abi:H,funcName:_,funcParams:A=[],txOverrides:G={},feeOption:Q=b.Fast}){let w=T||n;if(!C)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let B=Gt({abi:H,funcName:_});if(B&&Mo(w)&&t){let M=To({chain:o,provider:w}),N=G?.from||await t?.getAddress(),Z=await M({abi:H,contractAddress:C,funcName:_,funcParams:A,txOverrides:{...G,from:N}});return Zo(w)(Z)}let W=ny(C,H,w);if(B){if(!t)throw new c("toolbox_evm_no_signer");let M=G?.from||await t.getAddress();if(!M)throw new c("toolbox_evm_no_signer_address");let N=W.connect(t),Z=Co({chain:o,isEIP1559Compatible:y,provider:n}),{maxFeePerGas:z,maxPriorityFeePerGas:X,gasPrice:U}=(await Z())[Q],q=await W.getFunction(_).estimateGas(...A,G),L=await N[_](...A,{...G,gasLimit:q,gasPrice:U,maxFeePerGas:z,maxPriorityFeePerGas:X,nonce:G?.nonce||await w.getTransactionCount(M)});return typeof L?.hash==="string"?L?.hash:L}let l=await W[_]?.(...A);return typeof l?.hash==="string"?l?.hash:l}}function $0({provider:n,chain:y}){return function({assetAddress:o,spenderAddress:f,from:T}){return Wt({chain:y,isEIP1559Compatible:!0,provider:n})({abi:ao,contractAddress:o,funcName:"allowance",funcParams:[T,f]})}}function v_({provider:n,chain:y}){return async function({assetAddress:o,spenderAddress:f,from:T,amount:C=so}){let H=await $0({chain:y,provider:n})({assetAddress:o,from:T,spenderAddress:f});return uy.fromBigInt(H).gte(uy.fromBigInt(BigInt(C)))}}function b_({signer:n,isEIP1559Compatible:y=!0,provider:t,chain:o}){return async function({assetAddress:T,spenderAddress:C,feeOptionKey:H=b.Fast,amount:_,gasLimitFallback:A,from:G,nonce:Q}){let w=[C,BigInt(_||so)],B=await n?.getAddress()||G,W={abi:ao,contractAddress:T,funcName:"approve",funcParams:w,signer:n,txOverrides:{from:B}};if(Mo(t)){let M=To({chain:o,provider:t}),N=Zo(t),Z=await M(W);return N(Z)}return Wt({chain:o,isEIP1559Compatible:y,provider:t,signer:n})({...W,feeOption:H,funcParams:w,txOverrides:{from:B,gasLimit:A?BigInt(A.toString()):void 0,nonce:Q}})}}function V_({signer:n,isEIP1559Compatible:y=!0,provider:t}){return async function({assetValue:f,memo:T,recipient:C,feeOptionKey:H=b.Fast,sender:_,...A}){let{hexlify:G,toUtf8Bytes:Q}=await import("ethers"),w=f.getBaseValue("bigint"),B=f.chain,W=_||await n?.getAddress(),l=v0({chain:B,isEIP1559Compatible:y,provider:t,signer:n});if(!W)throw new c("toolbox_evm_no_from_address");if(f.isGasAsset){let U={...A,data:G(Q(T||"")),feeOptionKey:H,from:W,to:C,value:w};return l(U)}if(!Jo(f,B))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:N,maxPriorityFeePerGas:Z,gasPrice:z}=(await Co({chain:B,isEIP1559Compatible:y,provider:t})())[H],X=await wt({chain:B,provider:t,signer:n})({assetValue:f,data:G(Q(T||"")),gasPrice:z,maxFeePerGas:N,maxPriorityFeePerGas:Z,memo:T,recipient:C,sender:W});return l(X)}}function E0({provider:n,signer:y}){return function({contractAddress:o,abi:f,funcName:T,funcParams:C=[],txOverrides:H}){if(!o)throw new c("toolbox_evm_no_contract_address");let _=ny(o,f,n);return y?_.connect(y).getFunction(T).estimateGas(...C,H):_.getFunction(T).estimateGas(...C,H)}}function K_({provider:n,signer:y}){return async function({assetValue:o,recipient:f,memo:T,data:C,sender:H,funcName:_,funcParams:A,txOverrides:G}){let Q=o.bigIntValue,w=o.isGasAsset?null:Jo(o,o.chain);if(w&&_)return E0({provider:n,signer:y})({abi:ao,contractAddress:w,funcName:_,funcParams:A,txOverrides:G});let{hexlify:B,toUtf8Bytes:W}=await import("ethers");return n.estimateGas({data:C?C:T?B(W(T)):void 0,from:H,to:f,value:Q})}}function j_({signer:n}){if(!n)return;return(y)=>At(n,y)}function v0({provider:n,signer:y,isEIP1559Compatible:t=!0,chain:o}){return async function({feeOptionKey:T=b.Fast,...C}){let{from:H,to:_,data:A,value:G,...Q}=C;if(!y)throw new c("toolbox_evm_no_signer");if(!_)throw new c("toolbox_evm_no_to_address");let w={...Q,data:A||"0x",from:H,to:_,value:BigInt(G||0)};if(Mo(n))return Zo(n)(w);let B=H||await y.getAddress(),W=C.nonce||await n.getTransactionCount(B),l=(await n.getNetwork()).chainId,M=Xt(w,t);if(M==="eip7702")Ut(w.authorizations||[],l);let N=p0(M).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),Z={...w,chainId:l,nonce:W,type:N,...M==="eip7702"&&{authorizationList:w.authorizations}},z=Co({chain:o,isEIP1559Compatible:t,provider:n}),U=M!=="legacy"&&!(w.maxFeePerGas&&w.maxPriorityFeePerGas)||!w.gasPrice?Object.entries((await z())[T]).reduce((L,[Y,D])=>({...L,[Y]:ro(BigInt(D))}),{}):{},q;try{q=ro(w.gasLimit||await n.estimateGas(Z)*11n/10n)}catch(L){throw new c("toolbox_evm_error_estimating_gas_limit",{error:L})}try{let L={...Z,gasLimit:q,...U};try{return(await y.sendTransaction(L)).hash}catch{let Y=await y.signTransaction({...L,from:B});return(await n.broadcastTransaction(Y)).hash}}catch(L){throw new c("toolbox_evm_error_sending_transaction",{error:L})}}}function wt({provider:n,signer:y}){return async function({assetValue:o,memo:f,recipient:T,data:C,sender:H,maxFeePerGas:_,maxPriorityFeePerGas:A,gasPrice:G,...Q}){let w=o.getBaseValue("bigint"),B=o.chain,W=H||await y?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(p_(o)){let{hexlify:N,toUtf8Bytes:Z}=await import("ethers");return{...Q,data:C||N(Z(f||"")),from:W,to:T,value:w}}let l=Jo(o,B);if(!l)throw new c("toolbox_evm_no_contract_address");return To({chain:o.chain,provider:n})({abi:ao,contractAddress:l,funcName:"transfer",funcParams:[T,w],txOverrides:{from:W,gasPrice:G,maxFeePerGas:_,maxPriorityFeePerGas:A}})}}function c_({provider:n,signer:y,chain:t}){return async function({assetAddress:f,spenderAddress:T,amount:C,from:H}){let _=await y?.getAddress()||H,A=To({chain:t,provider:n}),G=["bigint","number"].includes(typeof C)?C:C||so;return await A({abi:ao,contractAddress:f,funcName:"approve",funcParams:[T,BigInt(G)],txOverrides:{from:_}})}}function i_({provider:n,isEIP1559Compatible:y=!0,chain:t}){return async function({feeOption:f=b.Fast,...T}){let H=await Co({chain:t,isEIP1559Compatible:y,provider:n})(),_=await n.estimateGas(T),A=u_.from({chain:t}),{gasPrice:G,maxFeePerGas:Q,maxPriorityFeePerGas:w}=H[f];if(!y&&G)return A.set(uy.fromBigInt(G*_,A.decimal));if(Q&&w){let B=(Q+w)*_;return A.set(uy.fromBigInt(B,A.decimal))}throw new c("toolbox_evm_no_gas_price")}}var so,P_,$_,lt,E_,py=(n)=>n.type===4||(n.authorizations?.length??0)>0,Bt=(n)=>!py(n)&&(n.type===2||!!n.maxFeePerGas||!!n.maxPriorityFeePerGas),Xt=(n,y=!0)=>{if(py(n))return"eip7702";if(Bt(n)||y)return"eip1559";return"legacy"};var Iy=F(()=>{Sy();go();so=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");P_=["payable","nonpayable"];$_=k_.reduce((n,y)=>{return n[y]="0x0000000000000000000000000000000000000000",n},{}),lt={...$_,[Zn.Optimism]:"0x4200000000000000000000000000000000000042",[Zn.Polygon]:"0x0000000000000000000000000000000000001010"},E_=[Zn.Arbitrum,Zn.Aurora,Zn.Base,Zn.Optimism]});import{Chain as g,FeeOption as h_}from"@swapkit/helpers";import{HDNodeWallet as m_}from"ethers";import{match as r_,P as b0}from"ts-pattern";function Py(n){let y=d(g.Ethereum)(n);async function t(o,f="0x5ba1e12693dc8f9c48aad8770482f4739beed696",T="aggregate",C=h_.Fast){let H=await y.createContractTxObject({abi:S0,contractAddress:f,funcName:T,funcParams:[o]});return y.sendTransaction({...H,feeOptionKey:C})}return{...y,multicall:t}}function d(n){return function({provider:t,...o}){let f=_t(n),T=r_(o).with({phrase:b0.string},({phrase:H})=>m_.fromPhrase(H).connect(t)).with({signer:b0.any},({signer:H})=>H).otherwise(()=>{return});return Qo({chain:n,isEIP1559Compatible:f,provider:t,signer:T})}}var $y,Ey,vy,by,Vy,Ky,jy,V0,cy,iy,hy,my,ry,gy,oy,dy,ay,sy,ey;var Lt=F(()=>{F0();go();Iy();$y=d(g.Adi),Ey=d(g.Arbitrum),vy=d(g.Aurora),by=d(g.Avalanche),Vy=d(g.Base),Ky=d(g.Berachain),jy=d(g.BinanceSmartChain),V0=d(g.Botanix),cy=d(g.Core),iy=d(g.Corn),hy=d(g.Cronos),my=d(g.Gnosis),ry=d(g.Hyperevm),gy=d(g.Polygon),oy=d(g.Sonic),dy=d(g.Unichain),ay=d(g.XLayer),sy=d(g.Monad),ey=d(g.MegaETH)});var K0;var j0=F(()=>{K0=[{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 Yo,Chain as d_,FeeOption as pn,SwapKitError as Qt}from"@swapkit/helpers";import{Contract as a_,HDNodeWallet as s_}from"ethers";import{match as e_,P as c0}from"ts-pattern";function Mt(n){return new a_(nA,K0,n)}function i0(n){return async function(){let t=Mt(n);if(t&&"l1BaseFee"in t)return await t?.l1BaseFee();return}}function h0(n){return async function({from:t,to:o,nonce:f,...T}){let{Transaction:C}=await import("ethers");if(!o)throw new Qt("toolbox_evm_invalid_transaction",{error:"Missing to address"});return C.from({...T,authorizationList:T.authorizationList,nonce:f?f:t?await n.getTransactionCount(t):0,to:o}).serialized}}function m0(n){return async function(t){let o=Mt(n),f=await h0(n)(t);if(o&&"getL1Fee"in o)return o.getL1Fee(f)}}function r0(n){return async function(t){let f=(await n.getFeeData()).gasPrice??0n,T=await n.estimateGas(t);return f*T}}function oA(n){return async function(t){let o=await m0(n)(t)??0n,f=await r0(n)(t);return o+f}}function yA(n){return async function(t){let o=Mt(n),f=await h0(n)(t);if(o&&"getL1GasUsed"in o)return o.getL1GasUsed(f)}}function fA(n){return async function(){try{let{maxFeePerGas:t,maxPriorityFeePerGas:o,gasPrice:f}=await n.getFeeData(),T=await i0(n)(),C=f;if(!(t&&o))throw new Qt("toolbox_evm_no_fee_data");return{[pn.Average]:{gasPrice:C,l1GasPrice:T,maxFeePerGas:t,maxPriorityFeePerGas:o},[pn.Fast]:{gasPrice:Yo(C,pn.Fast),l1GasPrice:Yo(T||0n,pn.Fast),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fast)},[pn.Fastest]:{gasPrice:Yo(C,pn.Fastest),l1GasPrice:Yo(T||0n,pn.Fastest),maxFeePerGas:t,maxPriorityFeePerGas:Yo(o,pn.Fastest)}}}catch(t){throw new Qt("toolbox_evm_gas_estimation_error",{error:t.msg??t.toString()})}}}function nf({provider:n,...y}){let t=e_(y).with({phrase:c0.string},({phrase:T})=>s_.fromPhrase(T).connect(n)).with({signer:c0.any},({signer:T})=>T).otherwise(()=>{return}),o=Qo({provider:n,signer:t}),f=i0(n);return{...o,estimateGasPrices:fA(n),estimateL1Gas:yA(n),estimateL1GasCost:m0(n),estimateL2GasCost:r0(n),estimateTotalGasCost:oA(n),getBalance:mo(d_.Optimism).getBalance,getL1GasPrice:f}}var nA="0x420000000000000000000000000000000000000f";var Zt=F(()=>{Sy();j0();Iy()});var d0={};nn(d0,{validateEVMAddress:()=>eo,toChecksumAddress:()=>I0,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>py,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Mo,getTokenAddress:()=>Jo,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createContract:()=>ny,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>oy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>so,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Qo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});import{Chain as r}from"@swapkit/helpers";import{match as tA}from"ts-pattern";function Jt(n,y){return tA(n).with(r.Adi,()=>$y(y)).with(r.Arbitrum,()=>Ey(y)).with(r.Aurora,()=>vy(y)).with(r.Avalanche,()=>by(y)).with(r.Base,()=>Vy(y)).with(r.Berachain,()=>Ky(y)).with(r.BinanceSmartChain,()=>jy(y)).with(r.Botanix,()=>oy(y)).with(r.Core,()=>cy(y)).with(r.Corn,()=>iy(y)).with(r.Cronos,()=>hy(y)).with(r.Ethereum,()=>Py(y)).with(r.Gnosis,()=>my(y)).with(r.Hyperevm,()=>ry(y)).with(r.Optimism,()=>nf(y)).with(r.Polygon,()=>gy(y)).with(r.Sonic,()=>oy(y)).with(r.Unichain,()=>dy(y)).with(r.XLayer,()=>ay(y)).with(r.Monad,()=>sy(y)).with(r.MegaETH,()=>ey(y)).exhaustive()}async function g0(n,y){let t={...y,provider:y?.provider||await Ct(n)};return Jt(n,t)}var Yt=F(()=>{go();Lt();Zt();Iy();Lt();Zt()});var a0;var s0=F(()=>{((t)=>{t.Test="goerli";t.Main="homestead"})(a0||={})});var e0={};nn(e0,{validateEVMAddress:()=>eo,validateAuthorizations:()=>Ut,validateAuthorization:()=>x0,toHexString:()=>ro,toChecksumAddress:()=>I0,signAuthorization:()=>At,parseEIP712FromEVMTx:()=>F_,isStateChangingCall:()=>Gt,isEIP7702Transaction:()=>py,isEIP1559Transaction:()=>Bt,isBrowserProvider:()=>Mo,getTokenAddress:()=>Jo,getProviderSync:()=>O0,getProvider:()=>Ct,getNetworkParams:()=>Ht,getIsEIP1559Compatible:()=>_t,getEvmToolboxAsync:()=>g0,getEvmToolbox:()=>Jt,getEvmApi:()=>mo,getEstimateGasPrices:()=>Co,getEVMTxType:()=>Xt,getEIP1193SendTransaction:()=>Zo,getCreateContractTxObject:()=>To,getCreateContract:()=>qt,getChecksumAddressFromAsset:()=>P0,createCustomEvmApi:()=>z_,createContract:()=>ny,buildEIP712DomainType:()=>R0,XLayerToolbox:()=>ay,UNIToolbox:()=>dy,SONICToolbox:()=>oy,OPToolbox:()=>nf,MONADToolbox:()=>sy,MEGAETHToolbox:()=>ey,MAX_APPROVAL:()=>so,MATICToolbox:()=>gy,HYPEREVMToolbox:()=>ry,GNOToolbox:()=>my,EthNetwork:()=>a0,ETHToolbox:()=>Py,ContractAddress:()=>lt,CROToolbox:()=>hy,CORNToolbox:()=>iy,COREToolbox:()=>cy,BotanixToolbox:()=>V0,BaseEVMToolbox:()=>Qo,BSCToolbox:()=>jy,BERAToolbox:()=>Ky,BASEToolbox:()=>Vy,AVAXToolbox:()=>by,AURORAToolbox:()=>vy,ARBToolbox:()=>Ey,ADIToolbox:()=>$y});var Nt=F(()=>{Sy();go();Yt();s0()});import{bech32 as TA}from"@scure/base";import{mnemonicToSeed as CA}from"@scure/bip39";import{Bip32PrivateKey as HA}from"@stricahq/bip32ed25519";import{Transaction as _A,types as Ot,address as AA,crypto as zt,utils as nC}from"@stricahq/typhonjs";import{AssetValue as No,Chain as Ho,getChainConfig as UA,SwapKitError as yy}from"@swapkit/helpers";import ln from"bignumber.js";async function xt(n,y){let t=await fetch(`${tC}${n}`,{...y,headers:{project_id:fC,...y?.headers}});if(!t.ok)throw Error(`Blockfrost API error: ${t.status} ${t.statusText}`);return t.json()}async function TC(n){try{return await xt(`/addresses/${n}/utxos`)}catch{return[]}}async function qA(){return(await xt("/blocks/latest")).slot}async function GA(){let n=await xt("/epochs/latest/parameters"),y={PlutusScriptV1:n.cost_models.PlutusV1?Object.values(n.cost_models.PlutusV1):[],PlutusScriptV2:n.cost_models.PlutusV2?Object.values(n.cost_models.PlutusV2):[],PlutusScriptV3:n.cost_models.PlutusV3?Object.values(n.cost_models.PlutusV3):[]};return{collateralPercent:new ln(n.collateral_percent),languageView:y,lovelacePerUtxoWord:new ln(0),maxValueSize:Number.parseInt(n.max_val_size,10),minFeeA:new ln(n.min_fee_a),minFeeB:new ln(n.min_fee_b),minFeeRefScriptCostPerByte:new ln(15),priceMem:new ln(n.price_mem),priceSteps:new ln(n.price_step),stakeKeyDeposit:new ln(2000000),utxoCostPerByte:new ln(n.coins_per_utxo_size)}}async function yC(n){let y=await fetch(`${tC}/tx/submit`,{body:Buffer.from(n,"hex"),headers:{"Content-Type":"application/cbor",project_id:fC},method:"POST"});if(!y.ok){let t=await y.text();throw Error(`Transaction submission failed: ${t}`)}return y.json()}function lA(n,y){return n.map((t)=>{let o=t.amount.find((C)=>C.unit==="lovelace"),f=o?new ln(o.quantity):new ln(0),T=t.amount.filter((C)=>C.unit!=="lovelace").map((C)=>({amount:new ln(C.quantity),assetName:C.unit.slice(56),policyId:C.unit.slice(0,56)}));return{address:y,amount:f,index:t.output_index,tokens:T,txId:t.tx_hash}})}async function WA(n){try{let y=await TC(n),t=0n,o=new Map;for(let C of y){if(!C.amount||!Array.isArray(C.amount))continue;for(let H of C.amount){let{unit:_,quantity:A}=H;if(_==="lovelace")t+=BigInt(A);else{let G=o.get(_)||0n;o.set(_,G+BigInt(A))}}}let f=[],{baseDecimal:T}=UA(Ho.Cardano);if(t>0n)f.push(No.from({chain:Ho.Cardano,fromBaseDecimal:T,value:t.toString()}));for(let[C,H]of o)f.push(No.from({asset:`${Ho.Cardano}.${C}`,value:H.toString()}));if(f.length===0)return[No.from({chain:Ho.Cardano})];return f}catch(y){let t=y instanceof Error?y.message:String(y);return console.error(`Cardano balance fetch error: ${t}`),[No.from({chain:Ho.Cardano})]}}function CC(n){if(!n||typeof n!=="string")return!1;try{let y=TA.decode(n,120);return y.prefix==="addr"||y.prefix==="addr_test"}catch{return!1}}async function BA(n,y=0,t=0){let o=await CA(n,""),T=(await HA.fromEntropy(Buffer.from(o.slice(0,64)))).derive(Dt+1852).derive(Dt+1815).derive(Dt+y),C=T.derive(0).derive(t),H=C.toBip32PublicKey().toPublicKey().toBytes(),_=zt.hash28(H),G=T.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),Q=zt.hash28(G),w={hash:_,type:Ot.HashType.ADDRESS},B={hash:Q,type:Ot.HashType.ADDRESS},l=new AA.BaseAddress(wA,w,B).getBech32(),M=C.toPrivateKey();return{getAddress:()=>l,publicKey:H,publicKeyHash:_,signTransaction:async(N)=>{try{let Z=await import("@stricahq/cbors"),z=Buffer.from(N,"hex"),X=Z.Decoder.decode(z),[U,q,L,Y]=X.value,D=Z.Encoder.encode(U),J=zt.hash32(D),O=M.sign(J),x=q instanceof Map?q:new Map,u=x.get(oC)||[];u.push([H,O]),x.set(oC,u);let p=[U,x,L,Y];return Z.Encoder.encode(p).toString("hex")}catch(Z){throw new yy("toolbox_cardano_sign_transaction_failed",{message:String(Z)})}}}}function XA(n){let y,t,o;async function f(){if(!o)o=await GA();return o}async function T(){if(y!==void 0)return y;if(n&&"phrase"in n&&n.phrase){let B=n.index??0;return y=await BA(n.phrase,0,B),y}if(n&&"signer"in n&&n.signer)return y=n.signer,y;return}async function C(){if(t)return t;let B=await T();if(!B)return"";if("getAddress"in B)return t=await B.getAddress(),t;return""}async function H(B){let W=B||await C();if(!W)throw new yy("core_wallet_connection_not_found");return WA(W)}async function _(B){if(B)try{let{tx:N}=await A(B),Z=N.getFee();return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:Z.toString()})}catch{}let W=await f(),l=400,M=W.minFeeB.plus(W.minFeeA.times(l));return No.from({chain:Ho.Cardano,fromBaseDecimal:6,value:M.toString()})}async function A({sender:B="",recipient:W,assetValue:l,memo:M,pureLovelaceOnly:N=!1}){let Z=B||await C();if(!Z)throw new yy("core_wallet_connection_not_found");let[z,X,U]=await Promise.all([TC(Z),qA(),f()]),q=z.filter((V)=>N?V.amount.every((m)=>m.unit==="lovelace"):V.amount.some((m)=>m.unit==="lovelace")).sort((V,m)=>{let Hn=V.amount.some((a)=>a.unit!=="lovelace"),An=m.amount.some((a)=>a.unit!=="lovelace");if(Hn===An)return 0;return Hn?1:-1}),L=nC.getAddressFromString(Z),Y=nC.getAddressFromString(W),D=lA(q,L),J=new ln(l.getBaseValue("string")),O=[{address:Y,amount:J,tokens:[]}],x;if(M){let V=new Map;V.set("msg",[M]),x={metadata:[{data:V,label:674}]}}let u={...U,minFeeB:U.minFeeB.plus(U.minFeeA.times(4))},P=new _A({protocolParams:u}).paymentTransaction({auxiliaryData:x,changeAddress:L,inputs:D,outputs:O,ttl:X+3600}),{payload:v}=P.buildTransaction();return{tx:P,unsignedTx:v}}async function G(B){let W=await T();if(!W||!("signTransaction"in W))throw new yy("core_wallet_connection_not_found");return W.signTransaction(B)}async function Q({recipient:B,assetValue:W,memo:l}){let M=await T();if(!M||!("signTransaction"in M))throw new yy("core_wallet_connection_not_found");let{unsignedTx:N}=await A({assetValue:W,memo:l,recipient:B,sender:await C()}),Z=await G(N);return await yC(Z)}async function w(B){let W=await G(B);return await yC(W)}return{createTransaction:A,estimateTransactionFee:_,getAddress:C,getBalance:H,signAndBroadcastTransaction:w,signTransaction:G,transfer:Q,validateAddress:CC}}var fC="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",tC="https://cardano-mainnet.blockfrost.io/api/v0",wA,Dt=2147483648,oC=0;var HC=F(()=>{wA=Ot.NetworkId.MAINNET});var Rt={};nn(Rt,{validateCardanoAddress:()=>CC,getCardanoToolbox:()=>XA});var St=F(()=>{HC()});import{base64 as yf,bech32 as of}from"@scure/base";import{SwapKitError as LA}from"@swapkit/helpers";function fy(n){return yf.encode(Uint8Array.from(of.fromWords(of.decode(n).words)))}function ty(n,y="thor"){return of.encode(y,of.toWords(yf.decode(n)))}function QA(n){return yf.encode(n)}function MA(n){if(!n.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new LA("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return yf.decode(n)}var Ft=()=>{};import{AssetValue as ut,Chain as E,getChainConfig as xn,getRPCUrl as ZA,SwapKitError as _C}from"@swapkit/helpers";function In(n){switch(n){case E.Maya:return{amount:[],gas:"10000000000"};case E.THORChain:return{amount:[],gas:"500000000"};case E.Kujira:return wC;case E.Noble:return qC;default:return UC}}async function Pn(n){let y=await import("@cosmjs/stargate"),t=y.StargateClient??y.default?.StargateClient,o=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return t.connect({headers:o,url:n})}async function _o(n,y,t={}){let o=await import("@cosmjs/stargate"),f=o.SigningStargateClient??o.default?.SigningStargateClient,T=o.GasPrice??o.default?.GasPrice,C=typeof t==="string"?t:"0.0003uatom",H=typeof t==="string"?{}:t;return f.connectWithSigner(n,y,{gasPrice:T.fromString(C),...H})}async function pt(n,y){let t=await import("@cosmjs/stargate");return(t.SigningStargateClient??t.default?.SigningStargateClient).offline(n,y)}async function It({sender:n,recipient:y,assetValue:t,memo:o="",feeRate:f,sequence:T,accountNumber:C}){let{chain:H,chainId:_}=t,A=await ZA(H),Q=await(await Pn(A)).getAccount(n);if(!Q)throw new _C("toolbox_cosmos_account_not_found",{sender:n});let w=ut.from({chain:H}),B=jn(w.symbol),W=In(H),l=B&&f?{amount:[{amount:f.toString(),denom:B}],gas:W.gas}:W,M={amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol)}],fromAddress:n,toAddress:y};return{accountNumber:C??Q.accountNumber,chainId:_,fee:l,memo:o,msgs:[{typeUrl:JA(H),value:M}],sequence:T??Q.sequence}}var kt="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",AC="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",UC,wC,qC,jn=(n,y=!1)=>{if(y)return n.toLowerCase();switch(n){case"uUSK":case"USK":return kt;case"uYUM":case"YUM":return AC;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return n}},Ty=({symbol:n,chain:y})=>{if(y===E.Maya)return(n.toUpperCase()!=="CACAO"?n:`${E.Maya}.${n}`).toUpperCase();if(y===E.THORChain)return(["RUNE","TCY","RUJI"].includes(n.toUpperCase())?`${E.THORChain}.${n}`:n).toUpperCase();return jn(n,!1)},JA=(n)=>{switch(n){case E.Maya:case E.THORChain:return"/types.MsgSend";case E.Cosmos:case E.Kujira:case E.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new _C("toolbox_cosmos_not_supported",{chain:n})}},YA,Pt=(n,y)=>{let t=YA[n.toLowerCase()];if(!t)return ut.from({asset:n,fromBaseDecimal:8,value:y});let{chain:o,asset:f,decimals:T}=t,C=o?{chain:o}:{asset:f};return ut.from({...C,fromBaseDecimal:T,value:y})};var Cy=F(()=>{UC={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},wC={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},qC={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};YA={atom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},cacao:{chain:E.Maya,decimals:10},kuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},maya:{asset:`${E.Maya}.${E.Maya}`,decimals:4},rune:{chain:E.THORChain,decimals:xn(E.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:xn(E.THORChain).baseDecimal},uatom:{chain:E.Cosmos,decimals:xn(E.Cosmos).baseDecimal},ukuji:{chain:E.Kujira,decimals:xn(E.Kujira).baseDecimal},usdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},uusdc:{chain:E.Noble,decimals:xn(E.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:xn(E.THORChain).baseDecimal},[kt.toLowerCase()]:{asset:`${E.Kujira}.USK`,decimals:xn(E.Kujira).baseDecimal}}});var GC={};nn(GC,{$root:()=>S});import on from"protobufjs/minimal.js";var I,Ln,k,S;var lC=F(()=>{I=on.Reader,Ln=on.Writer,k=on.util,S=on.roots.default||(on.roots.default={});S.common=(()=>{let n={};return n.Asset=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.chain="",y.prototype.symbol="",y.prototype.ticker="",y.prototype.synth=!1,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(10).string(o.chain);if(o.symbol!=null&&Object.hasOwnProperty.call(o,"symbol"))f.uint32(18).string(o.symbol);if(o.ticker!=null&&Object.hasOwnProperty.call(o,"ticker"))f.uint32(26).string(o.ticker);if(o.synth!=null&&Object.hasOwnProperty.call(o,"synth"))f.uint32(32).bool(o.synth);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Asset;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.chain=o.string();break;case 2:C.symbol=o.string();break;case 3:C.ticker=o.string();break;case 4:C.synth=o.bool();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.chain!=null&&o.hasOwnProperty("chain")){if(!k.isString(o.chain))return"chain: string expected"}if(o.symbol!=null&&o.hasOwnProperty("symbol")){if(!k.isString(o.symbol))return"symbol: string expected"}if(o.ticker!=null&&o.hasOwnProperty("ticker")){if(!k.isString(o.ticker))return"ticker: string expected"}if(o.synth!=null&&o.hasOwnProperty("synth")){if(typeof o.synth!=="boolean")return"synth: boolean expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Asset)return o;let f=new S.common.Asset;if(o.chain!=null)f.chain=String(o.chain);if(o.symbol!=null)f.symbol=String(o.symbol);if(o.ticker!=null)f.ticker=String(o.ticker);if(o.synth!=null)f.synth=Boolean(o.synth);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.chain="",T.symbol="",T.ticker="",T.synth=!1;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.symbol!=null&&o.hasOwnProperty("symbol"))T.symbol=o.symbol;if(o.ticker!=null&&o.hasOwnProperty("ticker"))T.ticker=o.ticker;if(o.synth!=null&&o.hasOwnProperty("synth"))T.synth=o.synth;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Coin=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.asset=null,y.prototype.amount="",y.prototype.decimals=k.Long?k.Long.fromBits(0,0,!1):0,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.asset!=null&&Object.hasOwnProperty.call(o,"asset"))S.common.Asset.encode(o.asset,f.uint32(10).fork()).ldelim();if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))f.uint32(18).string(o.amount);if(o.decimals!=null&&Object.hasOwnProperty.call(o,"decimals"))f.uint32(24).int64(o.decimals);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Coin;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.asset=S.common.Asset.decode(o,o.uint32());break;case 2:C.amount=o.string();break;case 3:C.decimals=o.int64();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.asset!=null&&o.hasOwnProperty("asset")){let f=S.common.Asset.verify(o.asset);if(f)return"asset."+f}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!k.isString(o.amount))return"amount: string expected"}if(o.decimals!=null&&o.hasOwnProperty("decimals")){if(!k.isInteger(o.decimals)&&!(o.decimals&&k.isInteger(o.decimals.low)&&k.isInteger(o.decimals.high)))return"decimals: integer|Long expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Coin)return o;let f=new S.common.Coin;if(o.asset!=null){if(typeof o.asset!=="object")throw TypeError(".common.Coin.asset: object expected");f.asset=S.common.Asset.fromObject(o.asset)}if(o.amount!=null)f.amount=String(o.amount);if(o.decimals!=null){if(k.Long)(f.decimals=k.Long.fromValue(o.decimals)).unsigned=!1;else if(typeof o.decimals==="string")f.decimals=Number.parseInt(o.decimals,10);else if(typeof o.decimals==="number")f.decimals=o.decimals;else if(typeof o.decimals==="object")f.decimals=new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber()}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)if(T.asset=null,T.amount="",k.Long){let C=new k.Long(0,0,!1);T.decimals=f.longs===String?C.toString():f.longs===Number?C.toNumber():C}else T.decimals=f.longs===String?"0":0;if(o.asset!=null&&o.hasOwnProperty("asset"))T.asset=S.common.Asset.toObject(o.asset,f);if(o.amount!=null&&o.hasOwnProperty("amount"))T.amount=o.amount;if(o.decimals!=null&&o.hasOwnProperty("decimals"))if(typeof o.decimals==="number")T.decimals=f.longs===String?String(o.decimals):o.decimals;else T.decimals=f.longs===String?k.Long.prototype.toString.call(o.decimals):f.longs===Number?new k.LongBits(o.decimals.low>>>0,o.decimals.high>>>0).toNumber():o.decimals;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.PubKeySet=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.secp256k1="",y.prototype.ed25519="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.secp256k1!=null&&Object.hasOwnProperty.call(o,"secp256k1"))f.uint32(10).string(o.secp256k1);if(o.ed25519!=null&&Object.hasOwnProperty.call(o,"ed25519"))f.uint32(18).string(o.ed25519);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.PubKeySet;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.secp256k1=o.string();break;case 2:C.ed25519=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1")){if(!k.isString(o.secp256k1))return"secp256k1: string expected"}if(o.ed25519!=null&&o.hasOwnProperty("ed25519")){if(!k.isString(o.ed25519))return"ed25519: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.PubKeySet)return o;let f=new S.common.PubKeySet;if(o.secp256k1!=null)f.secp256k1=String(o.secp256k1);if(o.ed25519!=null)f.ed25519=String(o.ed25519);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.secp256k1="",T.ed25519="";if(o.secp256k1!=null&&o.hasOwnProperty("secp256k1"))T.secp256k1=o.secp256k1;if(o.ed25519!=null&&o.hasOwnProperty("ed25519"))T.ed25519=o.ed25519;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Tx=(()=>{function y(t){if(this.coins=[],this.gas=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.id="",y.prototype.chain="",y.prototype.fromAddress="",y.prototype.toAddress="",y.prototype.coins=k.emptyArray,y.prototype.gas=k.emptyArray,y.prototype.memo="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.id!=null&&Object.hasOwnProperty.call(o,"id"))f.uint32(10).string(o.id);if(o.chain!=null&&Object.hasOwnProperty.call(o,"chain"))f.uint32(18).string(o.chain);if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(26).string(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(34).string(o.toAddress);if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(42).fork()).ldelim();if(o.gas?.length)for(let T=0;T<o.gas.length;++T)S.common.Coin.encode(o.gas[T],f.uint32(50).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(58).string(o.memo);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Tx;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.id=o.string();break;case 2:C.chain=o.string();break;case 3:C.fromAddress=o.string();break;case 4:C.toAddress=o.string();break;case 5:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 6:if(!C.gas?.length)C.gas=[];C.gas.push(S.common.Coin.decode(o,o.uint32()));break;case 7:C.memo=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.id!=null&&o.hasOwnProperty("id")){if(!k.isString(o.id))return"id: string expected"}if(o.chain!=null&&o.hasOwnProperty("chain")){if(!k.isString(o.chain))return"chain: string expected"}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!k.isString(o.fromAddress))return"fromAddress: string expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!k.isString(o.toAddress))return"toAddress: string expected"}if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.gas!=null&&o.hasOwnProperty("gas")){if(!Array.isArray(o.gas))return"gas: array expected";for(let f=0;f<o.gas.length;++f){let T=S.common.Coin.verify(o.gas[f]);if(T)return"gas."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Tx)return o;let f=new S.common.Tx;if(o.id!=null)f.id=String(o.id);if(o.chain!=null)f.chain=String(o.chain);if(o.fromAddress!=null)f.fromAddress=String(o.fromAddress);if(o.toAddress!=null)f.toAddress=String(o.toAddress);if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Tx.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Tx.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.gas){if(!Array.isArray(o.gas))throw TypeError(".common.Tx.gas: array expected");f.gas=[];for(let T=0;T<o.gas.length;++T){if(typeof o.gas[T]!=="object")throw TypeError(".common.Tx.gas: object expected");f.gas[T]=S.common.Coin.fromObject(o.gas[T])}}if(o.memo!=null)f.memo=String(o.memo);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[],T.gas=[];if(f.defaults)T.id="",T.chain="",T.fromAddress="",T.toAddress="",T.memo="";if(o.id!=null&&o.hasOwnProperty("id"))T.id=o.id;if(o.chain!=null&&o.hasOwnProperty("chain"))T.chain=o.chain;if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=o.toAddress;if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.gas?.length){T.gas=[];for(let C=0;C<o.gas.length;++C)T.gas[C]=S.common.Coin.toObject(o.gas[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.Fee=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.poolDeduct="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.poolDeduct!=null&&Object.hasOwnProperty.call(o,"poolDeduct"))f.uint32(18).string(o.poolDeduct);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.Fee;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.poolDeduct=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct")){if(!k.isString(o.poolDeduct))return"poolDeduct: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.Fee)return o;let f=new S.common.Fee;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".common.Fee.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".common.Fee.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.poolDeduct!=null)f.poolDeduct=String(o.poolDeduct);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults)T.poolDeduct="";if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.poolDeduct!=null&&o.hasOwnProperty("poolDeduct"))T.poolDeduct=o.poolDeduct;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.ProtoUint=(()=>{function y(t){if(t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.value="",y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.value!=null&&Object.hasOwnProperty.call(o,"value"))f.uint32(10).string(o.value);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.common.ProtoUint;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.value=o.string();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.value!=null&&o.hasOwnProperty("value")){if(!k.isString(o.value))return"value: string expected"}return null},y.fromObject=function(o){if(o instanceof S.common.ProtoUint)return o;let f=new S.common.ProtoUint;if(o.value!=null)f.value=String(o.value);return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.defaults)T.value="";if(o.value!=null&&o.hasOwnProperty("value"))T.value=o.value;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.types=(()=>{let n={};return n.MsgDeposit=(()=>{function y(t){if(this.coins=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.coins=k.emptyArray,y.prototype.memo="",y.prototype.signer=k.newBuffer([]),y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.coins?.length)for(let T=0;T<o.coins.length;++T)S.common.Coin.encode(o.coins[T],f.uint32(10).fork()).ldelim();if(o.memo!=null&&Object.hasOwnProperty.call(o,"memo"))f.uint32(18).string(o.memo);if(o.signer!=null&&Object.hasOwnProperty.call(o,"signer"))f.uint32(26).bytes(o.signer);return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgDeposit;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:if(!C.coins?.length)C.coins=[];C.coins.push(S.common.Coin.decode(o,o.uint32()));break;case 2:C.memo=o.string();break;case 3:C.signer=o.bytes();break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.coins!=null&&o.hasOwnProperty("coins")){if(!Array.isArray(o.coins))return"coins: array expected";for(let f=0;f<o.coins.length;++f){let T=S.common.Coin.verify(o.coins[f]);if(T)return"coins."+T}}if(o.memo!=null&&o.hasOwnProperty("memo")){if(!k.isString(o.memo))return"memo: string expected"}if(o.signer!=null&&o.hasOwnProperty("signer")){if(!(o.signer&&typeof o.signer.length==="number"||k.isString(o.signer)))return"signer: buffer expected"}return null},y.fromObject=function(o){if(o instanceof S.types.MsgDeposit)return o;let f=new S.types.MsgDeposit;if(o.coins){if(!Array.isArray(o.coins))throw TypeError(".types.MsgDeposit.coins: array expected");f.coins=[];for(let T=0;T<o.coins.length;++T){if(typeof o.coins[T]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");f.coins[T]=S.common.Coin.fromObject(o.coins[T])}}if(o.memo!=null)f.memo=String(o.memo);if(o.signer!=null){if(typeof o.signer==="string")k.base64.decode(o.signer,f.signer=k.newBuffer(k.base64.length(o.signer)),0);else if(o.signer.length)f.signer=o.signer}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.coins=[];if(f.defaults){if(T.memo="",f.bytes===String)T.signer="";else if(T.signer=[],f.bytes!==Array)T.signer=k.newBuffer(T.signer)}if(o.coins?.length){T.coins=[];for(let C=0;C<o.coins.length;++C)T.coins[C]=S.common.Coin.toObject(o.coins[C],f)}if(o.memo!=null&&o.hasOwnProperty("memo"))T.memo=o.memo;if(o.signer!=null&&o.hasOwnProperty("signer"))T.signer=f.bytes===String?k.base64.encode(o.signer,0,o.signer.length):f.bytes===Array?Array.prototype.slice.call(o.signer):o.signer;return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n.MsgSend=(()=>{function y(t){if(this.amount=[],t){for(let o=Object.keys(t),f=0;f<o.length;++f)if(t[o[f]]!=null)this[o[f]]=t[o[f]]}}return y.prototype.fromAddress=k.newBuffer([]),y.prototype.toAddress=k.newBuffer([]),y.prototype.amount=k.emptyArray,y.create=function(o){return new y(o)},y.encode=function(o,f){if(!f)f=Ln.create();if(o.fromAddress!=null&&Object.hasOwnProperty.call(o,"fromAddress"))f.uint32(10).bytes(o.fromAddress);if(o.toAddress!=null&&Object.hasOwnProperty.call(o,"toAddress"))f.uint32(18).bytes(o.toAddress);if(o.amount?.length)for(let T=0;T<o.amount.length;++T)S.cosmos.base.v1beta1.Coin.encode(o.amount[T],f.uint32(26).fork()).ldelim();return f},y.encodeDelimited=function(o,f){return this.encode(o,f).ldelim()},y.decode=function(o,f){if(!(o instanceof I))o=I.create(o);let T=f===void 0?o.len:o.pos+f,C=new S.types.MsgSend;while(o.pos<T){let H=o.uint32();switch(H>>>3){case 1:C.fromAddress=o.bytes();break;case 2:C.toAddress=o.bytes();break;case 3:if(!C.amount?.length)C.amount=[];C.amount.push(S.cosmos.base.v1beta1.Coin.decode(o,o.uint32()));break;default:o.skipType(H&7);break}}return C},y.decodeDelimited=function(o){if(!(o instanceof I))o=new I(o);return this.decode(o,o.uint32())},y.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress")){if(!(o.fromAddress&&typeof o.fromAddress.length==="number"||k.isString(o.fromAddress)))return"fromAddress: buffer expected"}if(o.toAddress!=null&&o.hasOwnProperty("toAddress")){if(!(o.toAddress&&typeof o.toAddress.length==="number"||k.isString(o.toAddress)))return"toAddress: buffer expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!Array.isArray(o.amount))return"amount: array expected";for(let f=0;f<o.amount.length;++f){let T=S.cosmos.base.v1beta1.Coin.verify(o.amount[f]);if(T)return"amount."+T}}return null},y.fromObject=function(o){if(o instanceof S.types.MsgSend)return o;let f=new S.types.MsgSend;if(o.fromAddress!=null){if(typeof o.fromAddress==="string")k.base64.decode(o.fromAddress,f.fromAddress=k.newBuffer(k.base64.length(o.fromAddress)),0);else if(o.fromAddress.length)f.fromAddress=o.fromAddress}if(o.toAddress!=null){if(typeof o.toAddress==="string")k.base64.decode(o.toAddress,f.toAddress=k.newBuffer(k.base64.length(o.toAddress)),0);else if(o.toAddress.length)f.toAddress=o.toAddress}if(o.amount){if(!Array.isArray(o.amount))throw TypeError(".types.MsgSend.amount: array expected");f.amount=[];for(let T=0;T<o.amount.length;++T){if(typeof o.amount[T]!=="object")throw TypeError(".types.MsgSend.amount: object expected");f.amount[T]=S.cosmos.base.v1beta1.Coin.fromObject(o.amount[T])}}return f},y.toObject=function(o,f){if(!f)f={};let T={};if(f.arrays||f.defaults)T.amount=[];if(f.defaults){if(f.bytes===String)T.fromAddress="";else if(T.fromAddress=[],f.bytes!==Array)T.fromAddress=k.newBuffer(T.fromAddress);if(f.bytes===String)T.toAddress="";else if(T.toAddress=[],f.bytes!==Array)T.toAddress=k.newBuffer(T.toAddress)}if(o.fromAddress!=null&&o.hasOwnProperty("fromAddress"))T.fromAddress=f.bytes===String?k.base64.encode(o.fromAddress,0,o.fromAddress.length):f.bytes===Array?Array.prototype.slice.call(o.fromAddress):o.fromAddress;if(o.toAddress!=null&&o.hasOwnProperty("toAddress"))T.toAddress=f.bytes===String?k.base64.encode(o.toAddress,0,o.toAddress.length):f.bytes===Array?Array.prototype.slice.call(o.toAddress):o.toAddress;if(o.amount?.length){T.amount=[];for(let C=0;C<o.amount.length;++C)T.amount[C]=S.cosmos.base.v1beta1.Coin.toObject(o.amount[C],f)}return T},y.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},y})(),n})();S.cosmos=(()=>{let n={};return n.base=(()=>{let y={};return y.v1beta1=(()=>{let t={};return t.Coin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.Coin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.Coin)return T;let C=new S.cosmos.base.v1beta1.Coin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecCoin=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.denom="",o.prototype.amount="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.denom!=null&&Object.hasOwnProperty.call(T,"denom"))C.uint32(10).string(T.denom);if(T.amount!=null&&Object.hasOwnProperty.call(T,"amount"))C.uint32(18).string(T.amount);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.DecCoin;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.denom=T.string();break;case 2:_.amount=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.denom!=null&&T.hasOwnProperty("denom")){if(!k.isString(T.denom))return"denom: string expected"}if(T.amount!=null&&T.hasOwnProperty("amount")){if(!k.isString(T.amount))return"amount: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecCoin)return T;let C=new S.cosmos.base.v1beta1.DecCoin;if(T.denom!=null)C.denom=String(T.denom);if(T.amount!=null)C.amount=String(T.amount);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.denom="",H.amount="";if(T.denom!=null&&T.hasOwnProperty("denom"))H.denom=T.denom;if(T.amount!=null&&T.hasOwnProperty("amount"))H.amount=T.amount;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.IntProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.int="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.int!=null&&Object.hasOwnProperty.call(T,"int"))C.uint32(10).string(T.int);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.IntProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.int=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.int!=null&&T.hasOwnProperty("int")){if(!k.isString(T.int))return"int: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.IntProto)return T;let C=new S.cosmos.base.v1beta1.IntProto;if(T.int!=null)C.int=String(T.int);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.int="";if(T.int!=null&&T.hasOwnProperty("int"))H.int=T.int;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t.DecProto=(()=>{function o(f){if(f){for(let T=Object.keys(f),C=0;C<T.length;++C)if(f[T[C]]!=null)this[T[C]]=f[T[C]]}}return o.prototype.dec="",o.create=function(T){return new o(T)},o.encode=function(T,C){if(!C)C=Ln.create();if(T.dec!=null&&Object.hasOwnProperty.call(T,"dec"))C.uint32(10).string(T.dec);return C},o.encodeDelimited=function(T,C){return this.encode(T,C).ldelim()},o.decode=function(T,C){if(!(T instanceof I))T=I.create(T);let H=C===void 0?T.len:T.pos+C,_=new S.cosmos.base.v1beta1.DecProto;while(T.pos<H){let A=T.uint32();switch(A>>>3){case 1:_.dec=T.string();break;default:T.skipType(A&7);break}}return _},o.decodeDelimited=function(T){if(!(T instanceof I))T=new I(T);return this.decode(T,T.uint32())},o.verify=function(T){if(typeof T!=="object"||T===null)return"object expected";if(T.dec!=null&&T.hasOwnProperty("dec")){if(!k.isString(T.dec))return"dec: string expected"}return null},o.fromObject=function(T){if(T instanceof S.cosmos.base.v1beta1.DecProto)return T;let C=new S.cosmos.base.v1beta1.DecProto;if(T.dec!=null)C.dec=String(T.dec);return C},o.toObject=function(T,C){if(!C)C={};let H={};if(C.defaults)H.dec="";if(T.dec!=null&&T.hasOwnProperty("dec"))H.dec=T.dec;return H},o.prototype.toJSON=function(){return this.constructor.toObject(this,on.util.toJSONOptions)},o})(),t})(),y})(),n})()});import{Chain as NA}from"@swapkit/helpers";async function Ao(){let{$root:n}=await Promise.resolve().then(() => (lC(),GC)),y=await import("@cosmjs/proto-signing"),t=y.Registry??y.default?.Registry,o=await import("@cosmjs/stargate"),f=o.defaultRegistryTypes??o.default?.defaultRegistryTypes;return new t([...f,["/types.MsgSend",n.types.MsgSend],["/types.MsgDeposit",n.types.MsgDeposit]])}async function cn(n){let y=await import("@cosmjs/stargate"),t=y.AminoTypes??y.default?.AminoTypes,o=n===NA.THORChain?"thorchain":"mayachain";return new t({"/types.MsgDeposit":{aminoType:`${o}/MsgDeposit`,fromAmino:({signer:f,...T})=>({...T,signer:fy(f)}),toAmino:({signer:f,...T})=>({...T,signer:ty(f)})},"/types.MsgSend":{aminoType:`${o}/MsgSend`,fromAmino:({from_address:f,to_address:T,...C})=>({...C,fromAddress:fy(f),toAddress:fy(T)}),toAmino:({fromAddress:f,toAddress:T,...C})=>({...C,from_address:ty(f),to_address:ty(T)})}})}var $t=F(()=>{Ft()});import{AssetValue as zA,Chain as ff,getChainConfig as WC,getRPCUrl as BC,SwapKitError as DA}from"@swapkit/helpers";function bt(n){let{assetValue:y,recipient:t,memo:o,sender:f,asSignable:T,asAminoMessage:C}=n;if(t)return LC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,recipient:t,sender:f});return QC({asAminoMessage:C,asSignable:T,assetValue:y,memo:o,sender:f})}async function LC({sender:n,recipient:y,assetValue:t,memo:o="",asSignable:f=!0,asAminoMessage:T=!1,sequence:C,accountNumber:H}){let _=t.chain,A=await BC(_),G=await XC({rpcUrl:A,sender:n}),{chainId:Q}=WC(_),w=Et({assetValue:t,recipient:y,sender:n}),B=f?await hn(T?w:mn(w),_):w;return{accountNumber:H||G.accountNumber,chainId:Q,fee:In(_),memo:o,msgs:[B],sequence:C||G.sequence}}async function QC({sender:n,assetValue:y,memo:t="",asSignable:o=!0,asAminoMessage:f=!1,sequence:T,accountNumber:C}){let H=y.chain,_=await BC(H),A=await XC({rpcUrl:_,sender:n}),{chainId:G}=WC(H),Q=vt({assetValue:y,memo:t,sender:n}),w=o?await hn(f?Q:mn(Q),H):Q;return{accountNumber:C||A.accountNumber,chainId:G,fee:In(H),memo:t,msgs:[w],sequence:T||A.sequence}}function mn(n){if(n.type==="thorchain/MsgSend"||n.type==="mayachain/MsgSend")return n;return{...n,value:{...n.value,coins:n.value.coins.map((y)=>{let t=zA.from({asset:y.asset}),o=(t.isSynthetic?t.symbol.split("/")?.[1]:t.symbol)?.toUpperCase(),f=(t.isSynthetic?t.symbol.split("/")?.[0]:t.chain)?.toUpperCase();return{...y,asset:{chain:f,symbol:o,synth:t.isSynthetic,ticker:t.ticker}}})}}}async function Hy({chain:n,memo:y,msgs:t}){let o=await Ao(),f=await cn(n),T={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:y,messages:t.map((C)=>f.fromAmino(C))}};return o.encode(T)}var OA,xA,Et=({sender:n,recipient:y,assetValue:t})=>{return{type:`${t.chain===ff.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:t.getBaseValue("string"),denom:jn(t.symbol,!0)}],from_address:n,to_address:y}}},vt=({sender:n,assetValue:y,memo:t=""})=>{return{type:`${y.chain===ff.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:y.getBaseValue("string"),asset:Ty(y)}],memo:t,signer:n}}},tf=({sender:n,recipient:y,assetValue:t,memo:o})=>{return!y?vt({assetValue:t,memo:o,sender:n}):Et({assetValue:t,recipient:y,sender:n})},hn=async(n,y)=>{return(await cn(y)).fromAmino(n)},XC=async({rpcUrl:n,sender:y})=>{let o=await(await Pn(n)).getAccount(y);if(!o)throw new DA("toolbox_cosmos_account_not_found",{sender:y});return o};var MC=F(()=>{Cy();$t();OA=In(ff.THORChain).gas,xA=In(ff.Maya).gas});var ZC=()=>{};var JC=F(()=>{ZC()});var Vt=F(()=>{Ft();MC();$t();JC()});import{stringToPath as RA}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as SA}from"@cosmjs/proto-signing";import{base64 as ct,bech32 as Kt}from"@scure/base";import{AssetValue as it,applyFeeMultiplier as YC,Chain as fn,CosmosChainPrefixes as RC,DerivationPath as FA,derivationPathToString as NC,FeeOption as ht,getChainConfig as uA,getRPCUrl as _y,NetworkDerivationPath as kA,SwapKitError as zo,SwapKitNumber as jt,updateDerivationPath as pA}from"@swapkit/helpers";import{SwapKitApi as SC}from"@swapkit/helpers/api";import{match as IA,P as zC}from"ts-pattern";async function rt(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}async function mt({phrase:n,prefix:y,...t}){let o="derivationPath"in t?t.derivationPath:`${FA[t.chain]}/${t.index}`;return await SA.fromMnemonic(n,{hdPaths:[RA(o)],prefix:y})}async function PA({privateKey:n,prefix:y}){let t=await import("@cosmjs/proto-signing");return(t.DirectSecp256k1Wallet??t.default?.DirectSecp256k1Wallet).fromKey(n,y)}function FC(n){return async function({signature:t,message:o,address:f}){let T=await n(f);if(!T?.pubkey)throw new zo("toolbox_cosmos_verify_signature_no_pubkey");let C=await import("@cosmjs/crypto"),H=C.Secp256k1Signature??C.default?.Secp256k1Signature,_=C.Secp256k1??C.default?.Secp256k1,A=H.fromFixedLength(ct.decode(t));return _.verifySignature(A,ct.decode(o),T.pubkey.value)}}function Ay({chain:n,...y}){let t=RC[n],o="index"in y?y.index||0:0,f=NC("derivationPath"in y&&y.derivationPath?y.derivationPath:pA(kA[n],{index:o})),T;async function C(){if(T)return T;return T=await IA(y).with({phrase:zC.string},({phrase:B})=>mt({derivationPath:f,phrase:B,prefix:t})).with({signer:zC.any},({signer:B})=>B).otherwise(()=>{return}),T}async function H(B){let W=await _y(n);return(await Pn(W)).getAccount(B)}async function _(){let B=await C(),[W]=await B?.getAccounts()||[];return W?.address}async function A(){let B=await C(),[W]=await B?.getAccounts()||[];if(!W?.pubkey)throw new zo("toolbox_cosmos_signer_not_defined");return ct.encode(W?.pubkey)}async function G(B){let W=await C(),l=await _(),M=await _y(n);if(!(W&&l))throw new zo("toolbox_cosmos_signer_not_defined");return await(await _o(M,W)).sign(l,B.msgs,B.fee,B.memo,{accountNumber:B.accountNumber,chainId:B.chainId,sequence:B.sequence})}async function Q(B){let W=await C(),l=await _(),M=await _y(n);if(!(W&&l))throw new zo("toolbox_cosmos_signer_not_defined");let Z=await(await _o(M,W)).signAndBroadcast(l,B.msgs,B.fee,B.memo);if(Z.code!==0)throw new zo("core_swap_transaction_error",{code:Z.code,message:Z.rawLog});return Z.transactionHash}async function w({recipient:B,assetValue:W,memo:l="",feeRate:M,feeOptionKey:N=ht.Fast}){let Z=await C(),z=await _();if(!(Z&&z))throw new zo("toolbox_cosmos_signer_not_defined");let X=await _y(n),U=it.from({chain:n}),q=Ty(U),L=M||vA((await OC(n,DC[n]))[N],q),Y=await _o(X,Z),D=jn(W.symbol),J=[{amount:W.getBaseValue("string"),denom:D}],{transactionHash:O}=await Y.sendTokens(z,B,J,L,l);return O}return{createPrivateKeyFromPhrase:VA(f),createTransaction:It,fetchFeeRateFromSwapKit:rt,getAccount:H,getAddress:_,getBalance:async(B,W)=>{let l=await xC(n)(B),M=await Promise.all(l.filter(({denom:N})=>N&&!N.includes("IBC/")&&!([fn.THORChain,fn.Maya].includes(n)&&N.split("-").length>2)).map(({denom:N,amount:Z})=>{let z=[fn.THORChain,fn.Maya].includes(n)&&(N.includes("/")||N.includes("˜"))?`${n}.${N}`:N;return Pt(z,Z)}));if(M.length===0)return[it.from({chain:n})];return M},getBalanceAsDenoms:xC(n),getFees:()=>OC(n,DC[n]),getPubKey:A,getSignerFromPhrase:({phrase:B,derivationPath:W})=>mt({derivationPath:NC(W),index:o,phrase:B,prefix:t}),getSignerFromPrivateKey:async(B)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(B,t)},signAndBroadcastTransaction:Q,signTransaction:G,transfer:w,validateAddress:uC(n),verifySignature:FC(H)}}async function $A(n,y){try{let o=(await SC.getGasRate()).find((f)=>f.chainId===n)?.value;return o?Number.parseFloat(o):y}catch{return y}}function EA({assetValue:{chain:n}}){return it.from({chain:n,value:bA(n)})}async function OC(n,y){let{chainId:t,baseDecimal:o}=uA(n),f=await rt(t,y);return{average:jt.fromBigInt(BigInt(f),o),fast:jt.fromBigInt(BigInt(YC(f,ht.Fast,!0)),o),fastest:jt.fromBigInt(BigInt(YC(f,ht.Fastest,!0)),o)}}function vA(n,y){return{amount:[{amount:n.getBaseValue("string"),denom:y}],gas:"200000"}}function bA(n){return{[fn.Cosmos]:0.007,[fn.Kujira]:0.02,[fn.Noble]:0.01,[fn.THORChain]:0.02,[fn.Maya]:0.02,[fn.Harbor]:0.02}[n]||0}function uC(n){let y=RC[n];return function(o){if(!o.startsWith(y))return!1;try{let{prefix:f,words:T}=Kt.decode(o);return Kt.encode(f,T)===o.toLocaleLowerCase()}catch{return!1}}}function xC(n){return async function(t){let o=await _y(n);return(await(await Pn(o)).getAllBalances(t)).map((H)=>({...H,denom:H.denom.includes("/")?H.denom.toUpperCase():H.denom}))}}function VA(n){return async function(t){let o=await import("@cosmjs/crypto"),f=o.stringToPath??o.default?.stringToPath,T=o.Slip10Curve??o.default?.Slip10Curve,C=o.Slip10??o.default?.Slip10,H=o.EnglishMnemonic??o.default?.EnglishMnemonic,_=o.Bip39??o.default?.Bip39,A=new H(t),G=await _.mnemonicToSeed(A),{privkey:Q}=C.derivePath(T.Secp256k1,G,f(n));return Q}}var DC;var Tf=F(()=>{Cy();DC={[fn.Cosmos]:1000,[fn.Kujira]:1000,[fn.Noble]:1000,[fn.THORChain]:5000000,[fn.Maya]:5000000,[fn.Harbor]:5000000}});import{base64 as Uo}from"@scure/base";import{Chain as KA,CosmosChainPrefixes as jA,derivationPathToString as cA,FeeOption as gt,getChainConfig as kC,getRPCUrl as $C,NetworkDerivationPath as iA,RequestClient as hA,SKConfig as mA,SwapKitError as pC,SwapKitNumber as IC,updateDerivationPath as rA}from"@swapkit/helpers";import{match as gA,P as PC}from"ts-pattern";function dA({prefix:n,derivationPath:y}){return async function(o,f=0){let T=await import("@cosmjs/amino"),C=T.Secp256k1HdWallet??T.default?.Secp256k1HdWallet,H=await import("@cosmjs/crypto"),_=H.stringToPath??H.default?.stringToPath;return C.fromMnemonic(o,{hdPaths:[_(`${y}/${f}`)],prefix:n})}}function aA(n){return Uo.encode(n)}function sA(n){return async function({wallet:t,tx:o}){let{msgs:f,accountNumber:T,sequence:C,chainId:H,fee:_,memo:A}=typeof o==="string"?JSON.parse(o):o,G=(await t.getAccounts())?.[0]?.address||"",Q=await cn(n),w=await Ao(),B=await pt(t,{aminoTypes:Q,registry:w}),W=[];for(let N of f){let Z=await hn(N,n);W.push(Z)}let{signatures:[l]}=await B.sign(G,W,_,A,{accountNumber:T,chainId:H,sequence:C});return{bodyBytes:await Hy({chain:n,memo:A,msgs:f.map(mn)}),signature:aA(l)}}}function eA({prefix:n,chain:y}){return async function(o,f,T,C,H){let _=await $C(y),{encodeSecp256k1Pubkey:A,pubkeyToAddress:G}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:Q}=(await import("@cosmjs/stargate")).default,{sequence:w,fee:B}=JSON.parse(o),W=await EC(T,C),l=f.map((Z)=>[G(A(Uo.decode(Z.pubKey)),n),Uo.decode(Z.signature)]),M=await Pn(_),{transactionHash:N}=await M.broadcastTx(Q(W,w,B,H,new Map(l)));return N}}async function EC(n,y,t=!0){let{createMultisigThresholdPubkey:o,encodeSecp256k1Pubkey:f}=(await import("@cosmjs/amino")).default;return o(n.map((T)=>f(Uo.decode(T))),y,t)}function n5(n){return Uo.decode(n)}async function o5({privateKey:n,message:y}){let{Secp256k1:t}=(await import("@cosmjs/crypto")).default,o=await t.createSignature(Uo.decode(y),n);return Uo.encode(Buffer.concat([o.r(32),o.s(32)]))}function dt({chain:n,...y}){let{nodeUrl:t}=kC(n),{isStagenet:o}=mA.get("envs"),f=n===KA.THORChain,T=`${o?"s":""}${jA[n]}`,C="index"in y?y.index||0:0,H="derivationPath"in y&&y.derivationPath?y.derivationPath:rA(iA[n],{index:C}),_=Ay({chain:n,...y}),A=In(n);async function G(){let w,B=`${t}/${f?"thorchain":"mayachain"}/constants`;try{let{int_64_values:{NativeTransactionFee:W}}=await hA.get(B);if(!W||Number.isNaN(W)||W<0)throw new pC("toolbox_cosmos_invalid_fee",{nativeFee:W.toString()});w=new IC(W)}catch{w=new IC({decimal:kC(n).baseDecimal,value:f?0.02:1})}return{[gt.Average]:w,[gt.Fast]:w,[gt.Fastest]:w}}async function Q({assetValue:w,memo:B="",recipient:W}){let l=await $C(n),M=await gA(y).with({phrase:PC.string},({phrase:O})=>_.getSignerFromPhrase({derivationPath:H,phrase:O})).with({signer:PC.any},({signer:O})=>O).otherwise(()=>{return}),{TxRaw:N}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),Z=(await M?.getAccounts())?.[0]?.address;if(!(Z&&M))throw new pC("toolbox_cosmos_no_signer");let z="signAmino"in M,X=await Ao(),U=await cn(n),q=await _o(l,M,{aminoTypes:U,registry:X}),L=tf({assetValue:w,memo:B,recipient:W,sender:Z});if(z){let O=await hn(L,n),{signatures:x,authInfoBytes:u}=await q.sign(Z,[O],A,B),p=N.encode({authInfoBytes:u,bodyBytes:await Hy({chain:n,memo:B,msgs:[L].map(mn)}),signatures:x}).finish();return(await q.broadcastTx(p)).transactionHash}let Y=mn(L),D=await hn(Y,n);return(await q.signAndBroadcast(Z,[D],A,B)).transactionHash}return{..._,broadcastMultisigTx:eA({chain:n,prefix:T}),buildAminoMsg:tf,buildEncodedTxBody:Hy,convertToSignable:hn,createDefaultAminoTypes:()=>cn(n),createDefaultRegistry:Ao,createMultisig:EC,createTransaction:bt,deposit:Q,getFees:G,importSignature:n5,parseAminoMessageForDirectSigning:mn,pubkeyToAddress:async(w)=>{let{pubkeyToAddress:B}=(await import("@cosmjs/amino")).default;return B(w,T)},secp256k1HdWalletFromMnemonic:dA({derivationPath:cA(H),prefix:T}),signMultisigTx:sA(n),signWithPrivateKey:o5,transfer:Q}}var at=F(()=>{Vt();Cy();Tf()});import{Chain as Uy,SwapKitError as y5}from"@swapkit/helpers";var f5=(n,y)=>{switch(n){case Uy.Cosmos:case Uy.Kujira:case Uy.Noble:return Ay({chain:n,...y});case Uy.Maya:case Uy.THORChain:return dt({chain:n,...y});default:throw new y5("toolbox_cosmos_not_supported",{chain:n})}};var vC=F(()=>{Tf();at();Tf();at()});var Cf={};nn(Cf,{verifySignature:()=>FC,transferMsgAmino:()=>Et,toBase64:()=>QA,parseAminoMessageForDirectSigning:()=>mn,getSignerFromPrivateKey:()=>PA,getSignerFromPhrase:()=>mt,getMsgSendDenom:()=>jn,getFeeRateFromSwapKit:()=>$A,getDenomWithChain:()=>Ty,getDefaultChainFee:()=>In,getCosmosToolbox:()=>f5,getCosmosAddressValidator:()=>uC,getAssetFromDenom:()=>Pt,fromBase64:()=>MA,fetchFeeRateFromSwapKit:()=>rt,estimateTransactionFee:()=>EA,depositMsgAmino:()=>vt,createTransaction:()=>bt,createThorchainToolbox:()=>dt,createStargateClient:()=>Pn,createSigningStargateClient:()=>_o,createOfflineStargateClient:()=>pt,createDefaultRegistry:()=>Ao,createDefaultAminoTypes:()=>cn,createCosmosToolbox:()=>Ay,cosmosCreateTransaction:()=>It,convertToSignable:()=>hn,buildTransferTx:()=>LC,buildEncodedTxBody:()=>Hy,buildDepositTx:()=>QC,buildAminoMsg:()=>tf,bech32ToBase64:()=>fy,base64ToBech32:()=>ty,YUM_KUJIRA_FACTORY_DENOM:()=>AC,USK_KUJIRA_FACTORY_DENOM:()=>kt,THORCHAIN_GAS_VALUE:()=>OA,MAYA_GAS_VALUE:()=>xA,DEFAULT_NOBLE_FEE_MAINNET:()=>qC,DEFAULT_KUJI_FEE_MAINNET:()=>wC,DEFAULT_COSMOS_FEE_MAINNET:()=>UC});var Hf=F(()=>{Vt();vC();Cy()});function t5({builder:n,grouping:y="na",orders:t}){return{builder:n,grouping:y,orders:t,type:"order"}}function T5({cancels:n}){return{cancels:n,type:"cancel"}}function C5({cancels:n}){return{cancels:n,type:"cancelByCloid"}}function H5({oid:n,order:y}){return{oid:n,order:y,type:"modify"}}function _5({modifies:n}){return{modifies:n,type:"batchModify"}}function A5({asset:n,isCross:y,leverage:t}){return{asset:n,isCross:y,leverage:t,type:"updateLeverage"}}function U5({asset:n,isBuy:y,ntli:t}){return{asset:n,isBuy:y,ntli:t,type:"updateIsolatedMargin"}}function w5({asset:n,leverage:y}){return{asset:n,leverage:y,type:"topUpIsolatedOnlyMargin"}}function q5({time:n}){return{time:n,type:"scheduleCancel"}}function G5({amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f}){return{amount:n,hyperliquidChain:y,nonce:t,signatureChainId:o,toPerp:f,type:"usdClassTransfer"}}function l5({amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:_}){return{amount:n,destination:y,destinationDex:t,fromSubAccount:o,hyperliquidChain:f,nonce:T,signatureChainId:C,sourceDex:H,token:_,type:"sendAsset"}}function W5({agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f}){return{agentAddress:n,agentName:y,hyperliquidChain:t,nonce:o,signatureChainId:f,type:"approveAgent"}}function B5({builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f}){return{builder:n,hyperliquidChain:y,maxFeeRate:t,nonce:o,signatureChainId:f,type:"approveBuilderFee"}}function X5({hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,validator:f,wei:T}){return{hyperliquidChain:n,isUndelegate:y,nonce:t,signatureChainId:o,type:"tokenDelegate",validator:f,wei:T}}import{SwapKitError as st}from"@swapkit/helpers";import{keccak256 as L5,Signature as Q5}from"ethers";function qn(...n){let y=n.reduce((f,T)=>f+T.length,0),t=new Uint8Array(y),o=0;for(let f of n)t.set(f,o),o+=f.length;return t}function z5(n,y,t){if(t<y)return new Uint8Array([n+t]);if(t<=255)return new Uint8Array([n+y,t]);if(t<=65535)return new Uint8Array([n+y+1,t>>8,t&255]);return new Uint8Array([n+y+2,t>>>24&255,t>>>16&255,t>>>8&255,t&255])}function rn(n,y){let t=new Uint8Array(y),o=n;for(let f=y-1;f>=0;f-=1)t[f]=Number(o&0xffn),o>>=8n;return t}function bC(n){if(n>=0n){if(n<=0x7fn)return new Uint8Array([Number(n)]);if(n<=0xffn)return new Uint8Array([204,Number(n)]);if(n<=0xffffn)return qn(new Uint8Array([205]),rn(n,2));if(n<=0xffffffffn)return qn(new Uint8Array([206]),rn(n,4));return qn(new Uint8Array([207]),rn(n,8))}if(n>=-32n)return new Uint8Array([256+Number(n)]);if(n>=-128n)return new Uint8Array([208,256+Number(n)]);if(n>=-32768n)return qn(new Uint8Array([209]),rn(BigInt.asUintN(16,n),2));if(n>=-2147483648n)return qn(new Uint8Array([210]),rn(BigInt.asUintN(32,n),4));return qn(new Uint8Array([211]),rn(BigInt.asUintN(64,n),8))}function jC(n){let y=N5.encode(n);if(y.length<32)return qn(new Uint8Array([160+y.length]),y);return qn(z5(217,0,y.length),y)}function D5(n){let y=n.map((o)=>et(o)),t=n.length<16?new Uint8Array([144+n.length]):n.length<=65535?new Uint8Array([220,n.length>>8,n.length&255]):new Uint8Array([221,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return qn(t,...y)}function O5(n){let y=Object.entries(n).filter(([,o])=>typeof o<"u"),t=y.length<16?new Uint8Array([128+y.length]):y.length<=65535?new Uint8Array([222,y.length>>8,y.length&255]):new Uint8Array([223,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return qn(t,...y.flatMap(([o,f])=>[jC(o),et(f)]))}function et(n){if(n===null)return new Uint8Array([192]);if(typeof n==="boolean")return new Uint8Array([n?195:194]);if(typeof n==="string")return jC(n);if(typeof n==="number"){if(!Number.isFinite(n)||!Number.isInteger(n))throw new st("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return bC(BigInt(n))}if(typeof n==="bigint")return bC(n);if(n instanceof Uint8Array){let y=n.length<=255?new Uint8Array([196,n.length]):n.length<=65535?new Uint8Array([197,n.length>>8,n.length&255]):new Uint8Array([198,n.length>>>24&255,n.length>>>16&255,n.length>>>8&255,n.length&255]);return qn(y,n)}if(Array.isArray(n))return D5(n);if(typeof n==="object")return O5(n);throw new st("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(n)}`})}function x5(n){let y=n.startsWith("0x")?n.slice(2):n;if(y.length%2!==0||/[^a-fA-F0-9]/u.test(y))throw new st("helpers_invalid_params",{hexValue:n});let t=new Uint8Array(y.length/2);for(let o=0;o<y.length;o+=2)t[o/2]=Number.parseInt(y.slice(o,o+2),16);return t}function cC(n){return{domain:M5,message:{connectionId:n,source:"a"},primaryType:"Agent",types:{Agent:[...Z5.Agent]}}}function iC(n){let y=Y5[n.type],t=J5[n.type],{type:o,...f}=n;return{domain:{chainId:Number.parseInt(f.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:VC,version:"1"},message:{...f,hyperliquidChain:f.hyperliquidChain||KC},primaryType:y,types:{[y]:t}}}function hC(n){let y=Q5.from(n);return{r:y.r,s:y.s,v:y.v}}function mC(n,y,{expiresAfter:t,vaultAddress:o}={}){let f=et(n),T=rn(BigInt(y),8),C=o?qn(new Uint8Array([1]),x5(o.toLowerCase())):new Uint8Array([0]),H=typeof t==="number"?qn(new Uint8Array([0]),rn(BigInt(t),8)):new Uint8Array;return L5(qn(f,T,C,H))}function rC(n){let y=n.hyperliquidChain||KC;switch(n.type){case"approveAgent":return{...n,agentAddress:n.agentAddress.toLowerCase(),hyperliquidChain:y};case"approveBuilderFee":return{...n,builder:n.builder.toLowerCase(),hyperliquidChain:y};case"sendAsset":return{...n,destination:n.destination.toLowerCase(),fromSubAccount:n.fromSubAccount.toLowerCase(),hyperliquidChain:y};case"tokenDelegate":return{...n,hyperliquidChain:y,validator:n.validator.toLowerCase()};case"usdClassTransfer":return{...n,hyperliquidChain:y};default:return n}}var VC="0x0000000000000000000000000000000000000000",M5,Z5,KC="Mainnet",J5,Y5,N5;var gC=F(()=>{M5={chainId:1337,name:"Exchange",verifyingContract:VC,version:"1"},Z5={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},J5={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"}]},Y5={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},N5=new TextEncoder});import{AssetValue as yT,Chain as R5,derivationPathToString as S5,getChainConfig as n1,getRPCUrl as F5,NetworkDerivationPath as u5,RequestClient as wy,SwapKitError as Do,updateDerivationPath as k5}from"@swapkit/helpers";import{HDNodeWallet as p5}from"ethers";import{match as I5,P as nT}from"ts-pattern";function Jn(n,y){if(!tT(n))throw new Do(y,{address:n});return n.toLowerCase()}async function wo(n){let y=await _f();return wy.post(`${y}/info`,{json:n})}function b5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"clearinghouseState",user:Jn(y,"helpers_invalid_params")})}function V5({user:n}){return wo({type:"spotClearinghouseState",user:Jn(n,"helpers_invalid_params")})}function K5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"openOrders",user:Jn(y,"helpers_invalid_params")})}function j5({dex:n,user:y}){return wo({...n?{dex:n}:{},type:"frontendOpenOrders",user:Jn(y,"helpers_invalid_params")})}function c5({oidOrCloid:n,user:y}){return wo({oid:n,type:"orderStatus",user:Jn(y,"helpers_invalid_params")})}function i5({aggregateByTime:n,user:y}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},type:"userFills",user:Jn(y,"helpers_invalid_params")})}function h5({aggregateByTime:n,endTime:y,startTime:t,user:o}){return wo({...typeof n==="boolean"?{aggregateByTime:n}:{},...typeof y==="number"?{endTime:y}:{},startTime:t,type:"userFillsByTime",user:Jn(o,"helpers_invalid_params")})}function sC({coin:n,token:y,value:t}){if(!t||Number(t)<=0)return null;let o=n?.toUpperCase()||`TOKEN-${y||"UNKNOWN"}`,f=P5[o]||o1;return new yT({decimal:f,identifier:`${$n}.${o}`,value:t})}function m5(n){let y=new Map;for(let t of n){let o=t.toString({includeSynthProtocol:!0}),f=y.get(o);y.set(o,f?f.add(t):t)}if(![...y.values()].some((t)=>t.isGasAsset)){let t=yT.from({chain:$n,value:0});y.set(t.toString({includeSynthProtocol:!0}),t)}return[...y.values()]}async function _f(){try{return await F5($n)}catch{let[n]=n1($n).rpcUrls;if(!n)throw new Do("helpers_chain_no_public_or_set_rpc_url",{chain:$n});return n}}async function fT(){return`${await _f()}/exchange`}function r5(n){let y=v5[n.type],{type:t,...o}=n,f=E5[t];return{domain:{chainId:Number.parseInt(n.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:$5,version:"1"},message:o,primaryType:y,types:{[y]:f}}}async function y1({action:n,expiresAfter:y,nonce:t,vaultAddress:o}){let f=t||Date.now(),T=o?Jn(o,"helpers_invalid_params"):void 0,C=await fT(),H=mC(n,f,{expiresAfter:y,vaultAddress:T});return{action:n,endpoint:C,expiresAfter:y,nonce:f,typedData:cC(H),vaultAddress:T}}async function f1({action:n,nonce:y,signatureChainId:t}){let o=y||n.nonce||Date.now(),f=t||n.signatureChainId||"0xa4b1",T=rC({...n,nonce:o,signatureChainId:f});return{action:T,endpoint:await fT(),nonce:o,typedData:iC(T)}}async function oT({assetValue:n,recipient:y,sender:t,signatureChainId:o,time:f}){let T=Jn(y,"core_transaction_invalid_recipient_address"),C=Jn(t,"core_transaction_invalid_sender_address"),H=await fT(),_=n.getValue("string"),A=f||Date.now(),G=n.ticker==="USDC"?{amount:_,destination:T,hyperliquidChain:dC,signatureChainId:o||aC,time:A,type:"usdSend"}:{amount:_,destination:T,hyperliquidChain:dC,signatureChainId:o||aC,time:A,token:n.address?n.address:(()=>{throw new Do("helpers_invalid_params",{asset:n.toString(),from:C})})(),type:"spotSend"};return{action:G,endpoint:H,nonce:A,typedData:r5(G)}}async function eC(n){let y=await wy.post(n.endpoint,{json:{action:n.action,...typeof n.expiresAfter==="number"?{expiresAfter:n.expiresAfter}:{},nonce:n.nonce,signature:n.signature,...n.vaultAddress?{vaultAddress:n.vaultAddress}:{}}});if(y.status!=="ok")throw new Do("core_transaction_failed",{response:y});return y}async function g5(n,y){let t=await _f(),o=y-5000;for(let f=0;f<5;f++){if(f>0)await new Promise((T)=>setTimeout(T,1000));try{let T=await wy.post(`${t}/info`,{json:{startTime:o,type:"userNonFundingLedgerUpdates",user:n}}),C=Array.isArray(T)?T.find((H)=>H.time&&H.time>=y&&(H.delta?.type==="spotTransfer"||H.delta?.type==="internalTransfer")):void 0;if(C?.hash)return C.hash}catch{}}return""}function tT(n){return n.startsWith("0x")&&eo(n)}function d5(n){let y=wn($n),t=n&&"index"in n?n.index||0:0,o=S5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:k5(u5[$n],{index:t})),f,T=!1;function C(){if(T)return f;return f=I5(n).with({phrase:nT.string},({phrase:w})=>{return p5.fromPhrase(w,void 0,o)}).with({signer:nT.not(nT.nullish)},({signer:w})=>w).otherwise(()=>{return}),T=!0,f}async function H(){let w=C();return w?await w.getAddress():""}async function _(w){let B=C();if(!B)throw new Do("toolbox_hypercore_no_signer");let W=await B.signTypedData(w.typedData.domain,w.typedData.types,w.typedData.message);return{action:w.action,endpoint:w.endpoint,nonce:w.nonce,signature:hC(W),..."expiresAfter"in w?{expiresAfter:w.expiresAfter}:{},..."vaultAddress"in w?{vaultAddress:w.vaultAddress}:{}}}async function A(w){let B=Jn(w,"helpers_invalid_params");try{let W=await _f(),[l,M]=await Promise.all([wy.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:B}}),wy.post(`${W}/info`,{json:{type:"clearinghouseState",user:B}})]),N=(l.spotState?.balances||l.balances||[]).map(({coin:z,token:X,total:U})=>sC({coin:z,token:X,value:U})).filter((z)=>!!z),Z=sC({coin:"USDC",value:M.withdrawable||M.marginSummary?.accountValue||M.marginSummary?.totalRawUsd});return m5(Z?[...N,Z]:N)}catch{return y(B)}}async function G(w){let B=C();if(!B)throw new Do("toolbox_hypercore_no_signer");let W=w.sender||await B.getAddress(),l=await oT({...w,feeRate:0,sender:W}),M=await _(l);return await eC(M),g5(W,l.nonce)}function Q(){return yT.from({chain:$n,value:0})}return{broadcastTransaction:eC,createL1ActionRequest:y1,createTransaction:oT,createUserSignedActionRequest:f1,estimateTransactionFee:Q,getAddress:H,getBalance:A,getState:{clearinghouse:b5,frontendOpenOrders:j5,openOrders:K5,orderStatus:c5,spotClearinghouse:V5,userFills:i5,userFillsByTime:h5},signTransaction:_,transfer:G,validateAddress:tT}}var $n,o1,P5,dC="Mainnet",aC="0xa4b1",$5="0x0000000000000000000000000000000000000000",E5,v5;var t1=F(()=>{Nt();kn();gC();$n=R5.HyperCore,{baseDecimal:o1}=n1($n),P5={HYPE:o1,USDC:6,USDT:6},E5={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}],usdSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},v5={spotSend:"HyperliquidTransaction:SpotSend",usdSend:"HyperliquidTransaction:UsdSend"}});var TT={};nn(TT,{validateHyperCoreAddress:()=>tT,getHyperCoreToolbox:()=>d5,createUserSignedActionRequest:()=>f1,createTransaction:()=>oT,createL1ActionRequest:()=>y1,buildUsdClassTransferAction:()=>G5,buildUpdateLeverageAction:()=>A5,buildUpdateIsolatedMarginAction:()=>U5,buildTopUpIsolatedOnlyMarginAction:()=>w5,buildTokenDelegateAction:()=>X5,buildSendAssetAction:()=>l5,buildScheduleCancelAction:()=>q5,buildOrderAction:()=>t5,buildModifyAction:()=>H5,buildCancelByCloidAction:()=>C5,buildCancelAction:()=>T5,buildBatchModifyAction:()=>_5,buildApproveBuilderFeeAction:()=>B5,buildApproveAgentAction:()=>W5});var CT=F(()=>{t1()});import{PublicKey as gn}from"@solana/web3.js";import{AssetValue as Af,Chain as vn,DerivationPath as a5,derivationPathToString as s5,getChainConfig as _1,getRPCUrl as e5,NetworkDerivationPath as nU,SwapKitError as Oo,updateDerivationPath as oU}from"@swapkit/helpers";import{match as yU,P as T1}from"ts-pattern";async function A1(n){let y=Af.from({address:n,chain:vn.Solana});if(y.symbol!=="UNKNOWN")return{decimals:y.decimal||0,id:n,logoURI:y.getIconUrl(),name:y.symbol,symbol:y.ticker};let t=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(n)}`;try{let o=await fetch(t);if(!o.ok)return null;let f=await o.json();if(!Array.isArray(f)||f.length===0)return null;return f.find((C)=>C.id===n)||null}catch{return null}}async function fU(n){let y=await En(),{PublicKey:t}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:o}=await import("@solana/spl-token"),f=new t(n),{baseDecimal:T}=_1(vn.Solana),C=await y.getBalance(f),H=[Af.from({chain:vn.Solana,fromBaseDecimal:T,value:C||0})],_=await y.getParsedTokenAccountsByOwner(f,{programId:o});for(let{account:A}of _.value){let G=A.data.parsed.info,Q=G.mint,w=G.tokenAmount.amount;if(Number(w)===0)continue;let B=await A1(Q),W=B?.symbol||"UNKNOWN",l=B?.decimals||G.tokenAmount.decimals;H.push(Af.from({asset:`${vn.Solana}.${W}-${Q}`,fromBaseDecimal:l,value:w}))}return H}function _T(n){try{let y=new gn(n);return gn.isOnCurve(y.toBytes())}catch{return!1}}function tU(n){let y=n&&"index"in n?n.index||0:0,t=s5(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:oU(nU[vn.Solana],{index:y})),o;async function f(){if(o)return o;return o=await yU(n).with({phrase:T1.string},({phrase:C})=>HT({derivationPath:t,phrase:C})).with({signer:T1.any},({signer:C})=>C).otherwise(()=>{return}),o}async function T(){let C=await f();return C?.publicKey?H1(C.publicKey):""}return{broadcastTransaction:Uf(En),createKeysForPath:HT,createTransaction:AT(En),createTransactionFromInstructions:_U,estimateTransactionFee:TU(En),getAddress:T,getAddressFromPubKey:H1,getBalance:wn(vn.Solana),getBalanceFromRPC:fU,getConnection:En,getPubkeyFromAddress:(C)=>new gn(C),signAndBroadcastTransaction:async(C)=>{let H=await C1(En,f)(C);return Uf(En)(H)},signTransaction:C1(En,f),transfer:AU(En,f),validateAddress:_T}}function TU(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let C=await n(),_=(await AT(n)({assetValue:t,isProgramDerivedAddress:f,memo:o,recipient:y,sender:T})).compileMessage(),A=await C.getFeeForMessage(_);if(A.value===null)throw new Oo("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:G}=_1(vn.Solana);return Af.from({chain:vn.Solana,fromBaseDecimal:G,value:A.value})}}async function En(){let{Connection:n}=await import("@solana/web3.js"),y=await e5(vn.Solana);return new n(y,{commitment:"confirmed",fetchMiddleware:(t,o,f)=>{let T={};for(let[C,H]of Object.entries(o?.headers??{})){let _=C.toLowerCase();if(_!=="pragma"&&_!=="solana-client")T[C]=H}f(t,{...o,headers:T})}})}function CU(n){return async({assetValue:y,recipient:t,sender:o,isProgramDerivedAddress:f})=>{let T=await n(),C=new gn(o);if(y.isGasAsset){let{Transaction:H,SystemProgram:_}=await import("@solana/web3.js");return new H().add(_.transfer({fromPubkey:C,lamports:y.getBaseValue("number"),toPubkey:new gn(t)}))}if(y.address)return HU({amount:y.getBaseValue("number"),connection:T,decimals:y.decimal,from:C,isProgramDerivedAddress:f,recipient:t,tokenAddress:y.address});return}}async function HU({tokenAddress:n,recipient:y,from:t,connection:o,amount:f,decimals:T,isProgramDerivedAddress:C}){let{getAssociatedTokenAddress:H,getAccount:_,createAssociatedTokenAccountInstruction:A,createTransferCheckedInstruction:G}=await import("@solana/spl-token"),{Transaction:Q}=await import("@solana/web3.js"),w=new Q,B=new gn(n),W=await H(B,t),l=new gn(y),M=await H(B,l,C),N=!1;try{await _(o,M),N=!0}catch{}if(!N)w.add(A(t,M,l,B));return w.add(G(W,B,M,t,f,T)),w}function AT(n){return async({recipient:y,assetValue:t,memo:o,isProgramDerivedAddress:f,sender:T})=>{let{createMemoInstruction:C}=await import("@solana/spl-memo"),H=new gn(T);if(!(f||_T(y)))throw new Oo("core_transaction_invalid_recipient_address");let _=await n(),A=await CU(n)({assetValue:t,isProgramDerivedAddress:f,recipient:y,sender:T});if(!A)throw new Oo("core_transaction_invalid_sender_address");if(o)A.add(C(o));let G=await _.getLatestBlockhash();return A.recentBlockhash=G.blockhash,A.feePayer=H,A}}async function _U({instructions:n}){let{Transaction:y}=await import("@solana/web3.js"),t=new y().add(...n);if(!t)throw new Oo("core_transaction_invalid_sender_address");return t}function AU(n,y){return async({recipient:t,assetValue:o,memo:f,isProgramDerivedAddress:T})=>{let C=await y();if(!C)throw new Oo("core_transaction_invalid_sender_address");let H=C.publicKey?.toString()??(await C.connect()).publicKey.toString(),_=await AT(n)({assetValue:o,isProgramDerivedAddress:T,memo:f,recipient:t,sender:H});if("signTransaction"in C){let A=await C.signTransaction(_);return Uf(n)(A)}return _.sign(C),Uf(n)(_)}}function Uf(n){return async(y)=>{return(await n()).sendRawTransaction(y.serialize())}}function C1(n,y){return async(t)=>{let o=await y();if(!o)throw new Oo("toolbox_solana_no_signer");let{VersionedTransaction:f}=await import("@solana/web3.js");if(!(t instanceof f)){let C=await(await n()).getLatestBlockhash();t.recentBlockhash=C.blockhash,t.feePayer=o.publicKey||void 0}if("connect"in o)return await o.signTransaction(t);return t.sign([o]),t}}async function HT({phrase:n,derivationPath:y=a5.SOL}){let{HDKey:t}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{Keypair:f}=await import("@solana/web3.js"),T=o(n),C=t.fromMasterSeed(T);return f.fromSeed(C.derive(y,!0).privateKey)}function H1(n){return n.toString()}var U1=F(()=>{kn()});var UT={};nn(UT,{validateSolanaAddress:()=>_T,getSolanaToolbox:()=>tU,fetchTokenMetaData:()=>A1,createKeysForPath:()=>HT});var wT=F(()=>{U1()});import{AssetValue as wf,Chain as qf,DerivationPath as q1,derivationPathToString as UU,getChainConfig as wU,getRPCUrl as lT,NetworkDerivationPath as qU,SwapKitError as Qn,updateDerivationPath as GU}from"@swapkit/helpers";import{match as qT,P as xo}from"ts-pattern";function Gf(n){if(!n)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(n)}async function lf({phrase:n,derivationPath:y=q1.STRK}){let{HDKey:t}=await import("@scure/bip32"),{mnemonicToSeedSync:o}=await import("@scure/bip39"),{ec:f,hash:T,encode:C,CallData:H}=await import("starknet"),_=o(n),G=t.fromMasterSeed(_).derive(y);if(!G.privateKey)throw new Qn("toolbox_starknet_no_signer");let Q=C.addHexPrefix(Buffer.from(G.privateKey).toString("hex")),w=f.starkCurve.grindKey(Q),B=C.addHexPrefix(w),W=f.starkCurve.getStarkKey(B),l=H.compile([W,0]);return{address:T.calculateContractAddressFromHash(W,WT,l,0),privateKey:B,publicKey:W}}async function BT({phrase:n,derivationPath:y=q1.STRK}){let{Account:t,RpcProvider:o}=await import("starknet"),{privateKey:f,address:T}=await lf({derivationPath:y,phrase:n}),C=await lT(qf.Starknet),H=new o({nodeUrl:C});return new t({address:T,provider:H,signer:f})}function G1(n){let y=qf.Starknet,t=n&&"index"in n?n.index||0:0,o=UU(n&&"derivationPath"in n&&n.derivationPath?n.derivationPath:GU(qU[y],{index:t})),f,T,C;async function H(){if(T)return T;let{RpcProvider:U}=await import("starknet"),q=await lT(y);return T=new U({nodeUrl:q}),T}async function _(U){let q=await H(),L=U||await w();if(!L)return!1;try{return await q.getClassHashAt(L),!0}catch(Y){if(Y instanceof Error&&Y.message.includes("Contract not found"))return!1;let D=Y;if(D?.code===20||D?.code===19)return!1;throw Y}}async function A(){let{CallData:U,hash:q}=await import("starknet"),L=await H(),Y=await Q();if(!Y)throw new Qn("toolbox_starknet_no_signer");if(!C)throw new Qn({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await _())return Y.address;let J=U.compile([C,0]);if(q.calculateContractAddressFromHash(C,WT,J,0).toLowerCase()!==Y.address.toLowerCase())throw new Qn({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let x={addressSalt:C,classHash:WT,constructorCalldata:J},{transaction_hash:u}=await Y.deployAccount(x);return await L.waitForTransaction(u),u}async function G(){if(!await _()){if(!C)throw new Qn({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 Q(){if(f)return f;return f=await qT(n).with({phrase:xo.string},async({phrase:U})=>{let{Account:q,RpcProvider:L}=await import("starknet"),{privateKey:Y,address:D,publicKey:J}=await lf({derivationPath:o,phrase:U});C=J;let O=await lT(qf.Starknet),x=new L({nodeUrl:O});return new q({address:D,provider:x,signer:Y})}).with({address:xo.string,privateKey:xo.string},async({privateKey:U,address:q})=>{let{Account:L}=await import("starknet"),Y=await H();return new L({address:q,provider:Y,signer:U})}).with({signer:xo.instanceOf(Object)},({signer:U})=>U).otherwise(()=>{return}),f}async function w(){return(await Q())?.address??""}async function B(U){let q=await H(),{uint256:L,CallData:Y}=await import("starknet"),D=[],J=[GT,w1];for(let O of J)try{let[x="0",u="0"]=await q.callContract({calldata:Y.compile({account:U}),contractAddress:O,entrypoint:"balanceOf"}),p=L.uint256ToBN({high:x,low:u});qT(O).with(GT,()=>{D.push(wf.from({chain:y,value:p}))}).with(w1,()=>{if(p>0n)D.push(wf.from({asset:`${y}.ETH-${O}`,value:p}))}).otherwise(()=>{})}catch{}return D}async function W({recipient:U,assetValue:q}){let{CallData:L,uint256:Y}=await import("starknet");if(!Gf(U))throw new Qn("core_transaction_invalid_recipient_address",{address:U});let D=q.isGasAsset?GT:q.address;if(!D)throw new Qn("toolbox_starknet_invalid_address",{address:D,assetValue:q});let J=Y.bnToUint256(q.getBaseValue("bigint"));return[{calldata:L.compile([U,J]),contractAddress:D,entrypoint:"transfer"}]}async function l({recipient:U,assetValue:q,sender:L}){let{baseDecimal:Y}=wU(qf.Starknet),D=await Q(),J=await qT({sender:L,signer:D}).with({sender:xo.string},async({sender:O})=>{let{Account:x}=await import("starknet"),u=await H();return new x({address:O,provider:u,signer:"0x0"})}).with({signer:xo.nonNullable},({signer:O})=>O).otherwise((O)=>{throw new Qn({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:O}})});try{let O=await W({assetValue:q,recipient:U}),x=await J.estimateInvokeFee(O);if(x?.overall_fee)return wf.from({chain:y,fromBaseDecimal:Y,value:x.overall_fee})}catch(O){throw new Qn("toolbox_starknet_fee_estimation_failed",O)}return wf.from({chain:y,value:"0.00001"})}async function M({recipient:U,assetValue:q,memo:L}){let Y=await Q();if(!Y)throw new Qn("toolbox_starknet_no_signer");await G();let D=await W({assetValue:q,memo:L,recipient:U});return(await Y.execute(D)).transaction_hash}async function N(U){let q=await Q();if(!q)throw new Qn("toolbox_starknet_no_signer");let L=await q.signMessage(U);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function Z(U){let q=await Q();if(!q)throw new Qn("toolbox_starknet_no_signer");return await G(),(await q.execute(U)).transaction_hash}function z(U){return Z(U)}function X(U,q=!0){try{return wn(y)(U,q)}catch{return B(U)}}return{broadcastTransaction:Z,createKeysForPath:BT,createTransaction:W,deployAccount:A,estimateTransactionFee:l,getAddress:w,getBalance:X,getProvider:H,isAccountDeployed:_,signAndBroadcastTransaction:z,signMessage:N,transfer:M,validateAddress:Gf}}var GT="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",w1="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",WT="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var l1=F(()=>{kn()});var Wf={};nn(Wf,{validateStarknetAddress:()=>Gf,starknetCreateKeysForPath:()=>BT,getStarknetToolbox:()=>G1,deriveStarknetKeys:()=>lf});var Bf=F(()=>{l1()});import{isValidSuiAddress as lU}from"@mysten/sui/utils";import{AssetValue as Ro,Chain as Xf,getChainConfig as WU,SwapKitError as Yn}from"@swapkit/helpers";import{match as BU,P as W1}from"ts-pattern";async function X1(n,y,t,o=[],f){let T=await n.getCoins({coinType:t,cursor:f,owner:y}),C=[...o,...T.data];return T.hasNextPage?X1(n,y,t,C,T.nextCursor):C}function XU(n,y,t){let o=y.reduce((_,A)=>_+BigInt(A.balance),0n);if(o<t)throw new Yn("toolbox_sui_insufficient_balance",{available:o.toString(),required:t.toString()});let{ids:f}=y.reduce((_,A)=>{if(_.total>=t)return _;return{ids:[..._.ids,A.coinObjectId],total:_.total+BigInt(A.balance)}},{ids:[],total:0n}),T=f[0],C=f.slice(1);if(C.length>0)n.mergeCoins(T,C);let[H]=n.splitCoins(T,[t]);return H}function L1(n){try{return lU(n)}catch{return!1}}function B1(n){return"signWithIntent"in n}function LU({provider:n,...y}={}){let t;async function o(){if(t)return t;return t=await BU(y).with({phrase:W1.string},async({phrase:W})=>{let{Ed25519Keypair:l}=await import("@mysten/sui/keypairs/ed25519");return l.deriveKeypair(W)}).with({signer:W1.any},({signer:W})=>W).otherwise(()=>{return}),t}async function f(W=n){let{SuiClient:l,getFullnodeUrl:M}=await import("@mysten/sui/client");return new l({url:W||M("mainnet")})}async function T(){return(await o())?.toSuiAddress()||""}function C(W){try{let l=Ro.from({address:W,chain:Xf.Sui});return{asset:l.toString(),decimals:l.decimal}}catch{}return null}async function H(W){let l=W||await T();if(!l)throw new Yn("toolbox_sui_address_required");let{baseDecimal:M,chain:N}=WU(Xf.Sui);try{let Z=await f(),{totalBalance:z}=await Z.getBalance({owner:l}),X=[Ro.from({chain:N,fromBaseDecimal:M,value:z})],U=await Z.getAllBalances({owner:l});for(let{coinType:q,totalBalance:L}of U){if(q==="0x2::sui::SUI"||Number(L)<=0)continue;let Y=C(q);if(Y)X.push(Ro.from({asset:Y.asset,fromBaseDecimal:Y.decimals,value:L}))}return X}catch{return[Ro.from({chain:N})]}}async function _(W){let l=Ro.from({chain:Xf.Sui,value:"0.01"});if(!W)return l;try{let M=await f(),{txBytes:N}=await A(W),{effects:{status:Z,gasUsed:z}}=await M.dryRunTransactionBlock({transactionBlock:N});if(Z.status!=="success")return l;let X=Number(z.computationCost)+Number(z.storageCost)-Number(z.storageRebate);return Ro.from({chain:Xf.Sui,value:X.toString()})}catch{return l}}async function A({recipient:W,assetValue:l,gasBudget:M,sender:N}){let{Transaction:Z}=await import("@mysten/sui/transactions"),z=N||await T();if(!z)throw new Yn("toolbox_sui_no_sender");try{let X=new Z;if(X.setSender(z),l.isGasAsset||l.symbol==="SUI"){let[L]=X.splitCoins(X.gas,[l.getBaseValue("string")]);X.transferObjects([L],W)}else{let L=l.address;if(!L)throw new Yn("toolbox_sui_missing_coin_type");let Y=await f(),D=l.getBaseValue("bigint"),J=await X1(Y,z,L);if(!J.length)throw new Yn("toolbox_sui_no_coins_found",{coinType:L});let O=XU(X,J,D);X.transferObjects([O],W)}if(M)X.setGasBudget(M);let U=await f(),q=await X.build({client:U});return{tx:X,txBytes:q}}catch(X){if(X instanceof Yn)throw X;throw new Yn("toolbox_sui_transaction_creation_error",{error:X})}}async function G(W){let l=await o();if(!l)throw new Yn("toolbox_sui_no_signer");if(W instanceof Uint8Array)return l.signTransaction(W);let{txBytes:M}="tx"in W?W:await A(W);return l.signTransaction(M)}async function Q({assetValue:W,gasBudget:l,recipient:M}){let N=await o();if(!N)throw new Yn("toolbox_sui_no_signer");let Z=N.toSuiAddress()||await T();if(!Z)throw new Yn("toolbox_sui_no_sender");let{txBytes:z}=await A({assetValue:W,gasBudget:l,recipient:M,sender:Z}),X=await f();if(!B1(N)){let q=await N.signTransaction(z),{digest:L}=await X.executeTransactionBlock({signature:q.signature,transactionBlock:q.bytes});return L}let{digest:U}=await X.signAndExecuteTransaction({signer:N,transaction:z});return U}async function w(W){let l=await f(),{digest:M}=await l.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return M}async function B(W){let l=await o();if(!l)throw new Yn("toolbox_sui_no_signer");let M=await f(),N;if(typeof W==="string")N=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)N=W;else N=await W.build({client:M});if(!B1(l)){let z=await l.signTransaction(N),{digest:X}=await M.executeTransactionBlock({signature:z.signature,transactionBlock:z.bytes});return X}let{digest:Z}=await M.signAndExecuteTransaction({signer:l,transaction:N});return Z}return{broadcastTransaction:w,createTransaction:A,estimateTransactionFee:_,getAddress:T,getBalance:H,signAndBroadcastTransaction:B,signTransaction:G,transfer:Q,validateAddress:L1}}var Q1=()=>{};var Lf={};nn(Lf,{validateSuiAddress:()=>L1,getSuiToolbox:()=>LU});var Qf=F(()=>{Q1()});import{getHttpEndpoint as QU}from"@orbs-network/ton-access";import{AssetValue as MU,Chain as Gy,getChainConfig as ZU,getRPCUrl as JU,SwapKitError as qy,SwapKitNumber as YU}from"@swapkit/helpers";import{mnemonicToWalletKey as NU}from"@ton/crypto";import{Address as bn,beginCell as XT,Cell as M1,external as zU,internal as DU,JettonMaster as OU,loadStateInit as xU,SendMode as Z1,storeMessage as RU,TonClient as SU,toNano as z1,WalletContractV4 as FU}from"@ton/ton";import{match as J1,P as LT}from"ts-pattern";async function PU(){let n=Date.now();if(Mf&&n-N1<IU)return Mf;try{return Mf=await QU(),N1=n,Mf}catch{return JU(Gy.Ton)}}function $U(n={}){let y,t,o;async function f(){if(!y){let X=n.provider??await PU();y=new SU({endpoint:X})}return y}async function T(){return(await H()).address.toString()}async function C(){if(o)return o;return o=await J1(n).with({phrase:LT.string},async({phrase:X})=>NU(X.split(" "))).with({signer:LT.any},({signer:X})=>X).otherwise(()=>{return}),o}async function H(X){if(!t||X){let U=await C(),q=await f(),L=X||U;if(!L)throw new qy("core_wallet_connection_not_found");let Y=FU.create({publicKey:L.publicKey,workchain:0});t=q.open(Y)}return t}let _=wn(Gy.Ton);async function A({assetValue:X,recipient:U,memo:q,sender:L}){if(X.isGasAsset){let v=q?z(q).toBoc().toString("base64"):void 0;return[{address:U,amount:X.getBaseValue("string"),payload:v}]}let Y=X.address;if(!Y)throw new qy({errorKey:"core_swap_contract_not_found",info:{asset:X.toString()}});let D=L??await T(),J=await N({jettonMasterAddress:Y,ownerAddress:D}),O=bn.parse(U),x=bn.parse(D),u=X.getBaseValue("bigint"),p=q?z(q):void 0,P=Z({destinationAddress:O,forwardPayload:p,jettonAmount:u,responseAddress:x});return[{address:J.toString(),amount:pU.toString(),payload:P.toBoc().toString("base64")}]}function G({sender:X,...U}){return A({...U,sender:X})}function Q(X){return X.map((U)=>{let q=U.payload?M1.fromBase64(U.payload):void 0,L=U.stateInit?xU(M1.fromBase64(U.stateInit).asSlice()):void 0,Y=bn.parse(U.address),D=bn.isFriendly(U.address)?bn.parseFriendly(U.address).isBounceable:!0;return DU({body:q,bounce:D,init:L,to:Y,value:BigInt(U.amount)})})}async function w(X){let U=await C(),q=await H();if(!q||!U)throw new qy("core_wallet_connection_not_found");let L=await f(),{state:Y}=await L.getContractState(q.address),D=Y==="active",J=D?await q.getSeqno():0,O=q.createTransfer({messages:Q(X),secretKey:U.secretKey,sendMode:Y1,seqno:J}),x=zU({body:O,init:D?void 0:q.init,to:q.address});return XT().store(RU(x)).endCell()}async function B(X){return await(await f()).sendFile(X.toBoc()),X.hash().toString("hex")}async function W(X){let U=await w(X);return B(U)}async function l({assetValue:X,recipient:U,memo:q}){let L=await G({assetValue:X,memo:q,recipient:U});return W(L)}async function M({sender:X,...U}){let{baseDecimal:q}=ZU(Gy.Ton),L=await J1(X).with(LT.string,(J)=>{return bn.parseFriendly(J).address}).otherwise(async()=>{return(await H()).address});if(!L)throw new qy("toolbox_fee_estimation_failed",{chain:Gy.Ton});let Y=MU.from({chain:Gy.Ton,value:"0.01"}),D=await f();try{let J=await G({sender:X,...U}),O=await C(),x=await H();if(!x||!O)return Y;let u=await x.getSeqno(),p=x.createTransfer({messages:Q(J),secretKey:O.secretKey,sendMode:Y1,seqno:u}),{source_fees:P}=await D.estimateExternalMessageFee(L,{body:p,ignoreSignature:!0,initCode:null,initData:null}),v=P.in_fwd_fee+P.storage_fee+P.gas_fee+P.fwd_fee;return Y.set(YU.fromBigInt(BigInt(v),q))}catch{return Y}}async function N({jettonMasterAddress:X,ownerAddress:U}){try{let q=await f(),L=bn.parse(X),Y=bn.parse(U);return await q.open(OU.create(L)).getWalletAddress(Y)}catch{throw new qy({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:X,ownerAddress:U}})}}function Z({jettonAmount:X,destinationAddress:U,responseAddress:q,forwardAmount:L=kU,forwardPayload:Y}){let D=XT().storeUint(uU,32).storeUint(0,64).storeCoins(X).storeAddress(U).storeAddress(q).storeBit(0).storeCoins(L);if(Y)D.storeBit(1).storeRef(Y);else D.storeBit(0);return D.endCell()}function z(X){return XT().storeUint(0,32).storeStringTail(X).endCell()}return{broadcastTransaction:B,createTransaction:G,estimateTransactionFee:M,getAddress:T,getBalance:_,getJettonWalletAddress:N,sign:w,signAndBroadcastTransaction:W,transfer:l,validateAddress:D1}}function D1(n){try{return bn.parse(n),!0}catch{return!1}}var uU=260734629,kU,pU,Y1,IU=60000,Mf,N1=0;var O1=F(()=>{kn();kU=z1("0.01"),pU=z1("0.05"),Y1=Z1.PAY_GAS_SEPARATELY+Z1.IGNORE_ERRORS});var Zf={};nn(Zf,{validateTonAddress:()=>D1,getTONToolbox:()=>$U});var Jf=F(()=>{O1()});function x1({deriveAddress:n,getBalance:y,getUtxos:t}){async function o(H){let{count:_,startIndex:A=0,change:G=!1}=H,Q=[];for(let w=0;w<_;w++){let B=await n({change:G,index:A+w});if(B)Q.push(B)}return Q}async function f(H){let{gapLimit:_=20,change:A=!1}=H??{},G=[],Q=0,w=0;while(Q<_){let B=await n({change:A,index:w});if(!B)break;if((await y(B.address)).some((M)=>M.getValue("number")>0))G.push(B),Q=0;else Q++;w++}return G}async function T(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A],Q=await Promise.all(G.map(async(B)=>{let l=(await y(B.address)).reduce((M,N)=>M+N.getValue("number"),0);return{...B,balance:l}})),w=Q.reduce((B,W)=>B+W.balance,0);return{addresses:Q,total:w}}async function C(H=20){let[_,A]=await Promise.all([f({change:!1,gapLimit:H}),f({change:!0,gapLimit:H})]),G=[..._,...A];return(await Promise.all(G.map(async(w)=>{return(await t(w.address)).map((W)=>({...W,address:w.address,derivationIndex:w.index,isChange:w.change}))}))).flat()}return{deriveAddresses:o,getAggregatedBalance:T,getAggregatedUtxos:C,scanForAddresses:f}}import{Chain as tn,getRPCUrl as EU,RequestClient as Yf,SKConfig as vU,SwapKitError as Rn,warnOnce as bU}from"@swapkit/helpers";import{NETWORKS as So}from"@swapkit/utxo-signer";async function VU({chain:n,txHash:y}){let t=`${ly(n)}/push/transaction`,o=JSON.stringify({data:y});try{let f=await Yf.post(t,{body:o,headers:{"Content-Type":"application/json"}});if(f.context.code!==200)throw new Rn("toolbox_utxo_broadcast_failed",{error:f.context.error||"Transaction broadcast failed"});return f.data?.transaction_hash||y}catch(f){let T=await EU(n);if(T){let C=JSON.stringify({id:Y0(),jsonrpc:"2.0",method:"sendrawtransaction",params:[y]}),H=await Yf.post(T,{body:C,headers:{"Content-Type":"application/json"}});if(H.error)throw new Rn("toolbox_utxo_broadcast_failed",{error:H.error?.message});if(H.result.includes('"code":-26'))throw new Rn("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return H.result}throw f}}function ly(n){return`https://api.blockchair.com/${KU(n)}`}function R1(n){switch(n){case tn.Bitcoin:return 5;case tn.Dogecoin:return 1e4;case tn.Litecoin:return 1;case tn.Zcash:return 1;default:return 2}}function KU(n){switch(n){case tn.BitcoinCash:return"bitcoin-cash";case tn.Litecoin:return"litecoin";case tn.Dash:return"dash";case tn.Dogecoin:return"dogecoin";case tn.Zcash:return"zcash";case tn.Polkadot:return"polkadot";default:return"bitcoin"}}async function jU(n){try{let{feePerKb:y}=await Yf.get(`https://app.bitgo.com/api/v2/${n.toLowerCase()}/tx/fee`),t=y/1000;return Math.max(t,R1(n))}catch{return R1(n)}}async function Nf(n,y){let t=await Yf.get(`${n}${y?`${n.includes("?")?"&":"?"}key=${y}`:""}`);if(!t||t.context.code!==200)throw new Rn("toolbox_utxo_api_error",{error:`Failed to query ${n}`});return t.data}async function F1({address:n,chain:y,apiKey:t}){if(!n)throw new Rn("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await Nf(`${ly(y)}/dashboards/address/${n}?transaction_details=true`,t))[n]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function cU({address:n,chain:y,apiKey:t}){return(await F1({address:n,apiKey:t,chain:y}))?.address.balance||0}async function u1({chain:n,apiKey:y,txHash:t}){if(!t)throw new Rn("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await Nf(`${ly(n)}/raw/transaction/${t}`,y))?.[t]?.raw_transaction||""}catch(o){let f=o instanceof Error?o.message:String(o);return console.error(`Failed to fetch raw transaction: ${f}`),""}}async function hU({chain:n,apiKey:y,txHash:t}){if(!t)throw new Rn("toolbox_utxo_invalid_params",{error:"TxHash is required"});let f=(await Nf(`${ly(n)}/dashboards/transaction/${t}`,y))?.[t];if(!f)throw new Rn("toolbox_utxo_tx_not_found",{txHash:t});let{transaction:T,inputs:C,outputs:H}=f,_=C.map((G)=>G.spending_sequence),A=T.is_rbf===!0||_.some((G)=>G<iU);return{blockId:T.block_id,confirmed:T.block_id!==-1,fee:T.fee,inputs:C,isRBF:A,outputs:H,sequences:_,size:T.size,txid:T.hash,weight:T.weight}}async function mU({chain:n,address:y,apiKey:t,offset:o=0,limit:f=30}){return(await Nf(`${ly(n)}/outputs?q=recipient(${y}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${f}&offset=${o}`,t)).map(({is_spent:_,script_hex:A,block_id:G,transaction_hash:Q,index:w,value:B,spending_signature_hex:W})=>({hash:Q,index:w,is_confirmed:G!==-1,is_spent:_,script_hex:A,txHex:W,value:B}))}function rU(n){return n.reduce((y,t)=>y+t.value,0)}function S1(n,y){let t=[...n].sort((o,f)=>f.value-o.value);if(y){let o=[],f=0;for(let T of t)if(o.push(T),f+=T.value,f>=y)break;return o}return t}async function k1({chain:n,address:y,apiKey:t,targetValue:o,accumulativeValue:f=0,offset:T=0,limit:C=30}){if(!y)throw new Rn("toolbox_utxo_invalid_params",{error:"Address is required"});try{let H=await mU({address:y,apiKey:t,chain:n,limit:C,offset:T,targetValue:o}),A=H.length<C,G=H.filter(({is_spent:M})=>!M),Q=rU(G),w=f+Q,B=o&&w>=o;if(A||B)return S1(G,o);let W=await k1({accumulativeValue:w,address:y,apiKey:t,chain:n,limit:C,offset:T+C,targetValue:o}),l=[...G,...W];return S1(l,o)}catch(H){let _=H instanceof Error?H.message:String(H);return console.error(`Failed to fetch unspent UTXOs: ${_}`),[]}}async function gU({address:n,chain:y,apiKey:t,fetchTxHex:o=!0,targetValue:f}){let T=await k1({address:n,apiKey:t,chain:y,targetValue:f}),C=[];for(let{hash:H,index:_,script_hex:A,value:G}of T){let Q;if(o)Q=await u1({apiKey:t,chain:y,txHash:H});C.push({address:n,hash:H,index:_,txHex:Q,value:G,witnessUtxo:{script:Buffer.from(A,"hex"),value:G}})}return C}function s(n){let y=vU.get("apiKeys").blockchair||"";return bU({condition:!y,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(t)=>VU({chain:n,txHash:t}),getAddressData:(t)=>F1({address:t,apiKey:y,chain:n}),getBalance:(t)=>cU({address:t,apiKey:y,chain:n}),getRawTx:(t)=>u1({apiKey:y,chain:n,txHash:t}),getSuggestedTxFee:()=>jU(n),getTransactionDetails:(t)=>hU({apiKey:y,chain:n,txHash:t}),getUtxos:(t)=>gU({...t,apiKey:y,chain:n})}}function dU(n){return n}function aU(){return function(y){switch(y){case tn.Bitcoin:return So.bitcoin;case tn.BitcoinCash:return So.bitcoinCash;case tn.Dash:return So.dash;case tn.Litecoin:return So.litecoin;case tn.Dogecoin:return So.dogecoin;case tn.Zcash:return So.zcash;default:throw new Rn("toolbox_utxo_not_supported",{chain:y})}}}var iU=4294967294;var p1=F(()=>{kn()});import{CashAddrType as zf,decodeCashAddr as sU,encodeCashAddr as eU}from"@swapkit/utxo-signer";function y2(n,y,t){return eU({hash:t,prefix:n,type:n2[y]})}function f2(n){let y=sU(n),t=o2[y.type];if(!t)throw Error(`Unknown CashAddr type: ${y.type}`);return{hash:y.hash,prefix:y.prefix,type:t}}var n2,o2,QT;var I1=F(()=>{n2={P2PKH:zf.P2PKH,P2SH:zf.P2SH},o2={[zf.P2PKH]:"P2PKH",[zf.P2SH]:"P2SH"};QT={decode:f2,encode:y2}});import{sha256 as t2}from"@noble/hashes/sha2.js";import{createBase58check as T2}from"@scure/base";import{SwapKitError as $1}from"@swapkit/helpers";function ZT(n){try{return Df(n),!0}catch{return!1}}function JT(n){return Df(n)?.network}function Vn(n){let y=Df(n);if(y?.format==="legacy")return n;return _2(y)}function Wy(n){let y=Df(n);return A2(y)}function Df(n){try{let y=C2(n);if(y)return y}catch{}try{let y=H2(n);if(y)return y}catch{}throw new $1("toolbox_utxo_invalid_address",{address:n})}function C2(n){try{let y=E1.decode(n);if(y.length!==21)throw new $1("toolbox_utxo_invalid_address",{address:n});let t=y[0],o=Array.prototype.slice.call(y,1);switch(t){case qo.legacy.mainnet.p2pkh:return{format:"legacy",hash:o,network:"mainnet",type:"p2pkh"};case qo.legacy.mainnet.p2sh:return{format:"legacy",hash:o,network:"mainnet",type:"p2sh"};case qo.legacy.testnet.p2pkh:return{format:"legacy",hash:o,network:"testnet",type:"p2pkh"};case qo.legacy.testnet.p2sh:return{format:"legacy",hash:o,network:"testnet",type:"p2sh"};case qo.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2pkh"};case qo.bitpay.mainnet.p2sh:return{format:"bitpay",hash:o,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function H2(n){if(n.indexOf(":")!==-1)try{return P1(n)}catch{}else{let y=["bitcoincash","bchtest","bchreg"];for(let t of y)try{return P1(`${t}:${n}`)}catch{}}return}function P1(n){try{let{hash:y,prefix:t,type:o}=QT.decode(n);return{format:"cashaddr",hash:Array.prototype.slice.call(y,0),network:t==="bitcoincash"?"mainnet":"testnet",type:o==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function _2(n){let y=qo.legacy[n.network][n.type],t=Buffer.alloc(1+n.hash.length);return t[0]=y,t.set(n.hash,1),E1.encode(t)}function A2(n){let y=n.network==="mainnet"?"bitcoincash":"bchtest",t=n.type==="p2pkh"?"P2PKH":"P2SH",o=new Uint8Array(n.hash);return QT.encode(y,t,o)}var E1,MT,qo;var v1=F(()=>{I1();E1=T2(t2);((t)=>{t.Mainnet="mainnet";t.Testnet="testnet"})(MT||={});qo={["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 U2}from"@swapkit/helpers";import{Script as w2}from"@swapkit/utxo-signer";function Wn(n){let y=new Uint8Array(Buffer.from(n,"utf8"));return w2.encode(["RETURN",y])}var q2=1000,xf=10,Rf=2,b1=10,G2=41,l2=107,Sf,Of,By,Fo=(n)=>{if(n.startsWith("bc1")||n.startsWith("tb1")||n.startsWith("ltc1")||n.startsWith("tltc1"))return"P2WPKH";if(n.startsWith("1")||n.startsWith("m")||n.startsWith("n")||n.startsWith("bitcoincash:q")||n.startsWith("bitcoincash:p")||n.startsWith("q")||n.startsWith("p")||n.startsWith("L")||n.startsWith("M")||n.startsWith("3")||n.startsWith("D")||n.startsWith("A")||n.startsWith("9")||n.startsWith("X")||n.startsWith("7")||n.startsWith("y")||n.startsWith("t1")||n.startsWith("t3")||n.startsWith("tm"))return"P2PKH";throw new U2("toolbox_utxo_invalid_address",{address:n})},Go=({inputs:n,outputs:y,feeRate:t})=>{let o=n[0]&&"address"in n[0]&&n[0].address?Fo(n[0].address):"P2PKH",T=(t?n.filter((A)=>A.value>=Of["type"in A&&A.type?A.type:"P2PKH"]*Math.ceil(t)):n).reduce((A,G)=>A+dn(G),0),C=y?.reduce((A,G)=>A+Xy(G),0)||By[o],H=xf+T+C;return o==="P2WPKH"?Math.ceil(H+Rf/4):H},dn=(n)=>{if("type"in n&&n.type)return Of[n.type];if("address"in n&&n.address)return Of[Fo(n.address)];return G2+l2},Xy=(n,y)=>{if(n?.script)return b1+n.script.length+(n.script.length>=74?2:1);if(y)return By[y];if("address"in n&&n.address)return By[Fo(n.address)];return By.P2PKH};var YT=F(()=>{((t)=>{t.P2PKH="P2PKH";t.P2WPKH="P2WPKH"})(Sf||={});Of={["P2PKH"]:148,["P2WPKH"]:68},By={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as lo,SwapKitError as W2}from"@swapkit/helpers";function Ly(n){switch(n){case lo.Bitcoin:case lo.BitcoinCash:return 550;case lo.Dash:case lo.Litecoin:return 5500;case lo.Dogecoin:return 1e5;case lo.Zcash:return 546;default:throw new W2("toolbox_utxo_not_supported",{chain:n})}}function Nn({inputs:n,outputs:y,feeRate:t=1,chain:o=lo.Bitcoin,changeAddress:f=""}){let T=n[0]&&"address"in n[0]&&n[0].address?Fo(n[0].address):"P2PKH",C=n.filter((W)=>dn(W)*t<=W.value),_=T==="P2WPKH"?Math.ceil(Rf/4):0,A=xf+_+y.reduce((W,l)=>W+Xy(l),0),G=y.reduce((W,l)=>W+l.value,0),Q=A*t,w=0,B=[];for(let W of C){let l=dn(W),M=t*l;Q+=M,w+=W.value,B.push(W);let N=Q+G;if(w<N)continue;let Z=w-N,z=t*Xy({address:f,value:0});if(Z>z){let X=z+Q,U=w-(G+Math.ceil(X));if(U>Math.max(dn({value:0})*t,Ly(o)))return{fee:Math.ceil(X),inputs:B,outputs:y.concat({address:f,value:U})}}return{fee:Math.ceil(Q),inputs:B,outputs:y}}return{fee:Math.ceil(t*Go({inputs:n,outputs:y}))}}var V1=F(()=>{YT()});var uo=F(()=>{p1();v1();V1();YT()});import{Address as B2,ZCASH_NETWORK as X2}from"@swapkit/utxo-signer";function Wo(n){return n.replace(/(bchtest:|bitcoincash:)/,"")}function an(n){let y=Wo(n);return ZT(y)&&JT(y)==="mainnet"}function ko(n){try{if(n.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let t=B2(X2).decode(n);return t.type==="pkh"||t.type==="sh"}catch{return!1}}var Qy=F(()=>{uo()});import{secp256k1 as L2}from"@noble/curves/secp256k1.js";import{hex as Bo}from"@scure/base";import{HDKey as i1}from"@scure/bip32";import{mnemonicToSeedSync as zT}from"@scure/bip39";import{AssetValue as Ff,applyFeeMultiplier as K1,Chain as e,derivationPathToString as h1,FeeOption as Sn,NetworkDerivationPath as m1,SwapKitError as j,SwapKitNumber as Q2,updateDerivationPath as M2,warnOnce as Z2}from"@swapkit/helpers";import{Address as J2,BCHSigHash as DT,CashAddrPrefix as Y2,CashAddrType as N2,encodeCashAddr as z2,NETWORKS as po,p2pkh as j1,p2wpkh as D2,RBF_SEQUENCE as O2,SigHash as r1,Transaction as NT,WIF as g1}from"@swapkit/utxo-signer";import{match as d1}from"ts-pattern";function OT({address:n,chain:y}){return d1(y).with(e.BitcoinCash,()=>an(n)).with(e.Zcash,()=>ko(n)).otherwise(()=>{try{return J2(Bn(y)).decode(n),!0}catch{return!1}})}function Bn(n){return d1(n).with(e.Bitcoin,()=>po.bitcoin).with(e.BitcoinCash,()=>po.bitcoinCash).with(e.Dash,()=>po.dash).with(e.Dogecoin,()=>po.dogecoin).with(e.Litecoin,()=>po.litecoin).with(e.Zcash,()=>po.zcash).exhaustive()}function x2({phrase:n,derivationPath:y,network:t,seed:o}){let f=o??zT(n),C=i1.fromMasterSeed(f,t.bip32).derive(y);if(!C.privateKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return C.privateKey}function c1(n){return L2.getPublicKey(n,!0)}function xT({publicKey:n,chain:y,network:t}){if(y===e.BitcoinCash){let T=j1(n,t);if(!T.hash)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return z2({hash:T.hash,prefix:Y2.MAINNET,type:N2.P2PKH}).replace(/^bitcoincash:/,"")}let f=!My.includes(y)?D2(n,t):j1(n,t);if(!f.address)throw new j("toolbox_utxo_invalid_address",{error:"Could not derive address"});return f.address}function Io({phrase:n,derivationPath:y,chain:t,wif:o,seed:f}){let T=Bn(t);if(o){let A=g1(T).decode(o),G=c1(A);return{privateKey:A,publicKey:G}}if(!n)throw new j("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let C=y||h1(m1[t]),H=x2({derivationPath:C,network:T,phrase:n,seed:f}),_=c1(H);return{privateKey:H,publicKey:_}}function R2(n,y){return g1(Bn(y)).encode(n)}function S2({phrase:n,derivationPath:y,chain:t,seed:o}){let f=y.split("/");if(f.length<4)throw new j("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${f.length}): ${y}`});let T=Bn(t),C=o??zT(n),H=i1.fromMasterSeed(C,T.bip32),_=f.slice(0,4).join("/");return H.derive(_)}function sn({inputs:n,outputs:y,chain:t,tx:o,sender:f,compiledMemo:T,enableRBF:C=!1}){let H=Bn(t),_=!My.includes(t),A=C?O2:void 0,G=new Set;for(let Q of n){let w=`${Q.hash}:${Q.index}`;if(G.has(w))throw new j("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});G.add(w);let B=typeof Q.hash==="string"?Bo.decode(Q.hash):Q.hash;if(_&&Q.witnessUtxo)o.addInput({index:Q.index,sequence:A,txid:B,witnessUtxo:{amount:BigInt(Q.witnessUtxo.value),script:Q.witnessUtxo.script}});else if(Q.txHex)o.addInput({index:Q.index,nonWitnessUtxo:Bo.decode(Q.txHex),sequence:A,txid:B,...t===e.BitcoinCash?{sighashType:DT.ALL}:{}});else throw new j("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let Q of y){let w="address"in Q&&Q.address?Q.address:f;if(t===e.BitcoinCash)w=Vn(w);if(Q.script){if(T)o.addOutput({amount:0n,script:T})}else o.addOutputAddress(w,BigInt(Q.value),H)}return{inputs:n,tx:o}}async function Po(n){let y=await s(n).getSuggestedTxFee();return{[Sn.Average]:y,[Sn.Fast]:K1(y,Sn.Fast),[Sn.Fastest]:K1(y,Sn.Fastest)}}async function a1({assetValue:n,recipient:y,memo:t,sender:o,fetchTxHex:f=!1}){let T=n.chain,C=(await Po(T))[Sn.Fastest],H=f||My.includes(T),_=n.getBaseValue("number"),A=Math.ceil(_+C*5000);return{inputs:await s(T).getUtxos({address:o,fetchTxHex:H,targetValue:A}),outputs:[{address:y,value:_},...t?[{address:"",script:Wn(t),value:0}]:[]]}}async function s1({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f,fetchTxHex:T=!1,enableRBF:C=!1}){let H=n.chain,_=t?Wn(t):null,A=await a1({assetValue:n,fetchTxHex:T,memo:t,recipient:y,sender:f}),{inputs:G,outputs:Q}=Nn({...A,chain:H,feeRate:o});if(!(G&&Q))throw new j("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new NT({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:B,tx:W}=sn({chain:H,compiledMemo:_,enableRBF:C,inputs:G,outputs:Q,sender:f,tx:w});return{inputs:B,tx:W,utxos:A.inputs}}async function e1({assetValue:n,feeOptionKey:y=Sn.Fast,feeRate:t,memo:o,sender:f,recipient:T}){let C=n.chain,H=await a1({assetValue:n,memo:o,recipient:T,sender:f}),_=t?Math.floor(t):(await Po(C))[y];return Nn({...H,chain:C,feeRate:_})}function F2(n){return async function({from:t,memo:o,feeRate:f,feeOptionKey:T=Sn.Fast,recipients:C=1}){let H=await s(n).getAddressData(t),_=f?Math.ceil(f):(await Po(n))[T],A=H?.utxo.map((l)=>({...l,hash:"",type:"P2PKH"})).filter((l)=>l.value>Math.max(Ly(n),dn(l)*_));if(!A?.length)return Ff.from({chain:n});let G=BigInt(A.reduce((l,M)=>l+M.value,0)),Q=Ff.from({chain:n,value:G}),w=typeof C==="number"?Array.from({length:C},()=>({address:t,value:0})):C;if(o)w.push({address:t,script:Wn(o),value:0});let B=Go({inputs:A,outputs:w}),W=Ff.from({chain:n,value:BigInt(B*_)});return Q.sub(W)}}function u2(n){return async function(t){let{fee:o}=await e1(t);return Ff.from({chain:n,value:Q2.fromBigInt(BigInt(o),8).getValue("string")})}}function k2({chain:n,phrase:y,derivationPath:t,seed:o}){let f=Bn(n),{privateKey:T,publicKey:C}=Io({chain:n,derivationPath:t,phrase:y,seed:o}),H=n===e.BitcoinCash?[DT.ALL]:[r1.ALL];return{getAddress:()=>xT({chain:n,network:f,publicKey:C}),privateKey:T,publicKey:C,signTransaction:(_)=>{return _.sign(T,H),_}}}function p2(n,y){return async function({memo:o,recipient:f,feeOptionKey:T,feeRate:C,assetValue:H,enableRBF:_=!1}){let A=y?.getAddress();if(!(y&&A))throw new j("toolbox_utxo_no_signer");if(!f)throw new j("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});Z2({condition:_&&!uf.includes(n),id:`rbf_not_supported_${n}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${n}. Transaction will be created without RBF signaling.`});let G=_&&uf.includes(n),Q=C||(await Po(n))[T||Sn.Fast],{tx:w}=await s1({assetValue:H,enableRBF:G,feeRate:Q,memo:o,recipient:f,sender:A});return y.signTransaction(w),w.finalize(),s(n).broadcastTx(Bo.encode(w.extract()))}}function RT(n){return(y)=>OT({address:y,chain:n})}function ST(n){let y=Bn(n);return function(o){if(!o)throw new j("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return xT({chain:n,network:y,publicKey:o.publicKey})}}function en({chain:n,...y}){let t="phrase"in y?y.phrase:void 0,o="index"in y?y.index||0:0,f=t?zT(t):void 0,T=h1("derivationPath"in y&&y.derivationPath?y.derivationPath:M2(m1[n],{index:o})),C=t?k2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0,H="signer"in y?y.signer:void 0,_=t?Io({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function A(){if(C)return Promise.resolve(C.getAddress());if(H)return H.getAddress();return Promise.resolve(void 0)}let G=t?S2({chain:n,derivationPath:T,phrase:t,seed:f}):void 0;function Q(){if(!G)return;return G.publicExtendedKey}function w({index:X,change:U=!1}){if(!G)return;if(!Number.isInteger(X)||X<0)throw RangeError(`index must be a non-negative integer, got: ${X}`);let q=Bn(n),L=G.deriveChild(Number(U)).deriveChild(X);if(!L.publicKey)throw new j("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let Y=xT({chain:n,network:q,publicKey:L.publicKey}),D=Bo.encode(L.publicKey);return{address:Y,change:U,index:X,pubkey:D}}async function B(X){if(!uf.includes(n))return{reason:`RBF is not supported on ${n}`,supported:!1};let U=await s(n).getTransactionDetails(X);return{canReplace:U.isRBF&&!U.confirmed,confirmed:U.confirmed,enabled:U.isRBF,fee:U.fee,sequences:U.sequences,supported:!0}}async function W({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!uf.includes(n))throw new j("toolbox_utxo_rbf_not_supported",{chain:n});let Y=await s(n).getTransactionDetails(X);if(!Y.isRBF)throw new j("toolbox_utxo_tx_not_replaceable",{txid:X});if(Y.confirmed)throw new j("toolbox_utxo_tx_already_confirmed",{blockId:Y.blockId,txid:X});let D=Y.inputs.reduce((i,Un)=>i+Un.value,0),O=Y.outputs.find((i)=>i.recipient===q)?.value||0;if(O===0)throw new j("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let x=await Promise.all(Y.inputs.map(async(i)=>{let Un=await s(n).getRawTx(i.transaction_hash);return{hash:i.transaction_hash,index:i.index,txHex:Un,value:i.value,witnessUtxo:void 0}})),u=L?Wn(L):null,p=Go({feeRate:U,inputs:x.map((i)=>({...i,type:"P2WPKH"})),outputs:[{address:q,value:O}]}),P=Math.ceil(p*U);if(P<=Y.fee)throw new j("toolbox_utxo_rbf_fee_too_low",{newFee:P,originalFee:Y.fee});let v=P-Y.fee,V=O-v;if(V<=0)throw new j("toolbox_utxo_rbf_insufficient_change");let m=new NT({allowLegacyWitnessUtxo:!0,version:1}),Hn=[{address:q,value:V},...L?[{address:"",script:Wn(L),value:0}]:[]],An=D-V-P,a=await A();if(An>Ly(n)&&a)Hn.push({address:a,value:An});return sn({chain:n,compiledMemo:u,inputs:x,outputs:Hn,sender:a||q,tx:m}),{feeDelta:v,newFee:P,originalFee:Y.fee,tx:m}}async function l({txid:X,newFeeRate:U,recipient:q,memo:L}){if(!C)throw new j("toolbox_utxo_no_signer");let{tx:Y,originalFee:D,newFee:J}=await W({memo:L,newFeeRate:U,recipient:q,txid:X});C.signTransaction(Y),Y.finalize();let O=await s(n).broadcastTx(Bo.encode(Y.extract()));return{newFee:J,originalFee:D,txid:O}}function M({index:X,change:U=!1}){if(!G)return;return G.deriveChild(Number(U)).deriveChild(X).privateKey||void 0}function N({tx:X,inputDerivations:U}){if(!G)throw new j("toolbox_utxo_no_signer");let q=n===e.BitcoinCash?[DT.ALL]:[r1.ALL];for(let L=0;L<U.length;L++){let Y=U[L];if(!Y)continue;let{derivationIndex:D,isChange:J}=Y,O=M({change:J,index:D});if(!O)throw new j("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${L} at index ${D}`});X.signIdx(O,L,q)}return X}async function Z({utxos:X,recipient:U,assetValue:q,memo:L,feeRate:Y,feeOptionKey:D,changeAddress:J}){if(!G)throw new j("toolbox_utxo_no_signer");let O=Y||(await Po(n))[D||Sn.Fast],x=L?Wn(L):null,u=[{address:U,value:q.getBaseValue("number")}];if(x)u.push({address:"",script:x,value:0});let p=X.map(({hash:a,index:i,value:Un,txHex:fo,witnessUtxo:Xo})=>({hash:a,index:i,txHex:fo,value:Un,witnessUtxo:Xo?{script:Xo.script,value:Xo.value}:void 0})),{inputs:P,outputs:v}=Nn({chain:n,feeRate:O,inputs:p,outputs:u});if(!(P&&v))throw new j("toolbox_utxo_insufficient_balance",{assetValue:q,sender:"multiple addresses"});let V=new NT({allowLegacyWitnessUtxo:!0,version:1}),m=X[0]?.address,Hn=J||await A()||m||U;sn({chain:n,compiledMemo:x,inputs:P,outputs:v,sender:Hn,tx:V});let An=P.map((a)=>{let i=X.find((Un)=>Un.hash===a.hash&&Un.index===a.index);return i?{derivationIndex:i.derivationIndex,isChange:i.isChange}:{derivationIndex:0,isChange:!1}});return N({inputDerivations:An,tx:V}),V.finalize(),s(n).broadcastTx(Bo.encode(V.extract()))}function z({address:X,gapLimit:U=20}){if(!G)return;for(let q=0;q<U;q++){let L=w({change:!1,index:q}),Y=w({change:!0,index:q}),D=L?.address===X?!1:Y?.address===X;if(L?.address===X||Y?.address===X)return{change:D,index:q}}return}return{accumulative:Nn,broadcastTx:(X)=>s(n).broadcastTx(X),bumpFee:l,calculateTxSize:Go,createKeysForPath:(X)=>Io({...X,chain:n}),createReplacementTransaction:W,createTransaction:s1,deriveAddressAtIndex:w,derivePrivateKeyAtIndex:M,estimateMaxSendableAmount:F2(n),estimateTransactionFee:u2(n),getAddress:A,getAddressFromKeys:ST(n),getBalance:wn(n),getExtendedPublicKey:Q,getFeeRates:()=>Po(n),getInputsOutputsFee:e1,getNetworkForChain:()=>Bn(n),getPrivateKeyFromMnemonic:(X)=>R2(Io({...X,chain:n}).privateKey,n),isRBFEnabled:B,keys:_,resolveDerivationIndex:z,signAndBroadcastTransaction:async(X)=>{if(!C)throw new j("toolbox_utxo_no_signer");return C.signTransaction(X),X.finalize(),await s(n).broadcastTx(Bo.encode(X.extract()))},signTransactionWithMultipleKeys:N,transfer:p2(n,C),transferFromMultipleAddresses:Z,validateAddress:RT(n)}}var My,uf;var Zy=F(()=>{kn();uo();Qy();My=[e.Dash,e.Dogecoin,e.Zcash,e.BitcoinCash],uf=[e.Bitcoin]});import{hex as I2}from"@scure/base";import{Chain as P2,derivationPathToString as $2,FeeOption as E2,NetworkDerivationPath as v2,SwapKitError as no,updateDerivationPath as b2}from"@swapkit/helpers";import{BCHSigHash as V2,CashAddrPrefix as nH,CashAddrType as oH,encodeCashAddr as yH,NETWORKS as K2,p2pkh as fH,Transaction as tH}from"@swapkit/utxo-signer";function Jy(n){return Wo(Wy(n))}function j2(n){let y=Bn(Fn);function t(f){return f.sign(n.privateKey,[V2.ALL]),f}function o(){let f=fH(n.publicKey,y);if(!f.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let T=yH({hash:f.hash,prefix:nH.MAINNET,type:oH.P2PKH});return Promise.resolve(T.replace(/^bitcoincash:/,""))}return{getAddress:o,signTransaction:t}}function FT(n){let y="phrase"in n?n.phrase:void 0,t="index"in n?n.index||0:0,o=$2("derivationPath"in n&&n.derivationPath?n.derivationPath:b2(v2[Fn],{index:t})),f=y?Io({chain:Fn,derivationPath:o,phrase:y}):void 0,T=f?j2(f):("signer"in n)?n.signer:void 0;function C(){return Promise.resolve(T?.getAddress())}let{getBalance:H,getFeeRates:_,broadcastTx:A,...G}=en({chain:Fn});function Q(w,B=!0){return H(Wo(Wy(w)))}return{...G,broadcastTx:A,buildTx:i2,createTransaction:TH,getAddress:C,getAddressFromKeys:h2,getBalance:Q,getFeeRates:_,stripPrefix:Wo,stripToCashAddress:Jy,transfer:c2({broadcastTx:A,getFeeRates:_,signer:T}),validateAddress:an}}async function TH({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){if(!an(y))throw new no("toolbox_utxo_invalid_address",{address:y});let T=Math.ceil(n.getBaseValue("number")+o*7500),C=await s(Fn).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:T}),H=t?Wn(t):null,_=[],A=Vn(y);if(_.push({address:A,value:n.getBaseValue("number")}),H)_.push({script:H,value:0});let{inputs:G,outputs:Q}=Nn({chain:Fn,feeRate:o,inputs:C,outputs:_});if(!(G&&Q))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let w=new tH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!H,version:1}),B=Vn(f),{inputs:W,tx:l}=sn({chain:Fn,compiledMemo:H,inputs:G,outputs:Q.map((M)=>("address"in M)&&M.address?{...M,address:Vn(M.address)}:M),sender:B,tx:w});return{inputs:W,tx:l,utxos:G}}function c2({broadcastTx:n,getFeeRates:y,signer:t}){return async function({recipient:f,assetValue:T,feeOptionKey:C=E2.Fast,...H}){let _=await t?.getAddress();if(!(t&&_))throw new no("toolbox_utxo_no_signer");if(!f)throw new no("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let A=H.feeRate||(await y())[C],{tx:G}=await TH({...H,assetValue:T,feeRate:A,recipient:f,sender:_}),Q=await t.signTransaction(G);return Q.finalize(),n(I2.encode(Q.extract()))}}async function i2({assetValue:n,recipient:y,memo:t,feeRate:o,sender:f}){let T=Wy(y);if(!an(T))throw new no("toolbox_utxo_invalid_address",{address:T});let C=Math.ceil(n.getBaseValue("number")+o*7500),H=await s(Fn).getUtxos({address:Jy(f),fetchTxHex:!0,targetValue:C}),_=Number(o.toFixed(0)),A=t?Wn(t):null,G=[];if(G.push({address:Vn(y),value:n.getBaseValue("number")}),A)G.push({script:A,value:0});let{inputs:Q,outputs:w}=Nn({chain:Fn,feeRate:_,inputs:H,outputs:G});if(!(Q&&w))throw new no("toolbox_utxo_insufficient_balance",{assetValue:n,sender:f});let B=new tH({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!A,version:1}),{inputs:W,tx:l}=sn({chain:Fn,compiledMemo:A,inputs:Q,outputs:w,sender:Vn(f),tx:B});return{inputs:W,tx:l,utxos:H}}function h2(n){let y=K2.bitcoinCash,t=fH(n.publicKey,y);if(!t.hash)throw new no("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return yH({hash:t.hash,prefix:nH.MAINNET,type:oH.P2PKH}).replace(/^bitcoincash:/,"")}var Fn;var kf=F(()=>{uo();Zy();Qy();Fn=P2.BitcoinCash});import{createBase58check as m2,hex as r2}from"@scure/base";import{HDKey as _H}from"@scure/bip32";import{mnemonicToSeedSync as AH}from"@scure/bip39";import{Chain as pf,derivationPathToString as g2,FeeOption as d2,NetworkDerivationPath as a2,SKConfig as UH,SwapKitError as $o,updateDerivationPath as s2}from"@swapkit/helpers";import{Address as e2,createZcashTransaction as n8,OutScript as o8,PCZT as y8,utils as wH,WIF as f8,ZCASH_NETWORK as t8,ZCASH_TEST_NETWORK as T8,ZcashConsensusBranchId as C8,ZcashSigHash as CH,ZcashVersionGroupId as H8}from"@swapkit/utxo-signer";import{match as _8,P as uT}from"ts-pattern";function qH(){let{isStagenet:n}=UH.get("envs");return n?T8:t8}function U8(n){return A8.encode(n)}function w8({phrase:n,derivationPath:y}){let t=AH(n),f=_H.fromMasterSeed(t).derive(y);if(!f.privateKey||!f.publicKey)throw new $o("toolbox_utxo_invalid_params");let{privateKey:T,publicKey:C}=f,H=wH.hash160(C),{isStagenet:_}=UH.get("envs"),A=_?new Uint8Array([29,37]):new Uint8Array([28,184]),G=new Uint8Array(A.length+H.length);G.set(A,0),G.set(H,A.length);let Q=U8(G);return{getAddress:()=>Promise.resolve(Q),signTransaction:(w)=>{if(w instanceof y8)return w.signAllInputs(T,C,CH.ALL),w.finalizeAllInputs(),Promise.resolve(w.extract());return w.signAllInputs(T,C,CH.ALL),Promise.resolve(w)}}}function q8({inputs:n,outputs:y,tx:t,sender:o,compiledMemo:f}){let T=qH();for(let C of n){let H=e2(T).decode(o),_=o8.encode(H);t.addInput({index:C.index,script:_,sequence:4294967295,txid:r2.decode(C.hash),value:BigInt(C.value)})}for(let C of y){let H="address"in C&&C.address?C.address:o,_=C.script;if(_&&!f)continue;if(_&&f)t.addOutput({amount:0n,script:f});else t.addOutputAddress(H,BigInt(C.value),T)}return{inputs:n,tx:t}}async function HH(n){let{assetValue:y,recipient:t,memo:o,feeRate:f,sender:T,fetchTxHex:C}=n,H=o?Wn(o):null,_=await s(pf.Zcash).getUtxos({address:T,fetchTxHex:C!==!1}),A=[{address:t,value:Number(y.getBaseValue("string"))},...H?[{script:H,value:0}]:[]],{inputs:G,outputs:Q}=Nn({chain:pf.Zcash,changeAddress:T,feeRate:f,inputs:_,outputs:A});if(!(G&&Q))throw new $o("toolbox_utxo_insufficient_balance",{assetValue:y,sender:T});let w=n8({consensusBranchId:C8.NU6_1,expiryHeight:0,lockTime:0,version:4,versionGroupId:H8.SAPLING}),{tx:B,inputs:W}=q8({compiledMemo:H,inputs:G,outputs:Q,sender:T,tx:w});return{inputs:W,outputs:Q,tx:B}}function kT(n){let y=_8(n).with({signer:uT.not(uT.nullish)},({signer:_})=>_).with({phrase:uT.string},({phrase:_,derivationPath:A,index:G=0})=>{let Q=A||a2[pf.Zcash]||[44,133,0,0,0],w=s2(Q,{index:G}),B=g2(w);return w8({derivationPath:B,phrase:_})}).otherwise(()=>{return}),t=en({chain:pf.Zcash,signer:y});async function o({recipient:_,assetValue:A,feeOptionKey:G=d2.Fast,...Q}){let w=await y?.getAddress();if(!(y&&w))throw new $o("toolbox_utxo_no_signer");let B=Q.feeRate||(await t.getFeeRates())[G],{tx:W}=await HH({...Q,assetValue:A,feeRate:B,recipient:_,sender:w}),M=(await y.signTransaction(W)).toHex();return t.broadcastTx(M)}function f({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=AH(_),w=_H.fromMasterSeed(G).derive(A);if(!w.privateKey||!w.publicKey)throw new $o("toolbox_utxo_invalid_params");return{privateKey:w.privateKey,publicKey:w.publicKey}}function T({phrase:_,derivationPath:A="m/44'/133'/0'/0/0"}){let G=f({derivationPath:A,phrase:_}),Q=qH();return f8(Q).encode(G.privateKey)}function C(_){return async function(G){if(!_)throw new $o("toolbox_utxo_no_signer");return await _.signTransaction(G)}}function H(_){return async function(G){if(!_)throw new $o("toolbox_utxo_no_signer");let Q=await _.signTransaction(G);return t.broadcastTx(Q.toHex())}}return{...t,createKeysForPath:f,createTransaction:HH,getPrivateKeyFromMnemonic:T,signAndBroadcastTransaction:H(y),signTransaction:C(y),transfer:o,validateAddress:ko}}var A8;var pT=F(()=>{uo();Zy();Qy();A8=m2(wH.sha256)});import{Chain as Eo,SwapKitError as G8}from"@swapkit/helpers";function l8(n,y){switch(n){case Eo.BitcoinCash:return FT(y||{});case Eo.Zcash:return kT(y);case Eo.Bitcoin:case Eo.Dogecoin:case Eo.Litecoin:case Eo.Dash:return en({chain:n,...y});default:throw new G8("toolbox_utxo_not_supported",{chain:n})}}var GH=F(()=>{kf();Zy();pT();kf();Qy()});var IT={};nn(IT,{validateZcashAddress:()=>ko,validateUtxoAddress:()=>OT,validateBchAddress:()=>an,toLegacyAddress:()=>Vn,toCashAddress:()=>Wy,stripToCashAddress:()=>Jy,stripPrefix:()=>Wo,nonSegwitChains:()=>My,isValidAddress:()=>ZT,getUtxoToolbox:()=>l8,getUtxoNetwork:()=>aU,getUtxoApi:()=>s,getUTXOAddressValidator:()=>RT,getScriptTypeForAddress:()=>Fo,getOutputSize:()=>Xy,getNetworkForChain:()=>Bn,getInputSize:()=>dn,getDustThreshold:()=>Ly,detectAddressNetwork:()=>JT,createZcashToolbox:()=>kT,createUTXOToolbox:()=>en,createHDWalletHelpers:()=>x1,createCustomUtxoApi:()=>dU,createBCHToolbox:()=>FT,compileMemo:()=>Wn,calculateTxSize:()=>Go,addressFromKeysGetter:()=>ST,addInputsAndOutputs:()=>sn,accumulative:()=>Nn,UtxoNetwork:()=>MT,UTXOScriptType:()=>Sf,TX_OVERHEAD:()=>xf,SEGWIT_MARKER_FLAG_WEIGHT:()=>Rf,OutputSizes:()=>By,OP_RETURN_OVERHEAD:()=>b1,MIN_TX_FEE:()=>q2,InputSizes:()=>Of});var PT=F(()=>{Zy();uo();GH();kf();pT()});import{KeyPairSigner as W8}from"@near-js/signers";import{derivationPathToString as B8,SwapKitError as X8}from"@swapkit/helpers";function Yy(n){return n.length>=2&&n.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(n)}async function If(n){let{parseSeedPhrase:y}=await import("near-seed-phrase"),{KeyPair:t}=await import("@near-js/crypto"),o=n.index||0,f=n.derivationPath?B8(n.derivationPath.slice(0,3)):`m/44'/397'/${o}'`,{secretKey:T}=y(n.phrase,f),C=t.fromString(T);return WH(C)}async function $T(n){let{KeyPair:y}=await import("@near-js/crypto"),t=y.fromString(n);return WH(t)}function WH(n){return new lH(n)}async function Pf(n,y){let o=(await n.query({account_id:y,finality:"final",request_type:"view_access_key_list"})).keys.find((H)=>H.access_key.permission==="FullAccess");if(!o)throw new X8("toolbox_near_no_public_key_found");let{PublicKey:f}=await import("@near-js/crypto"),T=f.fromString(o.public_key);return{nonce:o.access_key.nonce||0,publicKey:T}}var lH;var ET=F(()=>{lH=class lH extends W8{#n;constructor(n){super(n);this.#n=n}getAddress(){let n=this.#n.getPublicKey(),y=Buffer.from(n.data).toString("hex");return Promise.resolve(y)}}});function vT(n){return"recipient"in n&&"amount"in n&&!("contractId"in n)}function bT(n){return"contractId"in n&&"methodName"in n}function VT(n){return"actions"in n}function KT(n){return"newAccountId"in n}function jT(n){return"contractCode"in n}function cT(n){return"customEstimator"in n}function iT(n){let y=0;for(let t of n)switch(t.enum){case"transfer":y+=Number(Tn.SIMPLE_TRANSFER);break;case"functionCall":y+=Number(Tn.CONTRACT_CALL);break;case"createAccount":y+=Number(Tn.ACCOUNT_CREATION);break;case"deployContract":y+=Number(Tn.CONTRACT_DEPLOYMENT);break;case"addKey":y+=Number(Tn.ACCESS_KEY_ADDITION);break;case"deleteKey":y+=Number(Tn.ACCESS_KEY_DELETION);break;case"stake":y+=Number(Tn.STAKE);break;default:y+=Number(Tn.CONTRACT_CALL)}return y.toString()}function hT(n){if(n==="ft_transfer"||n==="ft_transfer_call")return Tn.TOKEN_TRANSFER;if(n==="storage_deposit")return Tn.STORAGE_DEPOSIT;return Tn.CONTRACT_CALL}function L8(n){return(BigInt(n)*BigInt(1000000000000)).toString()}function Q8(n){return(BigInt(n)/BigInt(1000000000000)).toString()}var Tn;var mT=F(()=>{Tn={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 rT({account:n,contractId:y,viewMethods:t,changeMethods:o}){let{Contract:f}=await import("@near-js/accounts");return new f(n,y,{changeMethods:o,useLocalViewExecution:!0,viewMethods:t})}import{JsonRpcProvider as M8}from"@near-js/providers";import{AssetValue as gT,Chain as vo,getRPCUrl as BH,SwapKitError as Gn}from"@swapkit/helpers";import{match as XH,P as LH}from"ts-pattern";function Z8(n){let y;async function t(){if(y)return y;return y=await XH(n).with({phrase:LH.string},async(J)=>{return await If(J)}).with({signer:LH.any},({signer:J})=>J).otherwise(()=>{return}),y}async function o(){let J=await BH(vo.Near);return new M8({url:J})}async function f(J){let{Account:O}=await import("@near-js/accounts"),x=await o(),u=await t(),p=J||await T();return new O(p,x,u)}async function T(){let J=await t();if(!J)throw new Gn("toolbox_near_no_signer");return await J.getAddress()}async function C(J){return(await X({changeMethods:[],contractId:J.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:J.accountId})}async function H(J){let x=[await w({args:{account_id:J.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await w({args:{amount:J.assetValue.getBaseValue("string"),memo:J.memo||null,receiver_id:J.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return U({actions:x,receiverId:J.contractId})}async function _(J){if(!await t())throw new Gn("toolbox_near_no_signer");let{assetValue:x,recipient:u,memo:p}=J,P=await T();if(!x.isGasAsset&&x.address){if(!await C({accountId:u,contractId:x.address}))return H({assetValue:x,contractId:x.address,memo:p,recipient:u})}let v=await A({...J,sender:P});return l(v)}async function A({recipient:J,assetValue:O,memo:x,attachedDeposit:u,sender:p,functionCall:P}){let v=await o();if(!Yy(J))throw new Gn("toolbox_near_invalid_address",{recipient:J});if(!Yy(p))throw new Gn("toolbox_near_invalid_address",{sender:p});if(P)return Q({...P,sender:p});if(!O.isGasAsset){let B0=O.address;if(!B0)throw new Gn("toolbox_near_missing_contract_address");return Q({args:{amount:O.getBaseValue("string"),memo:x||null,receiver_id:J},attachedDeposit:u||"1",contractId:B0,gas:"250000000000000",methodName:"ft_transfer",sender:p})}let{publicKey:V,nonce:m}=await Pf(v,p),Hn=O.getBaseValue("bigint"),{actionCreators:An,createTransaction:a}=await import("@near-js/transactions"),{baseDecode:i}=await import("@near-js/utils"),Un=[An.transfer(Hn)];if(x&&u)Un.push(An.functionCall("memo",{memo:x},BigInt("250000000000000"),BigInt(u)));let fo=await v.block({finality:"final"}),Xo=i(fo.header.hash);return a(p,V,J,m+1,Un,Xo)}function G(J){let O=J.encode();return Buffer.from(O).toString("base64")}async function Q({args:J,attachedDeposit:O,contractId:x,gas:u,methodName:p,sender:P}){let v=await o(),{publicKey:V,nonce:m}=await Pf(v,P),{createTransaction:Hn,actionCreators:An}=await import("@near-js/transactions"),{baseDecode:a}=await import("@near-js/utils"),i=await v.block({finality:"final"}),Un=a(i.header.hash),fo=[An.functionCall(p,Buffer.from(JSON.stringify(J)),BigInt(u),BigInt(O))];return Hn(P,V,x,m+1,fo,Un)}async function w(J){let{actionCreators:O}=await import("@near-js/transactions");return O.functionCall(J.methodName,Buffer.from(JSON.stringify(J.args)),BigInt(J.gas),BigInt(J.attachedDeposit))}async function B(J){let O=await t();if(!O)throw new Gn("toolbox_near_no_signer");let[x,u]=await O.signTransaction(J);return u}async function W(J){return(await(await o()).sendTransaction(J)).transaction.hash}async function l(J){let O=await t();if(!O)throw new Gn("toolbox_near_no_signer");try{let x=await B(J);return await W(x)}catch{return O.signAndSendTransactions?.({transactions:[J]})}}async function M(J){let O=await t();if("assetValue"in J){let u=await N();try{let p=await BH(vo.Near),P=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:v}}=await P.json(),{execution:V,send_sir:m}=v.transaction_costs.action_receipt_creation_config,{execution:Hn,send_sir:An}=v.transaction_costs.action_creation_config.transfer_cost,a=BigInt(An)+BigInt(Hn),i=BigInt(m)+BigInt(V),fo=(a+i)*BigInt(u.toString());return gT.from({chain:vo.Near,value:fo})}catch(p){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",p);let P=BigInt("115123062500"),v=BigInt("108059500000"),m=(P+v)*BigInt(u.toString());return gT.from({chain:vo.Near,value:m})}}let x=O?await f():void 0;return q(J,x)}async function N(){let J=await o();try{return await J.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Z(J,O,x){if(!await t())throw new Gn("toolbox_near_no_signer");let p=await f(),{formatNearAmount:P}=await import("@near-js/utils"),{PublicKey:v}=await import("@near-js/crypto"),V=P(x)||"0";return(await p.createAccount(J,v.fromString(O),BigInt(V))).transaction.hash}async function z(J){let O=await t();try{if(!O)throw new Gn("toolbox_near_no_signer");let{actionCreators:x}=await import("@near-js/transactions"),{contractId:u,methodName:p,args:P,deposit:v}=J,V=await f(),m=await q({args:P||{},contractId:u,methodName:p}),Hn=x.functionCall(p,P||{},m.getBaseValue("bigint"),BigInt(v||"1"));return(await V.signAndSendTransaction({actions:[Hn],receiverId:u})).transaction_outcome.id}catch(x){throw new Gn("toolbox_near_transfer_failed",{error:x})}}async function X(J){let O=await f();return rT({account:O,changeMethods:J.changeMethods,contractId:J.contractId,viewMethods:J.viewMethods})}async function U(J){if(!await t())throw new Gn("toolbox_near_no_signer");if(J.actions.length===0)throw new Gn("toolbox_near_empty_batch");return(await(await f()).signAndSendTransaction({actions:J.actions,receiverId:J.receiverId})).transaction.hash}async function q(J,O){let x=await XH(J).when(vT,()=>Tn.SIMPLE_TRANSFER).when(bT,(p)=>hT(p.methodName)).when(VT,(p)=>iT(p.actions)).when(KT,()=>Tn.ACCOUNT_CREATION).when(jT,()=>Tn.CONTRACT_DEPLOYMENT).when(cT,(p)=>{if(!O)throw new Gn("toolbox_near_no_account");return p.customEstimator(O)}).otherwise(()=>{throw new Gn("toolbox_near_invalid_gas_params")}),u=BigInt(x)*BigInt(1000000000000);return gT.from({chain:vo.Near,value:u})}function L(J,O){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),q(J,O)}async function Y(){let J=await o();try{return(await J.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function D(){let J=await t();return J?(await J.getPublicKey()).toString():""}return{broadcastTransaction:W,callFunction:z,createAction:w,createContract:X,createContractFunctionCall:Q,createSubAccount:Z,createTransaction:A,estimateGas:L,estimateGasLimit:q,estimateTransactionFee:M,executeBatchTransaction:U,getAddress:T,getBalance:wn(vo.Near),getGasPrice:Y,getNearProvider:o,getPublicKey:D,getSignerFromPhrase:If,getSignerFromPrivateKey:$T,serializeTransaction:G,signAndBroadcastTransaction:l,signTransaction:B,transfer:_,validateAddress:Yy}}var dT=F(()=>{kn();ET();mT()});var QH=F(()=>{dT()});var aT={};nn(aT,{validateNearAddress:()=>Yy,tgasToGas:()=>L8,isSimpleTransfer:()=>vT,isCustomEstimator:()=>cT,isContractDeployment:()=>jT,isContractCall:()=>bT,isBatchTransaction:()=>VT,isAccountCreation:()=>KT,getNearToolbox:()=>Z8,getNearSignerFromPrivateKey:()=>$T,getNearSignerFromPhrase:()=>If,getFullAccessPublicKey:()=>Pf,getContractMethodGas:()=>hT,gasToTGas:()=>Q8,estimateBatchGas:()=>iT,createNearContract:()=>rT,GAS_COSTS:()=>Tn});var sT=F(()=>{ET();mT();dT();QH()});var n0={};nn(n0,{validateRadixAddress:()=>ZH,getRadixToolbox:()=>S8});import{GatewayApiClient as J8}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as Y8}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as MH,Chain as eT,SKConfig as N8,SwapKitError as z8}from"@swapkit/helpers";function ZH(n){return n.startsWith("account_rdx1")&&n.length===66}function D8({networkApi:n}){return async function(t){let o=await O8({address:t,networkApi:n}),f=await x8({networkApi:n,resources:o});if(!f.some((C)=>C.isGasAsset))return[MH.from({chain:eT.Radix}),...f];return f}}async function O8({address:n,networkApi:y}){let t=!0,o,f=[],T=await R8(y);while(t){let C={address:n,at_ledger_state:{state_version:T},cursor:o,limit_per_page:100},H=await y.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:C});if(f=f.concat(H.items),H.next_cursor)o=H.next_cursor;else t=!1}return f}async function x8({resources:n,networkApi:y}){let t=[],o=50,f=[];for(let T=0;T<n.length;T+=50)f.push(n.slice(T,T+50));for(let T of f){let C=T.map((A)=>A.resource_address),H=await y.state.getEntityDetailsVaultAggregated(C),_=new Map;for(let A of H)if(A.details!==void 0){let G=A.metadata?.items.find((w)=>w.key==="symbol"),Q=G?.value.typed.type==="String"?G.value.typed.value:"?";if(A.details.type==="FungibleResource")_.set(A.address,{decimals:A.details.divisibility,symbol:Q})}for(let A of T)if(A.aggregation_level==="Global"){let G=_.get(A.resource_address)||{decimals:0,symbol:"?"},Q=MH.from({asset:G.symbol!==eT.Radix?`${eT.Radix}.${G.symbol}-${A.resource_address}`:"XRD.XRD",value:A.amount});t.push(Q)}}return t}async function R8(n){return(await n.status.getCurrent()).ledger_state.state_version}function S8({dappConfig:n}={}){let y=n||N8.get("integrations").radix,t=Y8({...y,networkId:y.network?.networkId||1}),o=J8.initialize(t.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:D8({networkApi:o}),networkApi:o,signAndBroadcast:()=>{throw new z8("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:ZH}}var o0=()=>{};import{SwapKitError as F8}from"@swapkit/helpers";function $f(n){return/^[0-9A-Fa-f]{40}$/.test(n)}function Ny(n){if($f(n))return n.toUpperCase();if(n.length<=3){let t=Buffer.from(n.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${t}${"0".repeat(10)}`.toUpperCase()}let y=Buffer.from(n).toString("hex").toUpperCase();if(y.length>40)throw new F8({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n,reason:"Currency exceeds maximum length (20 bytes)"}});return y.padEnd(40,"0")}function u8(n){if(!$f(n))return n;if(n.toUpperCase().startsWith("00")){let y=n.slice(24,30);try{let t=Buffer.from(y,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(t)&&t.length>0)return t}catch{}return n.toUpperCase()}try{let y=n.replace(/0+$/,""),t=y.length%2===0?y:`${y}0`,o=Buffer.from(t,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(o))return o}catch{}return n.toUpperCase()}function bo(n){if($f(n))return n.toUpperCase();if(n.length<=3)return n;return Ny(n)}var Ef=()=>{};import{RequestClient as k8,warnOnce as p8}from"@swapkit/helpers";async function I8(n,y){let t=bo(n),o=vf.find((f)=>bo(f.currency)===t&&f.issuer===y);if(o)return o;try{let f=await k8.get(`https://api.xrplmeta.org/token/${n}:${y}`);if(f)return{currency:n,decimals:15,description:f.desc,domain:f.domain,icon:f.icon,issuer:y,name:f.name,verified:f.self_assessment?.is_regulated||f.self_assessment?.is_licensed}}catch(f){p8({condition:!0,id:`xrpl_token_lookup_${n}_${y}`,warning:`Failed to fetch XRPL token info for ${n}:${y}: ${f}`})}return{currency:n,decimals:15,issuer:y,verified:!1}}function P8(n){return vf.filter((y)=>y.issuer===n)}function $8(n,y){let t=bo(n);return vf.some((o)=>bo(o.currency)===t&&o.issuer===y)}var vf;var JH=F(()=>{Ef();vf=[{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 y0={};nn(y0,{validateRippleAddress:()=>Kf,parseXrplTokenIdentifier:()=>RH,normalizeCurrency:()=>bo,isKnownToken:()=>$8,isHexCurrency:()=>$f,hexToCurrency:()=>u8,hashes:()=>c8,getXrplTokenInfo:()=>I8,getRippleToolbox:()=>j8,getKnownTokensByIssuer:()=>P8,formatXrplTokenIdentifier:()=>SH,currencyToHex:()=>Ny,XRPL_TOKEN_ERROR_CODES:()=>Vf,XRPL_KNOWN_TOKENS:()=>vf});import{AssetValue as bf,Chain as zn,getChainConfig as YH,getRPCUrl as E8,SwapKitError as _n}from"@swapkit/helpers";import{match as NH,P as zH}from"ts-pattern";import{Client as v8,isValidAddress as xH,Wallet as b8,xrpToDrops as V8}from"xrpl";import{hashes as c8}from"xrpl";function RH(n){let y=n.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!y?.[1]||!y?.[2])return null;if(!xH(y[2]))return null;return{currency:y[1],issuer:y[2]}}function SH(n,y){return`${zn.Ripple}.${n}-${y}`}function K8(n){if(n.isGasAsset)return V8(n.getValue("string"));let y=RH(n.toString());if(!y)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:n.toString()}});return{currency:y.currency,issuer:y.issuer,value:n.getValue("string")}}function OH(n){let y=b8.fromMnemonic(n);return{getAddress:()=>Promise.resolve(y.address),signTransaction:(t)=>Promise.resolve(y.sign(t))}}function Kf(n){return xH(n)}function j8(n={}){let y=NH(n).with({phrase:zH.string},({phrase:Z})=>OH(Z)).with({signer:zH.any},({signer:Z})=>Z).otherwise(()=>{return}),t;async function o(){let Z=await E8(zn.Ripple);if(!Z)throw new _n({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:zn.Ripple}});let z=new v8(Z);return await z.connect(),z}async function f(){if(t){let Z=await t.catch(()=>null);if(Z?.isConnected())return Z}return t=o(),t}let T=()=>{if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.getAddress()},C=async(Z)=>{let z=Z||await T(),{baseDecimal:X}=YH(zn.Ripple),U=await f();try{let[q,L]=await Promise.all([U.request({account:z,command:"account_info"}),U.request({account:z,command:"account_lines"})]),Y=q.result.account_data.Balance,D=[bf.from({chain:zn.Ripple,fromBaseDecimal:X,value:Y})];for(let J of L.result.lines){let O=SH(J.currency,J.account);if(Number.parseFloat(J.balance)!==0)D.push(bf.from({asset:O,asyncTokenLookup:!1,value:J.balance}))}return D}catch(q){if(q.data?.error_code===DH.ACCOUNT_NOT_FOUND)return[bf.from({chain:zn.Ripple,value:0})];throw new _n({errorKey:"toolbox_ripple_get_balance_error",info:{address:z,error:q}})}},H=async()=>{let{baseDecimal:Z}=YH(zn.Ripple),U=(await(await f()).request({command:"fee"})).result.drops.open_ledger_fee;return bf.from({chain:zn.Ripple,fromBaseDecimal:Z,value:U})};async function _(Z){let z=Z||await T(),X=await f();try{return(await X.request({account:z,command:"account_lines"})).result.lines.map((q)=>({account:q.account,authorized:q.authorized??!1,balance:q.balance,currency:q.currency,freeze:q.freeze??!1,freezePeer:q.freeze_peer??!1,limit:q.limit,limitPeer:q.limit_peer,noRipple:q.no_ripple??!1,noRipplePeer:q.no_ripple_peer??!1,peerAuthorized:q.peer_authorized??!1,qualityIn:q.quality_in??0,qualityOut:q.quality_out??0}))}catch(U){if(U.data?.error_code===DH.ACCOUNT_NOT_FOUND)return[];throw new _n({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:z,error:U}})}}async function A({address:Z,currency:z,issuer:X}){let U=await _(Z),q=Ny(z);return U.some((L)=>{return Ny(L.currency)===q&&L.account===X})}async function G({currency:Z,issuer:z,limit:X,sender:U}){let q=U||await T();if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address",info:{address:z}});let L=Number.parseFloat(X);if(Number.isNaN(L)||L<0)throw new _n({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:X}});let Y=await f(),D={Account:q,LimitAmount:{currency:Z,issuer:z,value:X},TransactionType:"TrustSet"};return Y.autofill(D)}async function Q({assetValue:Z,recipient:z,memo:X,sender:U,destinationTag:q,extendBySeconds:L=150}){if(!Kf(z))throw new _n({errorKey:"core_transaction_invalid_recipient_address"});let Y=U||await T();if(Z.chain!==zn.Ripple)throw new _n({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:Z.toString()}});let D=K8(Z),J={Account:Y,Amount:D,Destination:z,TransactionType:"Payment",...q!==void 0&&{DestinationTag:q}};if(X)J.Memos=[{Memo:{MemoData:Buffer.from(X).toString("hex")}}];let x=await(await f()).autofill(J);if(x.LastLedgerSequence&&L>0)x.LastLedgerSequence+=Math.ceil(L/4);return x}function w(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});return y.signTransaction(Z)}async function B(Z){let X=await(await f()).submitAndWait(Z),{result:U}=X;if(U.validated)return U.hash;let q=U.meta?.TransactionResult,L=NH(q).with(Vf.tecNO_LINE,()=>"No trust line exists for this token").with(Vf.tecPATH_DRY,()=>"Payment path could not deliver funds").with(Vf.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,...L?{reason:L}:{txResult:q}}})}let W=async(Z)=>{try{let z=await w(Z);return B(z.tx_blob)}catch(z){if(z instanceof _n)throw z;throw new _n({errorKey:"toolbox_ripple_broadcast_error",info:{chain:zn.Ripple,error:z}})}};async function l(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await Q({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}async function M(Z){if(!y)throw new _n({errorKey:"toolbox_ripple_signer_not_found"});let z=await y.getAddress(),X=await G({...Z,sender:z}),U=await w(X);return B(U.tx_blob)}function N(){let Z=t;if(t=null,Z)Z.then((z)=>{if(z?.isConnected())return z.disconnect();return}).catch((z)=>{console.warn("XRPL Cleanup failed silently:",z)})}return{broadcastTransaction:B,createSigner:OH,createTransaction:Q,disconnect:N,estimateTransactionFee:H,getAddress:T,getBalance:C,getTrustLines:_,hasTrustLine:A,setTrustLine:G,setTrustLineAndBroadcast:M,signAndBroadcastTransaction:W,signTransaction:w,transfer:l,validateAddress:Kf}}var DH,Vf;var f0=F(()=>{Ef();Ef();JH();DH={ACCOUNT_NOT_FOUND:19},Vf={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 i8}from"@noble/hashes/sha2.js";import{bytesToHex as FH,hexToBytes as uH}from"@noble/hashes/utils.js";import{SwapKitError as Vo}from"@swapkit/helpers";function t0(n,y){let t=0n,o=0n,f=y;while(f<n.length&&f-y<10){let T=n[f++];if(T===void 0)break;if(t|=BigInt(T&127)<<o,o+=7n,(T&128)===0)return[t,f]}throw new Vo("toolbox_tron_transaction_creation_failed")}function zy(n){let y=[],t=n<0n?n+2n**64n:n;while(t>=128n)y.push(Number(t&0x7fn)|128),t>>=7n;return y.push(Number(t)),y}function jf(n,y,t){let o=n.get(y);if(o)o.push(t);else n.set(y,[t])}function g8(n){let y=new Map,t=0;while(t<n.length){let[o,f]=t0(n,t);t=f;let T=Number(o>>3n),C=Number(o&7n);if(C===cf){let[H,_]=t0(n,t);t=_,jf(y,T,{data:new Uint8Array(zy(H)),wireType:cf})}else if(C===hf){let[H,_]=t0(n,t);t=_;let A=Number(H);if(A<0||t+A>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let G=n.slice(t,t+A);t+=A,jf(y,T,{data:G,wireType:hf})}else if(C===kH){if(t+8>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+8);t+=8,jf(y,T,{data:H,wireType:kH})}else if(C===pH){if(t+4>n.length)throw new Vo("toolbox_tron_transaction_creation_failed");let H=n.slice(t,t+4);t+=4,jf(y,T,{data:H,wireType:pH})}else throw new Vo("toolbox_tron_transaction_creation_failed")}return y}function d8(n){let y=[];for(let[T,C]of[...n.entries()].sort(([H],[_])=>H-_))for(let{wireType:H,data:_}of C){let A=BigInt(T<<3|H);if(y.push(new Uint8Array(zy(A))),H===hf)y.push(new Uint8Array(zy(BigInt(_.length))));y.push(_)}let t=y.reduce((T,C)=>T+C.length,0),o=new Uint8Array(t),f=0;for(let T of y)o.set(T,f),f+=T.length;return o}function IH(n,y){if(!n||n.length%2!==0)throw new Vo("toolbox_tron_transaction_creation_failed");let t=uH(n),o=g8(t);if(y.expiration!==void 0)o.set(h8,[{data:new Uint8Array(zy(BigInt(y.expiration))),wireType:cf}]);if(y.data!==void 0)o.set(m8,[{data:uH(y.data),wireType:hf}]);if(y.fee_limit!==void 0)o.set(r8,[{data:new Uint8Array(zy(BigInt(y.fee_limit))),wireType:cf}]);let f=d8(o),T=FH(f),C=FH(i8(f));return{raw_data_hex:T,txID:C}}var cf=0,kH=1,hf=2,pH=5,h8=8,m8=10,r8=18;var PH=()=>{};import{secp256k1 as $H}from"@noble/curves/secp256k1.js";import{sha256 as EH}from"@noble/hashes/sha2.js";import{keccak_256 as a8}from"@noble/hashes/sha3.js";import{bytesToHex as Ko,hexToBytes as mf}from"@noble/hashes/utils.js";import{createBase58check as s8}from"@scure/base";import{SwapKitError as vH}from"@swapkit/helpers";function Dn(n){if(typeof n!=="string")return!1;try{let y=rf.decode(n);return y.length===21&&y[0]===bH}catch{return!1}}function VH(n){return Ko(rf.decode(n))}function nw(n){return rf.decode(n).slice(1)}function KH(n){let y=$H.getPublicKey(mf(n),!1),t=a8(y.slice(1)).slice(-20),o=new Uint8Array(21);return o[0]=bH,o.set(t,1),rf.encode(o)}function jH({txID:n,privateKey:y}){let t=$H.sign(mf(n),mf(y),{format:"recovered",prehash:!1}),o=t[0]??0,f=Ko(t.slice(1,33)),T=Ko(t.slice(33,65)),C=(o+27).toString(16).padStart(2,"0");return f+T+C}function jo({txID:n,raw_data_hex:y}){let t=Ko(EH(mf(y)));if(n!==t)throw new vH("toolbox_tron_invalid_transaction_integrity",{expected:t,txID:n})}function ow(n){return`000000000000000000000000${Ko(nw(n))}`}function yw(n){let y=typeof n==="bigint"?n:BigInt(n);if(y<0n||y>=e8)throw new vH("toolbox_tron_invalid_token_identifier",{identifier:y.toString()});return y.toString(16).padStart(64,"0")}function co(n){return n.map(({type:y,value:t})=>y==="address"?ow(t):yw(BigInt(t))).join("")}function cH(n){return Ko(new TextEncoder().encode(n))}var rf,bH=65,e8;var T0=F(()=>{rf=s8(EH),e8=2n**256n});import{Chain as fw,getRPCUrlSync as tw,SwapKitError as On,warnOnce as C0}from"@swapkit/helpers";function hH(){try{return tw(fw.Tron)}catch{return iH}}function mH(){let n=new AbortController,y=setTimeout(()=>n.abort(),_w);return{cleanup:()=>clearTimeout(y),signal:n.signal}}async function io(n,y){let{signal:t,cleanup:o}=mH();try{let f=await fetch(`${hH()}${n}`,{body:JSON.stringify(y),headers:{"Content-Type":"application/json"},method:"POST",signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function rH(n,y){let{signal:t,cleanup:o}=mH();try{let f=await fetch(`${y??hH()}${n}`,{headers:{"Content-Type":"application/json"},signal:t});if(!f.ok)throw new On("toolbox_tron_trongrid_api_error",{message:`${f.status} ${f.statusText} on ${n}`});return await f.json()}finally{o()}}async function gH(n){if(!Dn(n))throw new On("toolbox_tron_trongrid_api_error",{address:n,message:"Invalid address"});try{let y=await rH(`/v1/accounts/${n}`,iH);if(!(y.success&&y.data)||y.data.length===0)return;let t;try{t=VH(n).toLowerCase()}catch{t=n.toLowerCase()}let o=y.data.find((f)=>f.address.toLowerCase()===t);if(!o)return;return{balance:o.balance,trc20:o.trc20||[]}}catch(y){if(y instanceof On)throw y;throw new On("toolbox_tron_trongrid_api_error",{address:n,message:y instanceof Error?y.message:"Unknown error"})}}async function dH({from:n,to:y,amount:t}){let f=await io("/wallet/createtransaction",{amount:t,owner_address:n,to_address:y,visible:!0});if(!f.txID||!f.raw_data_hex||!f.raw_data)throw new On("toolbox_tron_transaction_creation_failed");let C=f.raw_data?.contract?.[0]?.parameter?.value;if(C?.to_address!==y||C?.owner_address!==n||C?.amount!==t)throw new On("toolbox_tron_transaction_creation_failed");return jo(f),f}async function aH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o,feeLimit:f,callValue:T=0}){let C=await io("/wallet/triggersmartcontract",{call_value:T,contract_address:y,fee_limit:f,function_selector:t,owner_address:n,parameter:o,visible:!0});if(!C.result.result||!C.transaction?.txID||!C.transaction?.raw_data_hex)throw new On("toolbox_tron_transaction_creation_failed");let _=C.transaction.raw_data?.contract?.[0]?.parameter?.value;if(_?.contract_address!==y||_?.owner_address!==n)throw new On("toolbox_tron_transaction_creation_failed");return jo(C.transaction),C.transaction}function sH({ownerAddress:n,contractAddress:y,functionSelector:t,parameter:o}){return io("/wallet/triggerconstantcontract",{contract_address:y,function_selector:t,owner_address:n,parameter:o,visible:!0})}async function Dy(n){try{let{result:y,txid:t}=await io("/wallet/broadcasttransaction",{raw_data:n.raw_data,raw_data_hex:n.raw_data_hex,signature:n.signature,txID:n.txID,visible:n.visible});if(!y||!t)throw new On("toolbox_tron_token_transfer_failed");return t}catch(y){throw new On("toolbox_tron_broadcast_failed",{error:y})}}async function gf(){let n={};try{let{chainParameter:y}=await rH("/wallet/getchainparameters");for(let t of y)n[t.key]=t.value}catch(y){C0({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${y instanceof Error?y.message:y}`})}return{bandwidthFee:n.getTransactionFee??Tw,createAccountFee:n.getCreateAccountFee??Cw,energyFee:n.getEnergyFee??Hw}}async function H0(n){try{let y=await io("/wallet/getaccountresource",{address:n,visible:!0});return{bandwidth:{free:(y.freeNetLimit??600)-(y.freeNetUsed??0),total:y.NetLimit??0,used:y.NetUsed??0},energy:{total:y.EnergyLimit??0,used:y.EnergyUsed??0}}}catch(y){return C0({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${y instanceof Error?y.message:y}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function _0(n){try{let y=await io("/wallet/getaccount",{address:n,visible:!0});return y&&Object.keys(y).length>0}catch{return!1}}async function A0(n){try{let{energy_used:y}=await sH({...n,ownerAddress:n.sender});return y}catch(y){return C0({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy, using default: ${y instanceof Error?y.message:y}`}),65000}}async function eH({assetAddress:n,owner:y,spender:t}){let o=co([{type:"address",value:y},{type:"address",value:t}]),T=(await sH({contractAddress:n,functionSelector:"allowance(address,address)",ownerAddress:t,parameter:o})).constant_result?.[0];if(!T)return 0n;try{return BigInt(`0x${T}`)}catch{return 0n}}var iH="https://api.trongrid.io",Tw=1000,Cw=1e5,Hw=420,_w=30000;var n_=F(()=>{T0()});import{bytesToHex as Aw}from"@noble/hashes/utils.js";import{HDKey as Uw}from"@scure/bip32";import{mnemonicToSeedSync as ww}from"@scure/bip39";import{AssetValue as Kn,BaseDecimal as o_,Chain as Mn,derivationPathToString as t_,getRPCUrl as qw,NetworkDerivationPath as T_,SwapKitError as Cn,updateDerivationPath as C_,warnOnce as y_}from"@swapkit/helpers";import{match as Gw,P as U0}from"ts-pattern";function __({phrase:n,derivationPath:y}){let t=Uw.fromMasterSeed(ww(n)).derive(y);if(!t.privateKey)throw new Cn("toolbox_tron_no_signer");return Aw(t.privateKey)}function A_({phrase:n,derivationPath:y,index:t}){let o=y||t_(C_(T_[Mn.Tron],{index:t||0}));return __({derivationPath:o,phrase:n})}function Lw({phrase:n,derivationPath:y}){let t=__({derivationPath:y,phrase:n}),o=KH(t);return{getAddress:()=>Promise.resolve(o),signTransaction:(f)=>{jo(f);let T=jH({privateKey:t,txID:f.txID});return Promise.resolve({...f,signature:[T]})}}}function f_({transaction:n,memo:y,expiration:t,feeLimit:o}){let f={},T={};if(o!==void 0&&n.raw_data)f.fee_limit=o,T.fee_limit=o;if(y){let _=cH(y);f.data=_,T.data=_}if(t){let _=n.raw_data.expiration+t*1000;f.expiration=_,T.expiration=_}if(Object.keys(f).length===0)return n;let{raw_data_hex:C,txID:H}=IH(n.raw_data_hex,f);return{...n,raw_data:{...n.raw_data,...T},raw_data_hex:C,txID:H}}function U_(n={}){let y="index"in n?n.index||0:0,t=t_("derivationPath"in n&&n.derivationPath?n.derivationPath:C_(T_[Mn.Tron],{index:y})),o,f=!1;function T(){if(f)return Promise.resolve(o);return o=Gw(n).with({phrase:U0.string},({phrase:U})=>Lw({derivationPath:t,phrase:U})).with({signer:U0.not(U0.nullish)},({signer:U})=>U).otherwise(()=>{return}),f=!0,Promise.resolve(o)}async function C(){let U=await T();if(!U)throw new Cn("toolbox_tron_no_signer");return U.getAddress()}async function H(U){let q=U||Ww,L=await gf(),Y=q*L.energyFee,D=Math.ceil(Y*1.5);return Math.min(Math.max(D,1e7),150000000)}async function _({contractAddress:U,functionSelector:q,parameter:L,sender:Y,memo:D,expiration:J}){let O=await A0({contractAddress:U,functionSelector:q,parameter:L,sender:Y}),x=await H(O),u=await aH({contractAddress:U,feeLimit:x,functionSelector:q,ownerAddress:Y,parameter:L});return f_({expiration:J,feeLimit:x,memo:D,transaction:u})}async function A(U){if(!Dn(U))return[Kn.from({chain:Mn.Tron})];try{let q=await gH(U);if(!q)return[Kn.from({chain:Mn.Tron})];let L=[Kn.from({chain:Mn.Tron,fromBaseDecimal:6,value:String(q.balance)})],Y=q.trc20?.find((D)=>(w0 in D));if(Y){let D=Y[w0];L.push(Kn.from({asset:`TRON.USDT-${w0}`,fromBaseDecimal:6,value:D}))}return L}catch(q){return y_({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${q instanceof Error?q.message:q}`}),[Kn.from({chain:Mn.Tron})]}}async function G({recipient:U,assetValue:q,memo:L,expiration:Y}){if(!Dn(U))throw new Cn("toolbox_tron_token_transfer_failed",{message:"invalid address"});let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");try{let J=await C(),O=await l({assetValue:q,expiration:Y,memo:L,recipient:U,sender:J}),x=await D.signTransaction(O),u=await Dy(x);if(!u)throw new Cn("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return u}catch(J){throw new Cn("toolbox_tron_token_transfer_failed",{message:J instanceof Error?J.message:String(J)})}}function Q({requiredBandwidth:U,resources:q,feePerUnit:L}){let Y=Math.max(0,q.free+q.total-q.used);return U>Y?(U-Y)*L:0}async function w({recipient:U,senderAddress:q}){let[L,Y,D]=await Promise.all([gf(),_0(U),H0(q)]),J=Y?0:L.createAccountFee,O=Q({feePerUnit:L.bandwidthFee,requiredBandwidth:lw,resources:D.bandwidth});return Kn.from({chain:Mn.Tron,fromBaseDecimal:o_.TRON,value:J+O})}async function B({assetValue:U,recipient:q,senderAddress:L}){let Y=U.address;if(!Y)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:U.toString()});let[D,J,O,x]=await Promise.all([gf(),_0(q),H0(L),A0({contractAddress:Y,functionSelector:"transfer(address,uint256)",parameter:co([{type:"address",value:q},{type:"uint256",value:U.getBaseValue("string")}]),sender:L})]),u=J?0:D.createAccountFee,p=Q({feePerUnit:D.bandwidthFee,requiredBandwidth:Bw,resources:O.bandwidth}),P=Math.max(0,O.energy.total-O.energy.used),v=x>P?(x-P)*D.energyFee:0;return Kn.from({chain:Mn.Tron,fromBaseDecimal:o_.TRON,value:u+p+v})}async function W({assetValue:U,recipient:q,sender:L}){let Y=await T();try{let D=L?L:Y?await C():void 0;if(!D)return U.isGasAsset?Kn.from({chain:Mn.Tron,value:0.1}):Kn.from({chain:Mn.Tron,value:15});return U.isGasAsset?w({recipient:q,senderAddress:D}):B({assetValue:U,recipient:q,senderAddress:D})}catch(D){throw y_({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${D instanceof Error?D.message:D}`}),new Cn("toolbox_fee_estimation_failed",{chain:Mn.Tron,error:D})}}async function l({recipient:U,assetValue:q,memo:L,sender:Y,expiration:D}){if(!Dn(U)||!Dn(Y))throw new Cn("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(q.isGasAsset){let O=await dH({amount:q.getBaseValue("number"),from:Y,to:U});return f_({expiration:D,memo:L,transaction:O})}let J=q.address;if(!J)throw new Cn("toolbox_tron_invalid_token_identifier",{identifier:q.toString()});return _({contractAddress:J,expiration:D,functionSelector:"transfer(address,uint256)",memo:L,parameter:co([{type:"address",value:U},{type:"uint256",value:q.getBaseValue("string")}]),sender:Y})}async function M(U){jo(U);let q=await T();if(!q)throw new Cn("toolbox_tron_no_signer");return q.signTransaction(U)}async function N(U){let q=await M(U);return Dy(q)}function Z({assetAddress:U,spenderAddress:q,from:L}){return eH({assetAddress:U,owner:L,spender:q})}async function z({assetAddress:U,spenderAddress:q,from:L,amount:Y}){let D=await Z({assetAddress:U,from:L,spenderAddress:q});if(!Y)return D>0n;return D>=BigInt(Y)}async function X({assetAddress:U,spenderAddress:q,amount:L,from:Y}){if(!Dn(U)||!Dn(q))throw new Cn("toolbox_tron_approve_failed");let D=await T();if(!D)throw new Cn("toolbox_tron_no_signer");let J=Y||await C(),O=L!==void 0?BigInt(L).toString():Xw;try{let x=await _({contractAddress:U,functionSelector:"approve(address,uint256)",parameter:co([{type:"address",value:q},{type:"uint256",value:O}]),sender:J}),u=await D.signTransaction(x),p=await Dy(u);if(!p)throw new Cn("toolbox_tron_approve_failed");return p}catch(x){if(x instanceof Cn)throw x;throw new Cn("toolbox_tron_approve_failed",{error:x})}}return{approve:X,broadcastTransaction:Dy,createTransaction:l,estimateTransactionFee:W,getAddress:C,getApprovedAmount:Z,getBalance:A,getRpcUrl:()=>qw(Mn.Tron),isApproved:z,signAndBroadcastTransaction:N,signTransaction:M,transfer:G,validateAddress:Dn}}var H_,lw=268,Ww=65000,Bw=345,w0="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",Xw="115792089237316195423570985008687907853269984665640564039457584007913129639935";var w_=F(()=>{PH();n_();T0();H_=Dn});var q0={};nn(q0,{validateTronAddress:()=>H_,getTronToolbox:()=>U_,getTronPrivateKeyFromMnemonic:()=>A_});var G0=F(()=>{w_()});import{AssetValue as Oy,Chain as oo,derivationPathToString as Qw,getChainConfig as Mw,getRPCUrl as Zw,NetworkDerivationPath as Jw,SwapKitError as yo}from"@swapkit/helpers";import{match as Yw,P as Nw}from"ts-pattern";function df(n){if(!n||typeof n!=="string"||!n.startsWith("G")||n.length!==56)return!1;return zw.test(n)}async function Dw(n){if(!df(n))return!1;try{let{StrKey:y}=await import("@stellar/stellar-sdk");return y.isValidEd25519PublicKey(n)}catch{return!1}}function q_(n={}){let y,t=n.derivationPath||Jw[oo.Stellar],o=Qw(t.slice(0,3));async function f({phrase:l,path:M}){let{HDKey:N}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:Z}=await import("@scure/bip39"),{Keypair:z}=await import("@stellar/stellar-sdk"),X=Z(l),q=N.fromMasterSeed(X).derive(M,!0);return z.fromRawEd25519Seed(Buffer.from(q.privateKey))}async function T(){if(y)return y;let l=Yw(n).with({phrase:Nw.string},({phrase:M})=>M).otherwise(()=>{return});if(!l)throw new yo("toolbox_stellar_no_signer");return y=await f({path:o,phrase:l}),y}async function C(){let{Horizon:l}=await import("@stellar/stellar-sdk"),M=await Zw(oo.Stellar);return new l.Server(M)}async function H(){try{return(await T()).publicKey()}catch{return""}}async function _(l){let M=l||await H();if(!M)throw new yo("toolbox_stellar_account_not_found");try{return(await(await C()).loadAccount(M)).balances.map((z)=>{if(z.asset_type==="native")return Oy.from({chain:oo.Stellar,value:z.balance});let X="asset_code"in z?z.asset_code:"",U="asset_issuer"in z?z.asset_issuer:"";return Oy.from({asset:`${oo.Stellar}.${X}-${U}`,asyncTokenLookup:!1,value:z.balance})})}catch{return[Oy.from({chain:oo.Stellar,value:0})]}}async function A({recipient:l,assetValue:M,memo:N,sender:Z}){if(N){if(new TextEncoder().encode(N).length>28)throw new yo("helpers_invalid_memo_type")}if(!await Dw(l))throw new yo("core_transaction_invalid_recipient_address");let X=Z||await H();if(!X)throw new yo("toolbox_stellar_no_signer");let{Asset:U,Memo:q,Networks:L,Operation:Y,TransactionBuilder:D}=await import("@stellar/stellar-sdk"),J=await C(),O=await J.fetchBaseFee(),x=await J.loadAccount(X),u=new D(x,{fee:String(O),networkPassphrase:L.PUBLIC});if(M.isGasAsset)try{await J.loadAccount(l),u.addOperation(Y.payment({amount:M.getValue("string"),asset:U.native(),destination:l}))}catch{u.addOperation(Y.createAccount({destination:l,startingBalance:M.getValue("string")}))}else u.addOperation(Y.payment({amount:M.getValue("string"),asset:new U(M.symbol,M.address),destination:l}));if(N)u.addMemo(q.text(N));return u.setTimeout(30).build()}async function G(l){let{TransactionBuilder:M,Networks:N}=await import("@stellar/stellar-sdk"),Z=await T(),z=M.fromXDR(l.toXDR(),N.PUBLIC);return z.sign(Z),z}async function Q(l){try{let M=await C(),{hash:N}=await M.submitTransaction(l);return N}catch(M){throw new yo("toolbox_stellar_broadcast_error",M)}}async function w({recipient:l,assetValue:M,memo:N}){let Z=await T(),z=Z.publicKey(),X=await A({assetValue:M,memo:N,recipient:l,sender:z});X.sign(Z);try{return(await(await C()).submitTransaction(X)).hash}catch(U){if(U instanceof yo)throw U;throw new yo("toolbox_stellar_transaction_failed",U)}}async function B(l){let M=await G(l);return Q(M)}async function W(){let{baseDecimal:l}=Mw(oo.Stellar);try{let Z=(await(await C()).feeStats()).fee_charged.p50;return Oy.from({chain:oo.Stellar,fromBaseDecimal:l,value:Z})}catch{return Oy.from({chain:oo.Stellar,fromBaseDecimal:l,value:"100"})}}return{broadcastTransaction:Q,createTransaction:A,estimateTransactionFee:W,getAddress:H,getBalance:_,signAndBroadcastTransaction:B,signTransaction:G,transfer:w,validateAddress:df}}var zw;var G_=F(()=>{zw=/^G[A-Z2-7]{55}$/});var af={};nn(af,{validateStellarAddress:()=>df,getStellarToolbox:()=>q_});var sf=F(()=>{G_()});import{AssetValue as Ow,Chain as $,CosmosChains as l0,EVMChains as W0,FeeOption as xw,SwapKitError as Rw,UTXOChains as W_}from"@swapkit/helpers";async function v4(){let{match:n}=await import("ts-pattern"),{validateAptosAddress:y}=await Promise.resolve().then(() => (Ry(),xy)),{validateEVMAddress:t}=await Promise.resolve().then(() => (Nt(),e0)),{validateCardanoAddress:o}=await Promise.resolve().then(() => (St(),Rt)),{getCosmosAddressValidator:f}=await Promise.resolve().then(() => (Hf(),Cf)),{validateHyperCoreAddress:T}=await Promise.resolve().then(() => (CT(),TT)),{validateSolanaAddress:C}=await Promise.resolve().then(() => (wT(),UT)),{validateStarknetAddress:H}=await Promise.resolve().then(() => (Bf(),Wf)),{validateSuiAddress:_}=await Promise.resolve().then(() => (Qf(),Lf)),{validateTonAddress:A}=await Promise.resolve().then(() => (Jf(),Zf)),{getUTXOAddressValidator:G}=await Promise.resolve().then(() => (PT(),IT)),{validateNearAddress:Q}=await Promise.resolve().then(() => (sT(),aT)),{validateRadixAddress:w}=await Promise.resolve().then(() => (o0(),n0)),{validateRippleAddress:B}=await Promise.resolve().then(() => (f0(),y0)),{validateTronAddress:W}=await Promise.resolve().then(() => (G0(),q0)),{validateStellarAddress:l}=await Promise.resolve().then(() => (sf(),af));return function({address:N,chain:Z}){return n(Z).with(...W0,()=>t(N)).with(...W_,(X)=>{return G(X)(N)}).with(...l0,(X)=>{return f(X)(N)}).with($.Aptos,()=>y(N)).with($.Radix,()=>w(N)).with($.HyperCore,()=>T(N)).with($.Near,()=>Q(N)).with($.Ripple,()=>B(N)).with($.Solana,()=>C(N)).with($.Stellar,()=>l(N)).with($.Starknet,()=>H(N)).with($.Sui,()=>_(N)).with($.Ton,()=>A(N)).with($.Tron,()=>W(N)).with($.Cardano,()=>o(N)).otherwise(()=>!1)}}function b4(n){return async function(t){let{match:o}=await import("ts-pattern");return o(n).returnType().with(...W0,async(f)=>{let T=await l_(f),C=await T.createTransaction(t),H="feeOptionKey"in t?t.feeOptionKey:xw.Fast;return T.estimateTransactionFee({...C,feeOption:H})}).with($.Bitcoin,$.BitcoinCash,$.Dogecoin,$.Dash,$.Litecoin,$.Solana,$.Ripple,$.Tron,$.Near,$.Cardano,$.HyperCore,async(f)=>{return(await l_(f)).estimateTransactionFee(t)}).with($.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (Ry(),xy));return f().estimateTransactionFee(t)}).with($.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (Bf(),Wf));return(await f()).estimateTransactionFee(t)}).with($.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (sf(),af));return f().estimateTransactionFee()}).with($.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (Qf(),Lf));return f().estimateTransactionFee(t)}).with($.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (Jf(),Zf));return f().estimateTransactionFee(t)}).with(...l0,async()=>{let{estimateTransactionFee:f}=await Promise.resolve().then(() => (Hf(),Cf));return f(t)}).otherwise(async()=>Ow.from({chain:n}))}}async function l_(n,y){let{match:t}=await import("ts-pattern");return t(n).returnType().with(...W0,async()=>{let{getEvmToolboxAsync:o}=await Promise.resolve().then(() => (Yt(),d0));return await o(n,y)}).with(...W_,async()=>{let{getUtxoToolbox:o}=await Promise.resolve().then(() => (PT(),IT));return o(n,y)}).with(...l0,async()=>{let{getCosmosToolbox:o}=await Promise.resolve().then(() => (Hf(),Cf));return o(n,y)}).with($.Aptos,async()=>{let{getAptosToolbox:o}=await Promise.resolve().then(() => (Ry(),xy));return o(y)}).with($.HyperCore,async()=>{let{getHyperCoreToolbox:o}=await Promise.resolve().then(() => (CT(),TT));return o(y)}).with($.Radix,async()=>{let{getRadixToolbox:o}=await Promise.resolve().then(() => (o0(),n0));return o(y)}).with($.Ripple,async()=>{let{getRippleToolbox:o}=await Promise.resolve().then(() => (f0(),y0));return o(y)}).with($.Solana,async()=>{let{getSolanaToolbox:o}=await Promise.resolve().then(() => (wT(),UT));return o(y)}).with($.Stellar,async()=>{let{getStellarToolbox:o}=await Promise.resolve().then(() => (sf(),af));return o(y)}).with($.Starknet,async()=>{let{getStarknetToolbox:o}=await Promise.resolve().then(() => (Bf(),Wf));return o(y)}).with($.Sui,async()=>{let{getSuiToolbox:o}=await Promise.resolve().then(() => (Qf(),Lf));return o(y)}).with($.Tron,async()=>{let{getTronToolbox:o}=await Promise.resolve().then(() => (G0(),q0));return o(y)}).with($.Near,async()=>{let{getNearToolbox:o}=await Promise.resolve().then(() => (sT(),aT));return o(y)}).with($.Cardano,async()=>{let{getCardanoToolbox:o}=await Promise.resolve().then(() => (St(),Rt));return o(y)}).with($.Ton,async()=>{let{getTONToolbox:o}=await Promise.resolve().then(() => (Jf(),Zf));return o(y)}).otherwise(()=>{throw new Rw("toolbox_not_supported",{chain:n})})}export{l_ as getToolbox,b4 as getFeeEstimator,v4 as getAddressValidator};