@swapkit/toolboxes 4.17.5 → 4.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/src/index.js CHANGED
@@ -1 +1 @@
1
- var S8=Object.defineProperty;var P8=(y)=>y;function V8(y,T){this[y]=P8.bind(null,T)}var Ty=(y,T)=>{for(var H in T)S8(y,H,{get:T[H],enumerable:!0,configurable:!0,set:V8.bind(T,H)})};var V=(y,T)=>()=>(y&&(T=y(y=0)),T);var S=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(T,H)=>(typeof require<"u"?require:T)[H]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as T0,Chain as Ky,derivationPathToString as E8,getChainConfig as Y1,getRPCUrlSync as xH,NetworkDerivationPath as v8,SwapKitError as Uy}from"@swapkit/helpers";import{match as oH,P as J1}from"ts-pattern";function nf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return p8.test(T)}function IH({derivationPath:y,provider:T,...H}={}){let f,C=E8(y||v8[Ky.Aptos],{allHardened:!0});async function U(){if(f)return f;return f=await oH(H).with({phrase:J1.string},async({phrase:M})=>{let{Ed25519Account:n}=await import("@aptos-labs/ts-sdk");return n.fromDerivationPath({mnemonic:M,path:C})}).with({signer:J1.any},({signer:M})=>M).otherwise(()=>{return}),f}async function q(){let{Aptos:M,AptosConfig:n}=await import("@aptos-labs/ts-sdk"),O=new n({fullnode:T||xH(Ky.Aptos)});return new M(O)}async function G(){return(await U())?.accountAddress.toString()||""}async function X(M){let n=M||await G();if(!n)throw new Uy("toolbox_aptos_address_required");let{baseDecimal:O,chain:J}=Y1(Ky.Aptos);try{let R=await q(),N=await R.getAccountAPTAmount({accountAddress:n}),B=[T0.from({chain:J,fromBaseDecimal:O,value:N.toString()})],Y=await R.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:n}}}});for(let z of Y){if(z.asset_type===_f.COIN_TYPE||Number(z.amount)<=0)continue;let k=z.asset_type;if(k){let w=("metadata"in z&&typeof z.metadata==="object"&&z.metadata!==null?z.metadata:void 0)?.decimals??O;B.push(T0.from({asset:`${Ky.Aptos}.APT-${k}`,fromBaseDecimal:w,value:String(z.amount)}))}}return B}catch{return[T0.from({chain:J})]}}async function _(M){if(!M){let{baseDecimal:Y}=Y1(Ky.Aptos),z=T||xH(Ky.Aptos),k=await fetch(`${z}/estimate_gas_price`),{gas_estimate:F}=await k.json();return T0.from({chain:Ky.Aptos,fromBaseDecimal:Y,value:String(F)})}let n=await U();if(!n)throw new Uy("toolbox_aptos_no_signer");let O=await L(M),J=await q(),[R]=await J.transaction.simulate.simple({signerPublicKey:n.publicKey,transaction:O});if(!R)throw new Uy("toolbox_aptos_transaction_creation_error");let N=BigInt(R.gas_used)*BigInt(R.gas_unit_price),{baseDecimal:B}=Y1(Ky.Aptos);return T0.from({chain:Ky.Aptos,fromBaseDecimal:B,value:N.toString()})}async function L({recipient:M,assetValue:n,maxGasAmount:O,sender:J}){if(!nf(M))throw new Uy("core_transaction_invalid_recipient_address");let R=J||await G();if(!R)throw new Uy("toolbox_aptos_no_sender");let{AccountAddress:N}=await import("@aptos-labs/ts-sdk"),B=await q(),Y=N.from(R);try{let z=n.isGasAsset?_f.TRANSFER:_f.FUNGIBLE_STORE_TRANSFER,k=oH({address:n?.address,isGasAsset:n.isGasAsset}).with({isGasAsset:!0},()=>[N.from(M),n.getBaseValue("bigint")]).with({address:J1.string},({address:F})=>[N.from(F),N.from(M),n.getBaseValue("bigint")]).otherwise(()=>null);if(!k)throw new Uy("toolbox_aptos_missing_asset_type");return B.transaction.build.simple({data:{function:z,functionArguments:k,typeArguments:n.isGasAsset?[]:[_f.FUNGIBLE_ASSET_METADATA]},options:O?{maxGasAmount:O}:void 0,sender:Y})}catch(z){if(z instanceof Uy)throw z;throw new Uy("toolbox_aptos_transaction_creation_error",z)}}async function A(M){let n=await U();if(!n)throw new Uy("toolbox_aptos_no_signer");return(await q()).transaction.sign({signer:n,transaction:M})}async function Z({assetValue:M,maxGasAmount:n,recipient:O}){let J=await U();if(!J)throw new Uy("toolbox_aptos_no_signer");if(!nf(O))throw new Uy("core_transaction_invalid_recipient_address");try{let R=J.accountAddress.toString(),N=await L({assetValue:M,maxGasAmount:n,recipient:O,sender:R});return(await(await q()).signAndSubmitTransaction({signer:J,transaction:N})).hash}catch(R){if(R instanceof Uy)throw R;throw new Uy("toolbox_aptos_transaction_creation_error",R)}}async function Q({senderAuthenticator:M,transaction:n}){try{return(await(await q()).transaction.submit.simple({senderAuthenticator:M,transaction:n})).hash}catch(O){throw new Uy("toolbox_aptos_broadcast_error",O)}}async function W(M){let n=await A(M);return Q({senderAuthenticator:n,transaction:M})}return{broadcastTransaction:Q,createTransaction:L,estimateTransactionFee:_,getAddress:G,getBalance:X,signAndBroadcastTransaction:W,signTransaction:A,transfer:Z,validateAddress:nf}}function SH({provider:y}){return async function({assetValue:H,recipient:f}){if(!nf(f))throw new Uy("core_transaction_invalid_recipient_address");let{AccountAddress:C}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[C.from(f).toString(),H.getBaseValue("string")],function:_f.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let U=H.address;if(!U)throw new Uy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[U,C.from(f).toString(),H.getBaseValue("string")],function:_f.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[_f.FUNGIBLE_ASSET_METADATA]})).hash}}var _f,p8;var PH=V(()=>{_f={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"},p8=/^[0-9a-fA-F]+$/});var u0={};Ty(u0,{validateAptosAddress:()=>nf,getAptosToolbox:()=>IH,createAptosExtensionTransfer:()=>SH});var h0=V(()=>{PH()});import{AssetValue as VH,getChainConfig as b8}from"@swapkit/helpers";import{SwapKitApi as j8}from"@swapkit/helpers/api";function EH(){function y(){let T=Date.now(),H=L1||T;return L1=H,T>L1?T:H+1}return l8+y().toString(36)}function Jy(y){return async function(H,f=!0){let C=await j8.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:U}=b8(y),q=C.map(({identifier:X,value:_,decimal:L})=>{return new VH({decimal:L||U,identifier:X,value:_})});if(!q.some((X)=>X.isGasAsset))return[VH.from({chain:y}),...q];return q}}var l8,L1=0;var uy=V(()=>{l8=typeof process<"u"&&process.pid?process.pid.toString(36):""});function C0(y){return{getBalance:Jy(y)}}function K8(y){return y}var t0=V(()=>{uy()});import{Chain as i,getChainConfig as B1,getRPCUrl as u8,SwapKitError as m0}from"@swapkit/helpers";import{getAddress as pH,Interface as h8,JsonRpcProvider as t8}from"ethers";import{match as bH}from"ts-pattern";function jH(y){return new t8(y)}async function N1(y,T){return jH(T||await u8(y))}function H0(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function D1(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=B1(y);return function(){return y!==i.Ethereum?{...m8({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function O1(y){return![i.Adi,i.Arbitrum,i.BinanceSmartChain].includes(y)}function m8({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=B1(y);return bH(y).with(i.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(i.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(i.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(i.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(i.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(i.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:i.Ethereum}})).with(i.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:i.Polygon}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function R1(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function lH(y,T){let H=T!==void 0?`index ${T}: `:"",f=(C,U)=>{throw new m0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:C,message:`${H}${U}`}})};bH(y).when(({chainId:C})=>typeof C!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:C})=>!c8(C),()=>f("address","address must be a valid checksummed address")).when(({nonce:C})=>typeof C!=="bigint"||C<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:C})=>!C,()=>f("signature","signature is required")).when(({signature:C})=>typeof C?.yParity!=="number"||![0,1].includes(C.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:C})=>!vH(C?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:C})=>!vH(C?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function KH(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function z1(y){return y.charAt(0).toUpperCase()+y.slice(1)}function A1(y,T){if(y.isTuple()&&y.components){let H=z1(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:A1(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=z1(y.name.replace(/s$/,""));return T[f]=H.components.map((C)=>({name:C.name,type:A1(C,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function M1(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[C,U]of(T.components??[]).entries())f[U.name]=M1(H[U.name]??y[C],U);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>M1(f,H??void 0))}return y}function g8({chain:y,abi:T,data:H,to:f}){let U=new h8(T).parseTransaction({data:H});if(!U)throw new m0({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let q={},G=z1(U.name);q[G]=U.fragment.inputs.map((Z)=>({name:Z.name,type:A1(Z,q)}));let X={};for(let[Z,Q]of U.fragment.inputs.entries())X[Q.name]=M1(U.args[Z],Q);let{chainId:_}=B1(y),L={chainId:Number(_),verifyingContract:pH(f)},A=KH(L);return{domain:L,message:X,primaryType:G,types:{EIP712Domain:A,...q}}}function n1(y,T){if(!Array.isArray(y)||y.length===0)throw new m0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(lH(f,H),T!==void 0&&f.chainId!==T)throw new m0({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var vH=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),c8=(y)=>{try{return typeof y==="string"&&!!pH(y)}catch{return!1}};var U0=()=>{};var uH;var hH=V(()=>{uH=[{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 i8,applyFeeMultiplierToBigInt as Ly,Chain as ky,EVMChains as d8,FeeOption as u,isGasAsset as r8,SwapKitError as c,SwapKitNumber as c0}from"@swapkit/helpers";import{erc20ABI as q0}from"@swapkit/helpers/contracts";import{BrowserProvider as a8,Contract as tH,getAddress as g0,Interface as mH}from"ethers";import{match as cH}from"ts-pattern";function kf({chain:y=ky.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0}){return{approve:Tq({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:dH({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:x1({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:qq({chain:y,provider:T,signer:H}),createContract:w1({chain:y,provider:T}),createContractTxObject:Qf({chain:y,provider:T}),createTransaction:k1({chain:y,provider:T,signer:H}),createTransferTx:k1({chain:y,provider:T,signer:H}),EIP1193SendTransaction:Ff(T),estimateCall:rH({provider:T,signer:H}),estimateGasLimit:Hq({chain:y,provider:T,signer:H}),estimateGasPrices:Zf({chain:y,isEIP1559Compatible:f,provider:T}),estimateTransactionFee:Gq({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:C0(y).getBalance,getNetworkParams:D1(y),isApproved:fq({chain:y,provider:T}),sendTransaction:aH({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:Uq({signer:H}),signMessage:H?(C)=>H.signMessage(C):void 0,signTypedData:H?({domain:C,types:U,value:q})=>H.signTypedData(C,U,q):void 0,transfer:Cq({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:X0}}function X0(y){try{return g0(y),!0}catch{return!1}}function wf(y){return y instanceof a8}function _0(y,T,H){return new tH(y,mH.from(T),H)}function w1({provider:y}){return function(H,f){return new tH(H,mH.from(f),y)}}function F1({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new c("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&s8.includes(H.stateMutability)}function gH(y){return g0(y)}function Ff(y){return function({value:H,...f}){if(!wf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:C,gasPrice:U,maxFeePerGas:q,maxPriorityFeePerGas:G,...X}=f;return y.send("eth_sendTransaction",[{...X,value:H0(BigInt(H||0))}])}}function iH(y,T){let H=$f(y,T);if(H)return g0(H.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function $f({chain:y,symbol:T,ticker:H},f){try{let C=y===ky.BinanceSmartChain&&T==="BNB"&&H==="BNB",U=y===ky.Hyperevm&&T==="HYPE"&&H==="HYPE",q=y===f&&T===f&&H===f,G=yq.includes(y)&&T==="ETH"&&H==="ETH";if(q||C||U||G)return $1[f];return g0(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Qf({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:C=[],txOverrides:U})=>_0(T,H,y).getFunction(f).populateTransaction(...C.concat(U).filter((q)=>typeof q<"u"))}function Zf({chain:y,provider:T,isEIP1559Compatible:H=!0}){return cH(y).with(ky.Gnosis,()=>{return async function(){try{let{gasPrice:C,maxPriorityFeePerGas:U}=await T.getFeeData();if(!C||U===null)throw new c("toolbox_evm_no_fee_data");return{[u.Average]:{maxFeePerGas:Ly(C,u.Average),maxPriorityFeePerGas:Ly(U,u.Average)},[u.Fast]:{maxFeePerGas:Ly(C,u.Fast),maxPriorityFeePerGas:Ly(U,u.Fast)},[u.Fastest]:{maxFeePerGas:Ly(C,u.Fastest),maxPriorityFeePerGas:Ly(U,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).with(ky.Arbitrum,()=>{return async function(){try{let{gasPrice:C}=await T.getFeeData();if(!C)throw new c("toolbox_evm_no_fee_data");let U=C*12n/10n;return{[u.Average]:{gasPrice:U},[u.Fast]:{gasPrice:Ly(U,u.Fast)},[u.Fastest]:{gasPrice:Ly(U,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:C,maxPriorityFeePerGas:U,gasPrice:q}=await T.getFeeData();if(H){if(C===null||U===null)throw new c("toolbox_evm_no_fee_data");return{[u.Average]:{maxFeePerGas:C,maxPriorityFeePerGas:U},[u.Fast]:{maxFeePerGas:Ly(C,u.Fast),maxPriorityFeePerGas:Ly(U,u.Fast)},[u.Fastest]:{maxFeePerGas:Ly(C,u.Fastest),maxPriorityFeePerGas:Ly(U,u.Fastest)}}}if(!q)throw new c("toolbox_evm_no_gas_price");return{[u.Average]:{gasPrice:q},[u.Fast]:{gasPrice:Ly(q,u.Fast)},[u.Fastest]:{gasPrice:Ly(q,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}})}function x1({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:U,contractAddress:q,abi:G,funcName:X,funcParams:_=[],txOverrides:L={},feeOption:A=u.Fast}){let Z=U||y;if(!q)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=F1({abi:G,funcName:X});if(Q&&wf(Z)&&H){let n=Qf({chain:f,provider:Z}),O=L?.from||await H?.getAddress(),J=await n({abi:G,contractAddress:q,funcName:X,funcParams:_,txOverrides:{...L,from:O}});return Ff(Z)(J)}let W=_0(q,G,Z);if(Q){if(!H)throw new c("toolbox_evm_no_signer");let n=L?.from||await H.getAddress();if(!n)throw new c("toolbox_evm_no_signer_address");let O=W.connect(H),J=Zf({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:R,maxPriorityFeePerGas:N,gasPrice:B}=(await J())[A],Y=await W.getFunction(X).estimateGas(..._,L),z=await O[X](..._,{...L,gasLimit:Y,gasPrice:B,maxFeePerGas:R,maxPriorityFeePerGas:N,nonce:L?.nonce||await Z.getTransactionCount(n)});return typeof z?.hash==="string"?z?.hash:z}let M=await W[X]?.(..._);return typeof M?.hash==="string"?M?.hash:M}}function dH({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:C,from:U}){return x1({chain:T,isEIP1559Compatible:!0,provider:y})({abi:q0,contractAddress:f,funcName:"allowance",funcParams:[U,C]})}}function fq({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:C,from:U,amount:q=G0}){let G=await dH({chain:T,provider:y})({assetAddress:f,from:U,spenderAddress:C});return c0.fromBigInt(G).gte(c0.fromBigInt(BigInt(q)))}}function Tq({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:U,spenderAddress:q,feeOptionKey:G=u.Fast,amount:X,gasLimitFallback:_,from:L,nonce:A}){let Z=[q,BigInt(X||G0)],Q=await y?.getAddress()||L,W={abi:q0,contractAddress:U,funcName:"approve",funcParams:Z,signer:y,txOverrides:{from:Q}};if(wf(H)){let n=Qf({chain:f,provider:H}),O=Ff(H),J=await n(W);return O(J)}return x1({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...W,feeOption:G,funcParams:Z,txOverrides:{from:Q,gasLimit:_?BigInt(_.toString()):void 0,nonce:A}})}}function Cq({signer:y,isEIP1559Compatible:T=!0,provider:H}){return async function({assetValue:C,memo:U,recipient:q,feeOptionKey:G=u.Fast,sender:X,..._}){let{hexlify:L,toUtf8Bytes:A}=await import("ethers"),Z=C.getBaseValue("bigint"),Q=C.chain,W=X||await y?.getAddress(),M=aH({chain:Q,isEIP1559Compatible:T,provider:H,signer:y});if(!W)throw new c("toolbox_evm_no_from_address");if(C.isGasAsset){let B={..._,data:L(A(U||"")),feeOptionKey:G,from:W,to:q,value:Z};return M(B)}if(!$f(C,Q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:O,maxPriorityFeePerGas:J,gasPrice:R}=(await Zf({chain:Q,isEIP1559Compatible:T,provider:H})())[G],N=await k1({chain:Q,provider:H,signer:y})({assetValue:C,data:L(A(U||"")),gasPrice:R,maxFeePerGas:O,maxPriorityFeePerGas:J,memo:U,recipient:q,sender:W});return M(N)}}function rH({provider:y,signer:T}){return function({contractAddress:f,abi:C,funcName:U,funcParams:q=[],txOverrides:G}){if(!f)throw new c("toolbox_evm_no_contract_address");let X=_0(f,C,y);return T?X.connect(T).getFunction(U).estimateGas(...q,G):X.getFunction(U).estimateGas(...q,G)}}function Hq({provider:y,signer:T}){return async function({assetValue:f,recipient:C,memo:U,data:q,sender:G,funcName:X,funcParams:_,txOverrides:L}){let A=f.bigIntValue,Z=f.isGasAsset?null:$f(f,f.chain);if(Z&&X)return rH({provider:y,signer:T})({abi:q0,contractAddress:Z,funcName:X,funcParams:_,txOverrides:L});let{hexlify:Q,toUtf8Bytes:W}=await import("ethers");return y.estimateGas({data:q?q:U?Q(W(U)):void 0,from:G,to:C,value:A})}}function Uq({signer:y}){if(!y)return;return(T)=>R1(y,T)}function aH({provider:y,signer:T,isEIP1559Compatible:H=!0,chain:f}){return async function({feeOptionKey:U=u.Fast,...q}){let{from:G,to:X,data:_,value:L,...A}=q;if(!T)throw new c("toolbox_evm_no_signer");if(!X)throw new c("toolbox_evm_no_to_address");let Z={...A,data:_||"0x",from:G,to:X,value:BigInt(L||0)};if(wf(y))return Ff(y)(Z);let Q=G||await T.getAddress(),W=q.nonce||await y.getTransactionCount(Q),M=(await y.getNetwork()).chainId,n=I1(Z,H);if(n==="eip7702")n1(Z.authorizations||[],M);let O=cH(n).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),J={...Z,chainId:M,nonce:W,type:O,...n==="eip7702"&&{authorizationList:Z.authorizations}},R=Zf({chain:f,isEIP1559Compatible:H,provider:y}),B=n!=="legacy"&&!(Z.maxFeePerGas&&Z.maxPriorityFeePerGas)||!Z.gasPrice?Object.entries((await R())[U]).reduce((z,[k,F])=>({...z,[k]:H0(BigInt(F))}),{}):{},Y;try{Y=H0(Z.gasLimit||await y.estimateGas(J)*11n/10n)}catch(z){throw new c("toolbox_evm_error_estimating_gas_limit",{error:z})}try{let z={...J,gasLimit:Y,...B};try{return(await T.sendTransaction(z)).hash}catch{let k=await T.signTransaction({...z,from:Q});return(await y.broadcastTransaction(k)).hash}}catch(z){throw new c("toolbox_evm_error_sending_transaction",{error:z})}}}function k1({provider:y,signer:T}){return async function({assetValue:f,memo:C,recipient:U,data:q,sender:G,maxFeePerGas:X,maxPriorityFeePerGas:_,gasPrice:L,...A}){let Z=f.getBaseValue("bigint"),Q=f.chain,W=G||await T?.getAddress();if(!W)throw new c("toolbox_evm_no_from_address");if(r8(f)){let{hexlify:O,toUtf8Bytes:J}=await import("ethers");return{...A,data:q||O(J(C||"")),from:W,to:U,value:Z}}let M=$f(f,Q);if(!M)throw new c("toolbox_evm_no_contract_address");return Qf({chain:f.chain,provider:y})({abi:q0,contractAddress:M,funcName:"transfer",funcParams:[U,Z],txOverrides:{from:W,gasPrice:L,maxFeePerGas:X,maxPriorityFeePerGas:_}})}}function qq({provider:y,signer:T,chain:H}){return async function({assetAddress:C,spenderAddress:U,amount:q,from:G}){let X=await T?.getAddress()||G,_=Qf({chain:H,provider:y}),L=["bigint","number"].includes(typeof q)?q:q||G0;return await _({abi:q0,contractAddress:C,funcName:"approve",funcParams:[U,BigInt(L)],txOverrides:{from:X}})}}function Gq({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:C=u.Fast,...U}){let G=await Zf({chain:H,isEIP1559Compatible:T,provider:y})(),X=await y.estimateGas(U),_=i8.from({chain:H}),{gasPrice:L,maxFeePerGas:A,maxPriorityFeePerGas:Z}=G[C];if(!T&&L)return _.set(c0.fromBigInt(L*X,_.decimal));if(A&&Z){let Q=(A+Z)*X;return _.set(c0.fromBigInt(Q,_.decimal))}throw new c("toolbox_evm_no_gas_price")}}var G0,s8,e8,$1,yq,i0=(y)=>y.type===4||(y.authorizations?.length??0)>0,o1=(y)=>!i0(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),I1=(y,T=!0)=>{if(i0(y))return"eip7702";if(o1(y)||T)return"eip1559";return"legacy"};var d0=V(()=>{t0();U0();G0=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");s8=["payable","nonpayable"];e8=d8.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),$1={...e8,[ky.Optimism]:"0x4200000000000000000000000000000000000042",[ky.Polygon]:"0x0000000000000000000000000000000000001010"},yq=[ky.Arbitrum,ky.Aurora,ky.Base,ky.Optimism]});import{Chain as r,FeeOption as Xq}from"@swapkit/helpers";import{HDNodeWallet as _q}from"ethers";import{match as Qq,P as sH}from"ts-pattern";function r0(y){let T=a(r.Ethereum)(y);async function H(f,C="0x5ba1e12693dc8f9c48aad8770482f4739beed696",U="aggregate",q=Xq.Fast){let G=await T.createContractTxObject({abi:uH,contractAddress:C,funcName:U,funcParams:[f]});return T.sendTransaction({...G,feeOptionKey:q})}return{...T,multicall:H}}function a(y){return function({provider:H,...f}){let C=O1(y),U=Qq(f).with({phrase:sH.string},({phrase:G})=>_q.fromPhrase(G).connect(H)).with({signer:sH.any},({signer:G})=>G).otherwise(()=>{return});return kf({chain:y,isEIP1559Compatible:C,provider:H,signer:U})}}var a0,s0,e0,yT,fT,TT,CT,eH,HT,UT,qT,GT,XT,_T,Q0,QT,ZT,WT,YT;var S1=V(()=>{hH();U0();d0();a0=a(r.Adi),s0=a(r.Arbitrum),e0=a(r.Aurora),yT=a(r.Avalanche),fT=a(r.Base),TT=a(r.Berachain),CT=a(r.BinanceSmartChain),eH=a(r.Botanix),HT=a(r.Core),UT=a(r.Corn),qT=a(r.Cronos),GT=a(r.Gnosis),XT=a(r.Hyperevm),_T=a(r.Polygon),Q0=a(r.Sonic),QT=a(r.Unichain),ZT=a(r.XLayer),WT=a(r.Monad),YT=a(r.MegaETH)});var y5;var f5=V(()=>{y5=[{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 xf,Chain as Wq,FeeOption as hy,SwapKitError as P1}from"@swapkit/helpers";import{Contract as Yq,HDNodeWallet as Jq}from"ethers";import{match as Lq,P as T5}from"ts-pattern";function V1(y){return new Yq(zq,y5,y)}function C5(y){return async function(){let H=V1(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function H5(y){return async function({from:H,to:f,nonce:C,...U}){let{Transaction:q}=await import("ethers");if(!f)throw new P1("toolbox_evm_invalid_transaction",{error:"Missing to address"});return q.from({...U,authorizationList:U.authorizationList,nonce:C?C:H?await y.getTransactionCount(H):0,to:f}).serialized}}function U5(y){return async function(H){let f=V1(y),C=await H5(y)(H);if(f&&"getL1Fee"in f)return f.getL1Fee(C)}}function q5(y){return async function(H){let C=(await y.getFeeData()).gasPrice??0n,U=await y.estimateGas(H);return C*U}}function Aq(y){return async function(H){let f=await U5(y)(H)??0n,C=await q5(y)(H);return f+C}}function Mq(y){return async function(H){let f=V1(y),C=await H5(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(C)}}function Bq(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:C}=await y.getFeeData(),U=await C5(y)(),q=C;if(!(H&&f))throw new P1("toolbox_evm_no_fee_data");return{[hy.Average]:{gasPrice:q,l1GasPrice:U,maxFeePerGas:H,maxPriorityFeePerGas:f},[hy.Fast]:{gasPrice:xf(q,hy.Fast),l1GasPrice:xf(U||0n,hy.Fast),maxFeePerGas:H,maxPriorityFeePerGas:xf(f,hy.Fast)},[hy.Fastest]:{gasPrice:xf(q,hy.Fastest),l1GasPrice:xf(U||0n,hy.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:xf(f,hy.Fastest)}}}catch(H){throw new P1("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function JT({provider:y,...T}){let H=Lq(T).with({phrase:T5.string},({phrase:U})=>Jq.fromPhrase(U).connect(y)).with({signer:T5.any},({signer:U})=>U).otherwise(()=>{return}),f=kf({provider:y,signer:H}),C=C5(y);return{...f,estimateGasPrices:Bq(y),estimateL1Gas:Mq(y),estimateL1GasCost:U5(y),estimateL2GasCost:q5(y),estimateTotalGasCost:Aq(y),getBalance:C0(Wq.Optimism).getBalance,getL1GasPrice:C}}var zq="0x420000000000000000000000000000000000000f";var E1=V(()=>{t0();f5();d0()});var X5={};Ty(X5,{validateEVMAddress:()=>X0,toChecksumAddress:()=>gH,isStateChangingCall:()=>F1,isEIP7702Transaction:()=>i0,isEIP1559Transaction:()=>o1,isBrowserProvider:()=>wf,getTokenAddress:()=>$f,getEvmToolboxAsync:()=>G5,getEvmToolbox:()=>v1,getEstimateGasPrices:()=>Zf,getEVMTxType:()=>I1,getEIP1193SendTransaction:()=>Ff,getCreateContractTxObject:()=>Qf,getCreateContract:()=>w1,getChecksumAddressFromAsset:()=>iH,createContract:()=>_0,XLayerToolbox:()=>ZT,UNIToolbox:()=>QT,SONICToolbox:()=>Q0,OPToolbox:()=>JT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>YT,MAX_APPROVAL:()=>G0,MATICToolbox:()=>_T,HYPEREVMToolbox:()=>XT,GNOToolbox:()=>GT,ETHToolbox:()=>r0,ContractAddress:()=>$1,CROToolbox:()=>qT,CORNToolbox:()=>UT,COREToolbox:()=>HT,BotanixToolbox:()=>eH,BaseEVMToolbox:()=>kf,BSCToolbox:()=>CT,BERAToolbox:()=>TT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>e0,ARBToolbox:()=>s0,ADIToolbox:()=>a0});import{Chain as d}from"@swapkit/helpers";import{match as Nq}from"ts-pattern";function v1(y,T){return Nq(y).with(d.Adi,()=>a0(T)).with(d.Arbitrum,()=>s0(T)).with(d.Aurora,()=>e0(T)).with(d.Avalanche,()=>yT(T)).with(d.Base,()=>fT(T)).with(d.Berachain,()=>TT(T)).with(d.BinanceSmartChain,()=>CT(T)).with(d.Botanix,()=>Q0(T)).with(d.Core,()=>HT(T)).with(d.Corn,()=>UT(T)).with(d.Cronos,()=>qT(T)).with(d.Ethereum,()=>r0(T)).with(d.Gnosis,()=>GT(T)).with(d.Hyperevm,()=>XT(T)).with(d.Optimism,()=>JT(T)).with(d.Polygon,()=>_T(T)).with(d.Sonic,()=>Q0(T)).with(d.Unichain,()=>QT(T)).with(d.XLayer,()=>ZT(T)).with(d.Monad,()=>WT(T)).with(d.MegaETH,()=>YT(T)).exhaustive()}async function G5(y,T){let H={...T,provider:T?.provider||await N1(y)};return v1(y,H)}var p1=V(()=>{U0();S1();E1();d0();S1();E1()});var _5;var Q5=V(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(_5||={})});var Z5={};Ty(Z5,{validateEVMAddress:()=>X0,validateAuthorizations:()=>n1,validateAuthorization:()=>lH,toHexString:()=>H0,toChecksumAddress:()=>gH,signAuthorization:()=>R1,parseEIP712FromEVMTx:()=>g8,isStateChangingCall:()=>F1,isEIP7702Transaction:()=>i0,isEIP1559Transaction:()=>o1,isBrowserProvider:()=>wf,getTokenAddress:()=>$f,getProviderSync:()=>jH,getProvider:()=>N1,getNetworkParams:()=>D1,getIsEIP1559Compatible:()=>O1,getEvmToolboxAsync:()=>G5,getEvmToolbox:()=>v1,getEvmApi:()=>C0,getEstimateGasPrices:()=>Zf,getEVMTxType:()=>I1,getEIP1193SendTransaction:()=>Ff,getCreateContractTxObject:()=>Qf,getCreateContract:()=>w1,getChecksumAddressFromAsset:()=>iH,createCustomEvmApi:()=>K8,createContract:()=>_0,buildEIP712DomainType:()=>KH,XLayerToolbox:()=>ZT,UNIToolbox:()=>QT,SONICToolbox:()=>Q0,OPToolbox:()=>JT,MONADToolbox:()=>WT,MEGAETHToolbox:()=>YT,MAX_APPROVAL:()=>G0,MATICToolbox:()=>_T,HYPEREVMToolbox:()=>XT,GNOToolbox:()=>GT,EthNetwork:()=>_5,ETHToolbox:()=>r0,ContractAddress:()=>$1,CROToolbox:()=>qT,CORNToolbox:()=>UT,COREToolbox:()=>HT,BotanixToolbox:()=>eH,BaseEVMToolbox:()=>kf,BSCToolbox:()=>CT,BERAToolbox:()=>TT,BASEToolbox:()=>fT,AVAXToolbox:()=>yT,AURORAToolbox:()=>e0,ARBToolbox:()=>s0,ADIToolbox:()=>a0});var b1=V(()=>{t0();U0();p1();Q5()});import{bech32 as Dq}from"@scure/base";import{mnemonicToEntropy as Oq}from"@scure/bip39";import{wordlist as Rq}from"@scure/bip39/wordlists/english.js";import{Bip32PrivateKey as nq}from"@stricahq/bip32ed25519";import{Transaction as kq,types as K1,address as wq,crypto as j1,utils as W5}from"@stricahq/typhonjs";import{AssetValue as of,Chain as Wf,getChainConfig as Fq,SwapKitError as Z0}from"@swapkit/helpers";import Ny from"bignumber.js";async function u1(y,T){let H=await fetch(`${z5}${y}`,{...T,headers:{project_id:L5,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function A5(y){try{return await u1(`/addresses/${y}/utxos`)}catch{return[]}}async function xq(){return(await u1("/blocks/latest")).slot}async function oq(){let y=await u1("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ny(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ny(y.min_fee_a),minFeeB:new Ny(y.min_fee_b),minFeeRefScriptCostPerByte:new Ny(15),priceMem:new Ny(y.price_mem),priceSteps:new Ny(y.price_step),stakeKeyDeposit:new Ny(2000000),utxoCostPerByte:new Ny(y.coins_per_utxo_size)}}async function J5(y){let T=await fetch(`${z5}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:L5},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function Iq(y,T){return y.map((H)=>{let f=H.amount.find((q)=>q.unit==="lovelace"),C=f?new Ny(f.quantity):new Ny(0),U=H.amount.filter((q)=>q.unit!=="lovelace").map((q)=>({amount:new Ny(q.quantity),assetName:q.unit.slice(56),policyId:q.unit.slice(0,56)}));return{address:T,amount:C,index:H.output_index,tokens:U,txId:H.tx_hash}})}async function Sq(y){try{let T=await A5(y),H=0n,f=new Map;for(let q of T){if(!q.amount||!Array.isArray(q.amount))continue;for(let G of q.amount){let{unit:X,quantity:_}=G;if(X==="lovelace")H+=BigInt(_);else{let L=f.get(X)||0n;f.set(X,L+BigInt(_))}}}let C=[],{baseDecimal:U}=Fq(Wf.Cardano);if(H>0n)C.push(of.from({chain:Wf.Cardano,fromBaseDecimal:U,value:H.toString()}));for(let[q,G]of f)C.push(of.from({asset:`${Wf.Cardano}.${q}`,value:G.toString()}));if(C.length===0)return[of.from({chain:Wf.Cardano})];return C}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[of.from({chain:Wf.Cardano})]}}function M5(y){if(!y||typeof y!=="string")return!1;try{let T=Dq.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function Pq(y,T=0,H=0){let f=Oq(y,Rq),U=(await nq.fromEntropy(Buffer.from(Array.from(f)))).derive(l1+1852).derive(l1+1815).derive(l1+T),q=U.derive(0).derive(H),G=q.toBip32PublicKey().toPublicKey().toBytes(),X=j1.hash28(G),L=U.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),A=j1.hash28(L),Z={hash:X,type:K1.HashType.ADDRESS},Q={hash:A,type:K1.HashType.ADDRESS},M=new wq.BaseAddress($q,Z,Q).getBech32(),n=q.toPrivateKey();return{getAddress:()=>M,publicKey:G,publicKeyHash:X,signTransaction:async(O)=>{try{let J=await import("@stricahq/cbors"),R=Buffer.from(O,"hex"),N=J.Decoder.decode(R),[B,Y,z,k]=N.value,F=J.Encoder.encode(B),w=j1.hash32(F),$=n.sign(w),o=Y instanceof Map?Y:new Map,D=o.get(Y5)||[];D.push([G,$]),o.set(Y5,D);let x=[B,o,z,k];return J.Encoder.encode(x).toString("hex")}catch(J){throw new Z0("toolbox_cardano_sign_transaction_failed",{message:String(J)})}}}}function Vq(y){let T,H,f;async function C(){if(!f)f=await oq();return f}async function U(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let Q=y.index??0;return T=await Pq(y.phrase,0,Q),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function q(){if(H)return H;let Q=await U();if(!Q)return"";if("getAddress"in Q)return H=await Q.getAddress(),H;return""}async function G(Q){let W=Q||await q();if(!W)throw new Z0("core_wallet_connection_not_found");return Sq(W)}async function X(Q){if(Q)try{let{tx:O}=await _(Q),J=O.getFee();return of.from({chain:Wf.Cardano,fromBaseDecimal:6,value:J.toString()})}catch{}let W=await C(),M=400,n=W.minFeeB.plus(W.minFeeA.times(M));return of.from({chain:Wf.Cardano,fromBaseDecimal:6,value:n.toString()})}async function _({sender:Q="",recipient:W,assetValue:M,memo:n,pureLovelaceOnly:O=!1}){let J=Q||await q();if(!J)throw new Z0("core_wallet_connection_not_found");let[R,N,B]=await Promise.all([A5(J),xq(),C()]),Y=R.filter((E)=>O?E.amount.every((j)=>j.unit==="lovelace"):E.amount.some((j)=>j.unit==="lovelace")).sort((E,j)=>{let h=E.amount.some((m)=>m.unit!=="lovelace"),s=j.amount.some((m)=>m.unit!=="lovelace");if(h===s)return 0;return h?1:-1}),z=W5.getAddressFromString(J),k=W5.getAddressFromString(W),F=Iq(Y,z),w=new Ny(M.getBaseValue("string")),$=[{address:k,amount:w,tokens:[]}],o;if(n){let E=new Map;E.set("msg",[n]),o={metadata:[{data:E,label:674}]}}let D={...B,minFeeB:B.minFeeB.plus(B.minFeeA.times(4))},I=new kq({protocolParams:D}).paymentTransaction({auxiliaryData:o,changeAddress:z,inputs:F,outputs:$,ttl:N+3600}),{payload:p}=I.buildTransaction();return{tx:I,unsignedTx:p}}async function L(Q){let W=await U();if(!W||!("signTransaction"in W))throw new Z0("core_wallet_connection_not_found");return W.signTransaction(Q)}async function A({recipient:Q,assetValue:W,memo:M}){let n=await U();if(!n||!("signTransaction"in n))throw new Z0("core_wallet_connection_not_found");let{unsignedTx:O}=await _({assetValue:W,memo:M,recipient:Q,sender:await q()}),J=await L(O);return await J5(J)}async function Z(Q){let W=await L(Q);return await J5(W)}return{createTransaction:_,estimateTransactionFee:X,getAddress:q,getBalance:G,signAndBroadcastTransaction:Z,signTransaction:L,transfer:A,validateAddress:M5}}var L5="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",z5="https://cardano-mainnet.blockfrost.io/api/v0",$q,l1=2147483648,Y5=0;var B5=V(()=>{$q=K1.NetworkId.MAINNET});var h1={};Ty(h1,{validateCardanoAddress:()=>M5,getCardanoToolbox:()=>Vq});var t1=V(()=>{B5()});import{base64 as zT,bech32 as LT}from"@scure/base";import{SwapKitError as Eq}from"@swapkit/helpers";function W0(y){return zT.encode(Uint8Array.from(LT.fromWords(LT.decode(y).words)))}function Y0(y,T="thor"){return LT.encode(T,LT.toWords(zT.decode(y)))}function vq(y){return zT.encode(y)}function pq(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Eq("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return zT.decode(y)}var m1=()=>{};import{AssetValue as c1,Chain as K,getChainConfig as Ey,getRPCUrl as bq,SwapKitError as N5}from"@swapkit/helpers";function ty(y){switch(y){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return R5;case K.Noble:return n5;default:return O5}}async function my(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function Yf(y,T,H={}){let f=await import("@cosmjs/stargate"),C=f.SigningStargateClient??f.default?.SigningStargateClient,U=f.GasPrice??f.default?.GasPrice,q=typeof H==="string"?H:"0.0003uatom",G=typeof H==="string"?{}:H;return C.connectWithSigner(y,T,{gasPrice:U.fromString(q),...G})}async function i1(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function d1({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:C,sequence:U,accountNumber:q}){let{chain:G,chainId:X}=H,_=await bq(G),A=await(await my(_)).getAccount(y);if(!A)throw new N5("toolbox_cosmos_account_not_found",{sender:y});let Z=c1.from({chain:G}),Q=sy(Z.symbol),W=ty(G),M=Q&&C?{amount:[{amount:C.toString(),denom:Q}],gas:W.gas}:W,n={amount:[{amount:H.getBaseValue("string"),denom:sy(H.symbol)}],fromAddress:y,toAddress:T};return{accountNumber:q??Number(A.accountNumber),chainId:X,fee:M,memo:f,msgs:[{typeUrl:jq(G),value:n}],sequence:U??A.sequence}}var g1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",D5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",O5,R5,n5,sy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return g1;case"uYUM":case"YUM":return D5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},J0=({symbol:y,chain:T})=>{if(T===K.Maya)return(y.toUpperCase()!=="CACAO"?y:`${K.Maya}.${y}`).toUpperCase();if(T===K.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${K.THORChain}.${y}`:y).toUpperCase();return sy(y,!1)},jq=(y)=>{switch(y){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new N5("toolbox_cosmos_not_supported",{chain:y})}},lq,r1=(y,T)=>{let H=lq[y.toLowerCase()];if(!H)return c1.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:C,decimals:U}=H,q=f?{chain:f}:{asset:C};return c1.from({...q,fromBaseDecimal:U,value:T})};var L0=V(()=>{O5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},R5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},n5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};lq={atom:{chain:K.Cosmos,decimals:Ey(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:Ey(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:Ey(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:Ey(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:Ey(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:Ey(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:Ey(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:Ey(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:Ey(K.THORChain).baseDecimal},[g1.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:Ey(K.Kujira).baseDecimal}}});var k5={};Ty(k5,{$root:()=>P});import Cy from"protobufjs/minimal.js";var b,Dy,v,P;var w5=V(()=>{b=Cy.Reader,Dy=Cy.Writer,v=Cy.util,P=Cy.roots.default||(Cy.roots.default={});P.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))C.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))C.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))C.uint32(32).bool(f.synth);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.Asset;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.chain=f.string();break;case 2:q.symbol=f.string();break;case 3:q.ticker=f.string();break;case 4:q.synth=f.bool();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!v.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!v.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!v.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Asset)return f;let C=new P.common.Asset;if(f.chain!=null)C.chain=String(f.chain);if(f.symbol!=null)C.symbol=String(f.symbol);if(f.ticker!=null)C.ticker=String(f.ticker);if(f.synth!=null)C.synth=Boolean(f.synth);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.chain="",U.symbol="",U.ticker="",U.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))U.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))U.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))U.synth=f.synth;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=v.Long?v.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))P.common.Asset.encode(f.asset,C.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))C.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))C.uint32(24).int64(f.decimals);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.Coin;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.asset=P.common.Asset.decode(f,f.uint32());break;case 2:q.amount=f.string();break;case 3:q.decimals=f.int64();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let C=P.common.Asset.verify(f.asset);if(C)return"asset."+C}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!v.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!v.isInteger(f.decimals)&&!(f.decimals&&v.isInteger(f.decimals.low)&&v.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Coin)return f;let C=new P.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");C.asset=P.common.Asset.fromObject(f.asset)}if(f.amount!=null)C.amount=String(f.amount);if(f.decimals!=null){if(v.Long)(C.decimals=v.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")C.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")C.decimals=f.decimals;else if(typeof f.decimals==="object")C.decimals=new v.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)if(U.asset=null,U.amount="",v.Long){let q=new v.Long(0,0,!1);U.decimals=C.longs===String?q.toString():C.longs===Number?q.toNumber():q}else U.decimals=C.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))U.asset=P.common.Asset.toObject(f.asset,C);if(f.amount!=null&&f.hasOwnProperty("amount"))U.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")U.decimals=C.longs===String?String(f.decimals):f.decimals;else U.decimals=C.longs===String?v.Long.prototype.toString.call(f.decimals):C.longs===Number?new v.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))C.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))C.uint32(18).string(f.ed25519);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.PubKeySet;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.secp256k1=f.string();break;case 2:q.ed25519=f.string();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!v.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!v.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.PubKeySet)return f;let C=new P.common.PubKeySet;if(f.secp256k1!=null)C.secp256k1=String(f.secp256k1);if(f.ed25519!=null)C.ed25519=String(f.ed25519);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.secp256k1="",U.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))U.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))U.ed25519=f.ed25519;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=v.emptyArray,T.prototype.gas=v.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))C.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(34).string(f.toAddress);if(f.coins?.length)for(let U=0;U<f.coins.length;++U)P.common.Coin.encode(f.coins[U],C.uint32(42).fork()).ldelim();if(f.gas?.length)for(let U=0;U<f.gas.length;++U)P.common.Coin.encode(f.gas[U],C.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(58).string(f.memo);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.Tx;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.id=f.string();break;case 2:q.chain=f.string();break;case 3:q.fromAddress=f.string();break;case 4:q.toAddress=f.string();break;case 5:if(!q.coins?.length)q.coins=[];q.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 6:if(!q.gas?.length)q.gas=[];q.gas.push(P.common.Coin.decode(f,f.uint32()));break;case 7:q.memo=f.string();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!v.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!v.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!v.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!v.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=P.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let C=0;C<f.gas.length;++C){let U=P.common.Coin.verify(f.gas[C]);if(U)return"gas."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!v.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Tx)return f;let C=new P.common.Tx;if(f.id!=null)C.id=String(f.id);if(f.chain!=null)C.chain=String(f.chain);if(f.fromAddress!=null)C.fromAddress=String(f.fromAddress);if(f.toAddress!=null)C.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Tx.coins: object expected");C.coins[U]=P.common.Coin.fromObject(f.coins[U])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");C.gas=[];for(let U=0;U<f.gas.length;++U){if(typeof f.gas[U]!=="object")throw TypeError(".common.Tx.gas: object expected");C.gas[U]=P.common.Coin.fromObject(f.gas[U])}}if(f.memo!=null)C.memo=String(f.memo);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[],U.gas=[];if(C.defaults)U.id="",U.chain="",U.fromAddress="",U.toAddress="",U.memo="";if(f.id!=null&&f.hasOwnProperty("id"))U.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))U.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=f.toAddress;if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=P.common.Coin.toObject(f.coins[q],C)}if(f.gas?.length){U.gas=[];for(let q=0;q<f.gas.length;++q)U.gas[q]=P.common.Coin.toObject(f.gas[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=v.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)P.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))C.uint32(18).string(f.poolDeduct);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.Fee;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 2:q.poolDeduct=f.string();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=P.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!v.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Fee)return f;let C=new P.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".common.Fee.coins: object expected");C.coins[U]=P.common.Coin.fromObject(f.coins[U])}}if(f.poolDeduct!=null)C.poolDeduct=String(f.poolDeduct);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults)U.poolDeduct="";if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=P.common.Coin.toObject(f.coins[q],C)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))U.poolDeduct=f.poolDeduct;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))C.uint32(10).string(f.value);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.common.ProtoUint;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.value=f.string();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!v.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.ProtoUint)return f;let C=new P.common.ProtoUint;if(f.value!=null)C.value=String(f.value);return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.defaults)U.value="";if(f.value!=null&&f.hasOwnProperty("value"))U.value=f.value;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y})();P.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=v.emptyArray,T.prototype.memo="",T.prototype.signer=v.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.coins?.length)for(let U=0;U<f.coins.length;++U)P.common.Coin.encode(f.coins[U],C.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))C.uint32(26).bytes(f.signer);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.types.MsgDeposit;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:if(!q.coins?.length)q.coins=[];q.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 2:q.memo=f.string();break;case 3:q.signer=f.bytes();break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let U=P.common.Coin.verify(f.coins[C]);if(U)return"coins."+U}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!v.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||v.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof P.types.MsgDeposit)return f;let C=new P.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");C.coins=[];for(let U=0;U<f.coins.length;++U){if(typeof f.coins[U]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");C.coins[U]=P.common.Coin.fromObject(f.coins[U])}}if(f.memo!=null)C.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")v.base64.decode(f.signer,C.signer=v.newBuffer(v.base64.length(f.signer)),0);else if(f.signer.length)C.signer=f.signer}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.coins=[];if(C.defaults){if(U.memo="",C.bytes===String)U.signer="";else if(U.signer=[],C.bytes!==Array)U.signer=v.newBuffer(U.signer)}if(f.coins?.length){U.coins=[];for(let q=0;q<f.coins.length;++q)U.coins[q]=P.common.Coin.toObject(f.coins[q],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))U.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))U.signer=C.bytes===String?v.base64.encode(f.signer,0,f.signer.length):C.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.fromAddress=v.newBuffer([]),T.prototype.toAddress=v.newBuffer([]),T.prototype.amount=v.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=Dy.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let U=0;U<f.amount.length;++U)P.cosmos.base.v1beta1.Coin.encode(f.amount[U],C.uint32(26).fork()).ldelim();return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof b))f=b.create(f);let U=C===void 0?f.len:f.pos+C,q=new P.types.MsgSend;while(f.pos<U){let G=f.uint32();switch(G>>>3){case 1:q.fromAddress=f.bytes();break;case 2:q.toAddress=f.bytes();break;case 3:if(!q.amount?.length)q.amount=[];q.amount.push(P.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(G&7);break}}return q},T.decodeDelimited=function(f){if(!(f instanceof b))f=new b(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||v.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||v.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let C=0;C<f.amount.length;++C){let U=P.cosmos.base.v1beta1.Coin.verify(f.amount[C]);if(U)return"amount."+U}}return null},T.fromObject=function(f){if(f instanceof P.types.MsgSend)return f;let C=new P.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")v.base64.decode(f.fromAddress,C.fromAddress=v.newBuffer(v.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)C.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")v.base64.decode(f.toAddress,C.toAddress=v.newBuffer(v.base64.length(f.toAddress)),0);else if(f.toAddress.length)C.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");C.amount=[];for(let U=0;U<f.amount.length;++U){if(typeof f.amount[U]!=="object")throw TypeError(".types.MsgSend.amount: object expected");C.amount[U]=P.cosmos.base.v1beta1.Coin.fromObject(f.amount[U])}}return C},T.toObject=function(f,C){if(!C)C={};let U={};if(C.arrays||C.defaults)U.amount=[];if(C.defaults){if(C.bytes===String)U.fromAddress="";else if(U.fromAddress=[],C.bytes!==Array)U.fromAddress=v.newBuffer(U.fromAddress);if(C.bytes===String)U.toAddress="";else if(U.toAddress=[],C.bytes!==Array)U.toAddress=v.newBuffer(U.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))U.fromAddress=C.bytes===String?v.base64.encode(f.fromAddress,0,f.fromAddress.length):C.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))U.toAddress=C.bytes===String?v.base64.encode(f.toAddress,0,f.toAddress.length):C.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){U.amount=[];for(let q=0;q<f.amount.length;++q)U.amount[q]=P.cosmos.base.v1beta1.Coin.toObject(f.amount[q],C)}return U},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y})();P.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=Dy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof b))U=b.create(U);let G=q===void 0?U.len:U.pos+q,X=new P.cosmos.base.v1beta1.Coin;while(U.pos<G){let _=U.uint32();switch(_>>>3){case 1:X.denom=U.string();break;case 2:X.amount=U.string();break;default:U.skipType(_&7);break}}return X},f.decodeDelimited=function(U){if(!(U instanceof b))U=new b(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!v.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!v.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof P.cosmos.base.v1beta1.Coin)return U;let q=new P.cosmos.base.v1beta1.Coin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let G={};if(q.defaults)G.denom="",G.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))G.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))G.amount=U.amount;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=Dy.create();if(U.denom!=null&&Object.hasOwnProperty.call(U,"denom"))q.uint32(10).string(U.denom);if(U.amount!=null&&Object.hasOwnProperty.call(U,"amount"))q.uint32(18).string(U.amount);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof b))U=b.create(U);let G=q===void 0?U.len:U.pos+q,X=new P.cosmos.base.v1beta1.DecCoin;while(U.pos<G){let _=U.uint32();switch(_>>>3){case 1:X.denom=U.string();break;case 2:X.amount=U.string();break;default:U.skipType(_&7);break}}return X},f.decodeDelimited=function(U){if(!(U instanceof b))U=new b(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.denom!=null&&U.hasOwnProperty("denom")){if(!v.isString(U.denom))return"denom: string expected"}if(U.amount!=null&&U.hasOwnProperty("amount")){if(!v.isString(U.amount))return"amount: string expected"}return null},f.fromObject=function(U){if(U instanceof P.cosmos.base.v1beta1.DecCoin)return U;let q=new P.cosmos.base.v1beta1.DecCoin;if(U.denom!=null)q.denom=String(U.denom);if(U.amount!=null)q.amount=String(U.amount);return q},f.toObject=function(U,q){if(!q)q={};let G={};if(q.defaults)G.denom="",G.amount="";if(U.denom!=null&&U.hasOwnProperty("denom"))G.denom=U.denom;if(U.amount!=null&&U.hasOwnProperty("amount"))G.amount=U.amount;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.int="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=Dy.create();if(U.int!=null&&Object.hasOwnProperty.call(U,"int"))q.uint32(10).string(U.int);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof b))U=b.create(U);let G=q===void 0?U.len:U.pos+q,X=new P.cosmos.base.v1beta1.IntProto;while(U.pos<G){let _=U.uint32();switch(_>>>3){case 1:X.int=U.string();break;default:U.skipType(_&7);break}}return X},f.decodeDelimited=function(U){if(!(U instanceof b))U=new b(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.int!=null&&U.hasOwnProperty("int")){if(!v.isString(U.int))return"int: string expected"}return null},f.fromObject=function(U){if(U instanceof P.cosmos.base.v1beta1.IntProto)return U;let q=new P.cosmos.base.v1beta1.IntProto;if(U.int!=null)q.int=String(U.int);return q},f.toObject=function(U,q){if(!q)q={};let G={};if(q.defaults)G.int="";if(U.int!=null&&U.hasOwnProperty("int"))G.int=U.int;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(C){if(C){for(let U=Object.keys(C),q=0;q<U.length;++q)if(C[U[q]]!=null)this[U[q]]=C[U[q]]}}return f.prototype.dec="",f.create=function(U){return new f(U)},f.encode=function(U,q){if(!q)q=Dy.create();if(U.dec!=null&&Object.hasOwnProperty.call(U,"dec"))q.uint32(10).string(U.dec);return q},f.encodeDelimited=function(U,q){return this.encode(U,q).ldelim()},f.decode=function(U,q){if(!(U instanceof b))U=b.create(U);let G=q===void 0?U.len:U.pos+q,X=new P.cosmos.base.v1beta1.DecProto;while(U.pos<G){let _=U.uint32();switch(_>>>3){case 1:X.dec=U.string();break;default:U.skipType(_&7);break}}return X},f.decodeDelimited=function(U){if(!(U instanceof b))U=new b(U);return this.decode(U,U.uint32())},f.verify=function(U){if(typeof U!=="object"||U===null)return"object expected";if(U.dec!=null&&U.hasOwnProperty("dec")){if(!v.isString(U.dec))return"dec: string expected"}return null},f.fromObject=function(U){if(U instanceof P.cosmos.base.v1beta1.DecProto)return U;let q=new P.cosmos.base.v1beta1.DecProto;if(U.dec!=null)q.dec=String(U.dec);return q},f.toObject=function(U,q){if(!q)q={};let G={};if(q.defaults)G.dec="";if(U.dec!=null&&U.hasOwnProperty("dec"))G.dec=U.dec;return G},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H})(),T})(),y})()});import{Chain as Kq}from"@swapkit/helpers";async function Jf(){let{$root:y}=await Promise.resolve().then(() => (w5(),k5)),T=await import("@cosmjs/proto-signing"),H=T.Registry??T.default?.Registry,f=await import("@cosmjs/stargate"),C=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new H([...C,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ey(y){let T=await import("@cosmjs/stargate"),H=T.AminoTypes??T.default?.AminoTypes,f=y===Kq.THORChain?"thorchain":"mayachain";return new H({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:C,...U})=>({...U,signer:W0(C)}),toAmino:({signer:C,...U})=>({...U,signer:Y0(C)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:C,to_address:U,...q})=>({...q,fromAddress:W0(C),toAddress:W0(U)}),toAmino:({fromAddress:C,toAddress:U,...q})=>({...q,from_address:Y0(C),to_address:Y0(U)})}})}var a1=V(()=>{m1()});import{AssetValue as uq,Chain as AT,getChainConfig as F5,getRPCUrl as $5,SwapKitError as hq}from"@swapkit/helpers";function yC(y){let{assetValue:T,recipient:H,memo:f,sender:C,asSignable:U,asAminoMessage:q}=y;if(H)return o5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,recipient:H,sender:C});return I5({asAminoMessage:q,asSignable:U,assetValue:T,memo:f,sender:C})}async function o5({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:C=!0,asAminoMessage:U=!1,sequence:q,accountNumber:G}){let X=H.chain,_=await $5(X),L=await x5({rpcUrl:_,sender:y}),{chainId:A}=F5(X),Z=s1({assetValue:H,recipient:T,sender:y}),Q=C?await yf(U?Z:ff(Z),X):Z;return{accountNumber:G||Number(L.accountNumber),chainId:A,fee:ty(X),memo:f,msgs:[Q],sequence:q||L.sequence}}async function I5({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:C=!1,sequence:U,accountNumber:q}){let G=T.chain,X=await $5(G),_=await x5({rpcUrl:X,sender:y}),{chainId:L}=F5(G),A=e1({assetValue:T,memo:H,sender:y}),Z=f?await yf(C?A:ff(A),G):A;return{accountNumber:q||Number(_.accountNumber),chainId:L,fee:ty(G),memo:H,msgs:[Z],sequence:U||_.sequence}}function ff(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=uq.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),C=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:C,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function z0({chain:y,memo:T,msgs:H}){let f=await Jf(),C=await ey(y),U={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((q)=>C.fromAmino(q))}};return f.encode(U)}var tq,mq,s1=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===AT.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:sy(H.symbol,!0)}],from_address:y,to_address:T}}},e1=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===AT.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:J0(T)}],memo:H,signer:y}}},MT=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?e1({assetValue:H,memo:f,sender:y}):s1({assetValue:H,recipient:T,sender:y})},yf=async(y,T)=>{return(await ey(T)).fromAmino(y)},x5=async({rpcUrl:y,sender:T})=>{let f=await(await my(y)).getAccount(T);if(!f)throw new hq("toolbox_cosmos_account_not_found",{sender:T});return f};var S5=V(()=>{L0();a1();tq=ty(AT.THORChain).gas,mq=ty(AT.Maya).gas});var P5=()=>{};var V5=V(()=>{P5()});var fC=V(()=>{m1();S5();a1();V5()});import{stringToPath as cq}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as gq}from"@cosmjs/proto-signing";import{base64 as HC,bech32 as TC}from"@scure/base";import{AssetValue as UC,applyFeeMultiplier as E5,Chain as qy,CosmosChainPrefixes as K5,DerivationPath as iq,derivationPathToString as v5,FeeOption as qC,getChainConfig as dq,getRPCUrl as A0,NetworkDerivationPath as rq,SwapKitError as If,SwapKitNumber as CC,updateDerivationPath as aq}from"@swapkit/helpers";import{SwapKitApi as u5}from"@swapkit/helpers/api";import{match as sq,P as p5}from"ts-pattern";async function XC(y,T){try{let f=(await u5.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function GC({phrase:y,prefix:T,...H}){let f="derivationPath"in H?H.derivationPath:`${iq[H.chain]}/${H.index}`;return await gq.fromMnemonic(y,{hdPaths:[cq(f)],prefix:T})}async function eq({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function h5(y){return async function({signature:H,message:f,address:C}){let U=await y(C);if(!U?.pubkey)throw new If("toolbox_cosmos_verify_signature_no_pubkey");let q=await import("@cosmjs/crypto"),G=q.Secp256k1Signature??q.default?.Secp256k1Signature,X=q.Secp256k1??q.default?.Secp256k1,_=G.fromFixedLength(HC.decode(H));return X.verifySignature(_,HC.decode(f),U.pubkey.value)}}function M0({chain:y,...T}){let H=K5[y],f="index"in T?T.index||0:0,C=v5("derivationPath"in T&&T.derivationPath?T.derivationPath:aq(rq[y],{index:f})),U;async function q(){if(U)return U;return U=await sq(T).with({phrase:p5.string},({phrase:Q})=>GC({derivationPath:C,phrase:Q,prefix:H})).with({signer:p5.any},({signer:Q})=>Q).otherwise(()=>{return}),U}async function G(Q){let W=await A0(y);return(await my(W)).getAccount(Q)}async function X(){let Q=await q(),[W]=await Q?.getAccounts()||[];return W?.address}async function _(){let Q=await q(),[W]=await Q?.getAccounts()||[];if(!W?.pubkey)throw new If("toolbox_cosmos_signer_not_defined");return HC.encode(W?.pubkey)}async function L(Q){let W=await q(),M=await X(),n=await A0(y);if(!(W&&M))throw new If("toolbox_cosmos_signer_not_defined");return await(await Yf(n,W)).sign(M,Q.msgs,Q.fee,Q.memo,{accountNumber:BigInt(Q.accountNumber),chainId:Q.chainId,sequence:Q.sequence})}async function A(Q){let W=await q(),M=await X(),n=await A0(y);if(!(W&&M))throw new If("toolbox_cosmos_signer_not_defined");let J=await(await Yf(n,W)).signAndBroadcast(M,Q.msgs,Q.fee,Q.memo);if(J.code!==0)throw new If("core_swap_transaction_error",{code:J.code,message:J.rawLog});return J.transactionHash}async function Z({recipient:Q,assetValue:W,memo:M="",feeRate:n,feeOptionKey:O=qC.Fast}){let J=await q(),R=await X();if(!(J&&R))throw new If("toolbox_cosmos_signer_not_defined");let N=await A0(y),B=UC.from({chain:y}),Y=J0(B),z=n||TG((await j5(y,b5[y]))[O],Y),k=await Yf(N,J),F=sy(W.symbol),w=[{amount:W.getBaseValue("string"),denom:F}],{transactionHash:$}=await k.sendTokens(R,Q,w,z,M);return $}return{createPrivateKeyFromPhrase:HG(C),createTransaction:d1,fetchFeeRateFromSwapKit:XC,getAccount:G,getAddress:X,getBalance:async(Q,W)=>{let M=await l5(y)(Q),n=await Promise.all(M.filter(({denom:O})=>O&&!O.includes("IBC/")&&!([qy.THORChain,qy.Maya].includes(y)&&O.split("-").length>2)).map(({denom:O,amount:J})=>{let R=[qy.THORChain,qy.Maya].includes(y)&&(O.includes("/")||O.includes("˜"))?`${y}.${O}`:O;return r1(R,J)}));if(n.length===0)return[UC.from({chain:y})];return n},getBalanceAsDenoms:l5(y),getFees:()=>j5(y,b5[y]),getPubKey:_,getSignerFromPhrase:({phrase:Q,derivationPath:W})=>GC({derivationPath:v5(W),index:f,phrase:Q,prefix:H}),getSignerFromPrivateKey:async(Q)=>{let W=await import("@cosmjs/proto-signing");return(W.DirectSecp256k1Wallet??W.default?.DirectSecp256k1Wallet).fromKey(Q,H)},signAndBroadcastTransaction:A,signTransaction:L,transfer:Z,validateAddress:t5(y),verifySignature:h5(G)}}async function yG(y,T){try{let f=(await u5.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function fG({assetValue:{chain:y}}){return UC.from({chain:y,value:CG(y)})}async function j5(y,T){let{chainId:H,baseDecimal:f}=dq(y),C=await XC(H,T);return{average:CC.fromBigInt(BigInt(C),f),fast:CC.fromBigInt(BigInt(E5(C,qC.Fast,!0)),f),fastest:CC.fromBigInt(BigInt(E5(C,qC.Fastest,!0)),f)}}function TG(y,T){return{amount:[{amount:y.getBaseValue("string"),denom:T}],gas:"200000"}}function CG(y){return{[qy.Cosmos]:0.007,[qy.Kujira]:0.02,[qy.Noble]:0.01,[qy.THORChain]:0.02,[qy.Maya]:0.02,[qy.Harbor]:0.02}[y]||0}function t5(y){let T=K5[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:C,words:U}=TC.decode(f);return TC.encode(C,U)===f.toLocaleLowerCase()}catch{return!1}}}function l5(y){return async function(H){let f=await A0(y);return(await(await my(f)).getAllBalances(H)).map((G)=>({...G,denom:G.denom.includes("/")?G.denom.toUpperCase():G.denom}))}}function HG(y){return async function(H){let f=await import("@cosmjs/crypto"),C=f.stringToPath??f.default?.stringToPath,U=f.Slip10Curve??f.default?.Slip10Curve,q=f.Slip10??f.default?.Slip10,G=f.EnglishMnemonic??f.default?.EnglishMnemonic,X=f.Bip39??f.default?.Bip39,_=new G(H),L=await X.mnemonicToSeed(_),{privkey:A}=q.derivePath(U.Secp256k1,L,C(y));return A}}var b5;var BT=V(()=>{L0();b5={[qy.Cosmos]:1000,[qy.Kujira]:1000,[qy.Noble]:1000,[qy.THORChain]:5000000,[qy.Maya]:5000000,[qy.Harbor]:5000000}});import{base64 as Lf}from"@scure/base";import{Chain as UG,CosmosChainPrefixes as qG,derivationPathToString as GG,FeeOption as _C,getChainConfig as XG,getRPCUrl as d5,NetworkDerivationPath as _G,RequestClient as QG,SKConfig as m5,SwapKitError as Sf,SwapKitNumber as c5,updateDerivationPath as ZG}from"@swapkit/helpers";import{match as g5,P as i5}from"ts-pattern";function WG({prefix:y,derivationPath:T}){return async function(f,C=0){let U=await import("@cosmjs/amino"),q=U.Secp256k1HdWallet??U.default?.Secp256k1HdWallet,G=await import("@cosmjs/crypto"),X=G.stringToPath??G.default?.stringToPath;return q.fromMnemonic(f,{hdPaths:[X(`${T}/${C}`)],prefix:y})}}function YG(y){return Lf.encode(y)}function JG(y){return async function({wallet:H,tx:f}){let{msgs:C,accountNumber:U,sequence:q,chainId:G,fee:X,memo:_}=typeof f==="string"?JSON.parse(f):f,L=(await H.getAccounts())?.[0]?.address||"",A=await ey(y),Z=await Jf(),Q=await i1(H,{aminoTypes:A,registry:Z}),W=[];for(let O of C){let J=await yf(O,y);W.push(J)}let{signatures:[M]}=await Q.sign(L,W,X,_,{accountNumber:BigInt(U),chainId:G,sequence:q});return{bodyBytes:await z0({chain:y,memo:_,msgs:C.map(ff)}),signature:YG(M)}}}function LG({prefix:y,chain:T}){return async function(f,C,U,q,G){let X=await d5(T),{encodeSecp256k1Pubkey:_,pubkeyToAddress:L}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:A}=(await import("@cosmjs/stargate")).default,{sequence:Z,fee:Q}=JSON.parse(f),W=await r5(U,q),M=C.map((J)=>[L(_(Lf.decode(J.pubKey)),y),Lf.decode(J.signature)]),n=await my(X),{transactionHash:O}=await n.broadcastTx(A(W,Z,Q,G,new Map(M)));return O}}async function r5(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:C}=(await import("@cosmjs/amino")).default;return f(y.map((U)=>C(Lf.decode(U))),T,H)}function zG(y){return Lf.decode(y)}async function AG({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(Lf.decode(T),y);return Lf.encode(Buffer.concat([f.r(32),f.s(32)]))}function QC({chain:y,...T}){let{isStagenet:H}=m5.get("envs"),f=m5.get("thornodeUrls"),C=y===UG.Maya,U=g5({isMayachain:C,isStagenet:H}).with({isMayachain:!0},({isStagenet:J})=>J?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:J})=>J?f.THOR_STAGENET:f.THOR),q=`${H?"s":""}${qG[y]}`,G="index"in T?T.index||0:0,X="derivationPath"in T&&T.derivationPath?T.derivationPath:ZG(_G[y],{index:G}),_=M0({chain:y,...T}),L=ty(y),A;function Z(){return A??=g5(T).with({phrase:i5.string},({phrase:J})=>_.getSignerFromPhrase({derivationPath:X,phrase:J})).with({signer:i5.any},({signer:J})=>Promise.resolve(J)).otherwise(()=>Promise.resolve(void 0)),A}async function Q(){let J=await d5(y),R=await Z();if(!R)throw new Sf("toolbox_cosmos_no_signer");let N=await Jf(),B=await ey(y),Y=await Yf(J,R,{aminoTypes:B,registry:N});return{signer:R,signingClient:Y}}async function W({fee:J,memo:R,msgs:N}){let{signer:B,signingClient:Y}=await Q(),z=(await B.getAccounts())?.[0]?.address;if(!z)throw new Sf("toolbox_cosmos_signer_not_defined");let k=await Y.signAndBroadcast(z,N,J,R);if(k.code!==0)throw new Sf("core_swap_transaction_error",{code:k.code,message:k.rawLog});return k.transactionHash}async function M(){let J,R=`${U}/${C?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:N}}=await QG.get(R);if(!N||Number.isNaN(N)||N<0)throw new Sf("toolbox_cosmos_invalid_fee",{nativeFee:N.toString()});J=new c5(N)}catch{J=new c5({decimal:XG(y).baseDecimal,value:C?1:0.02})}return{[_C.Average]:J,[_C.Fast]:J,[_C.Fastest]:J}}async function n({assetValue:J,memo:R="",recipient:N}){let{TxRaw:B}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:Y,signingClient:z}=await Q(),k=(await Y.getAccounts())?.[0]?.address;if(!k)throw new Sf("toolbox_cosmos_no_signer");let F="signAmino"in Y,w=MT({assetValue:J,memo:R,recipient:N,sender:k});if(F){let D=await yf(w,y),{signatures:x,authInfoBytes:I}=await z.sign(k,[D],L,R),p=B.encode({authInfoBytes:I,bodyBytes:await z0({chain:y,memo:R,msgs:[w].map(ff)}),signatures:x}).finish();return(await z.broadcastTx(p)).transactionHash}let $=ff(w),o=await yf($,y);return W({fee:L,memo:R,msgs:[o]})}async function O(J){let{signer:R,signingClient:N}=await Q(),B=(await R.getAccounts())?.[0]?.address;if(!B)throw new Sf("toolbox_cosmos_signer_not_defined");return N.sign(B,J.msgs,J.fee,J.memo,{accountNumber:BigInt(J.accountNumber),chainId:J.chainId,sequence:J.sequence})}return{..._,broadcastMultisigTx:LG({chain:y,prefix:q}),buildAminoMsg:MT,buildEncodedTxBody:z0,convertToSignable:yf,createDefaultAminoTypes:()=>ey(y),createDefaultRegistry:Jf,createMultisig:r5,createTransaction:yC,deposit:n,getFees:M,importSignature:zG,parseAminoMessageForDirectSigning:ff,pubkeyToAddress:async(J)=>{let{pubkeyToAddress:R}=(await import("@cosmjs/amino")).default;return R(J,q)},secp256k1HdWalletFromMnemonic:WG({derivationPath:GG(X),prefix:q}),signAndBroadcastTransaction:W,signMultisigTx:JG(y),signTransaction:O,signWithPrivateKey:AG,transfer:n}}var ZC=V(()=>{fC();L0();BT()});import{Chain as B0,SwapKitError as MG}from"@swapkit/helpers";var BG=(y,T)=>{switch(y){case B0.Cosmos:case B0.Kujira:case B0.Noble:return M0({chain:y,...T});case B0.Maya:case B0.THORChain:return QC({chain:y,...T});default:throw new MG("toolbox_cosmos_not_supported",{chain:y})}};var a5=V(()=>{BT();ZC();BT();ZC()});var NT={};Ty(NT,{verifySignature:()=>h5,transferMsgAmino:()=>s1,toBase64:()=>vq,parseAminoMessageForDirectSigning:()=>ff,getSignerFromPrivateKey:()=>eq,getSignerFromPhrase:()=>GC,getMsgSendDenom:()=>sy,getFeeRateFromSwapKit:()=>yG,getDenomWithChain:()=>J0,getDefaultChainFee:()=>ty,getCosmosToolbox:()=>BG,getCosmosAddressValidator:()=>t5,getAssetFromDenom:()=>r1,fromBase64:()=>pq,fetchFeeRateFromSwapKit:()=>XC,estimateTransactionFee:()=>fG,depositMsgAmino:()=>e1,createTransaction:()=>yC,createThorchainToolbox:()=>QC,createStargateClient:()=>my,createSigningStargateClient:()=>Yf,createOfflineStargateClient:()=>i1,createDefaultRegistry:()=>Jf,createDefaultAminoTypes:()=>ey,createCosmosToolbox:()=>M0,cosmosCreateTransaction:()=>d1,convertToSignable:()=>yf,buildTransferTx:()=>o5,buildEncodedTxBody:()=>z0,buildDepositTx:()=>I5,buildAminoMsg:()=>MT,bech32ToBase64:()=>W0,base64ToBech32:()=>Y0,YUM_KUJIRA_FACTORY_DENOM:()=>D5,USK_KUJIRA_FACTORY_DENOM:()=>g1,THORCHAIN_GAS_VALUE:()=>tq,MAYA_GAS_VALUE:()=>mq,DEFAULT_NOBLE_FEE_MAINNET:()=>n5,DEFAULT_KUJI_FEE_MAINNET:()=>R5,DEFAULT_COSMOS_FEE_MAINNET:()=>O5});var DT=V(()=>{fC();a5();L0()});function NG({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function DG({cancels:y}){return{cancels:y,type:"cancel"}}function OG({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function RG({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function nG({modifies:y}){return{modifies:y,type:"batchModify"}}function kG({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function wG({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function FG({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function $G({time:y}){return{time:y,type:"scheduleCancel"}}function xG({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C,type:"usdClassTransfer"}}function oG({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:G,token:X}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:U,signatureChainId:q,sourceDex:G,token:X,type:"sendAsset"}}function IG({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C,type:"approveAgent"}}function SG({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C,type:"approveBuilderFee"}}function PG({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:C,wei:U}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:C,wei:U}}import{SwapKitError as WC}from"@swapkit/helpers";import{keccak256 as VG,Signature as EG}from"ethers";function zy(...y){let T=y.reduce((C,U)=>C+U.length,0),H=new Uint8Array(T),f=0;for(let C of y)H.set(C,f),f+=C.length;return H}function KG(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Tf(y,T){let H=new Uint8Array(T),f=y;for(let C=T-1;C>=0;C-=1)H[C]=Number(f&0xffn),f>>=8n;return H}function s5(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return zy(new Uint8Array([205]),Tf(y,2));if(y<=0xffffffffn)return zy(new Uint8Array([206]),Tf(y,4));return zy(new Uint8Array([207]),Tf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return zy(new Uint8Array([209]),Tf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return zy(new Uint8Array([210]),Tf(BigInt.asUintN(32,y),4));return zy(new Uint8Array([211]),Tf(BigInt.asUintN(64,y),8))}function fU(y){let T=lG.encode(y);if(T.length<32)return zy(new Uint8Array([160+T.length]),T);return zy(KG(217,0,T.length),T)}function uG(y){let T=y.map((f)=>YC(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return zy(H,...T)}function hG(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return zy(H,...T.flatMap(([f,C])=>[fU(f),YC(C)]))}function YC(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return fU(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new WC("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return s5(BigInt(y))}if(typeof y==="bigint")return s5(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return zy(T,y)}if(Array.isArray(y))return uG(y);if(typeof y==="object")return hG(y);throw new WC("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function tG(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new WC("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function TU(y){return{domain:vG,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...pG.Agent]}}}function CU(y){let T=jG[y.type],H=bG[y.type],{type:f,...C}=y;return{domain:{chainId:Number.parseInt(C.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:e5,version:"1"},message:{...C,hyperliquidChain:C.hyperliquidChain||yU},primaryType:T,types:{[T]:H}}}function HU(y){let T=EG.from(y);return{r:T.r,s:T.s,v:T.v}}function UU(y,T,{expiresAfter:H,vaultAddress:f}={}){let C=YC(y),U=Tf(BigInt(T),8),q=f?zy(new Uint8Array([1]),tG(f.toLowerCase())):new Uint8Array([0]),G=typeof H==="number"?zy(new Uint8Array([0]),Tf(BigInt(H),8)):new Uint8Array;return VG(zy(C,U,q,G))}function qU(y){let T=y.hyperliquidChain||yU;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var e5="0x0000000000000000000000000000000000000000",vG,pG,yU="Mainnet",bG,jG,lG;var GU=V(()=>{vG={chainId:1337,name:"Exchange",verifyingContract:e5,version:"1"},pG={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},bG={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"}]},jG={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},lG=new TextEncoder});import{AssetValue as zC,Chain as mG,derivationPathToString as cG,getChainConfig as QU,getRPCUrl as gG,NetworkDerivationPath as iG,RequestClient as Pf,SwapKitError as Vf,updateDerivationPath as dG}from"@swapkit/helpers";import{HDNodeWallet as rG}from"ethers";import{match as aG,P as JC}from"ts-pattern";function wy(y,T){if(!MC(y))throw new Vf(T,{address:y});return y.toLowerCase()}async function zf(y){let T=await OT();return Pf.post(`${T}/info`,{json:y})}function HX({dex:y,user:T}){return zf({...y?{dex:y}:{},type:"clearinghouseState",user:wy(T,"helpers_invalid_params")})}function UX({user:y}){return zf({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function qX({dex:y,user:T}){return zf({...y?{dex:y}:{},type:"openOrders",user:wy(T,"helpers_invalid_params")})}function GX({dex:y,user:T}){return zf({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(T,"helpers_invalid_params")})}function XX({oidOrCloid:y,user:T}){return zf({oid:y,type:"orderStatus",user:wy(T,"helpers_invalid_params")})}function _X({aggregateByTime:y,user:T}){return zf({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(T,"helpers_invalid_params")})}function QX({aggregateByTime:y,endTime:T,startTime:H,user:f}){return zf({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function XU({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let C=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,U=sG[C]||ZU,q=f?.tokens?.find((X)=>X.name===y||T!==void 0&&X.index===Number(T)),G=q?`${vy}.${C}-${q.name}:${q.tokenId}`:`${vy}.${C}`;return new zC({decimal:U,identifier:G,value:H})}function ZX(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),C=T.get(f);T.set(f,C?C.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=zC.from({chain:vy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function OT(){try{return await gG(vy)}catch{let[y]=QU(vy).rpcUrls;if(!y)throw new Vf("helpers_chain_no_public_or_set_rpc_url",{chain:vy});return y}}async function AC(){return`${await OT()}/exchange`}function WX(y){let T=CX[y.type],{type:H,...f}=y,C=TX[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:fX,version:"1"},message:f,primaryType:T,types:{[T]:C}}}async function WU({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let C=H||Date.now(),U=f?wy(f,"helpers_invalid_params"):void 0,q=await AC(),G=UU(y,C,{expiresAfter:T,vaultAddress:U});return{action:y,endpoint:q,expiresAfter:T,nonce:C,typedData:TU(G),vaultAddress:U}}async function YU({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),C=H||y.signatureChainId||"0xa4b1",U=qU({...y,nonce:f,signatureChainId:C});return{action:U,endpoint:await AC(),nonce:f,typedData:CU(U)}}async function LC({assetValue:y,recipient:T,sender:H,signatureChainId:f,time:C}){let U=wy(T,"core_transaction_invalid_recipient_address"),q=wy(H,"core_transaction_invalid_sender_address"),G=await AC(),X=y.getValue("string"),_=C||Date.now(),L=y.address;if(!L)throw new Vf("helpers_invalid_params",{asset:y.toString(),from:q});let A={amount:X,destination:U,hyperliquidChain:eG,signatureChainId:f||yX,time:_,token:L,type:"spotSend"};return{action:A,endpoint:G,nonce:_,typedData:WX(A)}}async function _U(y){let T=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new Vf("core_transaction_failed",{response:T});return T}async function YX(y,T){let H=await OT(),f=T-5000;for(let C=0;C<5;C++){if(C>0)await new Promise((U)=>setTimeout(U,1000));try{let U=await Pf.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),q=Array.isArray(U)?U.find((G)=>G.time&&G.time>=T&&(G.delta?.type==="spotTransfer"||G.delta?.type==="internalTransfer")):void 0;if(q?.hash)return q.hash}catch{}}return""}function MC(y){return y.startsWith("0x")&&X0(y)}function JX(y){let T=Jy(vy),H=y&&"index"in y?y.index||0:0,f=cG(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:dG(iG[vy],{index:H})),C,U=!1;function q(){if(U)return C;return C=aG(y).with({phrase:JC.string},({phrase:Z})=>{return rG.fromPhrase(Z,void 0,f)}).with({signer:JC.not(JC.nullish)},({signer:Z})=>Z).otherwise(()=>{return}),U=!0,C}async function G(){let Z=q();return Z?await Z.getAddress():""}async function X(Z){let Q=q();if(!Q)throw new Vf("toolbox_hypercore_no_signer");let W=await Q.signTypedData(Z.typedData.domain,Z.typedData.types,Z.typedData.message);return{action:Z.action,endpoint:Z.endpoint,nonce:Z.nonce,signature:HU(W),..."expiresAfter"in Z?{expiresAfter:Z.expiresAfter}:{},..."vaultAddress"in Z?{vaultAddress:Z.vaultAddress}:{}}}async function _(Z){let Q=wy(Z,"helpers_invalid_params");try{let W=await OT(),[M,n,O]=await Promise.all([Pf.post(`${W}/info`,{json:{type:"spotClearinghouseState",user:Q}}),Pf.post(`${W}/info`,{json:{type:"clearinghouseState",user:Q}}),Pf.post(`${W}/info`,{json:{type:"spotMeta"}})]),J=(M.spotState?.balances||M.balances||[]).map(({coin:N,token:B,total:Y})=>XU({coin:N,spotMeta:O,token:B,value:Y})).filter((N)=>!!N),R=XU({coin:"USDC",spotMeta:O,value:n.withdrawable||n.marginSummary?.accountValue||n.marginSummary?.totalRawUsd});return ZX(R?[...J,R]:J)}catch{return T(Q)}}async function L(Z){let Q=q();if(!Q)throw new Vf("toolbox_hypercore_no_signer");let W=Z.sender||await Q.getAddress(),M=await LC({...Z,feeRate:0,sender:W}),n=await X(M);return await _U(n),YX(W,M.nonce)}function A(){return zC.from({chain:vy,value:0})}return{broadcastTransaction:_U,createL1ActionRequest:WU,createTransaction:LC,createUserSignedActionRequest:YU,estimateTransactionFee:A,getAddress:G,getBalance:_,getState:{clearinghouse:HX,frontendOpenOrders:GX,openOrders:qX,orderStatus:XX,spotClearinghouse:UX,userFills:_X,userFillsByTime:QX},signTransaction:X,transfer:L,validateAddress:MC}}var vy,ZU,sG,eG="Mainnet",yX="0xa4b1",fX="0x0000000000000000000000000000000000000000",TX,CX;var JU=V(()=>{b1();uy();GU();vy=mG.Hype,{baseDecimal:ZU}=QU(vy),sG={HYPE:ZU,USDC:6,USDT:6},TX={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},CX={spotSend:"HyperliquidTransaction:SpotSend"}});var BC={};Ty(BC,{validateHyperCoreAddress:()=>MC,getHyperCoreToolbox:()=>JX,createUserSignedActionRequest:()=>YU,createTransaction:()=>LC,createL1ActionRequest:()=>WU,buildUsdClassTransferAction:()=>xG,buildUpdateLeverageAction:()=>kG,buildUpdateIsolatedMarginAction:()=>wG,buildTopUpIsolatedOnlyMarginAction:()=>FG,buildTokenDelegateAction:()=>PG,buildSendAssetAction:()=>oG,buildScheduleCancelAction:()=>$G,buildOrderAction:()=>NG,buildModifyAction:()=>RG,buildCancelByCloidAction:()=>OG,buildCancelAction:()=>DG,buildBatchModifyAction:()=>nG,buildApproveBuilderFeeAction:()=>SG,buildApproveAgentAction:()=>IG});var NC=V(()=>{JU()});import{PublicKey as Cf}from"@solana/web3.js";import{AssetValue as RT,Chain as gy,DerivationPath as LX,derivationPathToString as zX,getChainConfig as MU,getRPCUrl as AX,NetworkDerivationPath as MX,SwapKitError as Ef,updateDerivationPath as BX}from"@swapkit/helpers";import{match as NX,P as LU}from"ts-pattern";async function BU(y){let T=RT.from({address:y,chain:gy.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let C=await f.json();if(!Array.isArray(C)||C.length===0)return null;return C.find((q)=>q.id===y)||null}catch{return null}}async function DX(y){let T=await cy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),C=new H(y),{baseDecimal:U}=MU(gy.Solana),q=await T.getBalance(C),G=[RT.from({chain:gy.Solana,fromBaseDecimal:U,value:q||0})],X=await T.getParsedTokenAccountsByOwner(C,{programId:f});for(let{account:_}of X.value){let L=_.data.parsed.info,A=L.mint,Z=L.tokenAmount.amount;if(Number(Z)===0)continue;let Q=await BU(A),W=Q?.symbol||"UNKNOWN",M=Q?.decimals||L.tokenAmount.decimals;G.push(RT.from({asset:`${gy.Solana}.${W}-${A}`,fromBaseDecimal:M,value:Z}))}return G}function OC(y){try{let T=new Cf(y);return Cf.isOnCurve(T.toBytes())}catch{return!1}}function OX(y){let T=y&&"index"in y?y.index||0:0,H=zX(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:BX(MX[gy.Solana],{index:T})),f;async function C(){if(f)return f;return f=await NX(y).with({phrase:LU.string},({phrase:q})=>DC({derivationPath:H,phrase:q})).with({signer:LU.any},({signer:q})=>q).otherwise(()=>{return}),f}async function U(){let q=await C();return q?.publicKey?AU(q.publicKey):""}return{broadcastTransaction:nT(cy),createKeysForPath:DC,createTransaction:RC(cy),createTransactionFromInstructions:wX,estimateTransactionFee:RX(cy),getAddress:U,getAddressFromPubKey:AU,getBalance:Jy(gy.Solana),getBalanceFromRPC:DX,getConnection:cy,getPubkeyFromAddress:(q)=>new Cf(q),signAndBroadcastTransaction:async(q)=>{let G=await zU(cy,C)(q);return nT(cy)(G)},signTransaction:zU(cy,C),transfer:FX(cy,C),validateAddress:OC}}function RX(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let q=await y(),X=(await RC(y)({assetValue:H,isProgramDerivedAddress:C,memo:f,recipient:T,sender:U})).compileMessage(),_=await q.getFeeForMessage(X);if(_.value===null)throw new Ef("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:L}=MU(gy.Solana);return RT.from({chain:gy.Solana,fromBaseDecimal:L,value:_.value})}}async function cy(){let{Connection:y}=await import("@solana/web3.js"),T=await AX(gy.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,C)=>{let U={};for(let[q,G]of Object.entries(f?.headers??{})){let X=q.toLowerCase();if(X!=="pragma"&&X!=="solana-client")U[q]=G}C(H,{...f,headers:U})}})}function nX(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:C})=>{let U=await y(),q=new Cf(f);if(T.isGasAsset){let{Transaction:G,SystemProgram:X}=await import("@solana/web3.js");return new G().add(X.transfer({fromPubkey:q,lamports:T.getBaseValue("number"),toPubkey:new Cf(H)}))}if(T.address)return kX({amount:T.getBaseValue("number"),connection:U,decimals:T.decimal,from:q,isProgramDerivedAddress:C,recipient:H,tokenAddress:T.address});return}}async function kX({tokenAddress:y,recipient:T,from:H,connection:f,amount:C,decimals:U,isProgramDerivedAddress:q}){let{getAssociatedTokenAddress:G,getAccount:X,createAssociatedTokenAccountInstruction:_,createTransferCheckedInstruction:L}=await import("@solana/spl-token"),{Transaction:A}=await import("@solana/web3.js"),Z=new A,Q=new Cf(y),W=await G(Q,H),M=new Cf(T),n=await G(Q,M,q),O=!1;try{await X(f,n),O=!0}catch{}if(!O)Z.add(_(H,n,M,Q));return Z.add(L(W,Q,n,H,C,U)),Z}function RC(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:U})=>{let{createMemoInstruction:q}=await import("@solana/spl-memo"),G=new Cf(U);if(!(C||OC(T)))throw new Ef("core_transaction_invalid_recipient_address");let X=await y(),_=await nX(y)({assetValue:H,isProgramDerivedAddress:C,recipient:T,sender:U});if(!_)throw new Ef("core_transaction_invalid_sender_address");if(f)_.add(q(f));let L=await X.getLatestBlockhash();return _.recentBlockhash=L.blockhash,_.feePayer=G,_}}async function wX({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new Ef("core_transaction_invalid_sender_address");return H}function FX(y,T){return async({recipient:H,assetValue:f,memo:C,isProgramDerivedAddress:U})=>{let q=await T();if(!q)throw new Ef("core_transaction_invalid_sender_address");let G=q.publicKey?.toString()??(await q.connect()).publicKey.toString(),X=await RC(y)({assetValue:f,isProgramDerivedAddress:U,memo:C,recipient:H,sender:G});if("signTransaction"in q){let _=await q.signTransaction(X);return nT(y)(_)}return X.sign(q),nT(y)(X)}}function nT(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function zU(y,T){return async(H)=>{let f=await T();if(!f)throw new Ef("toolbox_solana_no_signer");let{VersionedTransaction:C}=await import("@solana/web3.js");if(!(H instanceof C)){let q=await(await y()).getLatestBlockhash();H.recentBlockhash=q.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function DC({phrase:y,derivationPath:T=LX.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:C}=await import("@solana/web3.js"),U=f(y),q=H.fromMasterSeed(U);return C.fromSeed(q.derive(T,!0).privateKey)}function AU(y){return y.toString()}var NU=V(()=>{uy()});var nC={};Ty(nC,{validateSolanaAddress:()=>OC,getSolanaToolbox:()=>OX,fetchTokenMetaData:()=>BU,createKeysForPath:()=>DC});var kC=V(()=>{NU()});import{AssetValue as kT,Chain as wT,DerivationPath as OU,derivationPathToString as $X,getChainConfig as xX,getRPCUrl as $C,NetworkDerivationPath as oX,SwapKitError as Oy,updateDerivationPath as IX}from"@swapkit/helpers";import{match as wC,P as vf}from"ts-pattern";function FT(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function $T({phrase:y,derivationPath:T=OU.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:C,hash:U,encode:q,CallData:G}=await import("starknet"),X=f(y),L=H.fromMasterSeed(X).derive(T);if(!L.privateKey)throw new Oy("toolbox_starknet_no_signer");let A=q.addHexPrefix(Buffer.from(L.privateKey).toString("hex")),Z=C.starkCurve.grindKey(A),Q=q.addHexPrefix(Z),W=C.starkCurve.getStarkKey(Q),M=G.compile([W,0]);return{address:U.calculateContractAddressFromHash(W,xC,M,0),privateKey:Q,publicKey:W}}async function oC({phrase:y,derivationPath:T=OU.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:C,address:U}=await $T({derivationPath:T,phrase:y}),q=await $C(wT.Starknet),G=new f({nodeUrl:q});return new H({address:U,provider:G,signer:C})}function RU(y){let T=wT.Starknet,H=y&&"index"in y?y.index||0:0,f=$X(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:IX(oX[T],{index:H})),C,U,q;async function G(){if(U)return U;let{RpcProvider:B}=await import("starknet"),Y=await $C(T);return U=new B({nodeUrl:Y}),U}async function X(B){let Y=await G(),z=B||await Z();if(!z)return!1;try{return await Y.getClassHashAt(z),!0}catch(k){if(k instanceof Error&&k.message.includes("Contract not found"))return!1;let F=k;if(F?.code===20||F?.code===19)return!1;throw k}}async function _(){let{CallData:B,hash:Y}=await import("starknet"),z=await G(),k=await A();if(!k)throw new Oy("toolbox_starknet_no_signer");if(!q)throw new Oy({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await X())return k.address;let w=B.compile([q,0]);if(Y.calculateContractAddressFromHash(q,xC,w,0).toLowerCase()!==k.address.toLowerCase())throw new Oy({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let o={addressSalt:q,classHash:xC,constructorCalldata:w},{transaction_hash:D}=await k.deployAccount(o);return await z.waitForTransaction(D),D}async function L(){if(!await X()){if(!q)throw new Oy({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Starknet account is not deployed and cannot be auto-deployed without public key. Use phrase-based wallet initialization."}});await _()}}async function A(){if(C)return C;return C=await wC(y).with({phrase:vf.string},async({phrase:B})=>{let{Account:Y,RpcProvider:z}=await import("starknet"),{privateKey:k,address:F,publicKey:w}=await $T({derivationPath:f,phrase:B});q=w;let $=await $C(wT.Starknet),o=new z({nodeUrl:$});return new Y({address:F,provider:o,signer:k})}).with({address:vf.string,privateKey:vf.string},async({privateKey:B,address:Y})=>{let{Account:z}=await import("starknet"),k=await G();return new z({address:Y,provider:k,signer:B})}).with({signer:vf.instanceOf(Object)},({signer:B})=>B).otherwise(()=>{return}),C}async function Z(){return(await A())?.address??""}async function Q(B){let Y=await G(),{uint256:z,CallData:k}=await import("starknet"),F=[],w=[FC,DU];for(let $ of w)try{let[o="0",D="0"]=await Y.callContract({calldata:k.compile({account:B}),contractAddress:$,entrypoint:"balanceOf"}),x=z.uint256ToBN({high:o,low:D});wC($).with(FC,()=>{F.push(kT.from({chain:T,value:x}))}).with(DU,()=>{if(x>0n)F.push(kT.from({asset:`${T}.ETH-${$}`,value:x}))}).otherwise(()=>{})}catch{}return F}async function W({recipient:B,assetValue:Y}){let{CallData:z,uint256:k}=await import("starknet");if(!FT(B))throw new Oy("core_transaction_invalid_recipient_address",{address:B});let F=Y.isGasAsset?FC:Y.address;if(!F)throw new Oy("toolbox_starknet_invalid_address",{address:F,assetValue:Y});let w=k.bnToUint256(Y.getBaseValue("bigint"));return[{calldata:z.compile([B,w]),contractAddress:F,entrypoint:"transfer"}]}async function M({recipient:B,assetValue:Y,sender:z}){let{baseDecimal:k}=xX(wT.Starknet),F=await A(),w=await wC({sender:z,signer:F}).with({sender:vf.string},async({sender:$})=>{let{Account:o}=await import("starknet"),D=await G();return new o({address:$,provider:D,signer:"0x0"})}).with({signer:vf.nonNullable},({signer:$})=>$).otherwise(($)=>{throw new Oy({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:$}})});try{let $=await W({assetValue:Y,recipient:B}),o=await w.estimateInvokeFee($);if(o?.overall_fee)return kT.from({chain:T,fromBaseDecimal:k,value:o.overall_fee})}catch($){throw new Oy("toolbox_starknet_fee_estimation_failed",$)}return kT.from({chain:T,value:"0.00001"})}async function n({recipient:B,assetValue:Y,memo:z}){let k=await A();if(!k)throw new Oy("toolbox_starknet_no_signer");await L();let F=await W({assetValue:Y,memo:z,recipient:B});return(await k.execute(F)).transaction_hash}async function O(B){let Y=await A();if(!Y)throw new Oy("toolbox_starknet_no_signer");let z=await Y.signMessage(B);return Array.isArray(z)?z:[z.r.toString(),z.s.toString()]}async function J(B){let Y=await A();if(!Y)throw new Oy("toolbox_starknet_no_signer");return await L(),(await Y.execute(B)).transaction_hash}function R(B){return J(B)}function N(B,Y=!0){try{return Jy(T)(B,Y)}catch{return Q(B)}}return{broadcastTransaction:J,createKeysForPath:oC,createTransaction:W,deployAccount:_,estimateTransactionFee:M,getAddress:Z,getBalance:N,getProvider:G,isAccountDeployed:X,signAndBroadcastTransaction:R,signMessage:O,transfer:n,validateAddress:FT}}var FC="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",DU="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",xC="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var nU=V(()=>{uy()});var xT={};Ty(xT,{validateStarknetAddress:()=>FT,starknetCreateKeysForPath:()=>oC,getStarknetToolbox:()=>RU,deriveStarknetKeys:()=>$T});var oT=V(()=>{nU()});import{isValidSuiAddress as SX}from"@mysten/sui/utils";import{AssetValue as pf,Chain as N0,getChainConfig as PX,getRPCUrlSync as VX,SwapKitError as Fy}from"@swapkit/helpers";import{match as EX,P as kU}from"ts-pattern";async function FU(y,T,H,f=[],C){let U=await y.getCoins({coinType:H,cursor:C,owner:T}),q=[...f,...U.data];return U.hasNextPage?FU(y,T,H,q,U.nextCursor):q}function vX(y,T,H){let f=T.reduce((X,_)=>X+BigInt(_.balance),0n);if(f<H)throw new Fy("toolbox_sui_insufficient_balance",{available:f.toString(),required:H.toString()});let{ids:C}=T.reduce((X,_)=>{if(X.total>=H)return X;return{ids:[...X.ids,_.coinObjectId],total:X.total+BigInt(_.balance)}},{ids:[],total:0n}),U=C[0],q=C.slice(1);if(q.length>0)y.mergeCoins(U,q);let[G]=y.splitCoins(U,[H]);return G}function $U(y){try{return SX(y)}catch{return!1}}function wU(y){return"signWithIntent"in y}function pX({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await EX(T).with({phrase:kU.string},async({phrase:W})=>{let{Ed25519Keypair:M}=await import("@mysten/sui/keypairs/ed25519");return M.deriveKeypair(W)}).with({signer:kU.any},({signer:W})=>W).otherwise(()=>{return}),H}async function C(W=y){let{SuiClient:M}=await import("@mysten/sui/client");return new M({url:W||VX(N0.Sui)})}async function U(){return(await f())?.toSuiAddress()||""}function q(W){try{let M=pf.from({address:W,chain:N0.Sui});return{asset:M.toString(),decimals:M.decimal}}catch{}return null}async function G(W){let M=W||await U();if(!M)throw new Fy("toolbox_sui_address_required");let{baseDecimal:n,chain:O}=PX(N0.Sui);try{let J=await C(),{totalBalance:R}=await J.getBalance({owner:M}),N=[pf.from({chain:O,fromBaseDecimal:n,value:R})],B=await J.getAllBalances({owner:M});for(let{coinType:Y,totalBalance:z}of B){if(Y==="0x2::sui::SUI"||Number(z)<=0)continue;let k=q(Y);if(k)N.push(pf.from({asset:k.asset,fromBaseDecimal:k.decimals,value:z}))}return N}catch{return[pf.from({chain:O})]}}async function X(W){let M=pf.from({chain:N0.Sui,value:"0.01"});if(!W)return M;try{let n=await C(),{txBytes:O}=await _(W),{effects:{status:J,gasUsed:R}}=await n.dryRunTransactionBlock({transactionBlock:O});if(J.status!=="success")return M;let N=Number(R.computationCost)+Number(R.storageCost)-Number(R.storageRebate);return pf.from({chain:N0.Sui,value:N.toString()})}catch{return M}}async function _({recipient:W,assetValue:M,gasBudget:n,sender:O}){let{Transaction:J}=await import("@mysten/sui/transactions"),R=O||await U();if(!R)throw new Fy("toolbox_sui_no_sender");try{let N=new J;if(N.setSender(R),M.isGasAsset||M.symbol==="SUI"){let[z]=N.splitCoins(N.gas,[M.getBaseValue("string")]);N.transferObjects([z],W)}else{let z=M.address;if(!z)throw new Fy("toolbox_sui_missing_coin_type");let k=await C(),F=M.getBaseValue("bigint"),w=await FU(k,R,z);if(!w.length)throw new Fy("toolbox_sui_no_coins_found",{coinType:z});let $=vX(N,w,F);N.transferObjects([$],W)}if(n)N.setGasBudget(n);let B=await C(),Y=await N.build({client:B});return{tx:N,txBytes:Y}}catch(N){if(N instanceof Fy)throw N;throw new Fy("toolbox_sui_transaction_creation_error",{error:N})}}async function L(W){let M=await f();if(!M)throw new Fy("toolbox_sui_no_signer");if(W instanceof Uint8Array)return M.signTransaction(W);let{txBytes:n}="tx"in W?W:await _(W);return M.signTransaction(n)}async function A({assetValue:W,gasBudget:M,recipient:n}){let O=await f();if(!O)throw new Fy("toolbox_sui_no_signer");let J=O.toSuiAddress()||await U();if(!J)throw new Fy("toolbox_sui_no_sender");let{txBytes:R}=await _({assetValue:W,gasBudget:M,recipient:n,sender:J}),N=await C();if(!wU(O)){let Y=await O.signTransaction(R),{digest:z}=await N.executeTransactionBlock({signature:Y.signature,transactionBlock:Y.bytes});return z}let{digest:B}=await N.signAndExecuteTransaction({signer:O,transaction:R});return B}async function Z(W){let M=await C(),{digest:n}=await M.executeTransactionBlock({signature:W.signature,transactionBlock:W.bytes});return n}async function Q(W){let M=await f();if(!M)throw new Fy("toolbox_sui_no_signer");let n=await C(),O;if(typeof W==="string")O=Uint8Array.from(Buffer.from(W,"base64"));else if(W instanceof Uint8Array)O=W;else O=await W.build({client:n});if(!wU(M)){let R=await M.signTransaction(O),{digest:N}=await n.executeTransactionBlock({signature:R.signature,transactionBlock:R.bytes});return N}let{digest:J}=await n.signAndExecuteTransaction({signer:M,transaction:O});return J}return{broadcastTransaction:Z,createTransaction:_,estimateTransactionFee:X,getAddress:U,getBalance:G,signAndBroadcastTransaction:Q,signTransaction:L,transfer:A,validateAddress:$U}}var xU=()=>{};var IT={};Ty(IT,{validateSuiAddress:()=>$U,getSuiToolbox:()=>pX});var ST=V(()=>{xU()});import{getHttpEndpoint as bX}from"@orbs-network/ton-access";import{AssetValue as jX,Chain as O0,getChainConfig as lX,SKConfig as KX,SwapKitError as D0,SwapKitNumber as uX}from"@swapkit/helpers";import{mnemonicToWalletKey as hX}from"@ton/crypto";import{Address as iy,beginCell as IC,Cell as oU,external as tX,internal as mX,JettonMaster as cX,loadStateInit as gX,SendMode as IU,storeMessage as iX,TonClient as dX,toNano as EU,WalletContractV4 as rX}from"@ton/ton";import{match as SU,P as SC}from"ts-pattern";async function f4(){let y=Date.now();if(PT&&y-VU<y4)return PT;return PT=await bX(),VU=y,PT}async function T4(){let[y]=KX.get("rpcUrls")[O0.Ton]??[];if(y)return y;return await f4()}function C4(y={}){let T,H,f;async function C(){if(!T){let N=y.provider??await T4();T=new dX({endpoint:N})}return T}async function U(){return(await G()).address.toString()}async function q(){if(f)return f;return f=await SU(y).with({phrase:SC.string},async({phrase:N})=>hX(N.split(" "))).with({signer:SC.any},({signer:N})=>N).otherwise(()=>{return}),f}async function G(N){if(!H||N){let B=await q(),Y=await C(),z=N||B;if(!z)throw new D0("core_wallet_connection_not_found");let k=rX.create({publicKey:z.publicKey,workchain:0});H=Y.open(k)}return H}let X=Jy(O0.Ton);async function _({assetValue:N,recipient:B,memo:Y,sender:z}){if(N.isGasAsset){let p=Y?R(Y).toBoc().toString("base64"):void 0;return[{address:B,amount:N.getBaseValue("string"),payload:p}]}let k=N.address;if(!k)throw new D0({errorKey:"core_swap_contract_not_found",info:{asset:N.toString()}});let F=z??await U(),w=await O({jettonMasterAddress:k,ownerAddress:F}),$=iy.parse(B),o=iy.parse(F),D=N.getBaseValue("bigint"),x=Y?R(Y):void 0,I=J({destinationAddress:$,forwardPayload:x,jettonAmount:D,responseAddress:o});return[{address:w.toString(),amount:eX.toString(),payload:I.toBoc().toString("base64")}]}function L({sender:N,...B}){return _({...B,sender:N})}function A(N){return N.map((B)=>{let Y=B.payload?oU.fromBase64(B.payload):void 0,z=B.stateInit?gX(oU.fromBase64(B.stateInit).asSlice()):void 0,k=iy.parse(B.address),F=iy.isFriendly(B.address)?iy.parseFriendly(B.address).isBounceable:!0;return mX({body:Y,bounce:F,init:z,to:k,value:BigInt(B.amount)})})}async function Z(N){let B=await q(),Y=await G();if(!Y||!B)throw new D0("core_wallet_connection_not_found");let z=await C(),{state:k}=await z.getContractState(Y.address),F=k==="active",w=F?await Y.getSeqno():0,$=Y.createTransfer({messages:A(N),secretKey:B.secretKey,sendMode:PU,seqno:w}),o=tX({body:$,init:F?void 0:Y.init,to:Y.address});return IC().store(iX(o)).endCell()}async function Q(N){return await(await C()).sendFile(N.toBoc()),N.hash().toString("hex")}async function W(N){let B=await Z(N);return Q(B)}async function M({assetValue:N,recipient:B,memo:Y}){let z=await L({assetValue:N,memo:Y,recipient:B});return W(z)}async function n({sender:N,...B}){let{baseDecimal:Y}=lX(O0.Ton),z=await SU(N).with(SC.string,(w)=>{return iy.parseFriendly(w).address}).otherwise(async()=>{return(await G()).address});if(!z)throw new D0("toolbox_fee_estimation_failed",{chain:O0.Ton});let k=jX.from({chain:O0.Ton,value:"0.01"}),F=await C();try{let w=await L({sender:N,...B}),$=await q(),o=await G();if(!o||!$)return k;let D=await o.getSeqno(),x=o.createTransfer({messages:A(w),secretKey:$.secretKey,sendMode:PU,seqno:D}),{source_fees:I}=await F.estimateExternalMessageFee(z,{body:x,ignoreSignature:!0,initCode:null,initData:null}),p=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return k.set(uX.fromBigInt(BigInt(p),Y))}catch{return k}}async function O({jettonMasterAddress:N,ownerAddress:B}){try{let Y=await C(),z=iy.parse(N),k=iy.parse(B);return await Y.open(cX.create(z)).getWalletAddress(k)}catch{throw new D0({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:N,ownerAddress:B}})}}function J({jettonAmount:N,destinationAddress:B,responseAddress:Y,forwardAmount:z=sX,forwardPayload:k}){let F=IC().storeUint(aX,32).storeUint(0,64).storeCoins(N).storeAddress(B).storeAddress(Y).storeBit(0).storeCoins(z);if(k)F.storeBit(1).storeRef(k);else F.storeBit(0);return F.endCell()}function R(N){return IC().storeUint(0,32).storeStringTail(N).endCell()}return{broadcastTransaction:Q,createTransaction:L,estimateTransactionFee:n,getAddress:U,getBalance:X,getJettonWalletAddress:O,sign:Z,signAndBroadcastTransaction:W,transfer:M,validateAddress:vU}}function vU(y){try{return iy.parse(y),!0}catch{return!1}}var aX=260734629,sX,eX,PU,y4=60000,PT,VU=0;var pU=V(()=>{uy();sX=EU("0.01"),eX=EU("0.05"),PU=IU.PAY_GAS_SEPARATELY+IU.IGNORE_ERRORS});var VT={};Ty(VT,{validateTonAddress:()=>vU,getTONToolbox:()=>C4});var ET=V(()=>{pU()});import{NetworkDerivationPath as H4}from"@swapkit/helpers";function $y(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Hf({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)$y("accountIndex",y);let f=[...H?.slice(0,3)??H4[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function bf({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:C}){return $y("index",C),[...Hf({accountIndex:y,chain:H,derivationPath:f}),Number(T),C]}function Af(y){return y[2]??0}function bU({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(G){let{accountIndex:X,count:_,startIndex:L=0,change:A=!1}=G;if($y("count",_),_<1)throw RangeError("count must be at least 1");$y("startIndex",L);let Z=[];for(let Q=0;Q<_;Q++){let W=await y({accountIndex:X,change:A,index:L+Q});if(W)Z.push(W)}return Z}async function C(G){let{gapLimit:X=20,change:_=!1}=G??{},L=[],A=0,Z=0;while(A<X){let Q=await y({change:_,index:Z});if(!Q)break;if((await T(Q.address)).some((n)=>n.getValue("number")>0))L.push(Q),A=0;else A++;Z++}return L}async function U(G=20){let[X,_]=await Promise.all([C({change:!1,gapLimit:G}),C({change:!0,gapLimit:G})]),L=[...X,..._],A=await Promise.all(L.map(async(Q)=>{let M=(await T(Q.address)).reduce((n,O)=>n+O.getValue("number"),0);return{...Q,balance:M}})),Z=A.reduce((Q,W)=>Q+W.balance,0);return{addresses:A,total:Z}}async function q(G=20){let[X,_]=await Promise.all([C({change:!1,gapLimit:G}),C({change:!0,gapLimit:G})]),L=[...X,..._];return(await Promise.all(L.map(async(Z)=>{return(await H(Z.address)).map((W)=>({...W,address:Z.address,derivationIndex:Z.index,isChange:Z.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:U,getAggregatedUtxos:q,scanForAddresses:C}}var R0=()=>{};import{Chain as Gy,getRPCUrl as U4,RequestClient as vT,SKConfig as q4,SwapKitError as py,warnOnce as G4}from"@swapkit/helpers";import{NETWORKS as jf}from"@swapkit/utxo-signer";async function X4({chain:y,txHash:T}){let H=`${n0(y)}/push/transaction`,f=JSON.stringify({data:T});try{let C=await vT.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(C.context.code!==200)throw new py("toolbox_utxo_broadcast_failed",{error:C.context.error||"Transaction broadcast failed"});return C.data?.transaction_hash||T}catch(C){let U=await U4(y);if(U){let q=JSON.stringify({id:EH(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),G=await vT.post(U,{body:q,headers:{"Content-Type":"application/json"}});if(G.error)throw new py("toolbox_utxo_broadcast_failed",{error:G.error?.message});if(G.result.includes('"code":-26'))throw new py("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return G.result}throw C}}function n0(y){return`https://api.blockchair.com/${_4(y)}`}function jU(y){switch(y){case Gy.Bitcoin:return 5;case Gy.Dogecoin:return 1e4;case Gy.Litecoin:return 1;case Gy.Zcash:return 1;default:return 2}}function _4(y){switch(y){case Gy.BitcoinCash:return"bitcoin-cash";case Gy.Litecoin:return"litecoin";case Gy.Dash:return"dash";case Gy.Dogecoin:return"dogecoin";case Gy.Zcash:return"zcash";case Gy.Polkadot:return"polkadot";default:return"bitcoin"}}async function Q4(y){try{let{feePerKb:T}=await vT.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,jU(y))}catch{return jU(y)}}async function pT(y,T){let H=await vT.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new py("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function KU({address:y,chain:T,apiKey:H}){if(!y)throw new py("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await pT(`${n0(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function Z4({address:y,chain:T,apiKey:H}){return(await KU({address:y,apiKey:H,chain:T}))?.address.balance||0}async function uU({chain:y,apiKey:T,txHash:H}){if(!H)throw new py("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await pT(`${n0(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let C=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${C}`),""}}async function Y4({chain:y,apiKey:T,txHash:H}){if(!H)throw new py("toolbox_utxo_invalid_params",{error:"TxHash is required"});let C=(await pT(`${n0(y)}/dashboards/transaction/${H}`,T))?.[H];if(!C)throw new py("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:U,inputs:q,outputs:G}=C,X=q.map((L)=>L.spending_sequence),_=U.is_rbf===!0||X.some((L)=>L<W4);return{blockId:U.block_id,confirmed:U.block_id!==-1,fee:U.fee,inputs:q,isRBF:_,outputs:G,sequences:X,size:U.size,txid:U.hash,weight:U.weight}}async function J4({chain:y,address:T,apiKey:H,offset:f=0,limit:C=30}){return(await pT(`${n0(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${C}&offset=${f}`,H)).map(({is_spent:X,script_hex:_,block_id:L,transaction_hash:A,index:Z,value:Q,spending_signature_hex:W})=>({hash:A,index:Z,is_confirmed:L!==-1,is_spent:X,script_hex:_,txHex:W,value:Q}))}function L4(y){return y.reduce((T,H)=>T+H.value,0)}function lU(y,T){let H=[...y].sort((f,C)=>C.value-f.value);if(T){let f=[],C=0;for(let U of H)if(f.push(U),C+=U.value,C>=T)break;return f}return H}async function hU({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:C=0,offset:U=0,limit:q=30}){if(!T)throw new py("toolbox_utxo_invalid_params",{error:"Address is required"});try{let G=await J4({address:T,apiKey:H,chain:y,limit:q,offset:U,targetValue:f}),_=G.length<q,L=G.filter(({is_spent:n})=>!n),A=L4(L),Z=C+A,Q=f&&Z>=f;if(_||Q)return lU(L,f);let W=await hU({accumulativeValue:Z,address:T,apiKey:H,chain:y,limit:q,offset:U+q,targetValue:f}),M=[...L,...W];return lU(M,f)}catch(G){let X=G instanceof Error?G.message:String(G);return console.error(`Failed to fetch unspent UTXOs: ${X}`),[]}}async function z4({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:C}){let U=await hU({address:y,apiKey:H,chain:T,targetValue:C}),q=[];for(let{hash:G,index:X,script_hex:_,value:L}of U){let A;if(f)A=await uU({apiKey:H,chain:T,txHash:G});q.push({address:y,hash:G,index:X,txHex:A,value:L,witnessUtxo:{script:Buffer.from(_,"hex"),value:L}})}return q}function yy(y){let T=q4.get("apiKeys").blockchair||"";return G4({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>X4({chain:y,txHash:H}),getAddressData:(H)=>KU({address:H,apiKey:T,chain:y}),getBalance:(H)=>Z4({address:H,apiKey:T,chain:y}),getRawTx:(H)=>uU({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>Q4(y),getTransactionDetails:(H)=>Y4({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>z4({...H,apiKey:T,chain:y})}}function A4(y){return y}function M4(){return function(T){switch(T){case Gy.Bitcoin:return jf.bitcoin;case Gy.BitcoinCash:return jf.bitcoinCash;case Gy.Dash:return jf.dash;case Gy.Litecoin:return jf.litecoin;case Gy.Dogecoin:return jf.dogecoin;case Gy.Zcash:return jf.zcash;default:throw new py("toolbox_utxo_not_supported",{chain:T})}}}var W4=4294967294;var tU=V(()=>{uy()});import{CashAddrType as bT,decodeCashAddr as B4,encodeCashAddr as N4}from"@swapkit/utxo-signer";function R4(y,T,H){return N4({hash:H,prefix:y,type:D4[T]})}function n4(y){let T=B4(y),H=O4[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var D4,O4,PC;var mU=V(()=>{D4={P2PKH:bT.P2PKH,P2SH:bT.P2SH},O4={[bT.P2PKH]:"P2PKH",[bT.P2SH]:"P2SH"};PC={decode:n4,encode:R4}});import{sha256 as k4}from"@noble/hashes/sha2.js";import{createBase58check as w4}from"@scure/base";import{SwapKitError as gU}from"@swapkit/helpers";function EC(y){try{return jT(y),!0}catch{return!1}}function vC(y){return jT(y)?.network}function dy(y){let T=jT(y);if(T?.format==="legacy")return y;return x4(T)}function k0(y){let T=jT(y);return o4(T)}function jT(y){try{let T=F4(y);if(T)return T}catch{}try{let T=$4(y);if(T)return T}catch{}throw new gU("toolbox_utxo_invalid_address",{address:y})}function F4(y){try{let T=iU.decode(y);if(T.length!==21)throw new gU("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case Mf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Mf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Mf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Mf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Mf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Mf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function $4(y){if(y.indexOf(":")!==-1)try{return cU(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return cU(`${H}:${y}`)}catch{}}return}function cU(y){try{let{hash:T,prefix:H,type:f}=PC.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function x4(y){let T=Mf.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),iU.encode(H)}function o4(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return PC.encode(T,H,f)}var iU,VC,Mf;var dU=V(()=>{mU();iU=w4(k4);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(VC||={});Mf={["legacy"]:{["mainnet"]:{["p2pkh"]:0,["p2sh"]:5},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}},["bitpay"]:{["mainnet"]:{["p2pkh"]:28,["p2sh"]:40},["testnet"]:{["p2pkh"]:111,["p2sh"]:196}}}});import{SwapKitError as I4}from"@swapkit/helpers";import{Script as S4}from"@swapkit/utxo-signer";function My(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return S4.encode(["RETURN",T])}var P4=1000,KT=10,uT=2,rU=10,V4=41,E4=107,hT,lT,w0,lf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new I4("toolbox_utxo_invalid_address",{address:y})},Bf=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?lf(y[0].address):"P2PKH",U=(H?y.filter((_)=>_.value>=lT["type"in _&&_.type?_.type:"P2PKH"]*Math.ceil(H)):y).reduce((_,L)=>_+Uf(L),0),q=T?.reduce((_,L)=>_+F0(L),0)||w0[f],G=KT+U+q;return f==="P2WPKH"?Math.ceil(G+uT/4):G},Uf=(y)=>{if("type"in y&&y.type)return lT[y.type];if("address"in y&&y.address)return lT[lf(y.address)];return V4+E4},F0=(y,T)=>{if(y?.script)return rU+y.script.length+(y.script.length>=74?2:1);if(T)return w0[T];if("address"in y&&y.address)return w0[lf(y.address)];return w0.P2PKH};var pC=V(()=>{((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(hT||={});lT={["P2PKH"]:148,["P2WPKH"]:68},w0={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Nf,SwapKitError as v4}from"@swapkit/helpers";function $0(y){switch(y){case Nf.Bitcoin:case Nf.BitcoinCash:return 550;case Nf.Dash:case Nf.Litecoin:return 5500;case Nf.Dogecoin:return 1e5;case Nf.Zcash:return 546;default:throw new v4("toolbox_utxo_not_supported",{chain:y})}}function xy({inputs:y,outputs:T,feeRate:H=1,chain:f=Nf.Bitcoin,changeAddress:C=""}){let U=y[0]&&"address"in y[0]&&y[0].address?lf(y[0].address):"P2PKH",q=y.filter((W)=>Uf(W)*H<=W.value),X=U==="P2WPKH"?Math.ceil(uT/4):0,_=KT+X+T.reduce((W,M)=>W+F0(M),0),L=T.reduce((W,M)=>W+M.value,0),A=_*H,Z=0,Q=[];for(let W of q){let M=Uf(W),n=H*M;A+=n,Z+=W.value,Q.push(W);let O=A+L;if(Z<O)continue;let J=Z-O,R=H*F0({address:C,value:0});if(J>R){let N=R+A,B=Z-(L+Math.ceil(N));if(B>Math.max(Uf({value:0})*H,$0(f)))return{fee:Math.ceil(N),inputs:Q,outputs:T.concat({address:C,value:B})}}return{fee:Math.ceil(A),inputs:Q,outputs:T}}return{fee:Math.ceil(H*Bf({inputs:y,outputs:T}))}}var aU=V(()=>{pC()});var Kf=V(()=>{tU();dU();aU();pC()});import{Address as p4,ZCASH_NETWORK as b4}from"@swapkit/utxo-signer";function Df(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function qf(y){let T=Df(y);return EC(T)&&vC(T)==="mainnet"}function uf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let H=p4(b4).decode(y);return H.type==="pkh"||H.type==="sh"}catch{return!1}}var x0=V(()=>{Kf()});import{secp256k1 as j4}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as f2}from"@scure/bip32";import{mnemonicToSeedSync as jC}from"@scure/bip39";import{AssetValue as tT,applyFeeMultiplier as sU,Chain as fy,derivationPathToString as o0,FeeOption as by,NetworkDerivationPath as T2,SwapKitError as g,SwapKitNumber as l4,updateDerivationPath as K4,warnOnce as u4}from"@swapkit/helpers";import{Address as h4,BCHSigHash as lC,CashAddrPrefix as t4,CashAddrType as m4,encodeCashAddr as c4,NETWORKS as hf,p2pkh as eU,p2wpkh as g4,RBF_SEQUENCE as i4,SigHash as C2,Transaction as bC,WIF as H2}from"@swapkit/utxo-signer";import{match as U2}from"ts-pattern";function KC({address:y,chain:T}){return U2(T).with(fy.BitcoinCash,()=>qf(y)).with(fy.Zcash,()=>uf(y)).otherwise(()=>{try{return h4(Zy(T)).decode(y),!0}catch{return!1}})}function Zy(y){return U2(y).with(fy.Bitcoin,()=>hf.bitcoin).with(fy.BitcoinCash,()=>hf.bitcoinCash).with(fy.Dash,()=>hf.dash).with(fy.Dogecoin,()=>hf.dogecoin).with(fy.Litecoin,()=>hf.litecoin).with(fy.Zcash,()=>hf.zcash).exhaustive()}function d4({phrase:y,derivationPath:T,network:H,seed:f}){let C=f??jC(y),q=f2.fromMasterSeed(C,H.bip32).derive(T);if(!q.privateKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return q.privateKey}function y2(y){return j4.getPublicKey(y,!0)}function S0({publicKey:y,chain:T,network:H}){if(T===fy.BitcoinCash){let U=eU(y,H);if(!U.hash)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return c4({hash:U.hash,prefix:t4.MAINNET,type:m4.P2PKH}).replace(/^bitcoincash:/,"")}let C=!I0.includes(T)?g4(y,H):eU(y,H);if(!C.address)throw new g("toolbox_utxo_invalid_address",{error:"Could not derive address"});return C.address}function tf({phrase:y,derivationPath:T,chain:H,wif:f,seed:C}){let U=Zy(H);if(f){let _=H2(U).decode(f),L=y2(_);return{privateKey:_,publicKey:L}}if(!y)throw new g("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let q=T||o0(T2[H]),G=d4({derivationPath:q,network:U,phrase:y,seed:C}),X=y2(G);return{privateKey:G,publicKey:X}}function r4(y,T){return H2(Zy(T)).encode(y)}function a4({phrase:y,derivationPath:T,chain:H,seed:f}){let C=T.split("/");if(C.length<4)throw new g("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${C.length}): ${T}`});let U=Zy(H),q=f??jC(y),G=f2.fromMasterSeed(q,U.bip32),X=C.slice(0,4).join("/");return G.derive(X)}function Gf({inputs:y,outputs:T,chain:H,tx:f,sender:C,compiledMemo:U,enableRBF:q=!1}){let G=Zy(H),X=!I0.includes(H),_=q?i4:void 0,L=new Set;for(let A of y){let Z=`${A.hash}:${A.index}`;if(L.has(Z))throw new g("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});L.add(Z);let Q=typeof A.hash==="string"?Of.decode(A.hash):A.hash;if(X&&A.witnessUtxo)f.addInput({index:A.index,sequence:_,txid:Q,witnessUtxo:{amount:BigInt(A.witnessUtxo.value),script:A.witnessUtxo.script}});else if(A.txHex)f.addInput({index:A.index,nonWitnessUtxo:Of.decode(A.txHex),sequence:_,txid:Q,...H===fy.BitcoinCash?{sighashType:lC.ALL}:{}});else throw new g("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let A of T){let Z="address"in A&&A.address?A.address:C;if(H===fy.BitcoinCash)Z=dy(Z);if(A.script){if(U)f.addOutput({amount:0n,script:U})}else f.addOutputAddress(Z,BigInt(A.value),G)}return{inputs:y,tx:f}}async function mf(y){let T=await yy(y).getSuggestedTxFee();return{[by.Average]:T,[by.Fast]:sU(T,by.Fast),[by.Fastest]:sU(T,by.Fastest)}}async function q2({assetValue:y,recipient:T,memo:H,sender:f,fetchTxHex:C=!1}){let U=y.chain,q=(await mf(U))[by.Fastest],G=C||I0.includes(U),X=y.getBaseValue("number"),_=Math.ceil(X+q*5000);return{inputs:await yy(U).getUtxos({address:f,fetchTxHex:G,targetValue:_}),outputs:[{address:T,value:X},...H?[{address:"",script:My(H),value:0}]:[]]}}async function G2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C,fetchTxHex:U=!1,enableRBF:q=!1}){let G=y.chain,X=H?My(H):null,_=await q2({assetValue:y,fetchTxHex:U,memo:H,recipient:T,sender:C}),{inputs:L,outputs:A}=xy({..._,chain:G,feeRate:f});if(!(L&&A))throw new g("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let Z=new bC({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!X,version:1}),{inputs:Q,tx:W}=Gf({chain:G,compiledMemo:X,enableRBF:q,inputs:L,outputs:A,sender:C,tx:Z});return{inputs:Q,tx:W,utxos:_.inputs}}async function X2({assetValue:y,feeOptionKey:T=by.Fast,feeRate:H,memo:f,sender:C,recipient:U}){let q=y.chain,G=await q2({assetValue:y,memo:f,recipient:U,sender:C}),X=H?Math.floor(H):(await mf(q))[T];return xy({...G,chain:q,feeRate:X})}function s4(y){return async function({from:H,memo:f,feeRate:C,feeOptionKey:U=by.Fast,recipients:q=1}){let G=await yy(y).getAddressData(H),X=C?Math.ceil(C):(await mf(y))[U],_=G?.utxo.map((M)=>({...M,hash:"",type:"P2PKH"})).filter((M)=>M.value>Math.max($0(y),Uf(M)*X));if(!_?.length)return tT.from({chain:y});let L=BigInt(_.reduce((M,n)=>M+n.value,0)),A=tT.from({chain:y,value:L}),Z=typeof q==="number"?Array.from({length:q},()=>({address:H,value:0})):q;if(f)Z.push({address:H,script:My(f),value:0});let Q=Bf({inputs:_,outputs:Z}),W=tT.from({chain:y,value:BigInt(Q*X)});return A.sub(W)}}function e4(y){return async function(H){let{fee:f}=await X2(H);return tT.from({chain:y,value:l4.fromBigInt(BigInt(f),8).getValue("string")})}}function y6({chain:y,phrase:T,derivationPath:H,seed:f}){let C=Zy(y),{privateKey:U,publicKey:q}=tf({chain:y,derivationPath:H,phrase:T,seed:f}),G=y===fy.BitcoinCash?[lC.ALL]:[C2.ALL];return{getAddress:()=>S0({chain:y,network:C,publicKey:q}),privateKey:U,publicKey:q,signTransaction:(X)=>{return X.sign(U,G),X}}}function f6(y,T){return async function({memo:f,recipient:C,feeOptionKey:U,feeRate:q,assetValue:G,enableRBF:X=!1}){let _=await T?.getAddress();if(!(T&&_))throw new g("toolbox_utxo_no_signer");if(!C)throw new g("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});u4({condition:X&&!mT.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let L=X&&mT.includes(y),A=q||(await mf(y))[U||by.Fast],{tx:Z}=await G2({assetValue:G,enableRBF:L,feeRate:A,memo:f,recipient:C,sender:_}),Q=await T.signTransaction(Z);return Q.finalize(),yy(y).broadcastTx(Of.encode(Q.extract()))}}function uC(y){return(T)=>KC({address:T,chain:y})}function hC(y){let T=Zy(y);return function(f){if(!f)throw new g("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return S0({chain:y,network:T,publicKey:f.publicKey})}}function Xf({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,C=H?jC(H):void 0,U="derivationPath"in T&&T.derivationPath?T.derivationPath:K4(T2[y],{index:f}),q=o0(U),G=H?y6({chain:y,derivationPath:q,phrase:H,seed:C}):void 0,X="signer"in T?T.signer:void 0,_=G||X,L=H?tf({chain:y,derivationPath:q,phrase:H,seed:C}):void 0;function A(){if(_)return _.getAddress();return Promise.resolve(void 0)}function Z(w){if(!H)return;let $=Hf({accountIndex:w,chain:y,derivationPath:U});return a4({chain:y,derivationPath:o0($),phrase:H,seed:C})}let Q=Z();function W(){if(!Q)return;return Q.publicExtendedKey}function M({accountIndex:w}={}){let $=w===void 0?Q:Z(w);if(!$)return;let o=Hf({accountIndex:w,chain:y,derivationPath:U});return{accountIndex:Af(o),path:o0(o),xpub:$.publicExtendedKey}}function n({accountIndex:w,index:$,change:o=!1}){let D=w===void 0?Q:Z(w);if(!D)return;let x=bf({accountIndex:w,chain:y,change:o,derivationPath:U,index:$}),I=Zy(y),p=D.deriveChild(Number(o)).deriveChild($);if(!p.publicKey)throw new g("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let E=S0({chain:y,network:I,publicKey:p.publicKey}),j=Of.encode(p.publicKey);return{accountIndex:Af(x),address:E,change:o,index:$,path:o0(x),pubkey:j}}async function O(w){if(!mT.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let $=await yy(y).getTransactionDetails(w);return{canReplace:$.isRBF&&!$.confirmed,confirmed:$.confirmed,enabled:$.isRBF,fee:$.fee,sequences:$.sequences,supported:!0}}async function J({txid:w,newFeeRate:$,recipient:o,memo:D}){if(!mT.includes(y))throw new g("toolbox_utxo_rbf_not_supported",{chain:y});let x=await yy(y).getTransactionDetails(w);if(!x.isRBF)throw new g("toolbox_utxo_tx_not_replaceable",{txid:w});if(x.confirmed)throw new g("toolbox_utxo_tx_already_confirmed",{blockId:x.blockId,txid:w});let I=x.inputs.reduce((e,ny)=>e+ny.value,0),E=x.outputs.find((e)=>e.recipient===o)?.value||0;if(E===0)throw new g("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let j=await Promise.all(x.inputs.map(async(e)=>{let ny=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:ny,value:e.value,witnessUtxo:void 0}})),h=D?My(D):null,s=Bf({feeRate:$,inputs:j.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:o,value:E}]}),m=Math.ceil(s*$);if(m<=x.fee)throw new g("toolbox_utxo_rbf_fee_too_low",{newFee:m,originalFee:x.fee});let Ay=m-x.fee,Hy=E-Ay;if(Hy<=0)throw new g("toolbox_utxo_rbf_insufficient_change");let Sy=new bC({allowLegacyWitnessUtxo:!0,version:1}),Py=[{address:o,value:Hy},...D?[{address:"",script:My(D),value:0}]:[]],Vy=I-Hy-m,Yy=await A();if(Vy>$0(y)&&Yy)Py.push({address:Yy,value:Vy});return Gf({chain:y,compiledMemo:h,inputs:j,outputs:Py,sender:Yy||o,tx:Sy}),{feeDelta:Ay,newFee:m,originalFee:x.fee,tx:Sy}}async function R({txid:w,newFeeRate:$,recipient:o,memo:D}){let{tx:x,originalFee:I,newFee:p}=await J({memo:D,newFeeRate:$,recipient:o,txid:w}),E=await k(x);E.finalize();let j=await yy(y).broadcastTx(Of.encode(E.extract()));return{newFee:p,originalFee:I,txid:j}}function N({accountIndex:w,index:$,change:o=!1}){$y("index",$);let D=w===void 0?Q:Z(w);if(!D)return;return D.deriveChild(Number(o)).deriveChild($).privateKey||void 0}function B({tx:w,inputDerivations:$}){if(!Q)throw new g("toolbox_utxo_no_signer");let o=y===fy.BitcoinCash?[lC.ALL]:[C2.ALL];for(let D=0;D<$.length;D++){let x=$[D];if(!x)continue;let{derivationIndex:I,isChange:p}=x,E=N({change:p,index:I});if(!E)throw new g("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${D} at index ${I}`});w.signIdx(E,D,o)}return w}async function Y({utxos:w,recipient:$,assetValue:o,memo:D,feeRate:x,feeOptionKey:I,changeAddress:p}){if(!Q)throw new g("toolbox_utxo_no_signer");let E=x||(await mf(y))[I||by.Fast],j=D?My(D):null,h=[{address:$,value:o.getBaseValue("number")}];if(j)h.push({address:"",script:j,value:0});let s=w.map(({hash:Yy,index:e,value:ny,txHex:I8,witnessUtxo:W1})=>({hash:Yy,index:e,txHex:I8,value:ny,witnessUtxo:W1?{script:W1.script,value:W1.value}:void 0})),{inputs:m,outputs:Ay}=xy({chain:y,feeRate:E,inputs:s,outputs:h});if(!(m&&Ay))throw new g("toolbox_utxo_insufficient_balance",{assetValue:o,sender:"multiple addresses"});let Hy=new bC({allowLegacyWitnessUtxo:!0,version:1}),Sy=w[0]?.address,Py=p||await A()||Sy||$;Gf({chain:y,compiledMemo:j,inputs:m,outputs:Ay,sender:Py,tx:Hy});let Vy=m.map((Yy)=>{let e=w.find((ny)=>ny.hash===Yy.hash&&ny.index===Yy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return B({inputDerivations:Vy,tx:Hy}),Hy.finalize(),yy(y).broadcastTx(Of.encode(Hy.extract()))}function z({address:w,gapLimit:$=20}){if(!Q)return;for(let o=0;o<$;o++){let D=n({change:!1,index:o}),x=n({change:!0,index:o}),I=D?.address===w?!1:x?.address===w;if(D?.address===w||x?.address===w)return{change:I,index:o}}return}function k(w){if(!_)throw new g("toolbox_utxo_no_signer");return _.signTransaction(w)}async function F(w){let $=await k(w);return $.finalize(),await yy(y).broadcastTx(Of.encode($.extract()))}return{accumulative:xy,broadcastTx:(w)=>yy(y).broadcastTx(w),bumpFee:R,calculateTxSize:Bf,createKeysForPath:(w)=>tf({...w,chain:y}),createReplacementTransaction:J,createTransaction:G2,deriveAddressAtIndex:n,derivePrivateKeyAtIndex:N,estimateMaxSendableAmount:s4(y),estimateTransactionFee:e4(y),getAddress:A,getAddressFromKeys:hC(y),getBalance:Jy(y),getExtendedPublicKey:W,getExtendedPublicKeyInfo:M,getFeeRates:()=>mf(y),getInputsOutputsFee:X2,getNetworkForChain:()=>Zy(y),getPrivateKeyFromMnemonic:(w)=>r4(tf({...w,chain:y}).privateKey,y),isRBFEnabled:O,keys:L,resolveDerivationIndex:z,signAndBroadcastTransaction:F,signTransaction:k,signTransactionWithMultipleKeys:B,transfer:f6(y,_),transferFromMultipleAddresses:Y,validateAddress:uC(y)}}var I0,mT;var cf=V(()=>{uy();R0();Kf();x0();I0=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],mT=[fy.Bitcoin]});import{hex as _2}from"@scure/base";import{Chain as T6,derivationPathToString as C6,FeeOption as H6,NetworkDerivationPath as U6,SwapKitError as ry,updateDerivationPath as q6}from"@swapkit/helpers";import{BCHSigHash as G6,CashAddrPrefix as Q2,CashAddrType as Z2,encodeCashAddr as W2,NETWORKS as X6,p2pkh as Y2,Transaction as J2}from"@swapkit/utxo-signer";function P0(y){return Df(k0(y))}function _6(y){let T=Zy(jy);function H(C){return C.sign(y.privateKey,[G6.ALL]),C}function f(){let C=Y2(y.publicKey,T);if(!C.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let U=W2({hash:C.hash,prefix:Q2.MAINNET,type:Z2.P2PKH});return Promise.resolve(U.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function tC(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=C6("derivationPath"in y&&y.derivationPath?y.derivationPath:q6(U6[jy],{index:H})),C=T?tf({chain:jy,derivationPath:f,phrase:T}):void 0,U=C?_6(C):("signer"in y)?y.signer:void 0;function q(){return Promise.resolve(U?.getAddress())}let{getBalance:G,getFeeRates:X,broadcastTx:_,...L}=Xf({chain:jy});function A(W,M=!0){return G(Df(k0(W)))}function Z(W){if(!U)throw new ry("toolbox_utxo_no_signer");return U.signTransaction(W)}async function Q(W){let M=await Z(W);return M.finalize(),await _(_2.encode(M.extract()))}return{...L,broadcastTx:_,buildTx:Z6,createTransaction:L2,getAddress:q,getAddressFromKeys:W6,getBalance:A,getFeeRates:X,signAndBroadcastTransaction:Q,signTransaction:Z,stripPrefix:Df,stripToCashAddress:P0,transfer:Q6({broadcastTx:_,getFeeRates:X,signer:U}),validateAddress:qf}}async function L2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){if(!qf(T))throw new ry("toolbox_utxo_invalid_address",{address:T});let U=Math.ceil(y.getBaseValue("number")+f*7500),q=await yy(jy).getUtxos({address:P0(C),fetchTxHex:!0,targetValue:U}),G=H?My(H):null,X=[],_=dy(T);if(X.push({address:_,value:y.getBaseValue("number")}),G)X.push({script:G,value:0});let{inputs:L,outputs:A}=xy({chain:jy,feeRate:f,inputs:q,outputs:X});if(!(L&&A))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let Z=new J2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),Q=dy(C),{inputs:W,tx:M}=Gf({chain:jy,compiledMemo:G,inputs:L,outputs:A.map((n)=>("address"in n)&&n.address?{...n,address:dy(n.address)}:n),sender:Q,tx:Z});return{inputs:W,tx:M,utxos:L}}function Q6({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:C,assetValue:U,feeOptionKey:q=H6.Fast,...G}){let X=await H?.getAddress();if(!(H&&X))throw new ry("toolbox_utxo_no_signer");if(!C)throw new ry("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let _=G.feeRate||(await T())[q],{tx:L}=await L2({...G,assetValue:U,feeRate:_,recipient:C,sender:X}),A=await H.signTransaction(L);return A.finalize(),y(_2.encode(A.extract()))}}async function Z6({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){let U=k0(T);if(!qf(U))throw new ry("toolbox_utxo_invalid_address",{address:U});let q=Math.ceil(y.getBaseValue("number")+f*7500),G=await yy(jy).getUtxos({address:P0(C),fetchTxHex:!0,targetValue:q}),X=Number(f.toFixed(0)),_=H?My(H):null,L=[];if(L.push({address:dy(T),value:y.getBaseValue("number")}),_)L.push({script:_,value:0});let{inputs:A,outputs:Z}=xy({chain:jy,feeRate:X,inputs:G,outputs:L});if(!(A&&Z))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let Q=new J2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!_,version:1}),{inputs:W,tx:M}=Gf({chain:jy,compiledMemo:_,inputs:A,outputs:Z,sender:dy(C),tx:Q});return{inputs:W,tx:M,utxos:G}}function W6(y){let T=X6.bitcoinCash,H=Y2(y.publicKey,T);if(!H.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return W2({hash:H.hash,prefix:Q2.MAINNET,type:Z2.P2PKH}).replace(/^bitcoincash:/,"")}var jy;var cT=V(()=>{Kf();cf();x0();jy=T6.BitcoinCash});import{createBase58check as Y6,hex as J6}from"@scure/base";import{HDKey as A2}from"@scure/bip32";import{mnemonicToSeedSync as M2}from"@scure/bip39";import{Chain as gT,derivationPathToString as L6,FeeOption as z6,NetworkDerivationPath as A6,SKConfig as B2,SwapKitError as V0,updateDerivationPath as M6}from"@swapkit/helpers";import{Address as B6,createZcashTransaction as N6,OutScript as D6,PCZT as O6,utils as N2,WIF as R6,ZCASH_NETWORK as n6,ZCASH_TEST_NETWORK as k6,ZcashConsensusBranchId as w6,ZcashPSBT as F6,ZcashSigHash as mC,ZcashVersionGroupId as $6}from"@swapkit/utxo-signer";import{match as x6,P as cC}from"ts-pattern";function D2(){let{isStagenet:y}=B2.get("envs");return y?k6:n6}function I6(y){return o6.encode(y)}function S6({phrase:y,derivationPath:T}){let H=M2(y),C=A2.fromMasterSeed(H).derive(T);if(!C.privateKey||!C.publicKey)throw new V0("toolbox_utxo_invalid_params");let{privateKey:U,publicKey:q}=C,G=N2.hash160(q),{isStagenet:X}=B2.get("envs"),_=X?new Uint8Array([29,37]):new Uint8Array([28,184]),L=new Uint8Array(_.length+G.length);L.set(_,0),L.set(G,_.length);let A=I6(L);return{getAddress:()=>Promise.resolve(A),signTransaction:(Z)=>{if(Z instanceof F6){let Q=Z.toPCZT();return Q.signAllInputs(U,q,mC.ALL),Q.finalizeAllInputs(),Promise.resolve(Q.extract())}if(Z instanceof O6)return Z.signAllInputs(U,q,mC.ALL),Z.finalizeAllInputs(),Promise.resolve(Z.extract());return Z.signAllInputs(U,q,mC.ALL),Promise.resolve(Z)}}}function P6({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:C}){let U=D2();for(let q of y){let G=B6(U).decode(f),X=D6.encode(G);H.addInput({index:q.index,script:X,sequence:4294967295,txid:J6.decode(q.hash),value:BigInt(q.value)})}for(let q of T){let G="address"in q&&q.address?q.address:f,X=q.script;if(X&&!C)continue;if(X&&C)H.addOutput({amount:0n,script:C});else H.addOutputAddress(G,BigInt(q.value),U)}return{inputs:y,tx:H}}async function z2(y){let{assetValue:T,recipient:H,memo:f,feeRate:C,sender:U,fetchTxHex:q}=y,G=f?My(f):null,X=await yy(gT.Zcash).getUtxos({address:U,fetchTxHex:q!==!1}),_=[{address:H,value:Number(T.getBaseValue("string"))},...G?[{script:G,value:0}]:[]],{inputs:L,outputs:A}=xy({chain:gT.Zcash,changeAddress:U,feeRate:C,inputs:X,outputs:_});if(!(L&&A))throw new V0("toolbox_utxo_insufficient_balance",{assetValue:T,sender:U});let Z=N6({consensusBranchId:w6.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:$6.SAPLING}),{tx:Q,inputs:W}=P6({compiledMemo:G,inputs:L,outputs:A,sender:U,tx:Z});return{inputs:W,outputs:A,tx:Q}}function gC(y){let T=x6(y).with({signer:cC.not(cC.nullish)},({signer:X})=>X).with({phrase:cC.string},({phrase:X,derivationPath:_,index:L=0})=>{let A=_||A6[gT.Zcash]||[44,133,0,0,0],Z=M6(A,{index:L}),Q=L6(Z);return S6({derivationPath:Q,phrase:X})}).otherwise(()=>{return}),H=Xf({chain:gT.Zcash,signer:T});async function f(X){if(!T)throw new V0("toolbox_utxo_no_signer");return await T.signTransaction(X)}async function C(X){let _=await f(X);return H.broadcastTx(_.toHex())}async function U({recipient:X,assetValue:_,feeOptionKey:L=z6.Fast,...A}){let Z=await T?.getAddress();if(!(T&&Z))throw new V0("toolbox_utxo_no_signer");let Q=A.feeRate||(await H.getFeeRates())[L],{tx:W}=await z2({...A,assetValue:_,feeRate:Q,recipient:X,sender:Z}),n=(await T.signTransaction(W)).toHex();return H.broadcastTx(n)}function q({phrase:X,derivationPath:_="m/44'/133'/0'/0/0"}){let L=M2(X),Z=A2.fromMasterSeed(L).derive(_);if(!Z.privateKey||!Z.publicKey)throw new V0("toolbox_utxo_invalid_params");return{privateKey:Z.privateKey,publicKey:Z.publicKey}}function G({phrase:X,derivationPath:_="m/44'/133'/0'/0/0"}){let L=q({derivationPath:_,phrase:X}),A=D2();return R6(A).encode(L.privateKey)}return{...H,createKeysForPath:q,createTransaction:z2,getPrivateKeyFromMnemonic:G,signAndBroadcastTransaction:C,signTransaction:f,transfer:U,validateAddress:uf}}var o6;var iC=V(()=>{Kf();cf();x0();o6=Y6(N2.sha256)});import{hex as V6}from"@scure/base";import{HDKey as E6}from"@scure/bip32";import{derivationPathToString as v6}from"@swapkit/helpers";function O2({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:C}){if($y("count",H),H<1)throw RangeError("count must be at least 1");$y("startIndex",f);let U=Zy(T),q=E6.fromExtendedKey(y,U.bip32),G=Hf({accountIndex:C,chain:T}),X=Af(G),_=[];for(let L of[!1,!0]){let A=q.deriveChild(Number(L));for(let Z=0;Z<H;Z++){let Q=f+Z,W=A.deriveChild(Q);if(!W.publicKey)continue;let M=bf({accountIndex:C,chain:T,change:L,index:Q});_.push({accountIndex:X,address:S0({chain:T,network:U,publicKey:W.publicKey}),change:L,index:Q,path:v6(M),pubkey:V6.encode(W.publicKey)})}}return _}var R2=V(()=>{R0();cf()});import{Chain as gf,SwapKitError as p6}from"@swapkit/helpers";function b6(y,T){switch(y){case gf.BitcoinCash:return tC(T||{});case gf.Zcash:return gC(T);case gf.Bitcoin:case gf.Dogecoin:case gf.Litecoin:case gf.Dash:return Xf({chain:y,...T});default:throw new p6("toolbox_utxo_not_supported",{chain:y})}}var n2=V(()=>{cT();cf();iC();R0();R2();cT();x0()});var dC={};Ty(dC,{validateZcashAddress:()=>uf,validateUtxoAddress:()=>KC,validateBchAddress:()=>qf,toLegacyAddress:()=>dy,toCashAddress:()=>k0,stripToCashAddress:()=>P0,stripPrefix:()=>Df,nonSegwitChains:()=>I0,isValidAddress:()=>EC,getUtxoToolbox:()=>b6,getUtxoNetwork:()=>M4,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>uC,getUTXOAddressPath:()=>bf,getUTXOAccountPath:()=>Hf,getUTXOAccountIndexFromPath:()=>Af,getScriptTypeForAddress:()=>lf,getOutputSize:()=>F0,getNetworkForChain:()=>Zy,getInputSize:()=>Uf,getDustThreshold:()=>$0,detectAddressNetwork:()=>vC,deriveAddressesFromXpub:()=>O2,createZcashToolbox:()=>gC,createUTXOToolbox:()=>Xf,createHDWalletHelpers:()=>bU,createCustomUtxoApi:()=>A4,createBCHToolbox:()=>tC,compileMemo:()=>My,calculateTxSize:()=>Bf,assertDerivationIndex:()=>$y,addressFromKeysGetter:()=>hC,addInputsAndOutputs:()=>Gf,accumulative:()=>xy,UtxoNetwork:()=>VC,UTXOScriptType:()=>hT,TX_OVERHEAD:()=>KT,SEGWIT_MARKER_FLAG_WEIGHT:()=>uT,OutputSizes:()=>w0,OP_RETURN_OVERHEAD:()=>rU,MIN_TX_FEE:()=>P4,InputSizes:()=>lT});var rC=V(()=>{cf();R0();Kf();n2();cT();iC()});import{KeyPairSigner as j6}from"@near-js/signers";import{derivationPathToString as l6,SwapKitError as K6}from"@swapkit/helpers";import*as k2 from"near-seed-phrase";function E0(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function iT(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?l6(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{secretKey:C}=k2.parseSeedPhrase(y.phrase,f),U=T.fromString(C);return F2(U)}async function aC(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return F2(H)}function F2(y){return new w2(y)}async function dT(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((G)=>G.access_key.permission==="FullAccess");if(!f)throw new K6("toolbox_near_no_public_key_found");let{PublicKey:C}=await import("@near-js/crypto"),U=C.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:U}}var w2;var sC=V(()=>{w2=class w2 extends j6{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),T=Buffer.from(y.data).toString("hex");return Promise.resolve(T)}}});function eC(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function yH(y){return"contractId"in y&&"methodName"in y}function fH(y){return"actions"in y}function TH(y){return"newAccountId"in y}function CH(y){return"contractCode"in y}function HH(y){return"customEstimator"in y}function UH(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(Xy.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(Xy.CONTRACT_CALL);break;case"createAccount":T+=Number(Xy.ACCOUNT_CREATION);break;case"deployContract":T+=Number(Xy.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(Xy.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(Xy.ACCESS_KEY_DELETION);break;case"stake":T+=Number(Xy.STAKE);break;default:T+=Number(Xy.CONTRACT_CALL)}return T.toString()}function qH(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Xy.TOKEN_TRANSFER;if(y==="storage_deposit")return Xy.STORAGE_DEPOSIT;return Xy.CONTRACT_CALL}function u6(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function h6(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Xy;var GH=V(()=>{Xy={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 XH({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:C}=await import("@near-js/accounts");return new C(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}import{JsonRpcProvider as t6}from"@near-js/providers";import{AssetValue as _H,Chain as df,getRPCUrl as $2,SwapKitError as _y}from"@swapkit/helpers";import{match as x2,P as o2}from"ts-pattern";function m6(y){let T;async function H(){if(T)return T;return T=await x2(y).with({phrase:o2.string},async(D)=>{return await iT(D)}).with({signer:o2.any},({signer:D})=>D).otherwise(()=>{return}),T}async function f(){let D=await $2(df.Near);return new t6({url:D})}async function C(D){let{Account:x}=await import("@near-js/accounts"),I=await f(),p=await H(),E=D||await U();return new x(E,I,p)}async function U(){let D=await H();if(!D)throw new _y("toolbox_near_no_signer");return await D.getAddress()}async function q(D){return(await z({changeMethods:[],contractId:D.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:D.accountId})}async function G(D){let I=[await Z({args:{account_id:D.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await Z({args:{amount:D.assetValue.getBaseValue("string"),memo:D.memo||null,receiver_id:D.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return k({actions:I,receiverId:D.contractId})}async function X(D){if(!await H())throw new _y("toolbox_near_no_signer");let{assetValue:I,recipient:p,memo:E}=D,j=await U();if(!I.isGasAsset&&I.address){if(!await q({accountId:p,contractId:I.address}))return G({assetValue:I,contractId:I.address,memo:E,recipient:p})}let h=await _({...D,sender:j});return J(h)}async function _({recipient:D,assetValue:x,memo:I,attachedDeposit:p,sender:E,functionCall:j}){let h=await f();if(!E0(D))throw new _y("toolbox_near_invalid_address",{recipient:D});if(!E0(E))throw new _y("toolbox_near_invalid_address",{sender:E});if(j)return A({...j,sender:E});if(!x.isGasAsset){let ny=x.address;if(!ny)throw new _y("toolbox_near_missing_contract_address");return A({args:{amount:x.getBaseValue("string"),memo:I||null,receiver_id:D},attachedDeposit:p||"1",contractId:ny,gas:"250000000000000",methodName:"ft_transfer",sender:E})}let{publicKey:s,nonce:m}=await dT(h,E),Ay=x.getBaseValue("bigint"),{actionCreators:Hy,createTransaction:Sy}=await import("@near-js/transactions"),{baseDecode:Py}=await import("@near-js/utils"),Vy=[Hy.transfer(Ay)];if(I&&p)Vy.push(Hy.functionCall("memo",{memo:I},BigInt("250000000000000"),BigInt(p)));let Yy=await h.block({finality:"final"}),e=Py(Yy.header.hash);return Sy(E,s,D,m+1,Vy,e)}function L(D){let x=D.encode();return Buffer.from(x).toString("base64")}async function A({args:D,attachedDeposit:x,contractId:I,gas:p,methodName:E,sender:j}){let h=await f(),{publicKey:s,nonce:m}=await dT(h,j),{createTransaction:Ay,actionCreators:Hy}=await import("@near-js/transactions"),{baseDecode:Sy}=await import("@near-js/utils"),Py=await h.block({finality:"final"}),Vy=Sy(Py.header.hash),Yy=[Hy.functionCall(E,Buffer.from(JSON.stringify(D)),BigInt(p),BigInt(x))];return Ay(j,s,I,m+1,Yy,Vy)}async function Z(D){let{actionCreators:x}=await import("@near-js/transactions");return x.functionCall(D.methodName,Buffer.from(JSON.stringify(D.args)),BigInt(D.gas),BigInt(D.attachedDeposit))}async function Q(D){let x=await H();if(!x)throw new _y("toolbox_near_no_signer");await W(D);let[I,p]=await x.signTransaction(D);return p}async function W(D){let x=D.publicKey;if(x.toString?.().startsWith("ed25519:")||x.toString?.().startsWith("secp256k1:"))return;let{KeyType:I,PublicKey:p}=await import("@near-js/crypto"),E=x.data||x.ed25519Key?.data,j=x.secp256k1Key?.data;if(E){D.publicKey=new p({data:Uint8Array.from(E),keyType:I.ED25519});return}if(j)D.publicKey=new p({data:Uint8Array.from(j),keyType:I.SECP256K1})}function M(D){if(typeof D==="string")return D;if(Array.isArray(D))return D.map(M).find(Boolean);if(!(D&&typeof D==="object"))return;let x=D;return x.transaction?.hash||x.transaction_outcome?.id}function n(D){return D instanceof Error?D.message:String(D)}async function O(D){let I=await(await f()).sendTransaction(D),p=M(I);if(!p)throw new _y("toolbox_near_transfer_failed",{result:I});return p}async function J(D){let x=await H();if(!x)throw new _y("toolbox_near_no_signer");let I;try{I=await Q(D)}catch(p){let E;try{E=x.signAndSendTransaction?await x.signAndSendTransaction({actions:D.actions,receiverId:D.receiverId,signerId:D.signerId}):await x.signAndSendTransactions?.({transactions:[D]})}catch(h){throw new _y({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:n(p),signAndSendError:n(h)}},h)}let j=M(E);if(j)return j;throw p}return O(I)}async function R(D){let x=await H();if("assetValue"in D){let p=await N();try{let E=await $2(df.Near),j=await fetch(E,{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:h}}=await j.json(),{execution:s,send_sir:m}=h.transaction_costs.action_receipt_creation_config,{execution:Ay,send_sir:Hy}=h.transaction_costs.action_creation_config.transfer_cost,Sy=BigInt(Hy)+BigInt(Ay),Py=BigInt(m)+BigInt(s),Yy=(Sy+Py)*BigInt(p.toString());return _H.from({chain:df.Near,value:Yy})}catch(E){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",E);let j=BigInt("115123062500"),h=BigInt("108059500000"),m=(j+h)*BigInt(p.toString());return _H.from({chain:df.Near,value:m})}}let I=x?await C():void 0;return F(D,I)}async function N(){let D=await f();try{return await D.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function B(D,x,I){if(!await H())throw new _y("toolbox_near_no_signer");let E=await C(),{formatNearAmount:j}=await import("@near-js/utils"),{PublicKey:h}=await import("@near-js/crypto"),s=j(I)||"0";return(await E.createAccount(D,h.fromString(x),BigInt(s))).transaction.hash}async function Y(D){let x=await H();try{if(!x)throw new _y("toolbox_near_no_signer");let{actionCreators:I}=await import("@near-js/transactions"),{contractId:p,methodName:E,args:j,deposit:h}=D,s=await C(),m=await F({args:j||{},contractId:p,methodName:E}),Ay=I.functionCall(E,j||{},m.getBaseValue("bigint"),BigInt(h||"1"));return(await s.signAndSendTransaction({actions:[Ay],receiverId:p})).transaction_outcome.id}catch(I){throw new _y("toolbox_near_transfer_failed",{error:I})}}async function z(D){let x=await C();return XH({account:x,changeMethods:D.changeMethods,contractId:D.contractId,viewMethods:D.viewMethods})}async function k(D){if(!await H())throw new _y("toolbox_near_no_signer");if(D.actions.length===0)throw new _y("toolbox_near_empty_batch");return(await(await C()).signAndSendTransaction({actions:D.actions,receiverId:D.receiverId})).transaction.hash}async function F(D,x){let I=await x2(D).when(eC,()=>Xy.SIMPLE_TRANSFER).when(yH,(E)=>qH(E.methodName)).when(fH,(E)=>UH(E.actions)).when(TH,()=>Xy.ACCOUNT_CREATION).when(CH,()=>Xy.CONTRACT_DEPLOYMENT).when(HH,(E)=>{if(!x)throw new _y("toolbox_near_no_account");return E.customEstimator(x)}).otherwise(()=>{throw new _y("toolbox_near_invalid_gas_params")}),p=BigInt(I)*BigInt(1000000000000);return _H.from({chain:df.Near,value:p})}function w(D,x){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),F(D,x)}async function $(){let D=await f();try{return(await D.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function o(){let D=await H();return D?(await D.getPublicKey()).toString():""}return{broadcastTransaction:O,callFunction:Y,createAction:Z,createContract:z,createContractFunctionCall:A,createSubAccount:B,createTransaction:_,estimateGas:w,estimateGasLimit:F,estimateTransactionFee:R,executeBatchTransaction:k,getAddress:U,getBalance:Jy(df.Near),getGasPrice:$,getNearProvider:f,getPublicKey:o,getSignerFromPhrase:iT,getSignerFromPrivateKey:aC,serializeTransaction:L,signAndBroadcastTransaction:J,signTransaction:Q,transfer:X,validateAddress:E0}}var QH=V(()=>{uy();sC();GH()});var I2=V(()=>{QH()});var ZH={};Ty(ZH,{validateNearAddress:()=>E0,tgasToGas:()=>u6,isSimpleTransfer:()=>eC,isCustomEstimator:()=>HH,isContractDeployment:()=>CH,isContractCall:()=>yH,isBatchTransaction:()=>fH,isAccountCreation:()=>TH,getNearToolbox:()=>m6,getNearSignerFromPrivateKey:()=>aC,getNearSignerFromPhrase:()=>iT,getFullAccessPublicKey:()=>dT,getContractMethodGas:()=>qH,gasToTGas:()=>h6,estimateBatchGas:()=>UH,createNearContract:()=>XH,GAS_COSTS:()=>Xy});var WH=V(()=>{sC();GH();QH();I2()});var JH={};Ty(JH,{validateRadixAddress:()=>P2,getRadixToolbox:()=>y_});import{GatewayApiClient as c6}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as g6}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as S2,Chain as YH,SKConfig as i6,SwapKitError as d6}from"@swapkit/helpers";function P2(y){return y.startsWith("account_rdx1")&&y.length===66}function r6({networkApi:y}){return async function(H){let f=await a6({address:H,networkApi:y}),C=await s6({networkApi:y,resources:f});if(!C.some((q)=>q.isGasAsset))return[S2.from({chain:YH.Radix}),...C];return C}}async function a6({address:y,networkApi:T}){let H=!0,f,C=[],U=await e6(T);while(H){let q={address:y,at_ledger_state:{state_version:U},cursor:f,limit_per_page:100},G=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:q});if(C=C.concat(G.items),G.next_cursor)f=G.next_cursor;else H=!1}return C}async function s6({resources:y,networkApi:T}){let H=[],f=50,C=[];for(let U=0;U<y.length;U+=50)C.push(y.slice(U,U+50));for(let U of C){let q=U.map((_)=>_.resource_address),G=await T.state.getEntityDetailsVaultAggregated(q),X=new Map;for(let _ of G)if(_.details!==void 0){let L=_.metadata?.items.find((Z)=>Z.key==="symbol"),A=L?.value.typed.type==="String"?L.value.typed.value:"?";if(_.details.type==="FungibleResource")X.set(_.address,{decimals:_.details.divisibility,symbol:A})}for(let _ of U)if(_.aggregation_level==="Global"){let L=X.get(_.resource_address)||{decimals:0,symbol:"?"},A=S2.from({asset:L.symbol!==YH.Radix?`${YH.Radix}.${L.symbol}-${_.resource_address}`:"XRD.XRD",value:_.amount});H.push(A)}}return H}async function e6(y){return(await y.status.getCurrent()).ledger_state.state_version}function y_({dappConfig:y}={}){let T=y||i6.get("integrations").radix,H=g6({...T,networkId:T.network?.networkId||1}),f=c6.initialize(H.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:r6({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new d6("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:P2}}var LH=()=>{};import{SwapKitError as f_}from"@swapkit/helpers";function rT(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function v0(y){if(rT(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new f_({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function T_(y){if(!rT(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function rf(y){if(rT(y))return y.toUpperCase();if(y.length<=3)return y;return v0(y)}var aT=()=>{};import{RequestClient as C_,warnOnce as H_}from"@swapkit/helpers";async function U_(y,T){let H=rf(y),f=sT.find((C)=>rf(C.currency)===H&&C.issuer===T);if(f)return f;try{let C=await C_.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(C)return{currency:y,decimals:15,description:C.desc,domain:C.domain,icon:C.icon,issuer:T,name:C.name,verified:C.self_assessment?.is_regulated||C.self_assessment?.is_licensed}}catch(C){H_({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${C}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function q_(y){return sT.filter((T)=>T.issuer===y)}function G_(y,T){let H=rf(y);return sT.some((f)=>rf(f.currency)===H&&f.issuer===T)}var sT;var V2=V(()=>{aT();sT=[{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 zH={};Ty(zH,{validateRippleAddress:()=>f1,parseXrplTokenIdentifier:()=>K2,normalizeCurrency:()=>rf,isKnownToken:()=>G_,isHexCurrency:()=>rT,hexToCurrency:()=>T_,hashes:()=>J_,getXrplTokenInfo:()=>U_,getRippleToolbox:()=>Y_,getKnownTokensByIssuer:()=>q_,formatXrplTokenIdentifier:()=>u2,currencyToHex:()=>v0,XRPL_TOKEN_ERROR_CODES:()=>y1,XRPL_KNOWN_TOKENS:()=>sT});import{AssetValue as eT,Chain as oy,getChainConfig as E2,getRPCUrl as X_,SwapKitError as Wy}from"@swapkit/helpers";import{match as v2,P as p2}from"ts-pattern";import{Client as __,isValidAddress as l2,Wallet as Q_,xrpToDrops as Z_}from"xrpl";import{hashes as J_}from"xrpl";function K2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!l2(T[2]))return null;return{currency:T[1],issuer:T[2]}}function u2(y,T){return`${oy.Ripple}.${y}-${T}`}function W_(y){if(y.isGasAsset)return Z_(y.getValue("string"));let T=K2(y.toString());if(!T)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function j2(y){let T=Q_.fromMnemonic(y);return{getAddress:()=>Promise.resolve(T.address),signTransaction:(H)=>Promise.resolve(T.sign(H))}}function f1(y){return l2(y)}function Y_(y={}){let T=v2(y).with({phrase:p2.string},({phrase:J})=>j2(J)).with({signer:p2.any},({signer:J})=>J).otherwise(()=>{return}),H;async function f(){let J=await X_(oy.Ripple);if(!J)throw new Wy({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:oy.Ripple}});let R=new __(J);return await R.connect(),R}async function C(){if(H){let J=await H.catch(()=>null);if(J?.isConnected())return J}return H=f(),H}let U=()=>{if(!T)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return T.getAddress()},q=async(J)=>{let R=J||await U(),{baseDecimal:N}=E2(oy.Ripple),B=await C();try{let[Y,z]=await Promise.all([B.request({account:R,command:"account_info"}),B.request({account:R,command:"account_lines"})]),k=Y.result.account_data.Balance,F=[eT.from({chain:oy.Ripple,fromBaseDecimal:N,value:k})];for(let w of z.result.lines){let $=u2(w.currency,w.account);if(Number.parseFloat(w.balance)!==0)F.push(eT.from({asset:$,asyncTokenLookup:!1,value:w.balance}))}return F}catch(Y){if(Y.data?.error_code===b2.ACCOUNT_NOT_FOUND)return[eT.from({chain:oy.Ripple,value:0})];throw new Wy({errorKey:"toolbox_ripple_get_balance_error",info:{address:R,error:Y}})}},G=async()=>{let{baseDecimal:J}=E2(oy.Ripple),B=(await(await C()).request({command:"fee"})).result.drops.open_ledger_fee;return eT.from({chain:oy.Ripple,fromBaseDecimal:J,value:B})};async function X(J){let R=J||await U(),N=await C();try{return(await N.request({account:R,command:"account_lines"})).result.lines.map((Y)=>({account:Y.account,authorized:Y.authorized??!1,balance:Y.balance,currency:Y.currency,freeze:Y.freeze??!1,freezePeer:Y.freeze_peer??!1,limit:Y.limit,limitPeer:Y.limit_peer,noRipple:Y.no_ripple??!1,noRipplePeer:Y.no_ripple_peer??!1,peerAuthorized:Y.peer_authorized??!1,qualityIn:Y.quality_in??0,qualityOut:Y.quality_out??0}))}catch(B){if(B.data?.error_code===b2.ACCOUNT_NOT_FOUND)return[];throw new Wy({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:R,error:B}})}}async function _({address:J,currency:R,issuer:N}){let B=await X(J),Y=v0(R);return B.some((z)=>{return v0(z.currency)===Y&&z.account===N})}async function L({currency:J,issuer:R,limit:N,sender:B}){let Y=B||await U();if(!f1(R))throw new Wy({errorKey:"core_transaction_invalid_recipient_address",info:{address:R}});let z=Number.parseFloat(N);if(Number.isNaN(z)||z<0)throw new Wy({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:N}});let k=await C(),F={Account:Y,LimitAmount:{currency:J,issuer:R,value:N},TransactionType:"TrustSet"};return k.autofill(F)}async function A({assetValue:J,recipient:R,memo:N,sender:B,destinationTag:Y,extendBySeconds:z=150}){if(!f1(R))throw new Wy({errorKey:"core_transaction_invalid_recipient_address"});let k=B||await U();if(J.chain!==oy.Ripple)throw new Wy({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:J.toString()}});let F=W_(J),w={Account:k,Amount:F,Destination:R,TransactionType:"Payment",...Y!==void 0&&{DestinationTag:Y}};if(N)w.Memos=[{Memo:{MemoData:Buffer.from(N).toString("hex")}}];let o=await(await C()).autofill(w);if(o.LastLedgerSequence&&z>0)o.LastLedgerSequence+=Math.ceil(z/4);return o}function Z(J){if(!T)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});return T.signTransaction(J)}async function Q(J){let N=await(await C()).submitAndWait(J),{result:B}=N;if(B.validated)return B.hash;let Y=B.meta?.TransactionResult,z=v2(Y).with(y1.tecNO_LINE,()=>"No trust line exists for this token").with(y1.tecPATH_DRY,()=>"Payment path could not deliver funds").with(y1.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:oy.Ripple,...z?{reason:z}:{txResult:Y}}})}let W=async(J)=>{try{let R=await Z(J);return Q(R.tx_blob)}catch(R){if(R instanceof Wy)throw R;throw new Wy({errorKey:"toolbox_ripple_broadcast_error",info:{chain:oy.Ripple,error:R}})}};async function M(J){if(!T)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let R=await T.getAddress(),N=await A({...J,sender:R}),B=await Z(N);return Q(B.tx_blob)}async function n(J){if(!T)throw new Wy({errorKey:"toolbox_ripple_signer_not_found"});let R=await T.getAddress(),N=await L({...J,sender:R}),B=await Z(N);return Q(B.tx_blob)}function O(){let J=H;if(H=null,J)J.then((R)=>{if(R?.isConnected())return R.disconnect();return}).catch((R)=>{console.warn("XRPL Cleanup failed silently:",R)})}return{broadcastTransaction:Q,createSigner:j2,createTransaction:A,disconnect:O,estimateTransactionFee:G,getAddress:U,getBalance:q,getTrustLines:X,hasTrustLine:_,setTrustLine:L,setTrustLineAndBroadcast:n,signAndBroadcastTransaction:W,signTransaction:Z,transfer:M,validateAddress:f1}}var b2,y1;var AH=V(()=>{aT();aT();V2();b2={ACCOUNT_NOT_FOUND:19},y1={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 L_}from"@noble/hashes/sha2.js";import{bytesToHex as h2,hexToBytes as t2}from"@noble/hashes/utils.js";import{SwapKitError as af}from"@swapkit/helpers";function MH(y,T){let H=0n,f=0n,C=T;while(C<y.length&&C-T<10){let U=y[C++];if(U===void 0)break;if(H|=BigInt(U&127)<<f,f+=7n,(U&128)===0)return[H,C]}throw new af("toolbox_tron_transaction_creation_failed")}function p0(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function T1(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function B_(y){let T=new Map,H=0;while(H<y.length){let[f,C]=MH(y,H);H=C;let U=Number(f>>3n),q=Number(f&7n);if(q===C1){let[G,X]=MH(y,H);H=X,T1(T,U,{data:new Uint8Array(p0(G)),wireType:C1})}else if(q===H1){let[G,X]=MH(y,H);H=X;let _=Number(G);if(_<0||H+_>y.length)throw new af("toolbox_tron_transaction_creation_failed");let L=y.slice(H,H+_);H+=_,T1(T,U,{data:L,wireType:H1})}else if(q===m2){if(H+8>y.length)throw new af("toolbox_tron_transaction_creation_failed");let G=y.slice(H,H+8);H+=8,T1(T,U,{data:G,wireType:m2})}else if(q===c2){if(H+4>y.length)throw new af("toolbox_tron_transaction_creation_failed");let G=y.slice(H,H+4);H+=4,T1(T,U,{data:G,wireType:c2})}else throw new af("toolbox_tron_transaction_creation_failed")}return T}function N_(y){let T=[];for(let[U,q]of[...y.entries()].sort(([G],[X])=>G-X))for(let{wireType:G,data:X}of q){let _=BigInt(U<<3|G);if(T.push(new Uint8Array(p0(_))),G===H1)T.push(new Uint8Array(p0(BigInt(X.length))));T.push(X)}let H=T.reduce((U,q)=>U+q.length,0),f=new Uint8Array(H),C=0;for(let U of T)f.set(U,C),C+=U.length;return f}function g2(y,T){if(!y||y.length%2!==0)throw new af("toolbox_tron_transaction_creation_failed");let H=t2(y),f=B_(H);if(T.expiration!==void 0)f.set(z_,[{data:new Uint8Array(p0(BigInt(T.expiration))),wireType:C1}]);if(T.data!==void 0)f.set(A_,[{data:t2(T.data),wireType:H1}]);if(T.fee_limit!==void 0)f.set(M_,[{data:new Uint8Array(p0(BigInt(T.fee_limit))),wireType:C1}]);let C=N_(f),U=h2(C),q=h2(L_(C));return{raw_data_hex:U,txID:q}}var C1=0,m2=1,H1=2,c2=5,z_=8,A_=10,M_=18;var i2=()=>{};import{secp256k1 as d2}from"@noble/curves/secp256k1.js";import{sha256 as r2}from"@noble/hashes/sha2.js";import{keccak_256 as D_}from"@noble/hashes/sha3.js";import{bytesToHex as sf,hexToBytes as U1}from"@noble/hashes/utils.js";import{createBase58check as O_}from"@scure/base";import{SwapKitError as a2}from"@swapkit/helpers";function Iy(y){if(typeof y!=="string")return!1;try{let T=q1.decode(y);return T.length===21&&T[0]===s2}catch{return!1}}function e2(y){return sf(q1.decode(y))}function n_(y){return q1.decode(y).slice(1)}function y8(y){let T=d2.getPublicKey(U1(y),!1),H=D_(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=s2,f.set(H,1),q1.encode(f)}function f8({txID:y,privateKey:T}){let H=d2.sign(U1(y),U1(T),{format:"recovered",prehash:!1}),f=H[0]??0,C=sf(H.slice(1,33)),U=sf(H.slice(33,65)),q=(f+27).toString(16).padStart(2,"0");return C+U+q}function ef({txID:y,raw_data_hex:T}){let H=sf(r2(U1(T)));if(y!==H)throw new a2("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function k_(y){return`000000000000000000000000${sf(n_(y))}`}function w_(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=R_)throw new a2("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function y0(y){return y.map(({type:T,value:H})=>T==="address"?k_(H):w_(BigInt(H))).join("")}function T8(y){return sf(new TextEncoder().encode(y))}var q1,s2=65,R_;var BH=V(()=>{q1=O_(r2),R_=2n**256n});import{Chain as F_,getRPCUrlSync as $_,SwapKitError as By,warnOnce as G1}from"@swapkit/helpers";function H8(){try{return $_(F_.Tron)}catch{return C8}}function U8(){let y=new AbortController,T=setTimeout(()=>y.abort(),P_);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function Rf(y,T){let{signal:H,cleanup:f}=U8();try{let C=await fetch(`${H8()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!C.ok)throw new By("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function q8(y,T){let{signal:H,cleanup:f}=U8();try{let C=await fetch(`${T??H8()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!C.ok)throw new By("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function G8(y){if(!Iy(y))throw new By("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await q8(`/v1/accounts/${y}`,C8);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=e2(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((C)=>C.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof By)throw T;throw new By("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function X8({from:y,to:T,amount:H}){let C=await Rf("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!C.txID||!C.raw_data_hex||!C.raw_data)throw new By("toolbox_tron_transaction_creation_failed");let q=C.raw_data?.contract?.[0]?.parameter?.value;if(q?.to_address!==T||q?.owner_address!==y||q?.amount!==H)throw new By("toolbox_tron_transaction_creation_failed");return ef(C),C}async function _8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:C,callValue:U=0}){let q=await Rf("/wallet/triggersmartcontract",{call_value:U,contract_address:T,fee_limit:C,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!q.result.result||!q.transaction?.txID||!q.transaction?.raw_data_hex)throw new By("toolbox_tron_transaction_creation_failed");let X=q.transaction.raw_data?.contract?.[0]?.parameter?.value;if(X?.contract_address!==T||X?.owner_address!==y)throw new By("toolbox_tron_transaction_creation_failed");return ef(q.transaction),q.transaction}function Q8({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return Rf("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function V_({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return Rf("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}async function b0(y){try{let{result:T,txid:H}=await Rf("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new By("toolbox_tron_token_transfer_failed");return H}catch(T){throw new By("toolbox_tron_broadcast_failed",{error:T})}}async function j0(){let y={};try{let{chainParameter:T}=await q8("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){G1({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??x_,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??o_,energyFee:y.getEnergyFee??I_,memoFee:y.getMemoFee??S_}}async function NH(y){try{let T=await Rf("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return G1({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function l0(y){try{let T=await Rf("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function DH(y){try{let T=await V_({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new By("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){if(Number.isFinite(H)&&H>0)return H;throw new By("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){G1({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await Q8({...y,ownerAddress:y.sender});return T}catch(T){return G1({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${T instanceof Error?T.message:T}`}),65000}}async function Z8({assetAddress:y,owner:T,spender:H}){let f=y0([{type:"address",value:T},{type:"address",value:H}]),U=(await Q8({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!U)return 0n;try{return BigInt(`0x${U}`)}catch{return 0n}}var C8="https://api.trongrid.io",x_=1000,o_=1e6,I_=420,S_=1e6,P_=30000;var W8=V(()=>{BH()});import{bytesToHex as E_}from"@noble/hashes/utils.js";import{HDKey as v_}from"@scure/bip32";import{mnemonicToSeedSync as p_}from"@scure/bip39";import{AssetValue as ay,BaseDecimal as X1,Chain as Ry,derivationPathToString as M8,getRPCUrl as b_,NetworkDerivationPath as B8,SwapKitError as Qy,updateDerivationPath as N8,warnOnce as Y8}from"@swapkit/helpers";import{match as j_,P as OH}from"ts-pattern";function O8({phrase:y,derivationPath:T}){let H=v_.fromMasterSeed(p_(y)).derive(T);if(!H.privateKey)throw new Qy("toolbox_tron_no_signer");return E_(H.privateKey)}function R8({phrase:y,derivationPath:T,index:H}){let f=T||M8(N8(B8[Ry.Tron],{index:H||0}));return O8({derivationPath:f,phrase:y})}function K_({phrase:y,derivationPath:T}){let H=O8({derivationPath:T,phrase:y}),f=y8(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(C)=>{ef(C);let U=f8({privateKey:H,txID:C.txID});return Promise.resolve({...C,signature:[U]})}}}function A8({transaction:y,memo:T,expiration:H,feeLimit:f}){let C={},U={};if(f!==void 0&&y.raw_data)C.fee_limit=f,U.fee_limit=f;if(T){let X=T8(T);C.data=X,U.data=X}if(H){let X=y.raw_data.expiration+H*1000;C.expiration=X,U.expiration=X}if(Object.keys(C).length===0)return y;let{raw_data_hex:q,txID:G}=g2(y.raw_data_hex,C);return{...y,raw_data:{...y.raw_data,...U},raw_data_hex:q,txID:G}}function n8(y={}){let T="index"in y?y.index||0:0,H=M8("derivationPath"in y&&y.derivationPath?y.derivationPath:N8(B8[Ry.Tron],{index:T})),f,C=!1;function U(){if(C)return Promise.resolve(f);return f=j_(y).with({phrase:OH.string},({phrase:Y})=>K_({derivationPath:H,phrase:Y})).with({signer:OH.not(OH.nullish)},({signer:Y})=>Y).otherwise(()=>{return}),C=!0,Promise.resolve(f)}async function q(){let Y=await U();if(!Y)throw new Qy("toolbox_tron_no_signer");return Y.getAddress()}async function G(Y,z){let k=Y||L8,F=z??(await j0()).energyFee,w=k*F,$=Math.ceil(w*1.5);return Math.min(Math.max($,1e7),150000000)}async function X({contractAddress:Y,functionSelector:z,parameter:k,sender:F,memo:w,expiration:$,extraEnergy:o=0}){let D=await DH({contractAddress:Y,functionSelector:z,parameter:k,sender:F}),x=await G(D+o),I=await _8({contractAddress:Y,feeLimit:x,functionSelector:z,ownerAddress:F,parameter:k});return A8({expiration:$,feeLimit:x,memo:w,transaction:I})}async function _(Y){if(!Iy(Y))return[ay.from({chain:Ry.Tron})];try{let z=await G8(Y);if(!z)return[ay.from({chain:Ry.Tron})];let k=[ay.from({chain:Ry.Tron,fromBaseDecimal:6,value:String(z.balance)})],F=z.trc20?.find((w)=>(nH in w));if(F){let w=F[nH];k.push(ay.from({asset:`TRON.USDT-${nH}`,fromBaseDecimal:6,value:w}))}return k}catch(z){return Y8({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${z instanceof Error?z.message:z}`}),[ay.from({chain:Ry.Tron})]}}async function L({recipient:Y,assetValue:z,memo:k,expiration:F}){if(!Iy(Y))throw new Qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let w=await U();if(!w)throw new Qy("toolbox_tron_no_signer");try{let $=await q(),o=await n({assetValue:z,expiration:F,memo:k,recipient:Y,sender:$}),D=await w.signTransaction(o),x=await b0(D);if(!x)throw new Qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return x}catch($){throw new Qy("toolbox_tron_token_transfer_failed",{message:$ instanceof Error?$.message:String($)})}}function A({requiredBandwidth:Y,resources:z,feePerUnit:k}){let F=Math.max(0,z.free+z.total-z.used);return Y>F?(Y-F)*k:0}async function Z({memo:Y,recipient:z,senderAddress:k}){let[F,w,$]=await Promise.all([j0(),l0(z),NH(k)]),o=w?0:F.createAccountFee,D=A({feePerUnit:F.bandwidthFee,requiredBandwidth:J8,resources:$.bandwidth}),x=Y?F.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:X1.TRON,value:o+D+x})}async function Q({assetValue:Y,memo:z,recipient:k,senderAddress:F}){let w=Y.address;if(!w)throw new Qy("toolbox_tron_invalid_token_identifier",{identifier:Y.toString()});let[$,o,D,x]=await Promise.all([j0(),l0(k),NH(F),DH({contractAddress:w,functionSelector:"transfer(address,uint256)",parameter:y0([{type:"address",value:k},{type:"uint256",value:Y.getBaseValue("string")}]),sender:F})]),p=x+(o?0:RH),E=A({feePerUnit:$.bandwidthFee,requiredBandwidth:z8,resources:D.bandwidth}),j=Math.max(0,D.energy.total-D.energy.used),h=p>j?(p-j)*$.energyFee:0,s=z?$.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:X1.TRON,value:E+h+s})}async function W({assetValue:Y,memo:z,recipient:k}){let[F,w]=await Promise.all([j0(),l0(k)]);if(Y.isGasAsset){let x=w?0:F.createAccountFee,I=z?F.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:X1.TRON,value:x+J8*F.bandwidthFee+I})}let o=await G(L8+(w?0:RH),F.energyFee),D=z?F.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:X1.TRON,value:o+z8*F.bandwidthFee+D})}async function M({assetValue:Y,memo:z,recipient:k,sender:F}){let w=await U();try{let $=F?F:w?await q():void 0;if(!$)return W({assetValue:Y,memo:z,recipient:k});return Y.isGasAsset?Z({memo:z,recipient:k,senderAddress:$}):Q({assetValue:Y,memo:z,recipient:k,senderAddress:$})}catch($){throw Y8({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${$ instanceof Error?$.message:$}`}),new Qy("toolbox_fee_estimation_failed",{chain:Ry.Tron,error:$})}}async function n({recipient:Y,assetValue:z,memo:k,sender:F,expiration:w}){if(!Iy(Y)||!Iy(F))throw new Qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(z.isGasAsset){let D=await X8({amount:z.getBaseValue("number"),from:F,to:Y});return A8({expiration:w,memo:k,transaction:D})}let $=z.address;if(!$)throw new Qy("toolbox_tron_invalid_token_identifier",{identifier:z.toString()});let o=await l0(Y);return X({contractAddress:$,expiration:w,extraEnergy:o?0:RH,functionSelector:"transfer(address,uint256)",memo:k,parameter:y0([{type:"address",value:Y},{type:"uint256",value:z.getBaseValue("string")}]),sender:F})}async function O(Y){ef(Y);let z=await U();if(!z)throw new Qy("toolbox_tron_no_signer");return z.signTransaction(Y)}async function J(Y){let z=await O(Y);return b0(z)}function R({assetAddress:Y,spenderAddress:z,from:k}){return Z8({assetAddress:Y,owner:k,spender:z})}async function N({assetAddress:Y,spenderAddress:z,from:k,amount:F}){let w=await R({assetAddress:Y,from:k,spenderAddress:z});if(!F)return w>0n;return w>=BigInt(F)}async function B({assetAddress:Y,spenderAddress:z,amount:k,from:F}){if(!Iy(Y)||!Iy(z))throw new Qy("toolbox_tron_approve_failed");let w=await U();if(!w)throw new Qy("toolbox_tron_no_signer");let $=F||await q(),o=k!==void 0?BigInt(k).toString():l_;try{let D=await X({contractAddress:Y,functionSelector:"approve(address,uint256)",parameter:y0([{type:"address",value:z},{type:"uint256",value:o}]),sender:$}),x=await w.signTransaction(D),I=await b0(x);if(!I)throw new Qy("toolbox_tron_approve_failed");return I}catch(D){if(D instanceof Qy)throw D;throw new Qy("toolbox_tron_approve_failed",{error:D})}}return{approve:B,broadcastTransaction:b0,createTransaction:n,estimateTransactionFee:M,getAddress:q,getApprovedAmount:R,getBalance:_,getRpcUrl:()=>b_(Ry.Tron),isApproved:N,signAndBroadcastTransaction:J,signTransaction:O,transfer:L,validateAddress:Iy}}var D8,J8=268,L8=65000,RH=25000,z8=345,nH="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",l_="115792089237316195423570985008687907853269984665640564039457584007913129639935";var k8=V(()=>{i2();W8();BH();D8=Iy});var kH={};Ty(kH,{validateTronAddress:()=>D8,getTronToolbox:()=>n8,getTronPrivateKeyFromMnemonic:()=>R8});var wH=V(()=>{k8()});import{AssetValue as K0,Chain as ly,derivationPathToString as u_,getChainConfig as h_,getRPCUrl as w8,NetworkDerivationPath as t_,SKConfig as m_,SwapKitError as f0}from"@swapkit/helpers";import{match as c_,P as g_}from"ts-pattern";function _1(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return i_.test(y)}function d_(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function r_(y){return d_(y)===504}function a_(y){return y.hash?.().toString("hex")}function s_(y){return[...new Set([y,...m_.get("rpcUrls")[ly.Stellar]])].filter(Boolean)}async function e_(y){if(!_1(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}function F8(y={}){let T,H=y.derivationPath||t_[ly.Stellar],f=u_(H.slice(0,3));async function C({phrase:O,path:J}){let{HDKey:R}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:N}=await import("@scure/bip39"),{Keypair:B}=await import("@stellar/stellar-sdk"),Y=N(O),k=R.fromMasterSeed(Y).derive(J,!0);return B.fromRawEd25519Seed(Buffer.from(k.privateKey))}async function U(){if(T)return T;let O=c_(y).with({phrase:g_.string},({phrase:J})=>J).otherwise(()=>{return});if(!O)throw new f0("toolbox_stellar_no_signer");return T=await C({path:f,phrase:O}),T}async function q(O){let{Horizon:J}=await import("@stellar/stellar-sdk"),R=O||await w8(ly.Stellar);return new J.Server(R)}async function G(O,J){for(let R of J)try{return(await(await q(R)).transactions().transaction(O).call()).hash||O}catch{}return}async function X(O,J){let R=await w8(ly.Stellar),N=s_(R),B=a_(O),Y;for(let z of N)try{let k=await q(z),{hash:F}=await k.submitTransaction(O);return F}catch(k){if(Y=k,!r_(k))break;let F=B?await G(B,N):void 0;if(F)return F}throw new f0(J,Y)}async function _(){try{return(await U()).publicKey()}catch{return""}}async function L(O){let J=O||await _();if(!J)throw new f0("toolbox_stellar_account_not_found");try{return(await(await q()).loadAccount(J)).balances.map((B)=>{if(B.asset_type==="native")return K0.from({chain:ly.Stellar,value:B.balance});let Y="asset_code"in B?B.asset_code:"",z="asset_issuer"in B?B.asset_issuer:"";return K0.from({asset:`${ly.Stellar}.${Y}-${z}`,asyncTokenLookup:!1,value:B.balance})})}catch{return[K0.from({chain:ly.Stellar,value:0})]}}async function A({recipient:O,assetValue:J,memo:R,sender:N}){if(R){if(new TextEncoder().encode(R).length>28)throw new f0("helpers_invalid_memo_type")}if(!await e_(O))throw new f0("core_transaction_invalid_recipient_address");let Y=N||await _();if(!Y)throw new f0("toolbox_stellar_no_signer");let{Asset:z,Memo:k,Networks:F,Operation:w,TransactionBuilder:$}=await import("@stellar/stellar-sdk"),o=await q(),D=await o.fetchBaseFee(),x=await o.loadAccount(Y),I=new $(x,{fee:String(D),networkPassphrase:F.PUBLIC});if(J.isGasAsset)try{await o.loadAccount(O),I.addOperation(w.payment({amount:J.getValue("string"),asset:z.native(),destination:O}))}catch{I.addOperation(w.createAccount({destination:O,startingBalance:J.getValue("string")}))}else I.addOperation(w.payment({amount:J.getValue("string"),asset:new z(J.symbol,J.address),destination:O}));if(R)I.addMemo(k.text(R));return I.setTimeout(30).build()}async function Z(O){let{TransactionBuilder:J,Networks:R}=await import("@stellar/stellar-sdk"),N=await U(),B=J.fromXDR(O.toXDR(),R.PUBLIC);return B.sign(N),B}function Q(O){return X(O,"toolbox_stellar_broadcast_error")}async function W({recipient:O,assetValue:J,memo:R}){let N=await U(),B=N.publicKey(),Y=await A({assetValue:J,memo:R,recipient:O,sender:B});return Y.sign(N),X(Y,"toolbox_stellar_transaction_failed")}async function M(O){let J=await Z(O);return Q(J)}async function n(){let{baseDecimal:O}=h_(ly.Stellar);try{let N=(await(await q()).feeStats()).fee_charged.p50;return K0.from({chain:ly.Stellar,fromBaseDecimal:O,value:N})}catch{return K0.from({chain:ly.Stellar,fromBaseDecimal:O,value:"100"})}}return{broadcastTransaction:Q,createTransaction:A,estimateTransactionFee:n,getAddress:_,getBalance:L,signAndBroadcastTransaction:M,signTransaction:Z,transfer:W,validateAddress:_1}}var i_;var $8=V(()=>{i_=/^G[A-Z2-7]{55}$/});var Q1={};Ty(Q1,{validateStellarAddress:()=>_1,getStellarToolbox:()=>F8});var Z1=V(()=>{$8()});import{AssetValue as y9,Chain as l,CosmosChains as FH,EVMChains as $H,FeeOption as f9,SwapKitError as T9,UTXOChains as o8}from"@swapkit/helpers";async function OJ(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:T}=await Promise.resolve().then(() => (h0(),u0)),{validateEVMAddress:H}=await Promise.resolve().then(() => (b1(),Z5)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (t1(),h1)),{getCosmosAddressValidator:C}=await Promise.resolve().then(() => (DT(),NT)),{validateHyperCoreAddress:U}=await Promise.resolve().then(() => (NC(),BC)),{validateSolanaAddress:q}=await Promise.resolve().then(() => (kC(),nC)),{validateStarknetAddress:G}=await Promise.resolve().then(() => (oT(),xT)),{validateSuiAddress:X}=await Promise.resolve().then(() => (ST(),IT)),{validateTonAddress:_}=await Promise.resolve().then(() => (ET(),VT)),{getUTXOAddressValidator:L}=await Promise.resolve().then(() => (rC(),dC)),{validateNearAddress:A}=await Promise.resolve().then(() => (WH(),ZH)),{validateRadixAddress:Z}=await Promise.resolve().then(() => (LH(),JH)),{validateRippleAddress:Q}=await Promise.resolve().then(() => (AH(),zH)),{validateTronAddress:W}=await Promise.resolve().then(() => (wH(),kH)),{validateStellarAddress:M}=await Promise.resolve().then(() => (Z1(),Q1));return function({address:O,chain:J}){return y(J).with(...$H,()=>H(O)).with(...o8,(N)=>{return L(N)(O)}).with(...FH,(N)=>{return C(N)(O)}).with(l.Aptos,()=>T(O)).with(l.Radix,()=>Z(O)).with(l.Hype,()=>U(O)).with(l.Near,()=>A(O)).with(l.Ripple,()=>Q(O)).with(l.Solana,()=>q(O)).with(l.Stellar,()=>M(O)).with(l.Starknet,()=>G(O)).with(l.Sui,()=>X(O)).with(l.Ton,()=>_(O)).with(l.Tron,()=>W(O)).with(l.Cardano,()=>f(O)).otherwise(()=>!1)}}function RJ(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...$H,async(C)=>{let U=await x8(C),q=await U.createTransaction(H),G="feeOptionKey"in H?H.feeOptionKey:f9.Fast;return U.estimateTransactionFee({...q,feeOption:G})}).with(l.Bitcoin,l.BitcoinCash,l.Dogecoin,l.Dash,l.Litecoin,l.Solana,l.Ripple,l.Tron,l.Near,l.Cardano,l.Hype,async(C)=>{return(await x8(C)).estimateTransactionFee(H)}).with(l.Aptos,async()=>{let{getAptosToolbox:C}=await Promise.resolve().then(() => (h0(),u0));return C().estimateTransactionFee(H)}).with(l.Starknet,async()=>{let{getStarknetToolbox:C}=await Promise.resolve().then(() => (oT(),xT));return(await C()).estimateTransactionFee(H)}).with(l.Stellar,async()=>{let{getStellarToolbox:C}=await Promise.resolve().then(() => (Z1(),Q1));return C().estimateTransactionFee()}).with(l.Sui,async()=>{let{getSuiToolbox:C}=await Promise.resolve().then(() => (ST(),IT));return C().estimateTransactionFee(H)}).with(l.Ton,async()=>{let{getTONToolbox:C}=await Promise.resolve().then(() => (ET(),VT));return C().estimateTransactionFee(H)}).with(...FH,async()=>{let{estimateTransactionFee:C}=await Promise.resolve().then(() => (DT(),NT));return C(H)}).otherwise(async()=>y9.from({chain:y}))}}async function x8(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...$H,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (p1(),X5));return await f(y,T)}).with(...o8,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (rC(),dC));return f(y,T)}).with(...FH,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (DT(),NT));return f(y,T)}).with(l.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (h0(),u0));return f(T)}).with(l.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (NC(),BC));return f(T)}).with(l.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (LH(),JH));return f(T)}).with(l.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (AH(),zH));return f(T)}).with(l.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => (kC(),nC));return f(T)}).with(l.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (Z1(),Q1));return f(T)}).with(l.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (oT(),xT));return f(T)}).with(l.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (ST(),IT));return f(T)}).with(l.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (wH(),kH));return f(T)}).with(l.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (WH(),ZH));return f(T)}).with(l.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (t1(),h1));return f(T)}).with(l.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (ET(),VT));return f(T)}).otherwise(()=>{throw new T9("toolbox_not_supported",{chain:y})})}export{x8 as getToolbox,RJ as getFeeEstimator,OJ as getAddressValidator};
1
+ var lU=Object.defineProperty;var jU=(y)=>y;function KU(y,T){this[y]=jU.bind(null,T)}var Ty=(y,T)=>{for(var H in T)lU(y,H,{get:T[H],enumerable:!0,configurable:!0,set:KU.bind(T,H)})};var E=(y,T)=>()=>(y&&(T=y(y=0)),T);var S=((y)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(y,{get:(T,H)=>(typeof require<"u"?require:T)[H]}):y)(function(y){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+y+'" is not supported')});import{AssetValue as CT,Chain as Ky,derivationPathToString as uU,getChainConfig as J1,getRPCUrlSync as EH,NetworkDerivationPath as hU,SwapKitError as oy}from"@swapkit/helpers";import{match as bH,P as z1}from"ts-pattern";function Rf(y){if(!y||typeof y!=="string"||!y.startsWith("0x"))return!1;let T=y.slice(2);if(T.length===0||T.length>64)return!1;return mU.test(T)}function VH({derivationPath:y,provider:T,...H}={}){let f,C=uU(y||hU[Ky.Aptos],{allHardened:!0});async function o(){if(f)return f;return f=await bH(H).with({phrase:z1.string},async({phrase:J})=>{let{Ed25519Account:B}=await import("@aptos-labs/ts-sdk");return B.fromDerivationPath({mnemonic:J,path:C})}).with({signer:z1.any},({signer:J})=>J).otherwise(()=>{return}),f}async function U(){let{Aptos:J,AptosConfig:B,Network:D}=await import("@aptos-labs/ts-sdk"),W=new B({clientConfig:{http2:!1},fullnode:T||EH(Ky.Aptos),network:D.MAINNET});return new J(W)}async function q(){return(await o())?.accountAddress.toString()||""}async function X(J){let B=J||await q();if(!B)throw new oy("toolbox_aptos_address_required");let{baseDecimal:D,chain:W}=J1(Ky.Aptos);try{let R=await U(),O=await R.getAccountAPTAmount({accountAddress:B}),Y=[CT.from({chain:W,fromBaseDecimal:D,value:O.toString()})],_=await R.getCurrentFungibleAssetBalances({options:{where:{owner_address:{_eq:B}}}});for(let L of _){if(L.asset_type===Gf.COIN_TYPE||Number(L.amount)<=0)continue;let x=L.asset_type;if(x){let n=("metadata"in L&&typeof L.metadata==="object"&&L.metadata!==null?L.metadata:void 0)?.decimals??D;Y.push(CT.from({asset:`${Ky.Aptos}.APT-${x}`,fromBaseDecimal:n,value:String(L.amount)}))}}return Y}catch{return[CT.from({chain:W})]}}async function G(J){if(!J){let{baseDecimal:_}=J1(Ky.Aptos),L=T||EH(Ky.Aptos),x=await fetch(`${L}/estimate_gas_price`),{gas_estimate:w}=await x.json();return CT.from({chain:Ky.Aptos,fromBaseDecimal:_,value:String(w)})}let B=await o();if(!B)throw new oy("toolbox_aptos_no_signer");let D=await Z(J),W=await U(),[R]=await W.transaction.simulate.simple({signerPublicKey:B.publicKey,transaction:D});if(!R)throw new oy("toolbox_aptos_transaction_creation_error");let O=BigInt(R.gas_used)*BigInt(R.gas_unit_price),{baseDecimal:Y}=J1(Ky.Aptos);return CT.from({chain:Ky.Aptos,fromBaseDecimal:Y,value:O.toString()})}async function Z({recipient:J,assetValue:B,maxGasAmount:D,sender:W}){if(!Rf(J))throw new oy("core_transaction_invalid_recipient_address");let R=W||await q();if(!R)throw new oy("toolbox_aptos_no_sender");let{AccountAddress:O}=await import("@aptos-labs/ts-sdk"),Y=await U(),_=O.from(R);try{let L=B.isGasAsset?Gf.TRANSFER:Gf.FUNGIBLE_STORE_TRANSFER,x=bH({address:B?.address,isGasAsset:B.isGasAsset}).with({isGasAsset:!0},()=>[O.from(J),B.getBaseValue("bigint")]).with({address:z1.string},({address:w})=>[O.from(w),O.from(J),B.getBaseValue("bigint")]).otherwise(()=>null);if(!x)throw new oy("toolbox_aptos_missing_asset_type");return Y.transaction.build.simple({data:{function:L,functionArguments:x,typeArguments:B.isGasAsset?[]:[Gf.FUNGIBLE_ASSET_METADATA]},options:D?{maxGasAmount:D}:void 0,sender:_})}catch(L){if(L instanceof oy)throw L;throw new oy("toolbox_aptos_transaction_creation_error",L)}}async function A(J){let B=await o();if(!B)throw new oy("toolbox_aptos_no_signer");return(await U()).transaction.sign({signer:B,transaction:J})}async function M({assetValue:J,maxGasAmount:B,recipient:D}){let W=await o();if(!W)throw new oy("toolbox_aptos_no_signer");if(!Rf(D))throw new oy("core_transaction_invalid_recipient_address");try{let R=W.accountAddress.toString(),O=await Z({assetValue:J,maxGasAmount:B,recipient:D,sender:R});return(await(await U()).signAndSubmitTransaction({signer:W,transaction:O})).hash}catch(R){if(R instanceof oy)throw R;throw new oy("toolbox_aptos_transaction_creation_error",R)}}async function Q({senderAuthenticator:J,transaction:B}){try{return(await(await U()).transaction.submit.simple({senderAuthenticator:J,transaction:B})).hash}catch(D){throw new oy("toolbox_aptos_broadcast_error",D)}}async function N(J){let B=await A(J);return Q({senderAuthenticator:B,transaction:J})}return{broadcastTransaction:Q,createTransaction:Z,estimateTransactionFee:G,getAddress:q,getBalance:X,signAndBroadcastTransaction:N,signTransaction:A,transfer:M,validateAddress:Rf}}function vH({provider:y}){return async function({assetValue:H,recipient:f}){if(!Rf(f))throw new oy("core_transaction_invalid_recipient_address");let{AccountAddress:C}=await import("@aptos-labs/ts-sdk");if(H.isGasAsset)return(await y.signAndSubmitTransaction({arguments:[C.from(f).toString(),H.getBaseValue("string")],function:Gf.TRANSFER,type:"entry_function_payload",type_arguments:[]})).hash;let o=H.address;if(!o)throw new oy("toolbox_aptos_missing_asset_type");return(await y.signAndSubmitTransaction({arguments:[o,C.from(f).toString(),H.getBaseValue("string")],function:Gf.FUNGIBLE_STORE_TRANSFER,type:"entry_function_payload",type_arguments:[Gf.FUNGIBLE_ASSET_METADATA]})).hash}}var Gf,mU;var pH=E(()=>{Gf={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"},mU=/^[0-9a-fA-F]+$/});var uT={};Ty(uT,{validateAptosAddress:()=>Rf,getAptosToolbox:()=>VH,createAptosExtensionTransfer:()=>vH});var hT=E(()=>{pH()});import{AssetValue as lH,getChainConfig as tU}from"@swapkit/helpers";import{SwapKitApi as cU}from"@swapkit/helpers/api";function jH(){function y(){let T=Date.now(),H=N1||T;return N1=H,T>N1?T:H+1}return gU+y().toString(36)}function Wy(y){return async function(H,f=!0){let C=await cU.getChainBalance({address:H,chain:y,scamFilter:f}),{baseDecimal:o}=tU(y),U=C.map(({identifier:X,value:G,decimal:Z})=>{return new lH({decimal:Z||o,identifier:X,value:G})});if(!U.some((X)=>X.isGasAsset))return[lH.from({chain:y}),...U];return U}}var gU,N1=0;var uy=E(()=>{gU=typeof process<"u"&&process.pid?process.pid.toString(36):""});function HT(y){return{getBalance:Wy(y)}}function iU(y){return y}var mT=E(()=>{uy()});import{Chain as d,getChainConfig as R1,getRPCUrl as dU,SwapKitError as tT}from"@swapkit/helpers";import{getAddress as uH,Interface as rU,JsonRpcProvider as aU}from"ethers";import{match as hH}from"ts-pattern";function mH(y){return new aU(y)}async function x1(y,T){return mH(T||await dU(y))}function oT(y){return y>0n?`0x${y.toString(16)}`:"0x0"}function n1(y){let{explorerUrl:T,chainIdHex:H,rpcUrls:f}=R1(y);return function(){return y!==d.Ethereum?{...sU({chain:y}),blockExplorerUrls:[T],chainId:H,rpcUrls:f}:void 0}}function w1(y){return![d.Adi,d.Arbitrum,d.BinanceSmartChain].includes(y)}function sU({chain:y}){let{name:T,nativeCurrency:H,baseDecimal:f}=R1(y);return hH(y).with(d.Arbitrum,()=>({chainName:"Arbitrum One",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Ethereum}})).with(d.Aurora,()=>({chainName:"Aurora Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Ethereum}})).with(d.Avalanche,()=>({chainName:"Avalanche Network",nativeCurrency:{decimals:f,name:"Avalanche",symbol:y}})).with(d.Base,()=>({chainName:"Base Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Ethereum}})).with(d.Berachain,()=>({chainName:"Berachain",nativeCurrency:{decimals:f,name:"Berachain",symbol:"BERA"}})).with(d.XLayer,()=>({chainName:"X Layer",nativeCurrency:{decimals:f,name:"OKB",symbol:"OKB"}})).with(d.BinanceSmartChain,()=>({chainName:"BNB Smart Chain Mainnet",nativeCurrency:{decimals:f,name:"Binance Coin",symbol:"BNB"}})).with(d.Gnosis,()=>({chainName:"Gnosis",nativeCurrency:{decimals:f,name:"xDAI",symbol:"XDAI"}})).with(d.Optimism,()=>({chainName:"OP Mainnet",nativeCurrency:{decimals:f,name:"Ethereum",symbol:d.Ethereum}})).with(d.Polygon,()=>({chainName:"Polygon Mainnet",nativeCurrency:{decimals:f,name:"Polygon",symbol:d.Polygon}})).otherwise(()=>({chainName:T,nativeCurrency:{decimals:f,name:H,symbol:H}}))}async function k1(y,T){if(!("authorize"in y))throw Error("Signer does not support EIP-7702 authorization. Requires ethers.js v6.14+");let H={...T,nonce:T.nonce!==void 0?BigInt(T.nonce):void 0};return await y.authorize(H)}function tH(y,T){let H=T!==void 0?`index ${T}: `:"",f=(C,o)=>{throw new tT({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:C,message:`${H}${o}`}})};hH(y).when(({chainId:C})=>typeof C!=="bigint",()=>f("chainId","chainId must be a bigint")).when(({address:C})=>!eU(C),()=>f("address","address must be a valid checksummed address")).when(({nonce:C})=>typeof C!=="bigint"||C<0n,()=>f("nonce","nonce must be a non-negative bigint")).when(({signature:C})=>!C,()=>f("signature","signature is required")).when(({signature:C})=>typeof C?.yParity!=="number"||![0,1].includes(C.yParity),()=>f("signature.yParity","yParity must be 0 or 1")).when(({signature:C})=>!KH(C?.r),()=>f("signature.r","r must be a 32-byte hex string")).when(({signature:C})=>!KH(C?.s),()=>f("signature.s","s must be a 32-byte hex string")).otherwise(()=>{})}function cH(y){return[{key:"name",type:"string"},{key:"version",type:"string"},{key:"chainId",type:"uint256"},{key:"verifyingContract",type:"address"},{key:"salt",type:"bytes32"}].filter(({key:T})=>y[T]!=null).map(({key:T,type:H})=>({name:T,type:H}))}function B1(y){return y.charAt(0).toUpperCase()+y.slice(1)}function O1(y,T){if(y.isTuple()&&y.components){let H=B1(y.name);return T[H]=y.components.map((f)=>({name:f.name,type:O1(f,T)})),H}if(y.isArray()){let H=y.arrayChildren;if(H?.isTuple()&&H.components){let f=B1(y.name.replace(/s$/,""));return T[f]=H.components.map((C)=>({name:C.name,type:O1(C,T)})),`${f}[]`}return`${H?.type??"bytes"}[]`}return y.type}function D1(y,T){if(typeof y==="bigint")return y;if(T?.isTuple()&&typeof y?.toObject==="function"){let H=y.toObject(),f={};for(let[C,o]of(T.components??[]).entries())f[o.name]=D1(H[o.name]??y[C],o);return f}if(Array.isArray(y)){let H=T?.arrayChildren;return y.map((f)=>D1(f,H??void 0))}return y}function y8({chain:y,abi:T,data:H,to:f}){let o=new rU(T).parseTransaction({data:H});if(!o)throw new tT({errorKey:"toolbox_evm_invalid_params",info:{error:"Could not decode calldata"}});let U={},q=B1(o.name);U[q]=o.fragment.inputs.map((M)=>({name:M.name,type:O1(M,U)}));let X={};for(let[M,Q]of o.fragment.inputs.entries())X[Q.name]=D1(o.args[M],Q);let{chainId:G}=R1(y),Z={chainId:Number(G),verifyingContract:uH(f)},A=cH(Z);return{domain:Z,message:X,primaryType:q,types:{EIP712Domain:A,...U}}}function F1(y,T){if(!Array.isArray(y)||y.length===0)throw new tT({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{message:"EIP-7702 transactions require at least one authorization"}});for(let[H,f]of y.entries())if(tH(f,H),T!==void 0&&f.chainId!==T)throw new tT({errorKey:"toolbox_evm_invalid_eip7702_authorization",info:{field:"chainId",message:`index ${H}: authorization chainId (${f.chainId}) does not match transaction chainId (${T})`}})}var KH=(y)=>typeof y==="string"&&/^0x[a-fA-F0-9]{64}$/.test(y),eU=(y)=>{try{return typeof y==="string"&&!!uH(y)}catch{return!1}};var UT=()=>{};var gH;var iH=E(()=>{gH=[{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 f8,applyFeeMultiplierToBigInt as Ly,Chain as ny,EVMChains as T8,FeeOption as u,isGasAsset as C8,SwapKitError as c,SwapKitNumber as cT}from"@swapkit/helpers";import{erc20ABI as qT}from"@swapkit/helpers/contracts";import{BrowserProvider as H8,Contract as dH,getAddress as gT,Interface as rH}from"ethers";import{match as aH}from"ts-pattern";function xf({chain:y=ny.Ethereum,provider:T,signer:H,isEIP1559Compatible:f=!0}){return{approve:G8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),approvedAmount:y5({chain:y,provider:T}),broadcastTransaction:T.broadcastTransaction,call:E1({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),createApprovalTx:Z8({chain:y,provider:T,signer:H}),createContract:I1({chain:y,provider:T}),createContractTxObject:Qf({chain:y,provider:T}),createTransaction:$1({chain:y,provider:T,signer:H}),createTransferTx:$1({chain:y,provider:T,signer:H}),EIP1193SendTransaction:wf(T),estimateCall:f5({provider:T,signer:H}),estimateGasLimit:_8({chain:y,provider:T,signer:H}),estimateGasPrices:_f({chain:y,isEIP1559Compatible:f,provider:T}),estimateTransactionFee:W8({chain:y,isEIP1559Compatible:f,provider:T}),getAddress:()=>{return H?H.getAddress():void 0},getBalance:HT(y).getBalance,getNetworkParams:n1(y),isApproved:X8({chain:y,provider:T}),sendTransaction:T5({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),signAuthorization:M8({signer:H}),signMessage:H?(C)=>H.signMessage(C):void 0,signTypedData:H?({domain:C,types:o,value:U})=>H.signTypedData(C,o,U):void 0,transfer:Q8({chain:y,isEIP1559Compatible:f,provider:T,signer:H}),validateAddress:GT}}function GT(y){try{return gT(y),!0}catch{return!1}}function nf(y){return y instanceof H8}function QT(y,T,H){return new dH(y,rH.from(T),H)}function I1({provider:y}){return function(H,f){return new dH(H,rH.from(f),y)}}function S1({abi:y,funcName:T}){let H=y.find((f)=>f.name===T);if(!H)throw new c("toolbox_evm_no_abi_fragment",{funcName:T});return H.stateMutability&&o8.includes(H.stateMutability)}function sH(y){return gT(y)}function wf(y){return function({value:H,...f}){if(!nf(y))throw new c("toolbox_evm_provider_not_eip1193_compatible");let{gasLimit:C,gasPrice:o,maxFeePerGas:U,maxPriorityFeePerGas:q,...X}=f;return y.send("eth_sendTransaction",[{...X,value:oT(BigInt(H||0))}])}}function eH(y,T){let H=kf(y,T);if(H)return gT(H.toLowerCase());throw new c("toolbox_evm_invalid_gas_asset_address")}function kf({chain:y,symbol:T,ticker:H},f){try{let C=y===ny.BinanceSmartChain&&T==="BNB"&&H==="BNB",o=y===ny.Hyperevm&&T==="HYPE"&&H==="HYPE",U=y===f&&T===f&&H===f,q=q8.includes(y)&&T==="ETH"&&H==="ETH";if(U||C||o||q)return P1[f];return gT(T.slice(H.length+1).replace(/^0X/,""))}catch{return null}}function Qf({provider:y}){return async({contractAddress:T,abi:H,funcName:f,funcParams:C=[],txOverrides:o})=>QT(T,H,y).getFunction(f).populateTransaction(...C.concat(o).filter((U)=>typeof U<"u"))}function _f({chain:y,provider:T,isEIP1559Compatible:H=!0}){return aH(y).with(ny.Gnosis,()=>{return async function(){try{let{gasPrice:C,maxPriorityFeePerGas:o}=await T.getFeeData();if(!C||o===null)throw new c("toolbox_evm_no_fee_data");return{[u.Average]:{maxFeePerGas:Ly(C,u.Average),maxPriorityFeePerGas:Ly(o,u.Average)},[u.Fast]:{maxFeePerGas:Ly(C,u.Fast),maxPriorityFeePerGas:Ly(o,u.Fast)},[u.Fastest]:{maxFeePerGas:Ly(C,u.Fastest),maxPriorityFeePerGas:Ly(o,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).with(ny.Arbitrum,()=>{return async function(){try{let{gasPrice:C}=await T.getFeeData();if(!C)throw new c("toolbox_evm_no_fee_data");let o=C*12n/10n;return{[u.Average]:{gasPrice:o},[u.Fast]:{gasPrice:Ly(o,u.Fast)},[u.Fastest]:{gasPrice:Ly(o,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}}).otherwise(()=>{return async function(){try{let{maxFeePerGas:C,maxPriorityFeePerGas:o,gasPrice:U}=await T.getFeeData();if(H){if(C===null||o===null)throw new c("toolbox_evm_no_fee_data");return{[u.Average]:{maxFeePerGas:C,maxPriorityFeePerGas:o},[u.Fast]:{maxFeePerGas:Ly(C,u.Fast),maxPriorityFeePerGas:Ly(o,u.Fast)},[u.Fastest]:{maxFeePerGas:Ly(C,u.Fastest),maxPriorityFeePerGas:Ly(o,u.Fastest)}}}if(!U)throw new c("toolbox_evm_no_gas_price");return{[u.Average]:{gasPrice:U},[u.Fast]:{gasPrice:Ly(U,u.Fast)},[u.Fastest]:{gasPrice:Ly(U,u.Fastest)}}}catch(C){throw new c("toolbox_evm_gas_estimation_error",{error:C.msg??C.toString()})}}})}function E1({provider:y,isEIP1559Compatible:T,signer:H,chain:f}){return async function({callProvider:o,contractAddress:U,abi:q,funcName:X,funcParams:G=[],txOverrides:Z={},feeOption:A=u.Fast}){let M=o||y;if(!U)throw new c("toolbox_evm_invalid_params",{error:"contractAddress must be provided"});let Q=S1({abi:q,funcName:X});if(Q&&nf(M)&&H){let B=Qf({chain:f,provider:M}),D=Z?.from||await H?.getAddress(),W=await B({abi:q,contractAddress:U,funcName:X,funcParams:G,txOverrides:{...Z,from:D}});return wf(M)(W)}let N=QT(U,q,M);if(Q){if(!H)throw new c("toolbox_evm_no_signer");let B=Z?.from||await H.getAddress();if(!B)throw new c("toolbox_evm_no_signer_address");let D=N.connect(H),W=_f({chain:f,isEIP1559Compatible:T,provider:y}),{maxFeePerGas:R,maxPriorityFeePerGas:O,gasPrice:Y}=(await W())[A],_=await N.getFunction(X).estimateGas(...G,Z),L=await D[X](...G,{...Z,gasLimit:_,gasPrice:Y,maxFeePerGas:R,maxPriorityFeePerGas:O,nonce:Z?.nonce||await M.getTransactionCount(B)});return typeof L?.hash==="string"?L?.hash:L}let J=await N[X]?.(...G);return typeof J?.hash==="string"?J?.hash:J}}function y5({provider:y,chain:T}){return function({assetAddress:f,spenderAddress:C,from:o}){return E1({chain:T,isEIP1559Compatible:!0,provider:y})({abi:qT,contractAddress:f,funcName:"allowance",funcParams:[o,C]})}}function X8({provider:y,chain:T}){return async function({assetAddress:f,spenderAddress:C,from:o,amount:U=XT}){let q=await y5({chain:T,provider:y})({assetAddress:f,from:o,spenderAddress:C});return cT.fromBigInt(q).gte(cT.fromBigInt(BigInt(U)))}}function G8({signer:y,isEIP1559Compatible:T=!0,provider:H,chain:f}){return async function({assetAddress:o,spenderAddress:U,feeOptionKey:q=u.Fast,amount:X,gasLimitFallback:G,from:Z,nonce:A}){let M=[U,BigInt(X||XT)],Q=await y?.getAddress()||Z,N={abi:qT,contractAddress:o,funcName:"approve",funcParams:M,signer:y,txOverrides:{from:Q}};if(nf(H)){let B=Qf({chain:f,provider:H}),D=wf(H),W=await B(N);return D(W)}return E1({chain:f,isEIP1559Compatible:T,provider:H,signer:y})({...N,feeOption:q,funcParams:M,txOverrides:{from:Q,gasLimit:G?BigInt(G.toString()):void 0,nonce:A}})}}function Q8({signer:y,isEIP1559Compatible:T=!0,provider:H}){return async function({assetValue:C,memo:o,recipient:U,feeOptionKey:q=u.Fast,sender:X,...G}){let{hexlify:Z,toUtf8Bytes:A}=await import("ethers"),M=C.getBaseValue("bigint"),Q=C.chain,N=X||await y?.getAddress(),J=T5({chain:Q,isEIP1559Compatible:T,provider:H,signer:y});if(!N)throw new c("toolbox_evm_no_from_address");if(C.isGasAsset){let Y={...G,data:Z(A(o||"")),feeOptionKey:q,from:N,to:U,value:M};return J(Y)}if(!kf(C,Q))throw new c("toolbox_evm_no_contract_address");let{maxFeePerGas:D,maxPriorityFeePerGas:W,gasPrice:R}=(await _f({chain:Q,isEIP1559Compatible:T,provider:H})())[q],O=await $1({chain:Q,provider:H,signer:y})({assetValue:C,data:Z(A(o||"")),gasPrice:R,maxFeePerGas:D,maxPriorityFeePerGas:W,memo:o,recipient:U,sender:N});return J(O)}}function f5({provider:y,signer:T}){return function({contractAddress:f,abi:C,funcName:o,funcParams:U=[],txOverrides:q}){if(!f)throw new c("toolbox_evm_no_contract_address");let X=QT(f,C,y);return T?X.connect(T).getFunction(o).estimateGas(...U,q):X.getFunction(o).estimateGas(...U,q)}}function _8({provider:y,signer:T}){return async function({assetValue:f,recipient:C,memo:o,data:U,sender:q,funcName:X,funcParams:G,txOverrides:Z}){let A=f.bigIntValue,M=f.isGasAsset?null:kf(f,f.chain);if(M&&X)return f5({provider:y,signer:T})({abi:qT,contractAddress:M,funcName:X,funcParams:G,txOverrides:Z});let{hexlify:Q,toUtf8Bytes:N}=await import("ethers");return y.estimateGas({data:U?U:o?Q(N(o)):void 0,from:q,to:C,value:A})}}function M8({signer:y}){if(!y)return;return(T)=>k1(y,T)}function T5({provider:y,signer:T,isEIP1559Compatible:H=!0,chain:f}){return async function({feeOptionKey:o=u.Fast,...U}){let{from:q,to:X,data:G,value:Z,...A}=U;if(!T)throw new c("toolbox_evm_no_signer");if(!X)throw new c("toolbox_evm_no_to_address");let M={...A,data:G||"0x",from:q,to:X,value:BigInt(Z||0)};if(nf(y))return wf(y)(M);let Q=q||await T.getAddress(),N=U.nonce||await y.getTransactionCount(Q),J=(await y.getNetwork()).chainId,B=V1(M,H);if(B==="eip7702")F1(M.authorizations||[],J);let D=aH(B).with("eip7702",()=>4).with("eip1559",()=>2).otherwise(()=>0),W={...M,chainId:J,nonce:N,type:D,...B==="eip7702"&&{authorizationList:M.authorizations}},R=_f({chain:f,isEIP1559Compatible:H,provider:y}),Y=B!=="legacy"&&!(M.maxFeePerGas&&M.maxPriorityFeePerGas)||!M.gasPrice?Object.entries((await R())[o]).reduce((L,[x,w])=>({...L,[x]:oT(BigInt(w))}),{}):{},_;try{_=oT(M.gasLimit||await y.estimateGas(W)*11n/10n)}catch(L){throw new c("toolbox_evm_error_estimating_gas_limit",{error:L})}try{let L={...W,gasLimit:_,...Y};try{return(await T.sendTransaction(L)).hash}catch{let x=await T.signTransaction({...L,from:Q});return(await y.broadcastTransaction(x)).hash}}catch(L){throw new c("toolbox_evm_error_sending_transaction",{error:L})}}}function $1({provider:y,signer:T}){return async function({assetValue:f,memo:C,recipient:o,data:U,sender:q,maxFeePerGas:X,maxPriorityFeePerGas:G,gasPrice:Z,...A}){let M=f.getBaseValue("bigint"),Q=f.chain,N=q||await T?.getAddress();if(!N)throw new c("toolbox_evm_no_from_address");if(C8(f)){let{hexlify:D,toUtf8Bytes:W}=await import("ethers");return{...A,data:U||D(W(C||"")),from:N,to:o,value:M}}let J=kf(f,Q);if(!J)throw new c("toolbox_evm_no_contract_address");return Qf({chain:f.chain,provider:y})({abi:qT,contractAddress:J,funcName:"transfer",funcParams:[o,M],txOverrides:{from:N,gasPrice:Z,maxFeePerGas:X,maxPriorityFeePerGas:G}})}}function Z8({provider:y,signer:T,chain:H}){return async function({assetAddress:C,spenderAddress:o,amount:U,from:q}){let X=await T?.getAddress()||q,G=Qf({chain:H,provider:y}),Z=["bigint","number"].includes(typeof U)?U:U||XT;return await G({abi:qT,contractAddress:C,funcName:"approve",funcParams:[o,BigInt(Z)],txOverrides:{from:X}})}}function W8({provider:y,isEIP1559Compatible:T=!0,chain:H}){return async function({feeOption:C=u.Fast,...o}){let q=await _f({chain:H,isEIP1559Compatible:T,provider:y})(),X=await y.estimateGas(o),G=f8.from({chain:H}),{gasPrice:Z,maxFeePerGas:A,maxPriorityFeePerGas:M}=q[C];if(!T&&Z)return G.set(cT.fromBigInt(Z*X,G.decimal));if(A&&M){let Q=(A+M)*X;return G.set(cT.fromBigInt(Q,G.decimal))}throw new c("toolbox_evm_no_gas_price")}}var XT,o8,U8,P1,q8,iT=(y)=>y.type===4||(y.authorizations?.length??0)>0,b1=(y)=>!iT(y)&&(y.type===2||!!y.maxFeePerGas||!!y.maxPriorityFeePerGas),V1=(y,T=!0)=>{if(iT(y))return"eip7702";if(b1(y)||T)return"eip1559";return"legacy"};var dT=E(()=>{mT();UT();XT=BigInt("0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");o8=["payable","nonpayable"];U8=T8.reduce((y,T)=>{return y[T]="0x0000000000000000000000000000000000000000",y},{}),P1={...U8,[ny.Optimism]:"0x4200000000000000000000000000000000000042",[ny.Polygon]:"0x0000000000000000000000000000000000001010"},q8=[ny.Arbitrum,ny.Aurora,ny.Base,ny.Optimism]});import{Chain as r,FeeOption as L8}from"@swapkit/helpers";import{HDNodeWallet as A8}from"ethers";import{match as Y8,P as C5}from"ts-pattern";function rT(y){let T=a(r.Ethereum)(y);async function H(f,C="0x5ba1e12693dc8f9c48aad8770482f4739beed696",o="aggregate",U=L8.Fast){let q=await T.createContractTxObject({abi:gH,contractAddress:C,funcName:o,funcParams:[f]});return T.sendTransaction({...q,feeOptionKey:U})}return{...T,multicall:H}}function a(y){return function({provider:H,...f}){let C=w1(y),o=Y8(f).with({phrase:C5.string},({phrase:q})=>A8.fromPhrase(q).connect(H)).with({signer:C5.any},({signer:q})=>q).otherwise(()=>{return});return xf({chain:y,isEIP1559Compatible:C,provider:H,signer:o})}}var aT,sT,eT,y0,f0,T0,C0,H5,H0,o0,U0,q0,X0,G0,Q0,_0,M0,Z0,_T,W0,L0;var v1=E(()=>{iH();UT();dT();aT=a(r.Adi),sT=a(r.Arbitrum),eT=a(r.Aurora),y0=a(r.Avalanche),f0=a(r.Base),T0=a(r.Berachain),C0=a(r.BinanceSmartChain),H5=a(r.Botanix),H0=a(r.Core),o0=a(r.Corn),U0=a(r.Cronos),q0=a(r.Gnosis),X0=a(r.Hyperevm),G0=a(r.Linea),Q0=a(r.Polygon),_0=a(r.MegaETH),M0=a(r.Monad),Z0=a(r.Plasma),_T=a(r.Sonic),W0=a(r.Unichain),L0=a(r.XLayer)});var o5;var U5=E(()=>{o5=[{inputs:[{internalType:"address",name:"_owner",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"DecimalsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"GasPriceUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"L1BaseFeeUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"OverheadUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"",type:"uint256"}],name:"ScalarUpdated",type:"event"},{inputs:[],name:"decimals",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"gasPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1Fee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"_data",type:"bytes"}],name:"getL1GasUsed",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"l1BaseFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"overhead",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"scalar",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_decimals",type:"uint256"}],name:"setDecimals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_gasPrice",type:"uint256"}],name:"setGasPrice",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_baseFee",type:"uint256"}],name:"setL1BaseFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_overhead",type:"uint256"}],name:"setOverhead",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_scalar",type:"uint256"}],name:"setScalar",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"}]});import{applyFeeMultiplierToBigInt as Ff,Chain as z8,FeeOption as hy,SwapKitError as p1}from"@swapkit/helpers";import{Contract as N8,HDNodeWallet as B8}from"ethers";import{match as O8,P as q5}from"ts-pattern";function l1(y){return new N8(D8,o5,y)}function X5(y){return async function(){let H=l1(y);if(H&&"l1BaseFee"in H)return await H?.l1BaseFee();return}}function G5(y){return async function({from:H,to:f,nonce:C,...o}){let{Transaction:U}=await import("ethers");if(!f)throw new p1("toolbox_evm_invalid_transaction",{error:"Missing to address"});return U.from({...o,authorizationList:o.authorizationList,nonce:C?C:H?await y.getTransactionCount(H):0,to:f}).serialized}}function Q5(y){return async function(H){let f=l1(y),C=await G5(y)(H);if(f&&"getL1Fee"in f)return f.getL1Fee(C)}}function _5(y){return async function(H){let C=(await y.getFeeData()).gasPrice??0n,o=await y.estimateGas(H);return C*o}}function R8(y){return async function(H){let f=await Q5(y)(H)??0n,C=await _5(y)(H);return f+C}}function x8(y){return async function(H){let f=l1(y),C=await G5(y)(H);if(f&&"getL1GasUsed"in f)return f.getL1GasUsed(C)}}function n8(y){return async function(){try{let{maxFeePerGas:H,maxPriorityFeePerGas:f,gasPrice:C}=await y.getFeeData(),o=await X5(y)(),U=C;if(!(H&&f))throw new p1("toolbox_evm_no_fee_data");return{[hy.Average]:{gasPrice:U,l1GasPrice:o,maxFeePerGas:H,maxPriorityFeePerGas:f},[hy.Fast]:{gasPrice:Ff(U,hy.Fast),l1GasPrice:Ff(o||0n,hy.Fast),maxFeePerGas:H,maxPriorityFeePerGas:Ff(f,hy.Fast)},[hy.Fastest]:{gasPrice:Ff(U,hy.Fastest),l1GasPrice:Ff(o||0n,hy.Fastest),maxFeePerGas:H,maxPriorityFeePerGas:Ff(f,hy.Fastest)}}}catch(H){throw new p1("toolbox_evm_gas_estimation_error",{error:H.msg??H.toString()})}}}function A0({provider:y,...T}){let H=O8(T).with({phrase:q5.string},({phrase:o})=>B8.fromPhrase(o).connect(y)).with({signer:q5.any},({signer:o})=>o).otherwise(()=>{return}),f=xf({provider:y,signer:H}),C=X5(y);return{...f,estimateGasPrices:n8(y),estimateL1Gas:x8(y),estimateL1GasCost:Q5(y),estimateL2GasCost:_5(y),estimateTotalGasCost:R8(y),getBalance:HT(z8.Optimism).getBalance,getL1GasPrice:C}}var D8="0x420000000000000000000000000000000000000f";var j1=E(()=>{mT();U5();dT()});var Z5={};Ty(Z5,{validateEVMAddress:()=>GT,toChecksumAddress:()=>sH,isStateChangingCall:()=>S1,isEIP7702Transaction:()=>iT,isEIP1559Transaction:()=>b1,isBrowserProvider:()=>nf,getTokenAddress:()=>kf,getEvmToolboxAsync:()=>M5,getEvmToolbox:()=>K1,getEstimateGasPrices:()=>_f,getEVMTxType:()=>V1,getEIP1193SendTransaction:()=>wf,getCreateContractTxObject:()=>Qf,getCreateContract:()=>I1,getChecksumAddressFromAsset:()=>eH,createContract:()=>QT,XLayerToolbox:()=>L0,UNIToolbox:()=>W0,SONICToolbox:()=>_T,PLASMAToolbox:()=>Z0,OPToolbox:()=>A0,MONADToolbox:()=>M0,MEGAETHToolbox:()=>_0,MAX_APPROVAL:()=>XT,MATICToolbox:()=>Q0,LINEAToolbox:()=>G0,HYPEREVMToolbox:()=>X0,GNOToolbox:()=>q0,ETHToolbox:()=>rT,ContractAddress:()=>P1,CROToolbox:()=>U0,CORNToolbox:()=>o0,COREToolbox:()=>H0,BotanixToolbox:()=>H5,BaseEVMToolbox:()=>xf,BSCToolbox:()=>C0,BERAToolbox:()=>T0,BASEToolbox:()=>f0,AVAXToolbox:()=>y0,AURORAToolbox:()=>eT,ARBToolbox:()=>sT,ADIToolbox:()=>aT});import{Chain as g}from"@swapkit/helpers";import{match as w8}from"ts-pattern";function K1(y,T){return w8(y).with(g.Adi,()=>aT(T)).with(g.Arbitrum,()=>sT(T)).with(g.Aurora,()=>eT(T)).with(g.Avalanche,()=>y0(T)).with(g.Base,()=>f0(T)).with(g.Berachain,()=>T0(T)).with(g.BinanceSmartChain,()=>C0(T)).with(g.Botanix,()=>_T(T)).with(g.Core,()=>H0(T)).with(g.Corn,()=>o0(T)).with(g.Cronos,()=>U0(T)).with(g.Ethereum,()=>rT(T)).with(g.Gnosis,()=>q0(T)).with(g.Hyperevm,()=>X0(T)).with(g.Linea,()=>G0(T)).with(g.MegaETH,()=>_0(T)).with(g.Monad,()=>M0(T)).with(g.Optimism,()=>A0(T)).with(g.Plasma,()=>Z0(T)).with(g.Polygon,()=>Q0(T)).with(g.Sonic,()=>_T(T)).with(g.Unichain,()=>W0(T)).with(g.XLayer,()=>L0(T)).exhaustive()}async function M5(y,T){let H={...T,provider:T?.provider||await x1(y)};return K1(y,H)}var u1=E(()=>{UT();v1();j1();dT();v1();j1()});var W5;var L5=E(()=>{((H)=>{H.Test="goerli";H.Main="homestead"})(W5||={})});var A5={};Ty(A5,{validateEVMAddress:()=>GT,validateAuthorizations:()=>F1,validateAuthorization:()=>tH,toHexString:()=>oT,toChecksumAddress:()=>sH,signAuthorization:()=>k1,parseEIP712FromEVMTx:()=>y8,isStateChangingCall:()=>S1,isEIP7702Transaction:()=>iT,isEIP1559Transaction:()=>b1,isBrowserProvider:()=>nf,getTokenAddress:()=>kf,getProviderSync:()=>mH,getProvider:()=>x1,getNetworkParams:()=>n1,getIsEIP1559Compatible:()=>w1,getEvmToolboxAsync:()=>M5,getEvmToolbox:()=>K1,getEvmApi:()=>HT,getEstimateGasPrices:()=>_f,getEVMTxType:()=>V1,getEIP1193SendTransaction:()=>wf,getCreateContractTxObject:()=>Qf,getCreateContract:()=>I1,getChecksumAddressFromAsset:()=>eH,createCustomEvmApi:()=>iU,createContract:()=>QT,buildEIP712DomainType:()=>cH,XLayerToolbox:()=>L0,UNIToolbox:()=>W0,SONICToolbox:()=>_T,PLASMAToolbox:()=>Z0,OPToolbox:()=>A0,MONADToolbox:()=>M0,MEGAETHToolbox:()=>_0,MAX_APPROVAL:()=>XT,MATICToolbox:()=>Q0,LINEAToolbox:()=>G0,HYPEREVMToolbox:()=>X0,GNOToolbox:()=>q0,EthNetwork:()=>W5,ETHToolbox:()=>rT,ContractAddress:()=>P1,CROToolbox:()=>U0,CORNToolbox:()=>o0,COREToolbox:()=>H0,BotanixToolbox:()=>H5,BaseEVMToolbox:()=>xf,BSCToolbox:()=>C0,BERAToolbox:()=>T0,BASEToolbox:()=>f0,AVAXToolbox:()=>y0,AURORAToolbox:()=>eT,ARBToolbox:()=>sT,ADIToolbox:()=>aT});var h1=E(()=>{mT();UT();u1();L5()});import{bech32 as k8}from"@scure/base";import{mnemonicToEntropy as F8}from"@scure/bip39";import{wordlist as $8}from"@scure/bip39/wordlists/english.js";import{Bip32PrivateKey as I8}from"@stricahq/bip32ed25519";import{Transaction as S8,types as c1,address as P8,crypto as m1,utils as Y5}from"@stricahq/typhonjs";import{AssetValue as $f,Chain as Mf,getChainConfig as E8,SwapKitError as MT}from"@swapkit/helpers";import Ny from"bignumber.js";async function g1(y,T){let H=await fetch(`${B5}${y}`,{...T,headers:{project_id:N5,...T?.headers}});if(!H.ok)throw Error(`Blockfrost API error: ${H.status} ${H.statusText}`);return H.json()}async function O5(y){try{return await g1(`/addresses/${y}/utxos`)}catch{return[]}}async function V8(){return(await g1("/blocks/latest")).slot}async function v8(){let y=await g1("/epochs/latest/parameters"),T={PlutusScriptV1:y.cost_models.PlutusV1?Object.values(y.cost_models.PlutusV1):[],PlutusScriptV2:y.cost_models.PlutusV2?Object.values(y.cost_models.PlutusV2):[],PlutusScriptV3:y.cost_models.PlutusV3?Object.values(y.cost_models.PlutusV3):[]};return{collateralPercent:new Ny(y.collateral_percent),languageView:T,maxValueSize:Number.parseInt(y.max_val_size,10),minFeeA:new Ny(y.min_fee_a),minFeeB:new Ny(y.min_fee_b),minFeeRefScriptCostPerByte:new Ny(15),priceMem:new Ny(y.price_mem),priceSteps:new Ny(y.price_step),stakeKeyDeposit:new Ny(2000000),utxoCostPerByte:new Ny(y.coins_per_utxo_size)}}async function z5(y){let T=await fetch(`${B5}/tx/submit`,{body:Buffer.from(y,"hex"),headers:{"Content-Type":"application/cbor",project_id:N5},method:"POST"});if(!T.ok){let H=await T.text();throw Error(`Transaction submission failed: ${H}`)}return T.json()}function p8(y,T){return y.map((H)=>{let f=H.amount.find((U)=>U.unit==="lovelace"),C=f?new Ny(f.quantity):new Ny(0),o=H.amount.filter((U)=>U.unit!=="lovelace").map((U)=>({amount:new Ny(U.quantity),assetName:U.unit.slice(56),policyId:U.unit.slice(0,56)}));return{address:T,amount:C,index:H.output_index,tokens:o,txId:H.tx_hash}})}async function l8(y){try{let T=await O5(y),H=0n,f=new Map;for(let U of T){if(!U.amount||!Array.isArray(U.amount))continue;for(let q of U.amount){let{unit:X,quantity:G}=q;if(X==="lovelace")H+=BigInt(G);else{let Z=f.get(X)||0n;f.set(X,Z+BigInt(G))}}}let C=[],{baseDecimal:o}=E8(Mf.Cardano);if(H>0n)C.push($f.from({chain:Mf.Cardano,fromBaseDecimal:o,value:H.toString()}));for(let[U,q]of f)C.push($f.from({asset:`${Mf.Cardano}.${U}`,value:q.toString()}));if(C.length===0)return[$f.from({chain:Mf.Cardano})];return C}catch(T){let H=T instanceof Error?T.message:String(T);return console.error(`Cardano balance fetch error: ${H}`),[$f.from({chain:Mf.Cardano})]}}function D5(y){if(!y||typeof y!=="string")return!1;try{let T=k8.decode(y,120);return T.prefix==="addr"||T.prefix==="addr_test"}catch{return!1}}async function j8(y,T=0,H=0){let f=F8(y,$8),o=(await I8.fromEntropy(Buffer.from(Array.from(f)))).derive(t1+1852).derive(t1+1815).derive(t1+T),U=o.derive(0).derive(H),q=U.toBip32PublicKey().toPublicKey().toBytes(),X=m1.hash28(q),Z=o.derive(2).derive(0).toBip32PublicKey().toPublicKey().toBytes(),A=m1.hash28(Z),M={hash:X,type:c1.HashType.ADDRESS},Q={hash:A,type:c1.HashType.ADDRESS},J=new P8.BaseAddress(b8,M,Q).getBech32(),B=U.toPrivateKey();return{getAddress:()=>J,publicKey:q,publicKeyHash:X,signTransaction:async(D)=>{try{let W=await import("@stricahq/cbors"),R=Buffer.from(D,"hex"),O=W.Decoder.decode(R),[Y,_,L,x]=O.value,w=W.Encoder.encode(Y),n=m1.hash32(w),k=B.sign(n),$=_ instanceof Map?_:new Map,z=$.get(J5)||[];z.push([q,k]),$.set(J5,z);let F=[Y,$,L,x];return W.Encoder.encode(F).toString("hex")}catch(W){throw new MT("toolbox_cardano_sign_transaction_failed",{message:String(W)})}}}}function K8(y){let T,H,f;async function C(){if(!f)f=await v8();return f}async function o(){if(T!==void 0)return T;if(y&&"phrase"in y&&y.phrase){let Q=y.index??0;return T=await j8(y.phrase,0,Q),T}if(y&&"signer"in y&&y.signer)return T=y.signer,T;return}async function U(){if(H)return H;let Q=await o();if(!Q)return"";if("getAddress"in Q)return H=await Q.getAddress(),H;return""}async function q(Q){let N=Q||await U();if(!N)throw new MT("core_wallet_connection_not_found");return l8(N)}async function X(Q){if(Q)try{let{tx:D}=await G(Q),W=D.getFee();return $f.from({chain:Mf.Cardano,fromBaseDecimal:6,value:W.toString()})}catch{}let N=await C(),J=400,B=N.minFeeB.plus(N.minFeeA.times(J));return $f.from({chain:Mf.Cardano,fromBaseDecimal:6,value:B.toString()})}async function G({sender:Q="",recipient:N,assetValue:J,memo:B,pureLovelaceOnly:D=!1}){let W=Q||await U();if(!W)throw new MT("core_wallet_connection_not_found");let[R,O,Y]=await Promise.all([O5(W),V8(),C()]),_=R.filter((b)=>D?b.amount.every((l)=>l.unit==="lovelace"):b.amount.some((l)=>l.unit==="lovelace")).sort((b,l)=>{let h=b.amount.some((t)=>t.unit!=="lovelace"),s=l.amount.some((t)=>t.unit!=="lovelace");if(h===s)return 0;return h?1:-1}),L=Y5.getAddressFromString(W),x=Y5.getAddressFromString(N),w=p8(_,L),n=new Ny(J.getBaseValue("string")),k=[{address:x,amount:n,tokens:[]}],$;if(B){let b=new Map;b.set("msg",[B]),$={metadata:[{data:b,label:674}]}}let z={...Y,minFeeB:Y.minFeeB.plus(Y.minFeeA.times(4))},I=new S8({protocolParams:z}).paymentTransaction({auxiliaryData:$,changeAddress:L,inputs:w,outputs:k,ttl:O+3600}),{payload:v}=I.buildTransaction();return{tx:I,unsignedTx:v}}async function Z(Q){let N=await o();if(!N||!("signTransaction"in N))throw new MT("core_wallet_connection_not_found");return N.signTransaction(Q)}async function A({recipient:Q,assetValue:N,memo:J}){let B=await o();if(!B||!("signTransaction"in B))throw new MT("core_wallet_connection_not_found");let{unsignedTx:D}=await G({assetValue:N,memo:J,recipient:Q,sender:await U()}),W=await Z(D);return await z5(W)}async function M(Q){let N=await Z(Q);return await z5(N)}return{createTransaction:G,estimateTransactionFee:X,getAddress:U,getBalance:q,signAndBroadcastTransaction:M,signTransaction:Z,transfer:A,validateAddress:D5}}var N5="mainnet3YT7XK6NidLPlkHxxyBB5V0WzXUOTIJS",B5="https://cardano-mainnet.blockfrost.io/api/v0",b8,t1=2147483648,J5=0;var R5=E(()=>{b8=c1.NetworkId.MAINNET});var i1={};Ty(i1,{validateCardanoAddress:()=>D5,getCardanoToolbox:()=>K8});var d1=E(()=>{R5()});import{base64 as J0,bech32 as Y0}from"@scure/base";import{SwapKitError as u8}from"@swapkit/helpers";function ZT(y){return J0.encode(Uint8Array.from(Y0.fromWords(Y0.decode(y).words)))}function WT(y,T="thor"){return Y0.encode(T,Y0.toWords(J0.decode(y)))}function h8(y){return J0.encode(y)}function m8(y){if(!y.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new u8("toolbox_cosmos_invalid_params",{error:"Invalid base64 string format"});return J0.decode(y)}var r1=()=>{};import{AssetValue as a1,Chain as K,getChainConfig as by,getRPCUrl as t8,SwapKitError as x5}from"@swapkit/helpers";function my(y){switch(y){case K.Maya:return{amount:[],gas:"10000000000"};case K.THORChain:return{amount:[],gas:"500000000"};case K.Kujira:return k5;case K.Noble:return F5;default:return w5}}async function ty(y){let T=await import("@cosmjs/stargate"),H=T.StargateClient??T.default?.StargateClient,f=typeof window<"u"?{}:{referer:"https://sdk.swapkit.dev",referrer:"https://sdk.swapkit.dev"};return H.connect({headers:f,url:y})}async function Zf(y,T,H={}){let f=await import("@cosmjs/stargate"),C=f.SigningStargateClient??f.default?.SigningStargateClient,o=f.GasPrice??f.default?.GasPrice,U=typeof H==="string"?H:"0.0003uatom",q=typeof H==="string"?{}:H;return C.connectWithSigner(y,T,{gasPrice:o.fromString(U),...q})}async function e1(y,T){let H=await import("@cosmjs/stargate");return(H.SigningStargateClient??H.default?.SigningStargateClient).offline(y,T)}async function yC({sender:y,recipient:T,assetValue:H,memo:f="",feeRate:C,sequence:o,accountNumber:U}){let{chain:q,chainId:X}=H,G=await t8(q),A=await(await ty(G)).getAccount(y);if(!A)throw new x5("toolbox_cosmos_account_not_found",{sender:y});let M=a1.from({chain:q}),Q=sy(M.symbol),N=my(q),J=Q&&C?{amount:[{amount:C.toString(),denom:Q}],gas:N.gas}:N,B={amount:[{amount:H.getBaseValue("string"),denom:sy(H.symbol)}],fromAddress:y,toAddress:T};return{accountNumber:U??Number(A.accountNumber),chainId:X,fee:J,memo:f,msgs:[{typeUrl:c8(q),value:B}],sequence:o??A.sequence}}var s1="FACTORY/KUJIRA1QK00H5ATUTPSV900X202PXX42NPJR9THG58DNQPA72F2P7M2LUASE444A7/UUSK",n5="FACTORY/KUJIRA1YGFXN0ER40KLCNCK8THLTUPRDXLCK6WVNPKF2K/UYUM",w5,k5,F5,sy=(y,T=!1)=>{if(T)return y.toLowerCase();switch(y){case"uUSK":case"USK":return s1;case"uYUM":case"YUM":return n5;case"uKUJI":case"KUJI":return"ukuji";case"ATOM":case"uATOM":return"uatom";case"uUSDC":case"USDC":return"uusdc";default:return y}},LT=({symbol:y,chain:T})=>{if(T===K.Maya)return(y.toUpperCase()!=="CACAO"?y:`${K.Maya}.${y}`).toUpperCase();if(T===K.THORChain)return(["RUNE","TCY","RUJI"].includes(y.toUpperCase())?`${K.THORChain}.${y}`:y).toUpperCase();return sy(y,!1)},c8=(y)=>{switch(y){case K.Maya:case K.THORChain:return"/types.MsgSend";case K.Cosmos:case K.Kujira:case K.Noble:return"/cosmos.bank.v1beta1.MsgSend";default:throw new x5("toolbox_cosmos_not_supported",{chain:y})}},g8,fC=(y,T)=>{let H=g8[y.toLowerCase()];if(!H)return a1.from({asset:y,fromBaseDecimal:8,value:T});let{chain:f,asset:C,decimals:o}=H,U=f?{chain:f}:{asset:C};return a1.from({...U,fromBaseDecimal:o,value:T})};var AT=E(()=>{w5={amount:[{amount:"500",denom:"uatom"}],gas:"200000"},k5={amount:[{amount:"1000",denom:"ukuji"}],gas:"200000"},F5={amount:[{amount:"1000",denom:"uusdc"}],gas:"200000"};g8={atom:{chain:K.Cosmos,decimals:by(K.Cosmos).baseDecimal},cacao:{chain:K.Maya,decimals:10},kuji:{chain:K.Kujira,decimals:by(K.Kujira).baseDecimal},maya:{asset:`${K.Maya}.${K.Maya}`,decimals:4},rune:{chain:K.THORChain,decimals:by(K.THORChain).baseDecimal},tcy:{asset:"THOR.TCY",decimals:by(K.THORChain).baseDecimal},uatom:{chain:K.Cosmos,decimals:by(K.Cosmos).baseDecimal},ukuji:{chain:K.Kujira,decimals:by(K.Kujira).baseDecimal},usdc:{chain:K.Noble,decimals:by(K.Noble).baseDecimal},uusdc:{chain:K.Noble,decimals:by(K.Noble).baseDecimal},"x/kuji":{asset:"THOR.KUJI",decimals:by(K.THORChain).baseDecimal},[s1.toLowerCase()]:{asset:`${K.Kujira}.USK`,decimals:by(K.Kujira).baseDecimal}}});var $5={};Ty($5,{$root:()=>P});import Cy from"protobufjs/minimal.js";var p,By,V,P;var I5=E(()=>{p=Cy.Reader,By=Cy.Writer,V=Cy.util,P=Cy.roots.default||(Cy.roots.default={});P.common=(()=>{let y={};return y.Asset=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.chain="",T.prototype.symbol="",T.prototype.ticker="",T.prototype.synth=!1,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(10).string(f.chain);if(f.symbol!=null&&Object.hasOwnProperty.call(f,"symbol"))C.uint32(18).string(f.symbol);if(f.ticker!=null&&Object.hasOwnProperty.call(f,"ticker"))C.uint32(26).string(f.ticker);if(f.synth!=null&&Object.hasOwnProperty.call(f,"synth"))C.uint32(32).bool(f.synth);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.Asset;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.chain=f.string();break;case 2:U.symbol=f.string();break;case 3:U.ticker=f.string();break;case 4:U.synth=f.bool();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.chain!=null&&f.hasOwnProperty("chain")){if(!V.isString(f.chain))return"chain: string expected"}if(f.symbol!=null&&f.hasOwnProperty("symbol")){if(!V.isString(f.symbol))return"symbol: string expected"}if(f.ticker!=null&&f.hasOwnProperty("ticker")){if(!V.isString(f.ticker))return"ticker: string expected"}if(f.synth!=null&&f.hasOwnProperty("synth")){if(typeof f.synth!=="boolean")return"synth: boolean expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Asset)return f;let C=new P.common.Asset;if(f.chain!=null)C.chain=String(f.chain);if(f.symbol!=null)C.symbol=String(f.symbol);if(f.ticker!=null)C.ticker=String(f.ticker);if(f.synth!=null)C.synth=Boolean(f.synth);return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.defaults)o.chain="",o.symbol="",o.ticker="",o.synth=!1;if(f.chain!=null&&f.hasOwnProperty("chain"))o.chain=f.chain;if(f.symbol!=null&&f.hasOwnProperty("symbol"))o.symbol=f.symbol;if(f.ticker!=null&&f.hasOwnProperty("ticker"))o.ticker=f.ticker;if(f.synth!=null&&f.hasOwnProperty("synth"))o.synth=f.synth;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Coin=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.asset=null,T.prototype.amount="",T.prototype.decimals=V.Long?V.Long.fromBits(0,0,!1):0,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.asset!=null&&Object.hasOwnProperty.call(f,"asset"))P.common.Asset.encode(f.asset,C.uint32(10).fork()).ldelim();if(f.amount!=null&&Object.hasOwnProperty.call(f,"amount"))C.uint32(18).string(f.amount);if(f.decimals!=null&&Object.hasOwnProperty.call(f,"decimals"))C.uint32(24).int64(f.decimals);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.Coin;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.asset=P.common.Asset.decode(f,f.uint32());break;case 2:U.amount=f.string();break;case 3:U.decimals=f.int64();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.asset!=null&&f.hasOwnProperty("asset")){let C=P.common.Asset.verify(f.asset);if(C)return"asset."+C}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!V.isString(f.amount))return"amount: string expected"}if(f.decimals!=null&&f.hasOwnProperty("decimals")){if(!V.isInteger(f.decimals)&&!(f.decimals&&V.isInteger(f.decimals.low)&&V.isInteger(f.decimals.high)))return"decimals: integer|Long expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Coin)return f;let C=new P.common.Coin;if(f.asset!=null){if(typeof f.asset!=="object")throw TypeError(".common.Coin.asset: object expected");C.asset=P.common.Asset.fromObject(f.asset)}if(f.amount!=null)C.amount=String(f.amount);if(f.decimals!=null){if(V.Long)(C.decimals=V.Long.fromValue(f.decimals)).unsigned=!1;else if(typeof f.decimals==="string")C.decimals=Number.parseInt(f.decimals,10);else if(typeof f.decimals==="number")C.decimals=f.decimals;else if(typeof f.decimals==="object")C.decimals=new V.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber()}return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.defaults)if(o.asset=null,o.amount="",V.Long){let U=new V.Long(0,0,!1);o.decimals=C.longs===String?U.toString():C.longs===Number?U.toNumber():U}else o.decimals=C.longs===String?"0":0;if(f.asset!=null&&f.hasOwnProperty("asset"))o.asset=P.common.Asset.toObject(f.asset,C);if(f.amount!=null&&f.hasOwnProperty("amount"))o.amount=f.amount;if(f.decimals!=null&&f.hasOwnProperty("decimals"))if(typeof f.decimals==="number")o.decimals=C.longs===String?String(f.decimals):f.decimals;else o.decimals=C.longs===String?V.Long.prototype.toString.call(f.decimals):C.longs===Number?new V.LongBits(f.decimals.low>>>0,f.decimals.high>>>0).toNumber():f.decimals;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.PubKeySet=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.secp256k1="",T.prototype.ed25519="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.secp256k1!=null&&Object.hasOwnProperty.call(f,"secp256k1"))C.uint32(10).string(f.secp256k1);if(f.ed25519!=null&&Object.hasOwnProperty.call(f,"ed25519"))C.uint32(18).string(f.ed25519);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.PubKeySet;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.secp256k1=f.string();break;case 2:U.ed25519=f.string();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1")){if(!V.isString(f.secp256k1))return"secp256k1: string expected"}if(f.ed25519!=null&&f.hasOwnProperty("ed25519")){if(!V.isString(f.ed25519))return"ed25519: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.PubKeySet)return f;let C=new P.common.PubKeySet;if(f.secp256k1!=null)C.secp256k1=String(f.secp256k1);if(f.ed25519!=null)C.ed25519=String(f.ed25519);return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.defaults)o.secp256k1="",o.ed25519="";if(f.secp256k1!=null&&f.hasOwnProperty("secp256k1"))o.secp256k1=f.secp256k1;if(f.ed25519!=null&&f.hasOwnProperty("ed25519"))o.ed25519=f.ed25519;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Tx=(()=>{function T(H){if(this.coins=[],this.gas=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.id="",T.prototype.chain="",T.prototype.fromAddress="",T.prototype.toAddress="",T.prototype.coins=V.emptyArray,T.prototype.gas=V.emptyArray,T.prototype.memo="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.id!=null&&Object.hasOwnProperty.call(f,"id"))C.uint32(10).string(f.id);if(f.chain!=null&&Object.hasOwnProperty.call(f,"chain"))C.uint32(18).string(f.chain);if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(26).string(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(34).string(f.toAddress);if(f.coins?.length)for(let o=0;o<f.coins.length;++o)P.common.Coin.encode(f.coins[o],C.uint32(42).fork()).ldelim();if(f.gas?.length)for(let o=0;o<f.gas.length;++o)P.common.Coin.encode(f.gas[o],C.uint32(50).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(58).string(f.memo);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.Tx;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.id=f.string();break;case 2:U.chain=f.string();break;case 3:U.fromAddress=f.string();break;case 4:U.toAddress=f.string();break;case 5:if(!U.coins?.length)U.coins=[];U.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 6:if(!U.gas?.length)U.gas=[];U.gas.push(P.common.Coin.decode(f,f.uint32()));break;case 7:U.memo=f.string();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.id!=null&&f.hasOwnProperty("id")){if(!V.isString(f.id))return"id: string expected"}if(f.chain!=null&&f.hasOwnProperty("chain")){if(!V.isString(f.chain))return"chain: string expected"}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!V.isString(f.fromAddress))return"fromAddress: string expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!V.isString(f.toAddress))return"toAddress: string expected"}if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let o=P.common.Coin.verify(f.coins[C]);if(o)return"coins."+o}}if(f.gas!=null&&f.hasOwnProperty("gas")){if(!Array.isArray(f.gas))return"gas: array expected";for(let C=0;C<f.gas.length;++C){let o=P.common.Coin.verify(f.gas[C]);if(o)return"gas."+o}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!V.isString(f.memo))return"memo: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Tx)return f;let C=new P.common.Tx;if(f.id!=null)C.id=String(f.id);if(f.chain!=null)C.chain=String(f.chain);if(f.fromAddress!=null)C.fromAddress=String(f.fromAddress);if(f.toAddress!=null)C.toAddress=String(f.toAddress);if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Tx.coins: array expected");C.coins=[];for(let o=0;o<f.coins.length;++o){if(typeof f.coins[o]!=="object")throw TypeError(".common.Tx.coins: object expected");C.coins[o]=P.common.Coin.fromObject(f.coins[o])}}if(f.gas){if(!Array.isArray(f.gas))throw TypeError(".common.Tx.gas: array expected");C.gas=[];for(let o=0;o<f.gas.length;++o){if(typeof f.gas[o]!=="object")throw TypeError(".common.Tx.gas: object expected");C.gas[o]=P.common.Coin.fromObject(f.gas[o])}}if(f.memo!=null)C.memo=String(f.memo);return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.arrays||C.defaults)o.coins=[],o.gas=[];if(C.defaults)o.id="",o.chain="",o.fromAddress="",o.toAddress="",o.memo="";if(f.id!=null&&f.hasOwnProperty("id"))o.id=f.id;if(f.chain!=null&&f.hasOwnProperty("chain"))o.chain=f.chain;if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))o.fromAddress=f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))o.toAddress=f.toAddress;if(f.coins?.length){o.coins=[];for(let U=0;U<f.coins.length;++U)o.coins[U]=P.common.Coin.toObject(f.coins[U],C)}if(f.gas?.length){o.gas=[];for(let U=0;U<f.gas.length;++U)o.gas[U]=P.common.Coin.toObject(f.gas[U],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))o.memo=f.memo;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.Fee=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=V.emptyArray,T.prototype.poolDeduct="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.coins?.length)for(let o=0;o<f.coins.length;++o)P.common.Coin.encode(f.coins[o],C.uint32(10).fork()).ldelim();if(f.poolDeduct!=null&&Object.hasOwnProperty.call(f,"poolDeduct"))C.uint32(18).string(f.poolDeduct);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.Fee;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:if(!U.coins?.length)U.coins=[];U.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 2:U.poolDeduct=f.string();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let o=P.common.Coin.verify(f.coins[C]);if(o)return"coins."+o}}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct")){if(!V.isString(f.poolDeduct))return"poolDeduct: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.Fee)return f;let C=new P.common.Fee;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".common.Fee.coins: array expected");C.coins=[];for(let o=0;o<f.coins.length;++o){if(typeof f.coins[o]!=="object")throw TypeError(".common.Fee.coins: object expected");C.coins[o]=P.common.Coin.fromObject(f.coins[o])}}if(f.poolDeduct!=null)C.poolDeduct=String(f.poolDeduct);return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.arrays||C.defaults)o.coins=[];if(C.defaults)o.poolDeduct="";if(f.coins?.length){o.coins=[];for(let U=0;U<f.coins.length;++U)o.coins[U]=P.common.Coin.toObject(f.coins[U],C)}if(f.poolDeduct!=null&&f.hasOwnProperty("poolDeduct"))o.poolDeduct=f.poolDeduct;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.ProtoUint=(()=>{function T(H){if(H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.value="",T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.value!=null&&Object.hasOwnProperty.call(f,"value"))C.uint32(10).string(f.value);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.common.ProtoUint;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.value=f.string();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.value!=null&&f.hasOwnProperty("value")){if(!V.isString(f.value))return"value: string expected"}return null},T.fromObject=function(f){if(f instanceof P.common.ProtoUint)return f;let C=new P.common.ProtoUint;if(f.value!=null)C.value=String(f.value);return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.defaults)o.value="";if(f.value!=null&&f.hasOwnProperty("value"))o.value=f.value;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y})();P.types=(()=>{let y={};return y.MsgDeposit=(()=>{function T(H){if(this.coins=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.coins=V.emptyArray,T.prototype.memo="",T.prototype.signer=V.newBuffer([]),T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.coins?.length)for(let o=0;o<f.coins.length;++o)P.common.Coin.encode(f.coins[o],C.uint32(10).fork()).ldelim();if(f.memo!=null&&Object.hasOwnProperty.call(f,"memo"))C.uint32(18).string(f.memo);if(f.signer!=null&&Object.hasOwnProperty.call(f,"signer"))C.uint32(26).bytes(f.signer);return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.types.MsgDeposit;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:if(!U.coins?.length)U.coins=[];U.coins.push(P.common.Coin.decode(f,f.uint32()));break;case 2:U.memo=f.string();break;case 3:U.signer=f.bytes();break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.coins!=null&&f.hasOwnProperty("coins")){if(!Array.isArray(f.coins))return"coins: array expected";for(let C=0;C<f.coins.length;++C){let o=P.common.Coin.verify(f.coins[C]);if(o)return"coins."+o}}if(f.memo!=null&&f.hasOwnProperty("memo")){if(!V.isString(f.memo))return"memo: string expected"}if(f.signer!=null&&f.hasOwnProperty("signer")){if(!(f.signer&&typeof f.signer.length==="number"||V.isString(f.signer)))return"signer: buffer expected"}return null},T.fromObject=function(f){if(f instanceof P.types.MsgDeposit)return f;let C=new P.types.MsgDeposit;if(f.coins){if(!Array.isArray(f.coins))throw TypeError(".types.MsgDeposit.coins: array expected");C.coins=[];for(let o=0;o<f.coins.length;++o){if(typeof f.coins[o]!=="object")throw TypeError(".types.MsgDeposit.coins: object expected");C.coins[o]=P.common.Coin.fromObject(f.coins[o])}}if(f.memo!=null)C.memo=String(f.memo);if(f.signer!=null){if(typeof f.signer==="string")V.base64.decode(f.signer,C.signer=V.newBuffer(V.base64.length(f.signer)),0);else if(f.signer.length)C.signer=f.signer}return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.arrays||C.defaults)o.coins=[];if(C.defaults){if(o.memo="",C.bytes===String)o.signer="";else if(o.signer=[],C.bytes!==Array)o.signer=V.newBuffer(o.signer)}if(f.coins?.length){o.coins=[];for(let U=0;U<f.coins.length;++U)o.coins[U]=P.common.Coin.toObject(f.coins[U],C)}if(f.memo!=null&&f.hasOwnProperty("memo"))o.memo=f.memo;if(f.signer!=null&&f.hasOwnProperty("signer"))o.signer=C.bytes===String?V.base64.encode(f.signer,0,f.signer.length):C.bytes===Array?Array.prototype.slice.call(f.signer):f.signer;return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y.MsgSend=(()=>{function T(H){if(this.amount=[],H){for(let f=Object.keys(H),C=0;C<f.length;++C)if(H[f[C]]!=null)this[f[C]]=H[f[C]]}}return T.prototype.fromAddress=V.newBuffer([]),T.prototype.toAddress=V.newBuffer([]),T.prototype.amount=V.emptyArray,T.create=function(f){return new T(f)},T.encode=function(f,C){if(!C)C=By.create();if(f.fromAddress!=null&&Object.hasOwnProperty.call(f,"fromAddress"))C.uint32(10).bytes(f.fromAddress);if(f.toAddress!=null&&Object.hasOwnProperty.call(f,"toAddress"))C.uint32(18).bytes(f.toAddress);if(f.amount?.length)for(let o=0;o<f.amount.length;++o)P.cosmos.base.v1beta1.Coin.encode(f.amount[o],C.uint32(26).fork()).ldelim();return C},T.encodeDelimited=function(f,C){return this.encode(f,C).ldelim()},T.decode=function(f,C){if(!(f instanceof p))f=p.create(f);let o=C===void 0?f.len:f.pos+C,U=new P.types.MsgSend;while(f.pos<o){let q=f.uint32();switch(q>>>3){case 1:U.fromAddress=f.bytes();break;case 2:U.toAddress=f.bytes();break;case 3:if(!U.amount?.length)U.amount=[];U.amount.push(P.cosmos.base.v1beta1.Coin.decode(f,f.uint32()));break;default:f.skipType(q&7);break}}return U},T.decodeDelimited=function(f){if(!(f instanceof p))f=new p(f);return this.decode(f,f.uint32())},T.verify=function(f){if(typeof f!=="object"||f===null)return"object expected";if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress")){if(!(f.fromAddress&&typeof f.fromAddress.length==="number"||V.isString(f.fromAddress)))return"fromAddress: buffer expected"}if(f.toAddress!=null&&f.hasOwnProperty("toAddress")){if(!(f.toAddress&&typeof f.toAddress.length==="number"||V.isString(f.toAddress)))return"toAddress: buffer expected"}if(f.amount!=null&&f.hasOwnProperty("amount")){if(!Array.isArray(f.amount))return"amount: array expected";for(let C=0;C<f.amount.length;++C){let o=P.cosmos.base.v1beta1.Coin.verify(f.amount[C]);if(o)return"amount."+o}}return null},T.fromObject=function(f){if(f instanceof P.types.MsgSend)return f;let C=new P.types.MsgSend;if(f.fromAddress!=null){if(typeof f.fromAddress==="string")V.base64.decode(f.fromAddress,C.fromAddress=V.newBuffer(V.base64.length(f.fromAddress)),0);else if(f.fromAddress.length)C.fromAddress=f.fromAddress}if(f.toAddress!=null){if(typeof f.toAddress==="string")V.base64.decode(f.toAddress,C.toAddress=V.newBuffer(V.base64.length(f.toAddress)),0);else if(f.toAddress.length)C.toAddress=f.toAddress}if(f.amount){if(!Array.isArray(f.amount))throw TypeError(".types.MsgSend.amount: array expected");C.amount=[];for(let o=0;o<f.amount.length;++o){if(typeof f.amount[o]!=="object")throw TypeError(".types.MsgSend.amount: object expected");C.amount[o]=P.cosmos.base.v1beta1.Coin.fromObject(f.amount[o])}}return C},T.toObject=function(f,C){if(!C)C={};let o={};if(C.arrays||C.defaults)o.amount=[];if(C.defaults){if(C.bytes===String)o.fromAddress="";else if(o.fromAddress=[],C.bytes!==Array)o.fromAddress=V.newBuffer(o.fromAddress);if(C.bytes===String)o.toAddress="";else if(o.toAddress=[],C.bytes!==Array)o.toAddress=V.newBuffer(o.toAddress)}if(f.fromAddress!=null&&f.hasOwnProperty("fromAddress"))o.fromAddress=C.bytes===String?V.base64.encode(f.fromAddress,0,f.fromAddress.length):C.bytes===Array?Array.prototype.slice.call(f.fromAddress):f.fromAddress;if(f.toAddress!=null&&f.hasOwnProperty("toAddress"))o.toAddress=C.bytes===String?V.base64.encode(f.toAddress,0,f.toAddress.length):C.bytes===Array?Array.prototype.slice.call(f.toAddress):f.toAddress;if(f.amount?.length){o.amount=[];for(let U=0;U<f.amount.length;++U)o.amount[U]=P.cosmos.base.v1beta1.Coin.toObject(f.amount[U],C)}return o},T.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},T})(),y})();P.cosmos=(()=>{let y={};return y.base=(()=>{let T={};return T.v1beta1=(()=>{let H={};return H.Coin=(()=>{function f(C){if(C){for(let o=Object.keys(C),U=0;U<o.length;++U)if(C[o[U]]!=null)this[o[U]]=C[o[U]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(o){return new f(o)},f.encode=function(o,U){if(!U)U=By.create();if(o.denom!=null&&Object.hasOwnProperty.call(o,"denom"))U.uint32(10).string(o.denom);if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))U.uint32(18).string(o.amount);return U},f.encodeDelimited=function(o,U){return this.encode(o,U).ldelim()},f.decode=function(o,U){if(!(o instanceof p))o=p.create(o);let q=U===void 0?o.len:o.pos+U,X=new P.cosmos.base.v1beta1.Coin;while(o.pos<q){let G=o.uint32();switch(G>>>3){case 1:X.denom=o.string();break;case 2:X.amount=o.string();break;default:o.skipType(G&7);break}}return X},f.decodeDelimited=function(o){if(!(o instanceof p))o=new p(o);return this.decode(o,o.uint32())},f.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.denom!=null&&o.hasOwnProperty("denom")){if(!V.isString(o.denom))return"denom: string expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!V.isString(o.amount))return"amount: string expected"}return null},f.fromObject=function(o){if(o instanceof P.cosmos.base.v1beta1.Coin)return o;let U=new P.cosmos.base.v1beta1.Coin;if(o.denom!=null)U.denom=String(o.denom);if(o.amount!=null)U.amount=String(o.amount);return U},f.toObject=function(o,U){if(!U)U={};let q={};if(U.defaults)q.denom="",q.amount="";if(o.denom!=null&&o.hasOwnProperty("denom"))q.denom=o.denom;if(o.amount!=null&&o.hasOwnProperty("amount"))q.amount=o.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.DecCoin=(()=>{function f(C){if(C){for(let o=Object.keys(C),U=0;U<o.length;++U)if(C[o[U]]!=null)this[o[U]]=C[o[U]]}}return f.prototype.denom="",f.prototype.amount="",f.create=function(o){return new f(o)},f.encode=function(o,U){if(!U)U=By.create();if(o.denom!=null&&Object.hasOwnProperty.call(o,"denom"))U.uint32(10).string(o.denom);if(o.amount!=null&&Object.hasOwnProperty.call(o,"amount"))U.uint32(18).string(o.amount);return U},f.encodeDelimited=function(o,U){return this.encode(o,U).ldelim()},f.decode=function(o,U){if(!(o instanceof p))o=p.create(o);let q=U===void 0?o.len:o.pos+U,X=new P.cosmos.base.v1beta1.DecCoin;while(o.pos<q){let G=o.uint32();switch(G>>>3){case 1:X.denom=o.string();break;case 2:X.amount=o.string();break;default:o.skipType(G&7);break}}return X},f.decodeDelimited=function(o){if(!(o instanceof p))o=new p(o);return this.decode(o,o.uint32())},f.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.denom!=null&&o.hasOwnProperty("denom")){if(!V.isString(o.denom))return"denom: string expected"}if(o.amount!=null&&o.hasOwnProperty("amount")){if(!V.isString(o.amount))return"amount: string expected"}return null},f.fromObject=function(o){if(o instanceof P.cosmos.base.v1beta1.DecCoin)return o;let U=new P.cosmos.base.v1beta1.DecCoin;if(o.denom!=null)U.denom=String(o.denom);if(o.amount!=null)U.amount=String(o.amount);return U},f.toObject=function(o,U){if(!U)U={};let q={};if(U.defaults)q.denom="",q.amount="";if(o.denom!=null&&o.hasOwnProperty("denom"))q.denom=o.denom;if(o.amount!=null&&o.hasOwnProperty("amount"))q.amount=o.amount;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.IntProto=(()=>{function f(C){if(C){for(let o=Object.keys(C),U=0;U<o.length;++U)if(C[o[U]]!=null)this[o[U]]=C[o[U]]}}return f.prototype.int="",f.create=function(o){return new f(o)},f.encode=function(o,U){if(!U)U=By.create();if(o.int!=null&&Object.hasOwnProperty.call(o,"int"))U.uint32(10).string(o.int);return U},f.encodeDelimited=function(o,U){return this.encode(o,U).ldelim()},f.decode=function(o,U){if(!(o instanceof p))o=p.create(o);let q=U===void 0?o.len:o.pos+U,X=new P.cosmos.base.v1beta1.IntProto;while(o.pos<q){let G=o.uint32();switch(G>>>3){case 1:X.int=o.string();break;default:o.skipType(G&7);break}}return X},f.decodeDelimited=function(o){if(!(o instanceof p))o=new p(o);return this.decode(o,o.uint32())},f.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.int!=null&&o.hasOwnProperty("int")){if(!V.isString(o.int))return"int: string expected"}return null},f.fromObject=function(o){if(o instanceof P.cosmos.base.v1beta1.IntProto)return o;let U=new P.cosmos.base.v1beta1.IntProto;if(o.int!=null)U.int=String(o.int);return U},f.toObject=function(o,U){if(!U)U={};let q={};if(U.defaults)q.int="";if(o.int!=null&&o.hasOwnProperty("int"))q.int=o.int;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H.DecProto=(()=>{function f(C){if(C){for(let o=Object.keys(C),U=0;U<o.length;++U)if(C[o[U]]!=null)this[o[U]]=C[o[U]]}}return f.prototype.dec="",f.create=function(o){return new f(o)},f.encode=function(o,U){if(!U)U=By.create();if(o.dec!=null&&Object.hasOwnProperty.call(o,"dec"))U.uint32(10).string(o.dec);return U},f.encodeDelimited=function(o,U){return this.encode(o,U).ldelim()},f.decode=function(o,U){if(!(o instanceof p))o=p.create(o);let q=U===void 0?o.len:o.pos+U,X=new P.cosmos.base.v1beta1.DecProto;while(o.pos<q){let G=o.uint32();switch(G>>>3){case 1:X.dec=o.string();break;default:o.skipType(G&7);break}}return X},f.decodeDelimited=function(o){if(!(o instanceof p))o=new p(o);return this.decode(o,o.uint32())},f.verify=function(o){if(typeof o!=="object"||o===null)return"object expected";if(o.dec!=null&&o.hasOwnProperty("dec")){if(!V.isString(o.dec))return"dec: string expected"}return null},f.fromObject=function(o){if(o instanceof P.cosmos.base.v1beta1.DecProto)return o;let U=new P.cosmos.base.v1beta1.DecProto;if(o.dec!=null)U.dec=String(o.dec);return U},f.toObject=function(o,U){if(!U)U={};let q={};if(U.defaults)q.dec="";if(o.dec!=null&&o.hasOwnProperty("dec"))q.dec=o.dec;return q},f.prototype.toJSON=function(){return this.constructor.toObject(this,Cy.util.toJSONOptions)},f})(),H})(),T})(),y})()});import{Chain as i8}from"@swapkit/helpers";async function Wf(){let{$root:y}=await Promise.resolve().then(() => (I5(),$5)),T=await import("@cosmjs/proto-signing"),H=T.Registry??T.default?.Registry,f=await import("@cosmjs/stargate"),C=f.defaultRegistryTypes??f.default?.defaultRegistryTypes;return new H([...C,["/types.MsgSend",y.types.MsgSend],["/types.MsgDeposit",y.types.MsgDeposit]])}async function ey(y){let T=await import("@cosmjs/stargate"),H=T.AminoTypes??T.default?.AminoTypes,f=y===i8.THORChain?"thorchain":"mayachain";return new H({"/types.MsgDeposit":{aminoType:`${f}/MsgDeposit`,fromAmino:({signer:C,...o})=>({...o,signer:ZT(C)}),toAmino:({signer:C,...o})=>({...o,signer:WT(C)})},"/types.MsgSend":{aminoType:`${f}/MsgSend`,fromAmino:({from_address:C,to_address:o,...U})=>({...U,fromAddress:ZT(C),toAddress:ZT(o)}),toAmino:({fromAddress:C,toAddress:o,...U})=>({...U,from_address:WT(C),to_address:WT(o)})}})}var TC=E(()=>{r1()});import{AssetValue as d8,Chain as z0,getChainConfig as S5,getRPCUrl as P5,SwapKitError as r8}from"@swapkit/helpers";function oC(y){let{assetValue:T,recipient:H,memo:f,sender:C,asSignable:o,asAminoMessage:U}=y;if(H)return b5({asAminoMessage:U,asSignable:o,assetValue:T,memo:f,recipient:H,sender:C});return V5({asAminoMessage:U,asSignable:o,assetValue:T,memo:f,sender:C})}async function b5({sender:y,recipient:T,assetValue:H,memo:f="",asSignable:C=!0,asAminoMessage:o=!1,sequence:U,accountNumber:q}){let X=H.chain,G=await P5(X),Z=await E5({rpcUrl:G,sender:y}),{chainId:A}=S5(X),M=CC({assetValue:H,recipient:T,sender:y}),Q=C?await yf(o?M:ff(M),X):M;return{accountNumber:q||Number(Z.accountNumber),chainId:A,fee:my(X),memo:f,msgs:[Q],sequence:U||Z.sequence}}async function V5({sender:y,assetValue:T,memo:H="",asSignable:f=!0,asAminoMessage:C=!1,sequence:o,accountNumber:U}){let q=T.chain,X=await P5(q),G=await E5({rpcUrl:X,sender:y}),{chainId:Z}=S5(q),A=HC({assetValue:T,memo:H,sender:y}),M=f?await yf(C?A:ff(A),q):A;return{accountNumber:U||Number(G.accountNumber),chainId:Z,fee:my(q),memo:H,msgs:[M],sequence:o||G.sequence}}function ff(y){if(y.type==="thorchain/MsgSend"||y.type==="mayachain/MsgSend")return y;return{...y,value:{...y.value,coins:y.value.coins.map((T)=>{let H=d8.from({asset:T.asset}),f=(H.isSynthetic?H.symbol.split("/")?.[1]:H.symbol)?.toUpperCase(),C=(H.isSynthetic?H.symbol.split("/")?.[0]:H.chain)?.toUpperCase();return{...T,asset:{chain:C,symbol:f,synth:H.isSynthetic,ticker:H.ticker}}})}}}async function YT({chain:y,memo:T,msgs:H}){let f=await Wf(),C=await ey(y),o={typeUrl:"/cosmos.tx.v1beta1.TxBody",value:{memo:T,messages:H.map((U)=>C.fromAmino(U))}};return f.encode(o)}var a8,s8,CC=({sender:y,recipient:T,assetValue:H})=>{return{type:`${H.chain===z0.Maya?"mayachain":"thorchain"}/MsgSend`,value:{amount:[{amount:H.getBaseValue("string"),denom:sy(H.symbol,!0)}],from_address:y,to_address:T}}},HC=({sender:y,assetValue:T,memo:H=""})=>{return{type:`${T.chain===z0.Maya?"mayachain":"thorchain"}/MsgDeposit`,value:{coins:[{amount:T.getBaseValue("string"),asset:LT(T)}],memo:H,signer:y}}},N0=({sender:y,recipient:T,assetValue:H,memo:f})=>{return!T?HC({assetValue:H,memo:f,sender:y}):CC({assetValue:H,recipient:T,sender:y})},yf=async(y,T)=>{return(await ey(T)).fromAmino(y)},E5=async({rpcUrl:y,sender:T})=>{let f=await(await ty(y)).getAccount(T);if(!f)throw new r8("toolbox_cosmos_account_not_found",{sender:T});return f};var v5=E(()=>{AT();TC();a8=my(z0.THORChain).gas,s8=my(z0.Maya).gas});var p5=()=>{};var l5=E(()=>{p5()});var UC=E(()=>{r1();v5();TC();l5()});import{stringToPath as e8}from"@cosmjs/crypto";import{DirectSecp256k1HdWallet as yq}from"@cosmjs/proto-signing";import{base64 as GC,bech32 as qC}from"@scure/base";import{AssetValue as QC,applyFeeMultiplier as j5,Chain as Uy,CosmosChainPrefixes as c5,DerivationPath as fq,derivationPathToString as K5,FeeOption as _C,getChainConfig as Tq,getRPCUrl as JT,NetworkDerivationPath as Cq,SwapKitError as If,SwapKitNumber as XC,updateDerivationPath as Hq}from"@swapkit/helpers";import{SwapKitApi as g5}from"@swapkit/helpers/api";import{match as oq,P as u5}from"ts-pattern";async function ZC(y,T){try{let f=(await g5.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}async function MC({phrase:y,prefix:T,...H}){let f="derivationPath"in H?H.derivationPath:`${fq[H.chain]}/${H.index}`;return await yq.fromMnemonic(y,{hdPaths:[e8(f)],prefix:T})}async function Uq({privateKey:y,prefix:T}){let H=await import("@cosmjs/proto-signing");return(H.DirectSecp256k1Wallet??H.default?.DirectSecp256k1Wallet).fromKey(y,T)}function i5(y){return async function({signature:H,message:f,address:C}){let o=await y(C);if(!o?.pubkey)throw new If("toolbox_cosmos_verify_signature_no_pubkey");let U=await import("@cosmjs/crypto"),q=U.Secp256k1Signature??U.default?.Secp256k1Signature,X=U.Secp256k1??U.default?.Secp256k1,G=q.fromFixedLength(GC.decode(H));return X.verifySignature(G,GC.decode(f),o.pubkey.value)}}function zT({chain:y,...T}){let H=c5[y],f="index"in T?T.index||0:0,C=K5("derivationPath"in T&&T.derivationPath?T.derivationPath:Hq(Cq[y],{index:f})),o;async function U(){if(o)return o;return o=await oq(T).with({phrase:u5.string},({phrase:Q})=>MC({derivationPath:C,phrase:Q,prefix:H})).with({signer:u5.any},({signer:Q})=>Q).otherwise(()=>{return}),o}async function q(Q){let N=await JT(y);return(await ty(N)).getAccount(Q)}async function X(){let Q=await U(),[N]=await Q?.getAccounts()||[];return N?.address}async function G(){let Q=await U(),[N]=await Q?.getAccounts()||[];if(!N?.pubkey)throw new If("toolbox_cosmos_signer_not_defined");return GC.encode(N?.pubkey)}async function Z(Q){let N=await U(),J=await X(),B=await JT(y);if(!(N&&J))throw new If("toolbox_cosmos_signer_not_defined");return await(await Zf(B,N)).sign(J,Q.msgs,Q.fee,Q.memo,{accountNumber:BigInt(Q.accountNumber),chainId:Q.chainId,sequence:Q.sequence})}async function A(Q){let N=await U(),J=await X(),B=await JT(y);if(!(N&&J))throw new If("toolbox_cosmos_signer_not_defined");let W=await(await Zf(B,N)).signAndBroadcast(J,Q.msgs,Q.fee,Q.memo);if(W.code!==0)throw new If("core_swap_transaction_error",{code:W.code,message:W.rawLog});return W.transactionHash}async function M({recipient:Q,assetValue:N,memo:J="",feeRate:B,feeOptionKey:D=_C.Fast}){let W=await U(),R=await X();if(!(W&&R))throw new If("toolbox_cosmos_signer_not_defined");let O=await JT(y),Y=QC.from({chain:y}),_=LT(Y),L=B||Gq((await m5(y,h5[y]))[D],_),x=await Zf(O,W),w=sy(N.symbol),n=[{amount:N.getBaseValue("string"),denom:w}],{transactionHash:k}=await x.sendTokens(R,Q,n,L,J);return k}return{createPrivateKeyFromPhrase:_q(C),createTransaction:yC,fetchFeeRateFromSwapKit:ZC,getAccount:q,getAddress:X,getBalance:async(Q,N)=>{let J=await t5(y)(Q),B=await Promise.all(J.filter(({denom:D})=>D&&!D.includes("IBC/")&&!([Uy.THORChain,Uy.Maya].includes(y)&&D.split("-").length>2)).map(({denom:D,amount:W})=>{let R=[Uy.THORChain,Uy.Maya].includes(y)&&(D.includes("/")||D.includes("˜"))?`${y}.${D}`:D;return fC(R,W)}));if(B.length===0)return[QC.from({chain:y})];return B},getBalanceAsDenoms:t5(y),getFees:()=>m5(y,h5[y]),getPubKey:G,getSignerFromPhrase:({phrase:Q,derivationPath:N})=>MC({derivationPath:K5(N),index:f,phrase:Q,prefix:H}),getSignerFromPrivateKey:async(Q)=>{let N=await import("@cosmjs/proto-signing");return(N.DirectSecp256k1Wallet??N.default?.DirectSecp256k1Wallet).fromKey(Q,H)},signAndBroadcastTransaction:A,signTransaction:Z,transfer:M,validateAddress:d5(y),verifySignature:i5(q)}}async function qq(y,T){try{let f=(await g5.getGasRate()).find((C)=>C.chainId===y)?.value;return f?Number.parseFloat(f):T}catch{return T}}function Xq({assetValue:{chain:y}}){return QC.from({chain:y,value:Qq(y)})}async function m5(y,T){let{chainId:H,baseDecimal:f}=Tq(y),C=await ZC(H,T);return{average:XC.fromBigInt(BigInt(C),f),fast:XC.fromBigInt(BigInt(j5(C,_C.Fast,!0)),f),fastest:XC.fromBigInt(BigInt(j5(C,_C.Fastest,!0)),f)}}function Gq(y,T){return{amount:[{amount:y.getBaseValue("string"),denom:T}],gas:"200000"}}function Qq(y){return{[Uy.Cosmos]:0.007,[Uy.Kujira]:0.02,[Uy.Noble]:0.01,[Uy.THORChain]:0.02,[Uy.Maya]:0.02,[Uy.Harbor]:0.02}[y]||0}function d5(y){let T=c5[y];return function(f){if(!f.startsWith(T))return!1;try{let{prefix:C,words:o}=qC.decode(f);return qC.encode(C,o)===f.toLocaleLowerCase()}catch{return!1}}}function t5(y){return async function(H){let f=await JT(y);return(await(await ty(f)).getAllBalances(H)).map((q)=>({...q,denom:q.denom.includes("/")?q.denom.toUpperCase():q.denom}))}}function _q(y){return async function(H){let f=await import("@cosmjs/crypto"),C=f.stringToPath??f.default?.stringToPath,o=f.Slip10Curve??f.default?.Slip10Curve,U=f.Slip10??f.default?.Slip10,q=f.EnglishMnemonic??f.default?.EnglishMnemonic,X=f.Bip39??f.default?.Bip39,G=new q(H),Z=await X.mnemonicToSeed(G),{privkey:A}=U.derivePath(o.Secp256k1,Z,C(y));return A}}var h5;var B0=E(()=>{AT();h5={[Uy.Cosmos]:1000,[Uy.Kujira]:1000,[Uy.Noble]:1000,[Uy.THORChain]:5000000,[Uy.Maya]:5000000,[Uy.Harbor]:5000000}});import{base64 as Lf}from"@scure/base";import{Chain as Mq,CosmosChainPrefixes as Zq,derivationPathToString as Wq,FeeOption as WC,getChainConfig as Lq,getRPCUrl as yo,NetworkDerivationPath as Aq,RequestClient as Yq,SKConfig as r5,SwapKitError as Sf,SwapKitNumber as a5,updateDerivationPath as Jq}from"@swapkit/helpers";import{match as s5,P as e5}from"ts-pattern";function zq({prefix:y,derivationPath:T}){return async function(f,C=0){let o=await import("@cosmjs/amino"),U=o.Secp256k1HdWallet??o.default?.Secp256k1HdWallet,q=await import("@cosmjs/crypto"),X=q.stringToPath??q.default?.stringToPath;return U.fromMnemonic(f,{hdPaths:[X(`${T}/${C}`)],prefix:y})}}function Nq(y){return Lf.encode(y)}function Bq(y){return async function({wallet:H,tx:f}){let{msgs:C,accountNumber:o,sequence:U,chainId:q,fee:X,memo:G}=typeof f==="string"?JSON.parse(f):f,Z=(await H.getAccounts())?.[0]?.address||"",A=await ey(y),M=await Wf(),Q=await e1(H,{aminoTypes:A,registry:M}),N=[];for(let D of C){let W=await yf(D,y);N.push(W)}let{signatures:[J]}=await Q.sign(Z,N,X,G,{accountNumber:BigInt(o),chainId:q,sequence:U});return{bodyBytes:await YT({chain:y,memo:G,msgs:C.map(ff)}),signature:Nq(J)}}}function Oq({prefix:y,chain:T}){return async function(f,C,o,U,q){let X=await yo(T),{encodeSecp256k1Pubkey:G,pubkeyToAddress:Z}=(await import("@cosmjs/amino")).default,{makeMultisignedTxBytes:A}=(await import("@cosmjs/stargate")).default,{sequence:M,fee:Q}=JSON.parse(f),N=await fo(o,U),J=C.map((W)=>[Z(G(Lf.decode(W.pubKey)),y),Lf.decode(W.signature)]),B=await ty(X),{transactionHash:D}=await B.broadcastTx(A(N,M,Q,q,new Map(J)));return D}}async function fo(y,T,H=!0){let{createMultisigThresholdPubkey:f,encodeSecp256k1Pubkey:C}=(await import("@cosmjs/amino")).default;return f(y.map((o)=>C(Lf.decode(o))),T,H)}function Dq(y){return Lf.decode(y)}async function Rq({privateKey:y,message:T}){let{Secp256k1:H}=(await import("@cosmjs/crypto")).default,f=await H.createSignature(Lf.decode(T),y);return Lf.encode(Buffer.concat([f.r(32),f.s(32)]))}function LC({chain:y,...T}){let{isStagenet:H}=r5.get("envs"),f=r5.get("thornodeUrls"),C=y===Mq.Maya,o=s5({isMayachain:C,isStagenet:H}).with({isMayachain:!0},({isStagenet:W})=>W?f.MAYA_STAGENET:f.MAYA).otherwise(({isStagenet:W})=>W?f.THOR_STAGENET:f.THOR),U=`${H?"s":""}${Zq[y]}`,q="index"in T?T.index||0:0,X="derivationPath"in T&&T.derivationPath?T.derivationPath:Jq(Aq[y],{index:q}),G=zT({chain:y,...T}),Z=my(y),A;function M(){return A??=s5(T).with({phrase:e5.string},({phrase:W})=>G.getSignerFromPhrase({derivationPath:X,phrase:W})).with({signer:e5.any},({signer:W})=>Promise.resolve(W)).otherwise(()=>Promise.resolve(void 0)),A}async function Q(){let W=await yo(y),R=await M();if(!R)throw new Sf("toolbox_cosmos_no_signer");let O=await Wf(),Y=await ey(y),_=await Zf(W,R,{aminoTypes:Y,registry:O});return{signer:R,signingClient:_}}async function N({fee:W,memo:R,msgs:O}){let{signer:Y,signingClient:_}=await Q(),L=(await Y.getAccounts())?.[0]?.address;if(!L)throw new Sf("toolbox_cosmos_signer_not_defined");let x=await _.signAndBroadcast(L,O,W,R);if(x.code!==0)throw new Sf("core_swap_transaction_error",{code:x.code,message:x.rawLog});return x.transactionHash}async function J(){let W,R=`${o}/${C?"mayachain":"thorchain"}/constants`;try{let{int_64_values:{NativeTransactionFee:O}}=await Yq.get(R);if(!O||Number.isNaN(O)||O<0)throw new Sf("toolbox_cosmos_invalid_fee",{nativeFee:O.toString()});W=new a5(O)}catch{W=new a5({decimal:Lq(y).baseDecimal,value:C?1:0.02})}return{[WC.Average]:W,[WC.Fast]:W,[WC.Fastest]:W}}async function B({assetValue:W,memo:R="",recipient:O}){let{TxRaw:Y}=await import("cosmjs-types/cosmos/tx/v1beta1/tx"),{signer:_,signingClient:L}=await Q(),x=(await _.getAccounts())?.[0]?.address;if(!x)throw new Sf("toolbox_cosmos_no_signer");let w="signAmino"in _,n=N0({assetValue:W,memo:R,recipient:O,sender:x});if(w){let z=await yf(n,y),{signatures:F,authInfoBytes:I}=await L.sign(x,[z],Z,R),v=Y.encode({authInfoBytes:I,bodyBytes:await YT({chain:y,memo:R,msgs:[n].map(ff)}),signatures:F}).finish();return(await L.broadcastTx(v)).transactionHash}let k=ff(n),$=await yf(k,y);return N({fee:Z,memo:R,msgs:[$]})}async function D(W){let{signer:R,signingClient:O}=await Q(),Y=(await R.getAccounts())?.[0]?.address;if(!Y)throw new Sf("toolbox_cosmos_signer_not_defined");return O.sign(Y,W.msgs,W.fee,W.memo,{accountNumber:BigInt(W.accountNumber),chainId:W.chainId,sequence:W.sequence})}return{...G,broadcastMultisigTx:Oq({chain:y,prefix:U}),buildAminoMsg:N0,buildEncodedTxBody:YT,convertToSignable:yf,createDefaultAminoTypes:()=>ey(y),createDefaultRegistry:Wf,createMultisig:fo,createTransaction:oC,deposit:B,getFees:J,importSignature:Dq,parseAminoMessageForDirectSigning:ff,pubkeyToAddress:async(W)=>{let{pubkeyToAddress:R}=(await import("@cosmjs/amino")).default;return R(W,U)},secp256k1HdWalletFromMnemonic:zq({derivationPath:Wq(X),prefix:U}),signAndBroadcastTransaction:N,signMultisigTx:Bq(y),signTransaction:D,signWithPrivateKey:Rq,transfer:B}}var AC=E(()=>{UC();AT();B0()});import{Chain as NT,SwapKitError as xq}from"@swapkit/helpers";var nq=(y,T)=>{switch(y){case NT.Cosmos:case NT.Kujira:case NT.Noble:return zT({chain:y,...T});case NT.Maya:case NT.THORChain:return LC({chain:y,...T});default:throw new xq("toolbox_cosmos_not_supported",{chain:y})}};var To=E(()=>{B0();AC();B0();AC()});var O0={};Ty(O0,{verifySignature:()=>i5,transferMsgAmino:()=>CC,toBase64:()=>h8,parseAminoMessageForDirectSigning:()=>ff,getSignerFromPrivateKey:()=>Uq,getSignerFromPhrase:()=>MC,getMsgSendDenom:()=>sy,getFeeRateFromSwapKit:()=>qq,getDenomWithChain:()=>LT,getDefaultChainFee:()=>my,getCosmosToolbox:()=>nq,getCosmosAddressValidator:()=>d5,getAssetFromDenom:()=>fC,fromBase64:()=>m8,fetchFeeRateFromSwapKit:()=>ZC,estimateTransactionFee:()=>Xq,depositMsgAmino:()=>HC,createTransaction:()=>oC,createThorchainToolbox:()=>LC,createStargateClient:()=>ty,createSigningStargateClient:()=>Zf,createOfflineStargateClient:()=>e1,createDefaultRegistry:()=>Wf,createDefaultAminoTypes:()=>ey,createCosmosToolbox:()=>zT,cosmosCreateTransaction:()=>yC,convertToSignable:()=>yf,buildTransferTx:()=>b5,buildEncodedTxBody:()=>YT,buildDepositTx:()=>V5,buildAminoMsg:()=>N0,bech32ToBase64:()=>ZT,base64ToBech32:()=>WT,YUM_KUJIRA_FACTORY_DENOM:()=>n5,USK_KUJIRA_FACTORY_DENOM:()=>s1,THORCHAIN_GAS_VALUE:()=>a8,MAYA_GAS_VALUE:()=>s8,DEFAULT_NOBLE_FEE_MAINNET:()=>F5,DEFAULT_KUJI_FEE_MAINNET:()=>k5,DEFAULT_COSMOS_FEE_MAINNET:()=>w5});var D0=E(()=>{UC();To();AT()});function wq({builder:y,grouping:T="na",orders:H}){return{builder:y,grouping:T,orders:H,type:"order"}}function kq({cancels:y}){return{cancels:y,type:"cancel"}}function Fq({cancels:y}){return{cancels:y,type:"cancelByCloid"}}function $q({oid:y,order:T}){return{oid:y,order:T,type:"modify"}}function Iq({modifies:y}){return{modifies:y,type:"batchModify"}}function Sq({asset:y,isCross:T,leverage:H}){return{asset:y,isCross:T,leverage:H,type:"updateLeverage"}}function Pq({asset:y,isBuy:T,ntli:H}){return{asset:y,isBuy:T,ntli:H,type:"updateIsolatedMargin"}}function Eq({asset:y,leverage:T}){return{asset:y,leverage:T,type:"topUpIsolatedOnlyMargin"}}function bq({time:y}){return{time:y,type:"scheduleCancel"}}function Vq({amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C}){return{amount:y,hyperliquidChain:T,nonce:H,signatureChainId:f,toPerp:C,type:"usdClassTransfer"}}function vq({amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:o,signatureChainId:U,sourceDex:q,token:X}){return{amount:y,destination:T,destinationDex:H,fromSubAccount:f,hyperliquidChain:C,nonce:o,signatureChainId:U,sourceDex:q,token:X,type:"sendAsset"}}function pq({agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C}){return{agentAddress:y,agentName:T,hyperliquidChain:H,nonce:f,signatureChainId:C,type:"approveAgent"}}function lq({builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C}){return{builder:y,hyperliquidChain:T,maxFeeRate:H,nonce:f,signatureChainId:C,type:"approveBuilderFee"}}function jq({hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,validator:C,wei:o}){return{hyperliquidChain:y,isUndelegate:T,nonce:H,signatureChainId:f,type:"tokenDelegate",validator:C,wei:o}}import{SwapKitError as YC}from"@swapkit/helpers";import{keccak256 as Kq,Signature as uq}from"ethers";function Ay(...y){let T=y.reduce((C,o)=>C+o.length,0),H=new Uint8Array(T),f=0;for(let C of y)H.set(C,f),f+=C.length;return H}function iq(y,T,H){if(H<T)return new Uint8Array([y+H]);if(H<=255)return new Uint8Array([y+T,H]);if(H<=65535)return new Uint8Array([y+T+1,H>>8,H&255]);return new Uint8Array([y+T+2,H>>>24&255,H>>>16&255,H>>>8&255,H&255])}function Tf(y,T){let H=new Uint8Array(T),f=y;for(let C=T-1;C>=0;C-=1)H[C]=Number(f&0xffn),f>>=8n;return H}function Co(y){if(y>=0n){if(y<=0x7fn)return new Uint8Array([Number(y)]);if(y<=0xffn)return new Uint8Array([204,Number(y)]);if(y<=0xffffn)return Ay(new Uint8Array([205]),Tf(y,2));if(y<=0xffffffffn)return Ay(new Uint8Array([206]),Tf(y,4));return Ay(new Uint8Array([207]),Tf(y,8))}if(y>=-32n)return new Uint8Array([256+Number(y)]);if(y>=-128n)return new Uint8Array([208,256+Number(y)]);if(y>=-32768n)return Ay(new Uint8Array([209]),Tf(BigInt.asUintN(16,y),2));if(y>=-2147483648n)return Ay(new Uint8Array([210]),Tf(BigInt.asUintN(32,y),4));return Ay(new Uint8Array([211]),Tf(BigInt.asUintN(64,y),8))}function Uo(y){let T=gq.encode(y);if(T.length<32)return Ay(new Uint8Array([160+T.length]),T);return Ay(iq(217,0,T.length),T)}function dq(y){let T=y.map((f)=>JC(f)),H=y.length<16?new Uint8Array([144+y.length]):y.length<=65535?new Uint8Array([220,y.length>>8,y.length&255]):new Uint8Array([221,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Ay(H,...T)}function rq(y){let T=Object.entries(y).filter(([,f])=>typeof f<"u"),H=T.length<16?new Uint8Array([128+T.length]):T.length<=65535?new Uint8Array([222,T.length>>8,T.length&255]):new Uint8Array([223,T.length>>>24&255,T.length>>>16&255,T.length>>>8&255,T.length&255]);return Ay(H,...T.flatMap(([f,C])=>[Uo(f),JC(C)]))}function JC(y){if(y===null)return new Uint8Array([192]);if(typeof y==="boolean")return new Uint8Array([y?195:194]);if(typeof y==="string")return Uo(y);if(typeof y==="number"){if(!Number.isFinite(y)||!Number.isInteger(y))throw new YC("helpers_invalid_params",{message:"Hyperliquid msgpack only supports integers"});return Co(BigInt(y))}if(typeof y==="bigint")return Co(y);if(y instanceof Uint8Array){let T=y.length<=255?new Uint8Array([196,y.length]):y.length<=65535?new Uint8Array([197,y.length>>8,y.length&255]):new Uint8Array([198,y.length>>>24&255,y.length>>>16&255,y.length>>>8&255,y.length&255]);return Ay(T,y)}if(Array.isArray(y))return dq(y);if(typeof y==="object")return rq(y);throw new YC("helpers_invalid_params",{message:`Unsupported Hyperliquid msgpack value: ${String(y)}`})}function aq(y){let T=y.startsWith("0x")?y.slice(2):y;if(T.length%2!==0||/[^a-fA-F0-9]/u.test(T))throw new YC("helpers_invalid_params",{hexValue:y});let H=new Uint8Array(T.length/2);for(let f=0;f<T.length;f+=2)H[f/2]=Number.parseInt(T.slice(f,f+2),16);return H}function qo(y){return{domain:hq,message:{connectionId:y,source:"a"},primaryType:"Agent",types:{Agent:[...mq.Agent]}}}function Xo(y){let T=cq[y.type],H=tq[y.type],{type:f,...C}=y;return{domain:{chainId:Number.parseInt(C.signatureChainId||"0xa4b1",16),name:"HyperliquidSignTransaction",verifyingContract:Ho,version:"1"},message:{...C,hyperliquidChain:C.hyperliquidChain||oo},primaryType:T,types:{[T]:H}}}function Go(y){let T=uq.from(y);return{r:T.r,s:T.s,v:T.v}}function Qo(y,T,{expiresAfter:H,vaultAddress:f}={}){let C=JC(y),o=Tf(BigInt(T),8),U=f?Ay(new Uint8Array([1]),aq(f.toLowerCase())):new Uint8Array([0]),q=typeof H==="number"?Ay(new Uint8Array([0]),Tf(BigInt(H),8)):new Uint8Array;return Kq(Ay(C,o,U,q))}function _o(y){let T=y.hyperliquidChain||oo;switch(y.type){case"approveAgent":return{...y,agentAddress:y.agentAddress.toLowerCase(),hyperliquidChain:T};case"approveBuilderFee":return{...y,builder:y.builder.toLowerCase(),hyperliquidChain:T};case"sendAsset":return{...y,destination:y.destination.toLowerCase(),fromSubAccount:y.fromSubAccount.toLowerCase(),hyperliquidChain:T};case"tokenDelegate":return{...y,hyperliquidChain:T,validator:y.validator.toLowerCase()};case"usdClassTransfer":return{...y,hyperliquidChain:T};default:return y}}var Ho="0x0000000000000000000000000000000000000000",hq,mq,oo="Mainnet",tq,cq,gq;var Mo=E(()=>{hq={chainId:1337,name:"Exchange",verifyingContract:Ho,version:"1"},mq={Agent:[{name:"source",type:"string"},{name:"connectionId",type:"bytes32"}]},tq={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"}]},cq={approveAgent:"HyperliquidTransaction:ApproveAgent",approveBuilderFee:"HyperliquidTransaction:ApproveBuilderFee",sendAsset:"HyperliquidTransaction:SendAsset",tokenDelegate:"HyperliquidTransaction:TokenDelegate",usdClassTransfer:"HyperliquidTransaction:UsdClassTransfer"},gq=new TextEncoder});import{AssetValue as BC,Chain as sq,derivationPathToString as eq,getChainConfig as Lo,getRPCUrl as yX,NetworkDerivationPath as fX,RequestClient as Pf,SwapKitError as Ef,updateDerivationPath as TX}from"@swapkit/helpers";import{HDNodeWallet as CX}from"ethers";import{match as HX,P as zC}from"ts-pattern";function wy(y,T){if(!DC(y))throw new Ef(T,{address:y});return y.toLowerCase()}async function Af(y){let T=await R0();return Pf.post(`${T}/info`,{json:y})}function _X({dex:y,user:T}){return Af({...y?{dex:y}:{},type:"clearinghouseState",user:wy(T,"helpers_invalid_params")})}function MX({user:y}){return Af({type:"spotClearinghouseState",user:wy(y,"helpers_invalid_params")})}function ZX({dex:y,user:T}){return Af({...y?{dex:y}:{},type:"openOrders",user:wy(T,"helpers_invalid_params")})}function WX({dex:y,user:T}){return Af({...y?{dex:y}:{},type:"frontendOpenOrders",user:wy(T,"helpers_invalid_params")})}function LX({oidOrCloid:y,user:T}){return Af({oid:y,type:"orderStatus",user:wy(T,"helpers_invalid_params")})}function AX({aggregateByTime:y,user:T}){return Af({...typeof y==="boolean"?{aggregateByTime:y}:{},type:"userFills",user:wy(T,"helpers_invalid_params")})}function YX({aggregateByTime:y,endTime:T,startTime:H,user:f}){return Af({...typeof y==="boolean"?{aggregateByTime:y}:{},...typeof T==="number"?{endTime:T}:{},startTime:H,type:"userFillsByTime",user:wy(f,"helpers_invalid_params")})}function Zo({coin:y,token:T,value:H,spotMeta:f}){if(!H||Number(H)<=0)return null;let C=y?.toUpperCase()||`TOKEN-${T||"UNKNOWN"}`,o=oX[C]||Ao,U=f?.tokens?.find((X)=>X.name===y||T!==void 0&&X.index===Number(T)),q=U?`${Vy}.${C}-${U.name}:${U.tokenId}`:`${Vy}.${C}`;return new BC({decimal:o,identifier:q,value:H})}function JX(y){let T=new Map;for(let H of y){let f=H.toString({includeSynthProtocol:!0}),C=T.get(f);T.set(f,C?C.add(H):H)}if(![...T.values()].some((H)=>H.isGasAsset||H.ticker==="HYPE")){let H=BC.from({chain:Vy,value:0});T.set(H.toString({includeSynthProtocol:!0}),H)}return[...T.values()]}async function R0(){try{return await yX(Vy)}catch{let[y]=Lo(Vy).rpcUrls;if(!y)throw new Ef("helpers_chain_no_public_or_set_rpc_url",{chain:Vy});return y}}async function OC(){return`${await R0()}/exchange`}function zX(y){let T=QX[y.type],{type:H,...f}=y,C=GX[H];return{domain:{chainId:Number.parseInt(y.signatureChainId,16),name:"HyperliquidSignTransaction",verifyingContract:XX,version:"1"},message:f,primaryType:T,types:{[T]:C}}}async function Yo({action:y,expiresAfter:T,nonce:H,vaultAddress:f}){let C=H||Date.now(),o=f?wy(f,"helpers_invalid_params"):void 0,U=await OC(),q=Qo(y,C,{expiresAfter:T,vaultAddress:o});return{action:y,endpoint:U,expiresAfter:T,nonce:C,typedData:qo(q),vaultAddress:o}}async function Jo({action:y,nonce:T,signatureChainId:H}){let f=T||y.nonce||Date.now(),C=H||y.signatureChainId||"0xa4b1",o=_o({...y,nonce:f,signatureChainId:C});return{action:o,endpoint:await OC(),nonce:f,typedData:Xo(o)}}async function NC({assetValue:y,recipient:T,sender:H,signatureChainId:f,time:C}){let o=wy(T,"core_transaction_invalid_recipient_address"),U=wy(H,"core_transaction_invalid_sender_address"),q=await OC(),X=y.getValue("string"),G=C||Date.now(),Z=y.address;if(!Z)throw new Ef("helpers_invalid_params",{asset:y.toString(),from:U});let A={amount:X,destination:o,hyperliquidChain:UX,signatureChainId:f||qX,time:G,token:Z,type:"spotSend"};return{action:A,endpoint:q,nonce:G,typedData:zX(A)}}async function Wo(y){let T=await Pf.post(y.endpoint,{json:{action:y.action,...typeof y.expiresAfter==="number"?{expiresAfter:y.expiresAfter}:{},nonce:y.nonce,signature:y.signature,...y.vaultAddress?{vaultAddress:y.vaultAddress}:{}}});if(T.status!=="ok")throw new Ef("core_transaction_failed",{response:T});return T}async function NX(y,T){let H=await R0(),f=T-5000;for(let C=0;C<5;C++){if(C>0)await new Promise((o)=>setTimeout(o,1000));try{let o=await Pf.post(`${H}/info`,{json:{startTime:f,type:"userNonFundingLedgerUpdates",user:y}}),U=Array.isArray(o)?o.find((q)=>q.time&&q.time>=T&&(q.delta?.type==="spotTransfer"||q.delta?.type==="internalTransfer")):void 0;if(U?.hash)return U.hash}catch{}}return""}function DC(y){return y.startsWith("0x")&&GT(y)}function BX(y){let T=Wy(Vy),H=y&&"index"in y?y.index||0:0,f=eq(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:TX(fX[Vy],{index:H})),C,o=!1;function U(){if(o)return C;return C=HX(y).with({phrase:zC.string},({phrase:M})=>{return CX.fromPhrase(M,void 0,f)}).with({signer:zC.not(zC.nullish)},({signer:M})=>M).otherwise(()=>{return}),o=!0,C}async function q(){let M=U();return M?await M.getAddress():""}async function X(M){let Q=U();if(!Q)throw new Ef("toolbox_hypercore_no_signer");let N=await Q.signTypedData(M.typedData.domain,M.typedData.types,M.typedData.message);return{action:M.action,endpoint:M.endpoint,nonce:M.nonce,signature:Go(N),..."expiresAfter"in M?{expiresAfter:M.expiresAfter}:{},..."vaultAddress"in M?{vaultAddress:M.vaultAddress}:{}}}async function G(M){let Q=wy(M,"helpers_invalid_params");try{let N=await R0(),[J,B,D]=await Promise.all([Pf.post(`${N}/info`,{json:{type:"spotClearinghouseState",user:Q}}),Pf.post(`${N}/info`,{json:{type:"clearinghouseState",user:Q}}),Pf.post(`${N}/info`,{json:{type:"spotMeta"}})]),W=(J.spotState?.balances||J.balances||[]).map(({coin:O,token:Y,total:_})=>Zo({coin:O,spotMeta:D,token:Y,value:_})).filter((O)=>!!O),R=Zo({coin:"USDC",spotMeta:D,value:B.withdrawable||B.marginSummary?.accountValue||B.marginSummary?.totalRawUsd});return JX(R?[...W,R]:W)}catch{return T(Q)}}async function Z(M){let Q=U();if(!Q)throw new Ef("toolbox_hypercore_no_signer");let N=M.sender||await Q.getAddress(),J=await NC({...M,feeRate:0,sender:N}),B=await X(J);return await Wo(B),NX(N,J.nonce)}function A(){return BC.from({chain:Vy,value:0})}return{broadcastTransaction:Wo,createL1ActionRequest:Yo,createTransaction:NC,createUserSignedActionRequest:Jo,estimateTransactionFee:A,getAddress:q,getBalance:G,getState:{clearinghouse:_X,frontendOpenOrders:WX,openOrders:ZX,orderStatus:LX,spotClearinghouse:MX,userFills:AX,userFillsByTime:YX},signTransaction:X,transfer:Z,validateAddress:DC}}var Vy,Ao,oX,UX="Mainnet",qX="0xa4b1",XX="0x0000000000000000000000000000000000000000",GX,QX;var zo=E(()=>{h1();uy();Mo();Vy=sq.Hype,{baseDecimal:Ao}=Lo(Vy),oX={HYPE:Ao,USDC:6,USDT:6},GX={spotSend:[{name:"hyperliquidChain",type:"string"},{name:"destination",type:"string"},{name:"token",type:"string"},{name:"amount",type:"string"},{name:"time",type:"uint64"}]},QX={spotSend:"HyperliquidTransaction:SpotSend"}});var RC={};Ty(RC,{validateHyperCoreAddress:()=>DC,getHyperCoreToolbox:()=>BX,createUserSignedActionRequest:()=>Jo,createTransaction:()=>NC,createL1ActionRequest:()=>Yo,buildUsdClassTransferAction:()=>Vq,buildUpdateLeverageAction:()=>Sq,buildUpdateIsolatedMarginAction:()=>Pq,buildTopUpIsolatedOnlyMarginAction:()=>Eq,buildTokenDelegateAction:()=>jq,buildSendAssetAction:()=>vq,buildScheduleCancelAction:()=>bq,buildOrderAction:()=>wq,buildModifyAction:()=>$q,buildCancelByCloidAction:()=>Fq,buildCancelAction:()=>kq,buildBatchModifyAction:()=>Iq,buildApproveBuilderFeeAction:()=>lq,buildApproveAgentAction:()=>pq});var xC=E(()=>{zo()});import{PublicKey as Cf}from"@solana/web3.js";import{AssetValue as x0,Chain as gy,DerivationPath as OX,derivationPathToString as DX,getChainConfig as Do,getRPCUrl as RX,NetworkDerivationPath as xX,SwapKitError as bf,updateDerivationPath as nX}from"@swapkit/helpers";import{match as wX,P as No}from"ts-pattern";async function Ro(y){let T=x0.from({address:y,chain:gy.Solana});if(T.symbol!=="UNKNOWN")return{decimals:T.decimal||0,id:y,logoURI:T.getIconUrl(),name:T.symbol,symbol:T.ticker};let H=`https://lite-api.jup.ag/tokens/v2/search?query=${encodeURIComponent(y)}`;try{let f=await fetch(H);if(!f.ok)return null;let C=await f.json();if(!Array.isArray(C)||C.length===0)return null;return C.find((U)=>U.id===y)||null}catch{return null}}async function kX(y){let T=await cy(),{PublicKey:H}=await import("@solana/web3.js"),{TOKEN_PROGRAM_ID:f}=await import("@solana/spl-token"),C=new H(y),{baseDecimal:o}=Do(gy.Solana),U=await T.getBalance(C),q=[x0.from({chain:gy.Solana,fromBaseDecimal:o,value:U||0})],X=await T.getParsedTokenAccountsByOwner(C,{programId:f});for(let{account:G}of X.value){let Z=G.data.parsed.info,A=Z.mint,M=Z.tokenAmount.amount;if(Number(M)===0)continue;let Q=await Ro(A),N=Q?.symbol||"UNKNOWN",J=Q?.decimals||Z.tokenAmount.decimals;q.push(x0.from({asset:`${gy.Solana}.${N}-${A}`,fromBaseDecimal:J,value:M}))}return q}function wC(y){try{let T=new Cf(y);return Cf.isOnCurve(T.toBytes())}catch{return!1}}function FX(y){let T=y&&"index"in y?y.index||0:0,H=DX(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:nX(xX[gy.Solana],{index:T})),f;async function C(){if(f)return f;return f=await wX(y).with({phrase:No.string},({phrase:U})=>nC({derivationPath:H,phrase:U})).with({signer:No.any},({signer:U})=>U).otherwise(()=>{return}),f}async function o(){let U=await C();return U?.publicKey?Oo(U.publicKey):""}return{broadcastTransaction:n0(cy),createKeysForPath:nC,createTransaction:kC(cy),createTransactionFromInstructions:PX,estimateTransactionFee:$X(cy),getAddress:o,getAddressFromPubKey:Oo,getBalance:Wy(gy.Solana),getBalanceFromRPC:kX,getConnection:cy,getPubkeyFromAddress:(U)=>new Cf(U),signAndBroadcastTransaction:async(U)=>{let q=await Bo(cy,C)(U);return n0(cy)(q)},signTransaction:Bo(cy,C),transfer:EX(cy,C),validateAddress:wC}}function $X(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:o})=>{let U=await y(),X=(await kC(y)({assetValue:H,isProgramDerivedAddress:C,memo:f,recipient:T,sender:o})).compileMessage(),G=await U.getFeeForMessage(X);if(G.value===null)throw new bf("toolbox_fee_estimation_failed","Could not estimate Solana fee.");let{baseDecimal:Z}=Do(gy.Solana);return x0.from({chain:gy.Solana,fromBaseDecimal:Z,value:G.value})}}async function cy(){let{Connection:y}=await import("@solana/web3.js"),T=await RX(gy.Solana);return new y(T,{commitment:"confirmed",fetchMiddleware:(H,f,C)=>{let o={};for(let[U,q]of Object.entries(f?.headers??{})){let X=U.toLowerCase();if(X!=="pragma"&&X!=="solana-client")o[U]=q}C(H,{...f,headers:o})}})}function IX(y){return async({assetValue:T,recipient:H,sender:f,isProgramDerivedAddress:C})=>{let o=await y(),U=new Cf(f);if(T.isGasAsset){let{Transaction:q,SystemProgram:X}=await import("@solana/web3.js");return new q().add(X.transfer({fromPubkey:U,lamports:T.getBaseValue("number"),toPubkey:new Cf(H)}))}if(T.address)return SX({amount:T.getBaseValue("number"),connection:o,decimals:T.decimal,from:U,isProgramDerivedAddress:C,recipient:H,tokenAddress:T.address});return}}async function SX({tokenAddress:y,recipient:T,from:H,connection:f,amount:C,decimals:o,isProgramDerivedAddress:U}){let{getAssociatedTokenAddress:q,getAccount:X,createAssociatedTokenAccountInstruction:G,createTransferCheckedInstruction:Z}=await import("@solana/spl-token"),{Transaction:A}=await import("@solana/web3.js"),M=new A,Q=new Cf(y),N=await q(Q,H),J=new Cf(T),B=await q(Q,J,U),D=!1;try{await X(f,B),D=!0}catch{}if(!D)M.add(G(H,B,J,Q));return M.add(Z(N,Q,B,H,C,o)),M}function kC(y){return async({recipient:T,assetValue:H,memo:f,isProgramDerivedAddress:C,sender:o})=>{let{createMemoInstruction:U}=await import("@solana/spl-memo"),q=new Cf(o);if(!(C||wC(T)))throw new bf("core_transaction_invalid_recipient_address");let X=await y(),G=await IX(y)({assetValue:H,isProgramDerivedAddress:C,recipient:T,sender:o});if(!G)throw new bf("core_transaction_invalid_sender_address");if(f)G.add(U(f));let Z=await X.getLatestBlockhash();return G.recentBlockhash=Z.blockhash,G.feePayer=q,G}}async function PX({instructions:y}){let{Transaction:T}=await import("@solana/web3.js"),H=new T().add(...y);if(!H)throw new bf("core_transaction_invalid_sender_address");return H}function EX(y,T){return async({recipient:H,assetValue:f,memo:C,isProgramDerivedAddress:o})=>{let U=await T();if(!U)throw new bf("core_transaction_invalid_sender_address");let q=U.publicKey?.toString()??(await U.connect()).publicKey.toString(),X=await kC(y)({assetValue:f,isProgramDerivedAddress:o,memo:C,recipient:H,sender:q});if("signTransaction"in U){let G=await U.signTransaction(X);return n0(y)(G)}return X.sign(U),n0(y)(X)}}function n0(y){return async(T)=>{return(await y()).sendRawTransaction(T.serialize())}}function Bo(y,T){return async(H)=>{let f=await T();if(!f)throw new bf("toolbox_solana_no_signer");let{VersionedTransaction:C}=await import("@solana/web3.js");if(!(H instanceof C)){let U=await(await y()).getLatestBlockhash();H.recentBlockhash=U.blockhash,H.feePayer=f.publicKey||void 0}if("connect"in f)return await f.signTransaction(H);return H.sign([f]),H}}async function nC({phrase:y,derivationPath:T=OX.SOL}){let{HDKey:H}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{Keypair:C}=await import("@solana/web3.js"),o=f(y),U=H.fromMasterSeed(o);return C.fromSeed(U.derive(T,!0).privateKey)}function Oo(y){return y.toString()}var xo=E(()=>{uy()});var FC={};Ty(FC,{validateSolanaAddress:()=>wC,getSolanaToolbox:()=>FX,fetchTokenMetaData:()=>Ro,createKeysForPath:()=>nC});var $C=E(()=>{xo()});import{AssetValue as w0,Chain as k0,DerivationPath as wo,derivationPathToString as bX,getChainConfig as VX,getRPCUrl as PC,NetworkDerivationPath as vX,SwapKitError as Oy,updateDerivationPath as pX}from"@swapkit/helpers";import{match as IC,P as Vf}from"ts-pattern";function F0(y){if(!y)return!1;return/^0x[0-9a-fA-F]{1,64}$/.test(y)}async function $0({phrase:y,derivationPath:T=wo.STRK}){let{HDKey:H}=await import("@scure/bip32"),{mnemonicToSeedSync:f}=await import("@scure/bip39"),{ec:C,hash:o,encode:U,CallData:q}=await import("starknet"),X=f(y),Z=H.fromMasterSeed(X).derive(T);if(!Z.privateKey)throw new Oy("toolbox_starknet_no_signer");let A=U.addHexPrefix(Buffer.from(Z.privateKey).toString("hex")),M=C.starkCurve.grindKey(A),Q=U.addHexPrefix(M),N=C.starkCurve.getStarkKey(Q),J=q.compile([N,0]);return{address:o.calculateContractAddressFromHash(N,EC,J,0),privateKey:Q,publicKey:N}}async function bC({phrase:y,derivationPath:T=wo.STRK}){let{Account:H,RpcProvider:f}=await import("starknet"),{privateKey:C,address:o}=await $0({derivationPath:T,phrase:y}),U=await PC(k0.Starknet),q=new f({nodeUrl:U});return new H({address:o,provider:q,signer:C})}function ko(y){let T=k0.Starknet,H=y&&"index"in y?y.index||0:0,f=bX(y&&"derivationPath"in y&&y.derivationPath?y.derivationPath:pX(vX[T],{index:H})),C,o,U;async function q(){if(o)return o;let{RpcProvider:Y}=await import("starknet"),_=await PC(T);return o=new Y({nodeUrl:_}),o}async function X(Y){let _=await q(),L=Y||await M();if(!L)return!1;try{return await _.getClassHashAt(L),!0}catch(x){if(x instanceof Error&&x.message.includes("Contract not found"))return!1;let w=x;if(w?.code===20||w?.code===19)return!1;throw x}}async function G(){let{CallData:Y,hash:_}=await import("starknet"),L=await q(),x=await A();if(!x)throw new Oy("toolbox_starknet_no_signer");if(!U)throw new Oy({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Cannot deploy account: public key not available. Use phrase-based wallet initialization."}});if(await X())return x.address;let n=Y.compile([U,0]);if(_.calculateContractAddressFromHash(U,EC,n,0).toLowerCase()!==x.address.toLowerCase())throw new Oy({errorKey:"toolbox_starknet_account_not_deployed",info:{message:"Address mismatch during deployment verification"}});let $={addressSalt:U,classHash:EC,constructorCalldata:n},{transaction_hash:z}=await x.deployAccount($);return await L.waitForTransaction(z),z}async function Z(){if(!await X()){if(!U)throw new Oy({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 G()}}async function A(){if(C)return C;return C=await IC(y).with({phrase:Vf.string},async({phrase:Y})=>{let{Account:_,RpcProvider:L}=await import("starknet"),{privateKey:x,address:w,publicKey:n}=await $0({derivationPath:f,phrase:Y});U=n;let k=await PC(k0.Starknet),$=new L({nodeUrl:k});return new _({address:w,provider:$,signer:x})}).with({address:Vf.string,privateKey:Vf.string},async({privateKey:Y,address:_})=>{let{Account:L}=await import("starknet"),x=await q();return new L({address:_,provider:x,signer:Y})}).with({signer:Vf.instanceOf(Object)},({signer:Y})=>Y).otherwise(()=>{return}),C}async function M(){return(await A())?.address??""}async function Q(Y){let _=await q(),{uint256:L,CallData:x}=await import("starknet"),w=[],n=[SC,no];for(let k of n)try{let[$="0",z="0"]=await _.callContract({calldata:x.compile({account:Y}),contractAddress:k,entrypoint:"balanceOf"}),F=L.uint256ToBN({high:$,low:z});IC(k).with(SC,()=>{w.push(w0.from({chain:T,value:F}))}).with(no,()=>{if(F>0n)w.push(w0.from({asset:`${T}.ETH-${k}`,value:F}))}).otherwise(()=>{})}catch{}return w}async function N({recipient:Y,assetValue:_}){let{CallData:L,uint256:x}=await import("starknet");if(!F0(Y))throw new Oy("core_transaction_invalid_recipient_address",{address:Y});let w=_.isGasAsset?SC:_.address;if(!w)throw new Oy("toolbox_starknet_invalid_address",{address:w,assetValue:_});let n=x.bnToUint256(_.getBaseValue("bigint"));return[{calldata:L.compile([Y,n]),contractAddress:w,entrypoint:"transfer"}]}async function J({recipient:Y,assetValue:_,sender:L}){let{baseDecimal:x}=VX(k0.Starknet),w=await A(),n=await IC({sender:L,signer:w}).with({sender:Vf.string},async({sender:k})=>{let{Account:$}=await import("starknet"),z=await q();return new $({address:k,provider:z,signer:"0x0"})}).with({signer:Vf.nonNullable},({signer:k})=>k).otherwise((k)=>{throw new Oy({errorKey:"toolbox_starknet_fee_estimation_failed",info:{message:"Estimating fee needs a valid sender address or signer",params:k}})});try{let k=await N({assetValue:_,recipient:Y}),$=await n.estimateInvokeFee(k);if($?.overall_fee)return w0.from({chain:T,fromBaseDecimal:x,value:$.overall_fee})}catch(k){throw new Oy("toolbox_starknet_fee_estimation_failed",k)}return w0.from({chain:T,value:"0.00001"})}async function B({recipient:Y,assetValue:_,memo:L}){let x=await A();if(!x)throw new Oy("toolbox_starknet_no_signer");await Z();let w=await N({assetValue:_,memo:L,recipient:Y});return(await x.execute(w)).transaction_hash}async function D(Y){let _=await A();if(!_)throw new Oy("toolbox_starknet_no_signer");let L=await _.signMessage(Y);return Array.isArray(L)?L:[L.r.toString(),L.s.toString()]}async function W(Y){let _=await A();if(!_)throw new Oy("toolbox_starknet_no_signer");return await Z(),(await _.execute(Y)).transaction_hash}function R(Y){return W(Y)}function O(Y,_=!0){try{return Wy(T)(Y,_)}catch{return Q(Y)}}return{broadcastTransaction:W,createKeysForPath:bC,createTransaction:N,deployAccount:G,estimateTransactionFee:J,getAddress:M,getBalance:O,getProvider:q,isAccountDeployed:X,signAndBroadcastTransaction:R,signMessage:D,transfer:B,validateAddress:F0}}var SC="0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",no="0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",EC="0x01a736d6ed154502257f02b1ccdf4d9d1089f80811cd6acad48e6b6a9d1f2003";var Fo=E(()=>{uy()});var I0={};Ty(I0,{validateStarknetAddress:()=>F0,starknetCreateKeysForPath:()=>bC,getStarknetToolbox:()=>ko,deriveStarknetKeys:()=>$0});var S0=E(()=>{Fo()});import{isValidSuiAddress as lX}from"@mysten/sui/utils";import{AssetValue as vf,Chain as pf,getChainConfig as $o,getRPCUrlSync as jX,SwapKitError as Dy}from"@swapkit/helpers";import{match as KX,P as Io}from"ts-pattern";async function E0(y,T,H,f,C=[],o){let U=await y.getCoins({coinType:H,cursor:o,owner:T}),q=[...C,...U.data],X=q.reduce((G,Z)=>G+BigInt(Z.balance),0n);return U.hasNextPage&&X<f?E0(y,T,H,f,q,U.nextCursor):q}function b0({coinObjectId:y,digest:T,version:H}){return{digest:T,objectId:y,version:H}}function hX(y,T,H){let f=T.reduce((G,Z)=>G+BigInt(Z.balance),0n);if(f<H)throw new Dy("toolbox_sui_insufficient_balance",{available:f.toString(),required:H.toString()});let{selectedCoins:C}=T.reduce((G,Z)=>{if(G.total>=H)return G;return{selectedCoins:[...G.selectedCoins,Z],total:G.total+BigInt(Z.balance)}},{selectedCoins:[],total:0n}),o=C[0],U=y.objectRef(b0(o)),q=C.slice(1).map((G)=>y.objectRef(b0(G)));if(q.length>0)y.mergeCoins(U,q);let[X]=y.splitCoins(U,[H]);return X}function So(y,T){let H=y.reduce((f,C)=>f+BigInt(C.balance),0n);if(H<T)throw new Dy("toolbox_sui_insufficient_balance",{available:H.toString(),required:T.toString()})}function Eo(y){try{return lX(y)}catch{return!1}}function Po(y){return"signWithIntent"in y}function mX({provider:y,...T}={}){let H;async function f(){if(H)return H;return H=await KX(T).with({phrase:Io.string},async({phrase:J})=>{let{Ed25519Keypair:B}=await import("@mysten/sui/keypairs/ed25519");return B.deriveKeypair(J)}).with({signer:Io.any},({signer:J})=>J).otherwise(()=>{return}),H}async function C(J=y){let{SuiJsonRpcClient:B}=await import("@mysten/sui/jsonRpc");return new B({network:"mainnet",url:J||jX(pf.Sui)})}async function o(J){return BigInt(await J.getReferenceGasPrice())}async function U(){return(await f())?.toSuiAddress()||""}function q(J){try{let B=vf.from({address:J,chain:pf.Sui});return{asset:B.toString(),decimals:B.decimal}}catch{}return null}async function X(J){let B=J||await U();if(!B)throw new Dy("toolbox_sui_address_required");let{baseDecimal:D,chain:W}=$o(pf.Sui);try{let O=await(await C()).getAllBalances({owner:B}),Y=O.find(({coinType:L})=>L===P0)?.totalBalance||"0",_=[vf.from({chain:W,fromBaseDecimal:D,value:Y})];for(let{coinType:L,totalBalance:x}of O){if(L===P0||Number(x)<=0)continue;let w=q(L);if(w)_.push(vf.from({asset:w.asset,fromBaseDecimal:w.decimals,value:x}))}return _}catch{return[vf.from({chain:W})]}}async function G(J){let B=vf.from({chain:pf.Sui,value:"0.01"});if(!J)return B;try{let D=await C(),{txBytes:W}=await Z(J),{effects:{status:R,gasUsed:O}}=await D.dryRunTransactionBlock({transactionBlock:W});if(R.status!=="success")return B;let{baseDecimal:Y}=$o(pf.Sui),_=BigInt(O.computationCost)+BigInt(O.storageCost)-BigInt(O.storageRebate);return vf.from({chain:pf.Sui,fromBaseDecimal:Y,value:_.toString()})}catch{return B}}async function Z({recipient:J,assetValue:B,gasBudget:D,sender:W}){let{Transaction:R}=await import("@mysten/sui/transactions"),O=W||await U(),Y=D||uX;if(!O)throw new Dy("toolbox_sui_no_sender");try{let _=await C(),L=new R;if(L.setSender(O),B.isGasAsset||B.symbol==="SUI"){let w=B.getBaseValue("bigint"),[n,k]=await Promise.all([o(_),E0(_,O,P0,w+BigInt(Y))]);So(k,w+BigInt(Y)),L.setGasPrice(n),L.setGasPayment(k.map(b0));let[$]=L.splitCoins(L.gas,[B.getBaseValue("string")]);L.transferObjects([$],J)}else{let w=B.address;if(!w)throw new Dy("toolbox_sui_missing_coin_type");let n=B.getBaseValue("bigint"),[k,$,z]=await Promise.all([o(_),E0(_,O,P0,BigInt(Y)),E0(_,O,w,n)]);if(!z.length)throw new Dy("toolbox_sui_no_coins_found",{coinType:w});So($,BigInt(Y)),L.setGasPrice(k),L.setGasPayment($.map(b0));let F=hX(L,z,n);L.transferObjects([F],J)}L.setGasBudget(Y);let x=await L.build({client:_});return{tx:L,txBytes:x}}catch(_){if(_ instanceof Dy)throw _;throw new Dy("toolbox_sui_transaction_creation_error",{error:_})}}async function A(J){let B=await f();if(!B)throw new Dy("toolbox_sui_no_signer");if(J instanceof Uint8Array)return B.signTransaction(J);let{txBytes:D}="tx"in J?J:await Z(J);return B.signTransaction(D)}async function M({assetValue:J,gasBudget:B,recipient:D}){let W=await f();if(!W)throw new Dy("toolbox_sui_no_signer");let R=W.toSuiAddress()||await U();if(!R)throw new Dy("toolbox_sui_no_sender");let{txBytes:O}=await Z({assetValue:J,gasBudget:B,recipient:D,sender:R}),Y=await C();if(!Po(W)){let L=await W.signTransaction(O),{digest:x}=await Y.executeTransactionBlock({signature:L.signature,transactionBlock:L.bytes});return x}let{digest:_}=await Y.signAndExecuteTransaction({signer:W,transaction:O});return _}async function Q(J){let B=await C(),{digest:D}=await B.executeTransactionBlock({signature:J.signature,transactionBlock:J.bytes});return D}async function N(J){let B=await f();if(!B)throw new Dy("toolbox_sui_no_signer");let D=await C(),W;if(typeof J==="string")W=Uint8Array.from(Buffer.from(J,"base64"));else if(J instanceof Uint8Array)W=J;else W=await J.build({client:D});if(!Po(B)){let O=await B.signTransaction(W),{digest:Y}=await D.executeTransactionBlock({signature:O.signature,transactionBlock:O.bytes});return Y}let{digest:R}=await D.signAndExecuteTransaction({signer:B,transaction:W});return R}return{broadcastTransaction:Q,createTransaction:Z,estimateTransactionFee:G,getAddress:U,getBalance:X,signAndBroadcastTransaction:N,signTransaction:A,transfer:M,validateAddress:Eo}}var P0="0x2::sui::SUI",uX=50000000;var bo=()=>{};var V0={};Ty(V0,{validateSuiAddress:()=>Eo,getSuiToolbox:()=>mX});var v0=E(()=>{bo()});import{getHttpEndpoint as tX}from"@orbs-network/ton-access";import{AssetValue as cX,Chain as OT,getChainConfig as gX,SKConfig as iX,SwapKitError as BT,SwapKitNumber as dX}from"@swapkit/helpers";import{mnemonicToWalletKey as rX}from"@ton/crypto";import{Address as iy,beginCell as VC,Cell as Vo,external as aX,internal as sX,JettonMaster as eX,loadStateInit as yG,SendMode as vo,storeMessage as fG,TonClient as TG,toNano as Ko,WalletContractV4 as CG}from"@ton/ton";import{match as po,P as vC}from"ts-pattern";async function XG(){let y=Date.now();if(p0&&y-jo<qG)return p0;return p0=await tX(),jo=y,p0}async function GG(){let[y]=iX.get("rpcUrls")[OT.Ton]??[];if(y)return y;return await XG()}function QG(y={}){let T,H,f;async function C(){if(!T){let O=y.provider??await GG();T=new TG({endpoint:O})}return T}async function o(){return(await q()).address.toString()}async function U(){if(f)return f;return f=await po(y).with({phrase:vC.string},async({phrase:O})=>rX(O.split(" "))).with({signer:vC.any},({signer:O})=>O).otherwise(()=>{return}),f}async function q(O){if(!H||O){let Y=await U(),_=await C(),L=O||Y;if(!L)throw new BT("core_wallet_connection_not_found");let x=CG.create({publicKey:L.publicKey,workchain:0});H=_.open(x)}return H}let X=Wy(OT.Ton);async function G({assetValue:O,recipient:Y,memo:_,sender:L}){if(O.isGasAsset){let v=_?R(_).toBoc().toString("base64"):void 0;return[{address:Y,amount:O.getBaseValue("string"),payload:v}]}let x=O.address;if(!x)throw new BT({errorKey:"core_swap_contract_not_found",info:{asset:O.toString()}});let w=L??await o(),n=await D({jettonMasterAddress:x,ownerAddress:w}),k=iy.parse(Y),$=iy.parse(w),z=O.getBaseValue("bigint"),F=_?R(_):void 0,I=W({destinationAddress:k,forwardPayload:F,jettonAmount:z,responseAddress:$});return[{address:n.toString(),amount:UG.toString(),payload:I.toBoc().toString("base64")}]}function Z({sender:O,...Y}){return G({...Y,sender:O})}function A(O){return O.map((Y)=>{let _=Y.payload?Vo.fromBase64(Y.payload):void 0,L=Y.stateInit?yG(Vo.fromBase64(Y.stateInit).asSlice()):void 0,x=iy.parse(Y.address),w=iy.isFriendly(Y.address)?iy.parseFriendly(Y.address).isBounceable:!0;return sX({body:_,bounce:w,init:L,to:x,value:BigInt(Y.amount)})})}async function M(O){let Y=await U(),_=await q();if(!_||!Y)throw new BT("core_wallet_connection_not_found");let L=await C(),{state:x}=await L.getContractState(_.address),w=x==="active",n=w?await _.getSeqno():0,k=_.createTransfer({messages:A(O),secretKey:Y.secretKey,sendMode:lo,seqno:n}),$=aX({body:k,init:w?void 0:_.init,to:_.address});return VC().store(fG($)).endCell()}async function Q(O){return await(await C()).sendFile(O.toBoc()),O.hash().toString("hex")}async function N(O){let Y=await M(O);return Q(Y)}async function J({assetValue:O,recipient:Y,memo:_}){let L=await Z({assetValue:O,memo:_,recipient:Y});return N(L)}async function B({sender:O,...Y}){let{baseDecimal:_}=gX(OT.Ton),L=await po(O).with(vC.string,(n)=>{return iy.parseFriendly(n).address}).otherwise(async()=>{return(await q()).address});if(!L)throw new BT("toolbox_fee_estimation_failed",{chain:OT.Ton});let x=cX.from({chain:OT.Ton,value:"0.01"}),w=await C();try{let n=await Z({sender:O,...Y}),k=await U(),$=await q();if(!$||!k)return x;let z=await $.getSeqno(),F=$.createTransfer({messages:A(n),secretKey:k.secretKey,sendMode:lo,seqno:z}),{source_fees:I}=await w.estimateExternalMessageFee(L,{body:F,ignoreSignature:!0,initCode:null,initData:null}),v=I.in_fwd_fee+I.storage_fee+I.gas_fee+I.fwd_fee;return x.set(dX.fromBigInt(BigInt(v),_))}catch{return x}}async function D({jettonMasterAddress:O,ownerAddress:Y}){try{let _=await C(),L=iy.parse(O),x=iy.parse(Y);return await _.open(eX.create(L)).getWalletAddress(x)}catch{throw new BT({errorKey:"core_swap_contract_not_found",info:{jettonMasterAddress:O,ownerAddress:Y}})}}function W({jettonAmount:O,destinationAddress:Y,responseAddress:_,forwardAmount:L=oG,forwardPayload:x}){let w=VC().storeUint(HG,32).storeUint(0,64).storeCoins(O).storeAddress(Y).storeAddress(_).storeBit(0).storeCoins(L);if(x)w.storeBit(1).storeRef(x);else w.storeBit(0);return w.endCell()}function R(O){return VC().storeUint(0,32).storeStringTail(O).endCell()}return{broadcastTransaction:Q,createTransaction:Z,estimateTransactionFee:B,getAddress:o,getBalance:X,getJettonWalletAddress:D,sign:M,signAndBroadcastTransaction:N,transfer:J,validateAddress:uo}}function uo(y){try{return iy.parse(y),!0}catch{return!1}}var HG=260734629,oG,UG,lo,qG=60000,p0,jo=0;var ho=E(()=>{uy();oG=Ko("0.01"),UG=Ko("0.05"),lo=vo.PAY_GAS_SEPARATELY+vo.IGNORE_ERRORS});var l0={};Ty(l0,{validateTonAddress:()=>uo,getTONToolbox:()=>QG});var j0=E(()=>{ho()});import{NetworkDerivationPath as _G}from"@swapkit/helpers";function ky(y,T){if(!Number.isInteger(T)||T<0)throw RangeError(`${y} must be a non-negative integer, got: ${T}`)}function Hf({accountIndex:y,chain:T,derivationPath:H}){if(y!==void 0)ky("accountIndex",y);let f=[...H?.slice(0,3)??_G[T].slice(0,3)];if(y!==void 0)f[2]=y;return f}function lf({accountIndex:y,change:T=!1,chain:H,derivationPath:f,index:C}){return ky("index",C),[...Hf({accountIndex:y,chain:H,derivationPath:f}),Number(T),C]}function Yf(y){return y[2]??0}function mo({deriveAddress:y,getBalance:T,getUtxos:H}){async function f(q){let{accountIndex:X,count:G,startIndex:Z=0,change:A=!1}=q;if(ky("count",G),G<1)throw RangeError("count must be at least 1");ky("startIndex",Z);let M=[];for(let Q=0;Q<G;Q++){let N=await y({accountIndex:X,change:A,index:Z+Q});if(N)M.push(N)}return M}async function C(q){let{gapLimit:X=20,change:G=!1}=q??{},Z=[],A=0,M=0;while(A<X){let Q=await y({change:G,index:M});if(!Q)break;if((await T(Q.address)).some((B)=>B.getValue("number")>0))Z.push(Q),A=0;else A++;M++}return Z}async function o(q=20){let[X,G]=await Promise.all([C({change:!1,gapLimit:q}),C({change:!0,gapLimit:q})]),Z=[...X,...G],A=await Promise.all(Z.map(async(Q)=>{let J=(await T(Q.address)).reduce((B,D)=>B+D.getValue("number"),0);return{...Q,balance:J}})),M=A.reduce((Q,N)=>Q+N.balance,0);return{addresses:A,total:M}}async function U(q=20){let[X,G]=await Promise.all([C({change:!1,gapLimit:q}),C({change:!0,gapLimit:q})]),Z=[...X,...G];return(await Promise.all(Z.map(async(M)=>{return(await H(M.address)).map((N)=>({...N,address:M.address,derivationIndex:M.index,isChange:M.change}))}))).flat()}return{deriveAddresses:f,getAggregatedBalance:o,getAggregatedUtxos:U,scanForAddresses:C}}var DT=()=>{};import{Chain as qy,getRPCUrl as MG,RequestClient as K0,SKConfig as ZG,SwapKitError as vy,warnOnce as WG}from"@swapkit/helpers";import{NETWORKS as jf}from"@swapkit/utxo-signer";async function LG({chain:y,txHash:T}){let H=`${RT(y)}/push/transaction`,f=JSON.stringify({data:T});try{let C=await K0.post(H,{body:f,headers:{"Content-Type":"application/json"}});if(C.context.code!==200)throw new vy("toolbox_utxo_broadcast_failed",{error:C.context.error||"Transaction broadcast failed"});return C.data?.transaction_hash||T}catch(C){let o=await MG(y);if(o){let U=JSON.stringify({id:jH(),jsonrpc:"2.0",method:"sendrawtransaction",params:[T]}),q=await K0.post(o,{body:U,headers:{"Content-Type":"application/json"}});if(q.error)throw new vy("toolbox_utxo_broadcast_failed",{error:q.error?.message});if(q.result.includes('"code":-26'))throw new vy("toolbox_utxo_invalid_transaction",{error:"Transaction amount was too low"});return q.result}throw C}}function RT(y){return`https://api.blockchair.com/${AG(y)}`}function to(y){switch(y){case qy.Bitcoin:return 5;case qy.Dogecoin:return 1e4;case qy.Litecoin:return 1;case qy.Zcash:return 1;default:return 2}}function AG(y){switch(y){case qy.BitcoinCash:return"bitcoin-cash";case qy.Litecoin:return"litecoin";case qy.Dash:return"dash";case qy.Dogecoin:return"dogecoin";case qy.Zcash:return"zcash";case qy.Polkadot:return"polkadot";default:return"bitcoin"}}async function YG(y){try{let{feePerKb:T}=await K0.get(`https://app.bitgo.com/api/v2/${y.toLowerCase()}/tx/fee`),H=T/1000;return Math.max(H,to(y))}catch{return to(y)}}async function u0(y,T){let H=await K0.get(`${y}${T?`${y.includes("?")?"&":"?"}key=${T}`:""}`);if(!H||H.context.code!==200)throw new vy("toolbox_utxo_api_error",{error:`Failed to query ${y}`});return H.data}async function go({address:y,chain:T,apiKey:H}){if(!y)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{return(await u0(`${RT(T)}/dashboards/address/${y}?transaction_details=true`,H))[y]}catch{return{address:{balance:0,transaction_count:0},utxo:[]}}}async function JG({address:y,chain:T,apiKey:H}){return(await go({address:y,apiKey:H,chain:T}))?.address.balance||0}async function io({chain:y,apiKey:T,txHash:H}){if(!H)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});try{return(await u0(`${RT(y)}/raw/transaction/${H}`,T))?.[H]?.raw_transaction||""}catch(f){let C=f instanceof Error?f.message:String(f);return console.error(`Failed to fetch raw transaction: ${C}`),""}}async function NG({chain:y,apiKey:T,txHash:H}){if(!H)throw new vy("toolbox_utxo_invalid_params",{error:"TxHash is required"});let C=(await u0(`${RT(y)}/dashboards/transaction/${H}`,T))?.[H];if(!C)throw new vy("toolbox_utxo_tx_not_found",{txHash:H});let{transaction:o,inputs:U,outputs:q}=C,X=U.map((Z)=>Z.spending_sequence),G=o.is_rbf===!0||X.some((Z)=>Z<zG);return{blockId:o.block_id,confirmed:o.block_id!==-1,fee:o.fee,inputs:U,isRBF:G,outputs:q,sequences:X,size:o.size,txid:o.hash,weight:o.weight}}async function BG({chain:y,address:T,apiKey:H,offset:f=0,limit:C=30}){return(await u0(`${RT(y)}/outputs?q=recipient(${T}),is_spent(false)&s=value(desc)&fields=is_spent,transaction_hash,index,value,script_hex,block_id,spending_signature_hex&limit=${C}&offset=${f}`,H)).map(({is_spent:X,script_hex:G,block_id:Z,transaction_hash:A,index:M,value:Q,spending_signature_hex:N})=>({hash:A,index:M,is_confirmed:Z!==-1,is_spent:X,script_hex:G,txHex:N,value:Q}))}function OG(y){return y.reduce((T,H)=>T+H.value,0)}function co(y,T){let H=[...y].sort((f,C)=>C.value-f.value);if(T){let f=[],C=0;for(let o of H)if(f.push(o),C+=o.value,C>=T)break;return f}return H}async function ro({chain:y,address:T,apiKey:H,targetValue:f,accumulativeValue:C=0,offset:o=0,limit:U=30}){if(!T)throw new vy("toolbox_utxo_invalid_params",{error:"Address is required"});try{let q=await BG({address:T,apiKey:H,chain:y,limit:U,offset:o,targetValue:f}),G=q.length<U,Z=q.filter(({is_spent:B})=>!B),A=OG(Z),M=C+A,Q=f&&M>=f;if(G||Q)return co(Z,f);let N=await ro({accumulativeValue:M,address:T,apiKey:H,chain:y,limit:U,offset:o+U,targetValue:f}),J=[...Z,...N];return co(J,f)}catch(q){let X=q instanceof Error?q.message:String(q);return console.error(`Failed to fetch unspent UTXOs: ${X}`),[]}}async function DG({address:y,chain:T,apiKey:H,fetchTxHex:f=!0,targetValue:C}){let o=await ro({address:y,apiKey:H,chain:T,targetValue:C}),U=[];for(let{hash:q,index:X,script_hex:G,value:Z}of o){let A;if(f)A=await io({apiKey:H,chain:T,txHash:q});U.push({address:y,hash:q,index:X,txHex:A,value:Z,witnessUtxo:{script:Buffer.from(G,"hex"),value:Z}})}return U}function yy(y){let T=ZG.get("apiKeys").blockchair||"";return WG({condition:!T,id:"no_blockchair_api_key_warning",warning:"No Blockchair API key found. Functionality will be limited."}),{broadcastTx:(H)=>LG({chain:y,txHash:H}),getAddressData:(H)=>go({address:H,apiKey:T,chain:y}),getBalance:(H)=>JG({address:H,apiKey:T,chain:y}),getRawTx:(H)=>io({apiKey:T,chain:y,txHash:H}),getSuggestedTxFee:()=>YG(y),getTransactionDetails:(H)=>NG({apiKey:T,chain:y,txHash:H}),getUtxos:(H)=>DG({...H,apiKey:T,chain:y})}}function RG(y){return y}function xG(){return function(T){switch(T){case qy.Bitcoin:return jf.bitcoin;case qy.BitcoinCash:return jf.bitcoinCash;case qy.Dash:return jf.dash;case qy.Litecoin:return jf.litecoin;case qy.Dogecoin:return jf.dogecoin;case qy.Zcash:return jf.zcash;default:throw new vy("toolbox_utxo_not_supported",{chain:T})}}}var zG=4294967294;var ao=E(()=>{uy()});import{CashAddrType as h0,decodeCashAddr as nG,encodeCashAddr as wG}from"@swapkit/utxo-signer";function $G(y,T,H){return wG({hash:H,prefix:y,type:kG[T]})}function IG(y){let T=nG(y),H=FG[T.type];if(!H)throw Error(`Unknown CashAddr type: ${T.type}`);return{hash:T.hash,prefix:T.prefix,type:H}}var kG,FG,pC;var so=E(()=>{kG={P2PKH:h0.P2PKH,P2SH:h0.P2SH},FG={[h0.P2PKH]:"P2PKH",[h0.P2SH]:"P2SH"};pC={decode:IG,encode:$G}});import{sha256 as SG}from"@noble/hashes/sha2.js";import{createBase58check as PG}from"@scure/base";import{SwapKitError as y2}from"@swapkit/helpers";function jC(y){try{return m0(y),!0}catch{return!1}}function KC(y){return m0(y)?.network}function dy(y){let T=m0(y);if(T?.format==="legacy")return y;return VG(T)}function xT(y){let T=m0(y);return vG(T)}function m0(y){try{let T=EG(y);if(T)return T}catch{}try{let T=bG(y);if(T)return T}catch{}throw new y2("toolbox_utxo_invalid_address",{address:y})}function EG(y){try{let T=f2.decode(y);if(T.length!==21)throw new y2("toolbox_utxo_invalid_address",{address:y});let H=T[0],f=Array.prototype.slice.call(T,1);switch(H){case Jf.legacy.mainnet.p2pkh:return{format:"legacy",hash:f,network:"mainnet",type:"p2pkh"};case Jf.legacy.mainnet.p2sh:return{format:"legacy",hash:f,network:"mainnet",type:"p2sh"};case Jf.legacy.testnet.p2pkh:return{format:"legacy",hash:f,network:"testnet",type:"p2pkh"};case Jf.legacy.testnet.p2sh:return{format:"legacy",hash:f,network:"testnet",type:"p2sh"};case Jf.bitpay.mainnet.p2pkh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2pkh"};case Jf.bitpay.mainnet.p2sh:return{format:"bitpay",hash:f,network:"mainnet",type:"p2sh"};default:return}}catch{return}}function bG(y){if(y.indexOf(":")!==-1)try{return eo(y)}catch{}else{let T=["bitcoincash","bchtest","bchreg"];for(let H of T)try{return eo(`${H}:${y}`)}catch{}}return}function eo(y){try{let{hash:T,prefix:H,type:f}=pC.decode(y);return{format:"cashaddr",hash:Array.prototype.slice.call(T,0),network:H==="bitcoincash"?"mainnet":"testnet",type:f==="P2PKH"?"p2pkh":"p2sh"}}catch{return}}function VG(y){let T=Jf.legacy[y.network][y.type],H=Buffer.alloc(1+y.hash.length);return H[0]=T,H.set(y.hash,1),f2.encode(H)}function vG(y){let T=y.network==="mainnet"?"bitcoincash":"bchtest",H=y.type==="p2pkh"?"P2PKH":"P2SH",f=new Uint8Array(y.hash);return pC.encode(T,H,f)}var f2,lC,Jf;var T2=E(()=>{so();f2=PG(SG);((H)=>{H.Mainnet="mainnet";H.Testnet="testnet"})(lC||={});Jf={["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 pG}from"@swapkit/helpers";import{Script as lG}from"@swapkit/utxo-signer";function Jy(y){let T=new Uint8Array(Buffer.from(y,"utf8"));return lG.encode(["RETURN",T])}var jG=1000,c0=10,g0=2,C2=10,KG=41,uG=107,i0,t0,nT,Kf=(y)=>{if(y.startsWith("bc1")||y.startsWith("tb1")||y.startsWith("ltc1")||y.startsWith("tltc1"))return"P2WPKH";if(y.startsWith("1")||y.startsWith("m")||y.startsWith("n")||y.startsWith("bitcoincash:q")||y.startsWith("bitcoincash:p")||y.startsWith("q")||y.startsWith("p")||y.startsWith("L")||y.startsWith("M")||y.startsWith("3")||y.startsWith("D")||y.startsWith("A")||y.startsWith("9")||y.startsWith("X")||y.startsWith("7")||y.startsWith("y")||y.startsWith("t1")||y.startsWith("t3")||y.startsWith("tm"))return"P2PKH";throw new pG("toolbox_utxo_invalid_address",{address:y})},zf=({inputs:y,outputs:T,feeRate:H})=>{let f=y[0]&&"address"in y[0]&&y[0].address?Kf(y[0].address):"P2PKH",o=(H?y.filter((G)=>G.value>=t0["type"in G&&G.type?G.type:"P2PKH"]*Math.ceil(H)):y).reduce((G,Z)=>G+of(Z),0),U=T?.reduce((G,Z)=>G+wT(Z),0)||nT[f],q=c0+o+U;return f==="P2WPKH"?Math.ceil(q+g0/4):q},of=(y)=>{if("type"in y&&y.type)return t0[y.type];if("address"in y&&y.address)return t0[Kf(y.address)];return KG+uG},wT=(y,T)=>{if(y?.script)return C2+y.script.length+(y.script.length>=74?2:1);if(T)return nT[T];if("address"in y&&y.address)return nT[Kf(y.address)];return nT.P2PKH};var uC=E(()=>{((H)=>{H.P2PKH="P2PKH";H.P2WPKH="P2WPKH"})(i0||={});t0={["P2PKH"]:148,["P2WPKH"]:68},nT={["P2PKH"]:34,["P2WPKH"]:31}});import{Chain as Nf,SwapKitError as hG}from"@swapkit/helpers";function kT(y){switch(y){case Nf.Bitcoin:case Nf.BitcoinCash:return 550;case Nf.Dash:case Nf.Litecoin:return 5500;case Nf.Dogecoin:return 1e5;case Nf.Zcash:return 546;default:throw new hG("toolbox_utxo_not_supported",{chain:y})}}function Fy({inputs:y,outputs:T,feeRate:H=1,chain:f=Nf.Bitcoin,changeAddress:C=""}){let o=y[0]&&"address"in y[0]&&y[0].address?Kf(y[0].address):"P2PKH",U=y.filter((N)=>of(N)*H<=N.value),X=o==="P2WPKH"?Math.ceil(g0/4):0,G=c0+X+T.reduce((N,J)=>N+wT(J),0),Z=T.reduce((N,J)=>N+J.value,0),A=G*H,M=0,Q=[];for(let N of U){let J=of(N),B=H*J;A+=B,M+=N.value,Q.push(N);let D=A+Z;if(M<D)continue;let W=M-D,R=H*wT({address:C,value:0});if(W>R){let O=R+A,Y=M-(Z+Math.ceil(O));if(Y>Math.max(of({value:0})*H,kT(f)))return{fee:Math.ceil(O),inputs:Q,outputs:T.concat({address:C,value:Y})}}return{fee:Math.ceil(A),inputs:Q,outputs:T}}return{fee:Math.ceil(H*zf({inputs:y,outputs:T}))}}var H2=E(()=>{uC()});var uf=E(()=>{ao();T2();H2();uC()});import{Address as mG,ZCASH_NETWORK as tG}from"@swapkit/utxo-signer";function Bf(y){return y.replace(/(bchtest:|bitcoincash:)/,"")}function Uf(y){let T=Bf(y);return jC(T)&&KC(T)==="mainnet"}function hf(y){try{if(y.startsWith("z"))return console.warn("Shielded Zcash addresses (z-addresses) are not supported. Use transparent addresses (t1/t3) only."),!1;let H=mG(tG).decode(y);return H.type==="pkh"||H.type==="sh"}catch{return!1}}var FT=E(()=>{uf()});import{secp256k1 as cG}from"@noble/curves/secp256k1.js";import{hex as Of}from"@scure/base";import{HDKey as X2}from"@scure/bip32";import{mnemonicToSeedSync as mC}from"@scure/bip39";import{AssetValue as d0,applyFeeMultiplier as o2,Chain as fy,derivationPathToString as $T,FeeOption as py,NetworkDerivationPath as G2,SwapKitError as i,SwapKitNumber as gG,updateDerivationPath as iG,warnOnce as dG}from"@swapkit/helpers";import{Address as rG,BCHSigHash as tC,CashAddrPrefix as aG,CashAddrType as sG,encodeCashAddr as eG,NETWORKS as mf,p2pkh as U2,p2wpkh as y4,RBF_SEQUENCE as f4,SigHash as Q2,Transaction as hC,WIF as _2}from"@swapkit/utxo-signer";import{match as M2}from"ts-pattern";function cC({address:y,chain:T}){return M2(T).with(fy.BitcoinCash,()=>Uf(y)).with(fy.Zcash,()=>hf(y)).otherwise(()=>{try{return rG(_y(T)).decode(y),!0}catch{return!1}})}function _y(y){return M2(y).with(fy.Bitcoin,()=>mf.bitcoin).with(fy.BitcoinCash,()=>mf.bitcoinCash).with(fy.Dash,()=>mf.dash).with(fy.Dogecoin,()=>mf.dogecoin).with(fy.Litecoin,()=>mf.litecoin).with(fy.Zcash,()=>mf.zcash).exhaustive()}function T4({phrase:y,derivationPath:T,network:H,seed:f}){let C=f??mC(y),U=X2.fromMasterSeed(C,H.bip32).derive(T);if(!U.privateKey)throw new i("toolbox_utxo_invalid_params",{error:"Could not derive private key from phrase"});return U.privateKey}function q2(y){return cG.getPublicKey(y,!0)}function ST({publicKey:y,chain:T,network:H}){if(T===fy.BitcoinCash){let o=U2(y,H);if(!o.hash)throw new i("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return eG({hash:o.hash,prefix:aG.MAINNET,type:sG.P2PKH}).replace(/^bitcoincash:/,"")}let C=!IT.includes(T)?y4(y,H):U2(y,H);if(!C.address)throw new i("toolbox_utxo_invalid_address",{error:"Could not derive address"});return C.address}function tf({phrase:y,derivationPath:T,chain:H,wif:f,seed:C}){let o=_y(H);if(f){let G=_2(o).decode(f),Z=q2(G);return{privateKey:G,publicKey:Z}}if(!y)throw new i("toolbox_utxo_invalid_params",{error:"Either phrase or wif must be provided"});let U=T||$T(G2[H]),q=T4({derivationPath:U,network:o,phrase:y,seed:C}),X=q2(q);return{privateKey:q,publicKey:X}}function C4(y,T){return _2(_y(T)).encode(y)}function H4({phrase:y,derivationPath:T,chain:H,seed:f}){let C=T.split("/");if(C.length<4)throw new i("toolbox_utxo_invalid_params",{error:`Derivation path must have at least 4 levels (got ${C.length}): ${T}`});let o=_y(H),U=f??mC(y),q=X2.fromMasterSeed(U,o.bip32),X=C.slice(0,4).join("/");return q.derive(X)}function qf({inputs:y,outputs:T,chain:H,tx:f,sender:C,compiledMemo:o,enableRBF:U=!1}){let q=_y(H),X=!IT.includes(H),G=U?f4:void 0,Z=new Set;for(let A of y){let M=`${A.hash}:${A.index}`;if(Z.has(M))throw new i("toolbox_utxo_invalid_params",{error:"Duplicate input detected"});Z.add(M);let Q=typeof A.hash==="string"?Of.decode(A.hash):A.hash;if(X&&A.witnessUtxo)f.addInput({index:A.index,sequence:G,txid:Q,witnessUtxo:{amount:BigInt(A.witnessUtxo.value),script:A.witnessUtxo.script}});else if(A.txHex)f.addInput({index:A.index,nonWitnessUtxo:Of.decode(A.txHex),sequence:G,txid:Q,...H===fy.BitcoinCash?{sighashType:tC.ALL}:{}});else throw new i("toolbox_utxo_invalid_params",{error:"Input requires either witnessUtxo or txHex for non-segwit chains"})}for(let A of T){let M="address"in A&&A.address?A.address:C;if(H===fy.BitcoinCash)M=dy(M);if(A.script){if(o)f.addOutput({amount:0n,script:o})}else f.addOutputAddress(M,BigInt(A.value),q)}return{inputs:y,tx:f}}async function cf(y){let T=await yy(y).getSuggestedTxFee();return{[py.Average]:T,[py.Fast]:o2(T,py.Fast),[py.Fastest]:o2(T,py.Fastest)}}async function Z2({assetValue:y,recipient:T,memo:H,sender:f,fetchTxHex:C=!1}){let o=y.chain,U=(await cf(o))[py.Fastest],q=C||IT.includes(o),X=y.getBaseValue("number"),G=Math.ceil(X+U*5000);return{inputs:await yy(o).getUtxos({address:f,fetchTxHex:q,targetValue:G}),outputs:[{address:T,value:X},...H?[{address:"",script:Jy(H),value:0}]:[]]}}async function W2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C,fetchTxHex:o=!1,enableRBF:U=!1}){let q=y.chain,X=H?Jy(H):null,G=await Z2({assetValue:y,fetchTxHex:o,memo:H,recipient:T,sender:C}),{inputs:Z,outputs:A}=Fy({...G,chain:q,feeRate:f});if(!(Z&&A))throw new i("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let M=new hC({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!X,version:1}),{inputs:Q,tx:N}=qf({chain:q,compiledMemo:X,enableRBF:U,inputs:Z,outputs:A,sender:C,tx:M});return{inputs:Q,tx:N,utxos:G.inputs}}async function L2({assetValue:y,feeOptionKey:T=py.Fast,feeRate:H,memo:f,sender:C,recipient:o}){let U=y.chain,q=await Z2({assetValue:y,memo:f,recipient:o,sender:C}),X=H?Math.floor(H):(await cf(U))[T];return Fy({...q,chain:U,feeRate:X})}function o4(y){return async function({from:H,memo:f,feeRate:C,feeOptionKey:o=py.Fast,recipients:U=1}){let q=await yy(y).getAddressData(H),X=C?Math.ceil(C):(await cf(y))[o],G=q?.utxo.map((J)=>({...J,hash:"",type:"P2PKH"})).filter((J)=>J.value>Math.max(kT(y),of(J)*X));if(!G?.length)return d0.from({chain:y});let Z=BigInt(G.reduce((J,B)=>J+B.value,0)),A=d0.from({chain:y,value:Z}),M=typeof U==="number"?Array.from({length:U},()=>({address:H,value:0})):U;if(f)M.push({address:H,script:Jy(f),value:0});let Q=zf({inputs:G,outputs:M}),N=d0.from({chain:y,value:BigInt(Q*X)});return A.sub(N)}}function U4(y){return async function(H){let{fee:f}=await L2(H);return d0.from({chain:y,value:gG.fromBigInt(BigInt(f),8).getValue("string")})}}function q4({chain:y,phrase:T,derivationPath:H,seed:f}){let C=_y(y),{privateKey:o,publicKey:U}=tf({chain:y,derivationPath:H,phrase:T,seed:f}),q=y===fy.BitcoinCash?[tC.ALL]:[Q2.ALL];return{getAddress:()=>ST({chain:y,network:C,publicKey:U}),privateKey:o,publicKey:U,signTransaction:(X)=>{return X.sign(o,q),X}}}function X4(y,T){return async function({memo:f,recipient:C,feeOptionKey:o,feeRate:U,assetValue:q,enableRBF:X=!1}){let G=await T?.getAddress();if(!(T&&G))throw new i("toolbox_utxo_no_signer");if(!C)throw new i("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});dG({condition:X&&!r0.includes(y),id:`rbf_not_supported_${y}`,warning:`RBF (Replace-by-Fee) is not reliably supported on ${y}. Transaction will be created without RBF signaling.`});let Z=X&&r0.includes(y),A=U||(await cf(y))[o||py.Fast],{tx:M}=await W2({assetValue:q,enableRBF:Z,feeRate:A,memo:f,recipient:C,sender:G}),Q=await T.signTransaction(M);return Q.finalize(),yy(y).broadcastTx(Of.encode(Q.extract()))}}function gC(y){return(T)=>cC({address:T,chain:y})}function iC(y){let T=_y(y);return function(f){if(!f)throw new i("toolbox_utxo_invalid_params",{error:"Keys must be provided"});return ST({chain:y,network:T,publicKey:f.publicKey})}}function Xf({chain:y,...T}){let H="phrase"in T?T.phrase:void 0,f="index"in T?T.index||0:0,C=H?mC(H):void 0,o="derivationPath"in T&&T.derivationPath?T.derivationPath:iG(G2[y],{index:f}),U=$T(o),q=H?q4({chain:y,derivationPath:U,phrase:H,seed:C}):void 0,X="signer"in T?T.signer:void 0,G=q||X,Z=H?tf({chain:y,derivationPath:U,phrase:H,seed:C}):void 0;function A(){if(G)return G.getAddress();return Promise.resolve(void 0)}function M(n){if(!H)return;let k=Hf({accountIndex:n,chain:y,derivationPath:o});return H4({chain:y,derivationPath:$T(k),phrase:H,seed:C})}let Q=M();function N(){if(!Q)return;return Q.publicExtendedKey}function J({accountIndex:n}={}){let k=n===void 0?Q:M(n);if(!k)return;let $=Hf({accountIndex:n,chain:y,derivationPath:o});return{accountIndex:Yf($),path:$T($),xpub:k.publicExtendedKey}}function B({accountIndex:n,index:k,change:$=!1}){let z=n===void 0?Q:M(n);if(!z)return;let F=lf({accountIndex:n,chain:y,change:$,derivationPath:o,index:k}),I=_y(y),v=z.deriveChild(Number($)).deriveChild(k);if(!v.publicKey)throw new i("toolbox_utxo_invalid_params",{error:"Could not derive public key"});let b=ST({chain:y,network:I,publicKey:v.publicKey}),l=Of.encode(v.publicKey);return{accountIndex:Yf(F),address:b,change:$,index:k,path:$T(F),pubkey:l}}async function D(n){if(!r0.includes(y))return{reason:`RBF is not supported on ${y}`,supported:!1};let k=await yy(y).getTransactionDetails(n);return{canReplace:k.isRBF&&!k.confirmed,confirmed:k.confirmed,enabled:k.isRBF,fee:k.fee,sequences:k.sequences,supported:!0}}async function W({txid:n,newFeeRate:k,recipient:$,memo:z}){if(!r0.includes(y))throw new i("toolbox_utxo_rbf_not_supported",{chain:y});let F=await yy(y).getTransactionDetails(n);if(!F.isRBF)throw new i("toolbox_utxo_tx_not_replaceable",{txid:n});if(F.confirmed)throw new i("toolbox_utxo_tx_already_confirmed",{blockId:F.blockId,txid:n});let I=F.inputs.reduce((e,xy)=>e+xy.value,0),b=F.outputs.find((e)=>e.recipient===$)?.value||0;if(b===0)throw new i("toolbox_utxo_invalid_params",{error:"Could not determine send amount from original transaction"});let l=await Promise.all(F.inputs.map(async(e)=>{let xy=await yy(y).getRawTx(e.transaction_hash);return{hash:e.transaction_hash,index:e.index,txHex:xy,value:e.value,witnessUtxo:void 0}})),h=z?Jy(z):null,s=zf({feeRate:k,inputs:l.map((e)=>({...e,type:"P2WPKH"})),outputs:[{address:$,value:b}]}),t=Math.ceil(s*k);if(t<=F.fee)throw new i("toolbox_utxo_rbf_fee_too_low",{newFee:t,originalFee:F.fee});let Yy=t-F.fee,Hy=b-Yy;if(Hy<=0)throw new i("toolbox_utxo_rbf_insufficient_change");let Sy=new hC({allowLegacyWitnessUtxo:!0,version:1}),Py=[{address:$,value:Hy},...z?[{address:"",script:Jy(z),value:0}]:[]],Ey=I-Hy-t,Zy=await A();if(Ey>kT(y)&&Zy)Py.push({address:Zy,value:Ey});return qf({chain:y,compiledMemo:h,inputs:l,outputs:Py,sender:Zy||$,tx:Sy}),{feeDelta:Yy,newFee:t,originalFee:F.fee,tx:Sy}}async function R({txid:n,newFeeRate:k,recipient:$,memo:z}){let{tx:F,originalFee:I,newFee:v}=await W({memo:z,newFeeRate:k,recipient:$,txid:n}),b=await x(F);b.finalize();let l=await yy(y).broadcastTx(Of.encode(b.extract()));return{newFee:v,originalFee:I,txid:l}}function O({accountIndex:n,index:k,change:$=!1}){ky("index",k);let z=n===void 0?Q:M(n);if(!z)return;return z.deriveChild(Number($)).deriveChild(k).privateKey||void 0}function Y({tx:n,inputDerivations:k}){if(!Q)throw new i("toolbox_utxo_no_signer");let $=y===fy.BitcoinCash?[tC.ALL]:[Q2.ALL];for(let z=0;z<k.length;z++){let F=k[z];if(!F)continue;let{derivationIndex:I,isChange:v}=F,b=O({change:v,index:I});if(!b)throw new i("toolbox_utxo_invalid_params",{error:`Could not derive private key for input ${z} at index ${I}`});n.signIdx(b,z,$)}return n}async function _({utxos:n,recipient:k,assetValue:$,memo:z,feeRate:F,feeOptionKey:I,changeAddress:v}){if(!Q)throw new i("toolbox_utxo_no_signer");let b=F||(await cf(y))[I||py.Fast],l=z?Jy(z):null,h=[{address:k,value:$.getBaseValue("number")}];if(l)h.push({address:"",script:l,value:0});let s=n.map(({hash:Zy,index:e,value:xy,txHex:pU,witnessUtxo:Y1})=>({hash:Zy,index:e,txHex:pU,value:xy,witnessUtxo:Y1?{script:Y1.script,value:Y1.value}:void 0})),{inputs:t,outputs:Yy}=Fy({chain:y,feeRate:b,inputs:s,outputs:h});if(!(t&&Yy))throw new i("toolbox_utxo_insufficient_balance",{assetValue:$,sender:"multiple addresses"});let Hy=new hC({allowLegacyWitnessUtxo:!0,version:1}),Sy=n[0]?.address,Py=v||await A()||Sy||k;qf({chain:y,compiledMemo:l,inputs:t,outputs:Yy,sender:Py,tx:Hy});let Ey=t.map((Zy)=>{let e=n.find((xy)=>xy.hash===Zy.hash&&xy.index===Zy.index);return e?{derivationIndex:e.derivationIndex,isChange:e.isChange}:{derivationIndex:0,isChange:!1}});return Y({inputDerivations:Ey,tx:Hy}),Hy.finalize(),yy(y).broadcastTx(Of.encode(Hy.extract()))}function L({address:n,gapLimit:k=20}){if(!Q)return;for(let $=0;$<k;$++){let z=B({change:!1,index:$}),F=B({change:!0,index:$}),I=z?.address===n?!1:F?.address===n;if(z?.address===n||F?.address===n)return{change:I,index:$}}return}function x(n){if(!G)throw new i("toolbox_utxo_no_signer");return G.signTransaction(n)}async function w(n){let k=await x(n);return k.finalize(),await yy(y).broadcastTx(Of.encode(k.extract()))}return{accumulative:Fy,broadcastTx:(n)=>yy(y).broadcastTx(n),bumpFee:R,calculateTxSize:zf,createKeysForPath:(n)=>tf({...n,chain:y}),createReplacementTransaction:W,createTransaction:W2,deriveAddressAtIndex:B,derivePrivateKeyAtIndex:O,estimateMaxSendableAmount:o4(y),estimateTransactionFee:U4(y),getAddress:A,getAddressFromKeys:iC(y),getBalance:Wy(y),getExtendedPublicKey:N,getExtendedPublicKeyInfo:J,getFeeRates:()=>cf(y),getInputsOutputsFee:L2,getNetworkForChain:()=>_y(y),getPrivateKeyFromMnemonic:(n)=>C4(tf({...n,chain:y}).privateKey,y),isRBFEnabled:D,keys:Z,resolveDerivationIndex:L,signAndBroadcastTransaction:w,signTransaction:x,signTransactionWithMultipleKeys:Y,transfer:X4(y,G),transferFromMultipleAddresses:_,validateAddress:gC(y)}}var IT,r0;var gf=E(()=>{uy();DT();uf();FT();IT=[fy.Dash,fy.Dogecoin,fy.Zcash,fy.BitcoinCash],r0=[fy.Bitcoin]});import{hex as A2}from"@scure/base";import{Chain as G4,derivationPathToString as Q4,FeeOption as _4,NetworkDerivationPath as M4,SwapKitError as ry,updateDerivationPath as Z4}from"@swapkit/helpers";import{BCHSigHash as W4,CashAddrPrefix as Y2,CashAddrType as J2,encodeCashAddr as z2,NETWORKS as L4,p2pkh as N2,Transaction as B2}from"@swapkit/utxo-signer";function PT(y){return Bf(xT(y))}function A4(y){let T=_y(ly);function H(C){return C.sign(y.privateKey,[W4.ALL]),C}function f(){let C=N2(y.publicKey,T);if(!C.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});let o=z2({hash:C.hash,prefix:Y2.MAINNET,type:J2.P2PKH});return Promise.resolve(o.replace(/^bitcoincash:/,""))}return{getAddress:f,signTransaction:H}}function dC(y){let T="phrase"in y?y.phrase:void 0,H="index"in y?y.index||0:0,f=Q4("derivationPath"in y&&y.derivationPath?y.derivationPath:Z4(M4[ly],{index:H})),C=T?tf({chain:ly,derivationPath:f,phrase:T}):void 0,o=C?A4(C):("signer"in y)?y.signer:void 0;function U(){return Promise.resolve(o?.getAddress())}let{getBalance:q,getFeeRates:X,broadcastTx:G,...Z}=Xf({chain:ly});function A(N,J=!0){return q(Bf(xT(N)))}function M(N){if(!o)throw new ry("toolbox_utxo_no_signer");return o.signTransaction(N)}async function Q(N){let J=await M(N);return J.finalize(),await G(A2.encode(J.extract()))}return{...Z,broadcastTx:G,buildTx:J4,createTransaction:O2,getAddress:U,getAddressFromKeys:z4,getBalance:A,getFeeRates:X,signAndBroadcastTransaction:Q,signTransaction:M,stripPrefix:Bf,stripToCashAddress:PT,transfer:Y4({broadcastTx:G,getFeeRates:X,signer:o}),validateAddress:Uf}}async function O2({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){if(!Uf(T))throw new ry("toolbox_utxo_invalid_address",{address:T});let o=Math.ceil(y.getBaseValue("number")+f*7500),U=await yy(ly).getUtxos({address:PT(C),fetchTxHex:!0,targetValue:o}),q=H?Jy(H):null,X=[],G=dy(T);if(X.push({address:G,value:y.getBaseValue("number")}),q)X.push({script:q,value:0});let{inputs:Z,outputs:A}=Fy({chain:ly,feeRate:f,inputs:U,outputs:X});if(!(Z&&A))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let M=new B2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!q,version:1}),Q=dy(C),{inputs:N,tx:J}=qf({chain:ly,compiledMemo:q,inputs:Z,outputs:A.map((B)=>("address"in B)&&B.address?{...B,address:dy(B.address)}:B),sender:Q,tx:M});return{inputs:N,tx:J,utxos:Z}}function Y4({broadcastTx:y,getFeeRates:T,signer:H}){return async function({recipient:C,assetValue:o,feeOptionKey:U=_4.Fast,...q}){let X=await H?.getAddress();if(!(H&&X))throw new ry("toolbox_utxo_no_signer");if(!C)throw new ry("toolbox_utxo_invalid_params",{error:"Recipient address must be provided"});let G=q.feeRate||(await T())[U],{tx:Z}=await O2({...q,assetValue:o,feeRate:G,recipient:C,sender:X}),A=await H.signTransaction(Z);return A.finalize(),y(A2.encode(A.extract()))}}async function J4({assetValue:y,recipient:T,memo:H,feeRate:f,sender:C}){let o=xT(T);if(!Uf(o))throw new ry("toolbox_utxo_invalid_address",{address:o});let U=Math.ceil(y.getBaseValue("number")+f*7500),q=await yy(ly).getUtxos({address:PT(C),fetchTxHex:!0,targetValue:U}),X=Number(f.toFixed(0)),G=H?Jy(H):null,Z=[];if(Z.push({address:dy(T),value:y.getBaseValue("number")}),G)Z.push({script:G,value:0});let{inputs:A,outputs:M}=Fy({chain:ly,feeRate:X,inputs:q,outputs:Z});if(!(A&&M))throw new ry("toolbox_utxo_insufficient_balance",{assetValue:y,sender:C});let Q=new B2({allowLegacyWitnessUtxo:!0,allowUnknownOutputs:!!G,version:1}),{inputs:N,tx:J}=qf({chain:ly,compiledMemo:G,inputs:A,outputs:M,sender:dy(C),tx:Q});return{inputs:N,tx:J,utxos:q}}function z4(y){let T=L4.bitcoinCash,H=N2(y.publicKey,T);if(!H.hash)throw new ry("toolbox_utxo_invalid_address",{error:"Could not derive BCH address hash"});return z2({hash:H.hash,prefix:Y2.MAINNET,type:J2.P2PKH}).replace(/^bitcoincash:/,"")}var ly;var a0=E(()=>{uf();gf();FT();ly=G4.BitcoinCash});import{createBase58check as N4,hex as B4}from"@scure/base";import{HDKey as R2}from"@scure/bip32";import{mnemonicToSeedSync as x2}from"@scure/bip39";import{Chain as s0,derivationPathToString as O4,FeeOption as D4,NetworkDerivationPath as R4,SKConfig as n2,SwapKitError as ET,updateDerivationPath as x4}from"@swapkit/helpers";import{Address as n4,createZcashTransaction as w4,OutScript as k4,PCZT as F4,utils as w2,WIF as $4,ZCASH_NETWORK as I4,ZCASH_TEST_NETWORK as S4,ZcashConsensusBranchId as P4,ZcashPSBT as E4,ZcashSigHash as rC,ZcashVersionGroupId as b4}from"@swapkit/utxo-signer";import{match as V4,P as aC}from"ts-pattern";function k2(){let{isStagenet:y}=n2.get("envs");return y?S4:I4}function p4(y){return v4.encode(y)}function l4({phrase:y,derivationPath:T}){let H=x2(y),C=R2.fromMasterSeed(H).derive(T);if(!C.privateKey||!C.publicKey)throw new ET("toolbox_utxo_invalid_params");let{privateKey:o,publicKey:U}=C,q=w2.hash160(U),{isStagenet:X}=n2.get("envs"),G=X?new Uint8Array([29,37]):new Uint8Array([28,184]),Z=new Uint8Array(G.length+q.length);Z.set(G,0),Z.set(q,G.length);let A=p4(Z);return{getAddress:()=>Promise.resolve(A),signTransaction:(M)=>{if(M instanceof E4){let Q=M.toPCZT();return Q.signAllInputs(o,U,rC.ALL),Q.finalizeAllInputs(),Promise.resolve(Q.extract())}if(M instanceof F4)return M.signAllInputs(o,U,rC.ALL),M.finalizeAllInputs(),Promise.resolve(M.extract());return M.signAllInputs(o,U,rC.ALL),Promise.resolve(M)}}}function j4({inputs:y,outputs:T,tx:H,sender:f,compiledMemo:C}){let o=k2();for(let U of y){let q=n4(o).decode(f),X=k4.encode(q);H.addInput({index:U.index,script:X,sequence:4294967295,txid:B4.decode(U.hash),value:BigInt(U.value)})}for(let U of T){let q="address"in U&&U.address?U.address:f,X=U.script;if(X&&!C)continue;if(X&&C)H.addOutput({amount:0n,script:C});else H.addOutputAddress(q,BigInt(U.value),o)}return{inputs:y,tx:H}}async function D2(y){let{assetValue:T,recipient:H,memo:f,feeRate:C,sender:o,fetchTxHex:U}=y,q=f?Jy(f):null,X=await yy(s0.Zcash).getUtxos({address:o,fetchTxHex:U!==!1}),G=[{address:H,value:Number(T.getBaseValue("string"))},...q?[{script:q,value:0}]:[]],{inputs:Z,outputs:A}=Fy({chain:s0.Zcash,changeAddress:o,feeRate:C,inputs:X,outputs:G});if(!(Z&&A))throw new ET("toolbox_utxo_insufficient_balance",{assetValue:T,sender:o});let M=w4({consensusBranchId:P4.NU6_2,expiryHeight:0,lockTime:0,version:4,versionGroupId:b4.SAPLING}),{tx:Q,inputs:N}=j4({compiledMemo:q,inputs:Z,outputs:A,sender:o,tx:M});return{inputs:N,outputs:A,tx:Q}}function sC(y){let T=V4(y).with({signer:aC.not(aC.nullish)},({signer:X})=>X).with({phrase:aC.string},({phrase:X,derivationPath:G,index:Z=0})=>{let A=G||R4[s0.Zcash]||[44,133,0,0,0],M=x4(A,{index:Z}),Q=O4(M);return l4({derivationPath:Q,phrase:X})}).otherwise(()=>{return}),H=Xf({chain:s0.Zcash,signer:T});async function f(X){if(!T)throw new ET("toolbox_utxo_no_signer");return await T.signTransaction(X)}async function C(X){let G=await f(X);return H.broadcastTx(G.toHex())}async function o({recipient:X,assetValue:G,feeOptionKey:Z=D4.Fast,...A}){let M=await T?.getAddress();if(!(T&&M))throw new ET("toolbox_utxo_no_signer");let Q=A.feeRate||(await H.getFeeRates())[Z],{tx:N}=await D2({...A,assetValue:G,feeRate:Q,recipient:X,sender:M}),B=(await T.signTransaction(N)).toHex();return H.broadcastTx(B)}function U({phrase:X,derivationPath:G="m/44'/133'/0'/0/0"}){let Z=x2(X),M=R2.fromMasterSeed(Z).derive(G);if(!M.privateKey||!M.publicKey)throw new ET("toolbox_utxo_invalid_params");return{privateKey:M.privateKey,publicKey:M.publicKey}}function q({phrase:X,derivationPath:G="m/44'/133'/0'/0/0"}){let Z=U({derivationPath:G,phrase:X}),A=k2();return $4(A).encode(Z.privateKey)}return{...H,createKeysForPath:U,createTransaction:D2,getPrivateKeyFromMnemonic:q,signAndBroadcastTransaction:C,signTransaction:f,transfer:o,validateAddress:hf}}var v4;var eC=E(()=>{uf();gf();FT();v4=N4(w2.sha256)});import{hex as K4}from"@scure/base";import{HDKey as u4}from"@scure/bip32";import{derivationPathToString as h4}from"@swapkit/helpers";function F2({xpub:y,chain:T,count:H,startIndex:f=0,accountIndex:C}){if(ky("count",H),H<1)throw RangeError("count must be at least 1");ky("startIndex",f);let o=_y(T),U=u4.fromExtendedKey(y,o.bip32),q=Hf({accountIndex:C,chain:T}),X=Yf(q),G=[];for(let Z of[!1,!0]){let A=U.deriveChild(Number(Z));for(let M=0;M<H;M++){let Q=f+M,N=A.deriveChild(Q);if(!N.publicKey)continue;let J=lf({accountIndex:C,chain:T,change:Z,index:Q});G.push({accountIndex:X,address:ST({chain:T,network:o,publicKey:N.publicKey}),change:Z,index:Q,path:h4(J),pubkey:K4.encode(N.publicKey)})}}return G}var $2=E(()=>{DT();gf()});import{Chain as df,SwapKitError as m4}from"@swapkit/helpers";function t4(y,T){switch(y){case df.BitcoinCash:return dC(T||{});case df.Zcash:return sC(T);case df.Bitcoin:case df.Dogecoin:case df.Litecoin:case df.Dash:return Xf({chain:y,...T});default:throw new m4("toolbox_utxo_not_supported",{chain:y})}}var I2=E(()=>{a0();gf();eC();DT();$2();a0();FT()});var yH={};Ty(yH,{validateZcashAddress:()=>hf,validateUtxoAddress:()=>cC,validateBchAddress:()=>Uf,toLegacyAddress:()=>dy,toCashAddress:()=>xT,stripToCashAddress:()=>PT,stripPrefix:()=>Bf,nonSegwitChains:()=>IT,isValidAddress:()=>jC,getUtxoToolbox:()=>t4,getUtxoNetwork:()=>xG,getUtxoApi:()=>yy,getUTXOAddressValidator:()=>gC,getUTXOAddressPath:()=>lf,getUTXOAccountPath:()=>Hf,getUTXOAccountIndexFromPath:()=>Yf,getScriptTypeForAddress:()=>Kf,getOutputSize:()=>wT,getNetworkForChain:()=>_y,getInputSize:()=>of,getDustThreshold:()=>kT,detectAddressNetwork:()=>KC,deriveAddressesFromXpub:()=>F2,createZcashToolbox:()=>sC,createUTXOToolbox:()=>Xf,createHDWalletHelpers:()=>mo,createCustomUtxoApi:()=>RG,createBCHToolbox:()=>dC,compileMemo:()=>Jy,calculateTxSize:()=>zf,assertDerivationIndex:()=>ky,addressFromKeysGetter:()=>iC,addInputsAndOutputs:()=>qf,accumulative:()=>Fy,UtxoNetwork:()=>lC,UTXOScriptType:()=>i0,TX_OVERHEAD:()=>c0,SEGWIT_MARKER_FLAG_WEIGHT:()=>g0,OutputSizes:()=>nT,OP_RETURN_OVERHEAD:()=>C2,MIN_TX_FEE:()=>jG,InputSizes:()=>t0});var fH=E(()=>{gf();DT();uf();I2();a0();eC()});import{KeyPairSigner as c4}from"@near-js/signers";import{derivationPathToString as g4,SwapKitError as i4}from"@swapkit/helpers";import*as S2 from"near-seed-phrase";function bT(y){return y.length>=2&&y.length<=64&&/^(([a-z\d]+[-_])*[a-z\d]+\.)*([a-z\d]+[-_])*[a-z\d]+$/.test(y)}async function e0(y){let{KeyPair:T}=await import("@near-js/crypto"),H=y.index||0,f=y.derivationPath?g4(y.derivationPath.slice(0,3)):`m/44'/397'/${H}'`,{secretKey:C}=S2.parseSeedPhrase(y.phrase,f),o=T.fromString(C);return E2(o)}async function TH(y){let{KeyPair:T}=await import("@near-js/crypto"),H=T.fromString(y);return E2(H)}function E2(y){return new P2(y)}async function y1(y,T){let f=(await y.query({account_id:T,finality:"final",request_type:"view_access_key_list"})).keys.find((q)=>q.access_key.permission==="FullAccess");if(!f)throw new i4("toolbox_near_no_public_key_found");let{PublicKey:C}=await import("@near-js/crypto"),o=C.fromString(f.public_key);return{nonce:f.access_key.nonce||0,publicKey:o}}var P2;var CH=E(()=>{P2=class P2 extends c4{#y;constructor(y){super(y);this.#y=y}getAddress(){let y=this.#y.getPublicKey(),T=Buffer.from(y.data).toString("hex");return Promise.resolve(T)}}});function HH(y){return"recipient"in y&&"amount"in y&&!("contractId"in y)}function oH(y){return"contractId"in y&&"methodName"in y}function UH(y){return"actions"in y}function qH(y){return"newAccountId"in y}function XH(y){return"contractCode"in y}function GH(y){return"customEstimator"in y}function QH(y){let T=0;for(let H of y)switch(H.enum){case"transfer":T+=Number(Xy.SIMPLE_TRANSFER);break;case"functionCall":T+=Number(Xy.CONTRACT_CALL);break;case"createAccount":T+=Number(Xy.ACCOUNT_CREATION);break;case"deployContract":T+=Number(Xy.CONTRACT_DEPLOYMENT);break;case"addKey":T+=Number(Xy.ACCESS_KEY_ADDITION);break;case"deleteKey":T+=Number(Xy.ACCESS_KEY_DELETION);break;case"stake":T+=Number(Xy.STAKE);break;default:T+=Number(Xy.CONTRACT_CALL)}return T.toString()}function _H(y){if(y==="ft_transfer"||y==="ft_transfer_call")return Xy.TOKEN_TRANSFER;if(y==="storage_deposit")return Xy.STORAGE_DEPOSIT;return Xy.CONTRACT_CALL}function d4(y){return(BigInt(y)*BigInt(1000000000000)).toString()}function r4(y){return(BigInt(y)/BigInt(1000000000000)).toString()}var Xy;var MH=E(()=>{Xy={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 ZH({account:y,contractId:T,viewMethods:H,changeMethods:f}){let{Contract:C}=await import("@near-js/accounts");return new C(y,T,{changeMethods:f,useLocalViewExecution:!0,viewMethods:H})}import{JsonRpcProvider as a4}from"@near-js/providers";import{AssetValue as WH,Chain as rf,getRPCUrl as b2,SwapKitError as Gy}from"@swapkit/helpers";import{match as V2,P as v2}from"ts-pattern";function s4(y){let T;async function H(){if(T)return T;return T=await V2(y).with({phrase:v2.string},async(z)=>{return await e0(z)}).with({signer:v2.any},({signer:z})=>z).otherwise(()=>{return}),T}async function f(){let z=await b2(rf.Near);return new a4({url:z})}async function C(z){let{Account:F}=await import("@near-js/accounts"),I=await f(),v=await H(),b=z||await o();return new F(b,I,v)}async function o(){let z=await H();if(!z)throw new Gy("toolbox_near_no_signer");return await z.getAddress()}async function U(z){return(await L({changeMethods:[],contractId:z.contractId,viewMethods:["storage_balance_of"]})).storage_balance_of({account_id:z.accountId})}async function q(z){let I=[await M({args:{account_id:z.recipient},attachedDeposit:"1250000000000000000000",gas:"150000000000000",methodName:"storage_deposit"}),await M({args:{amount:z.assetValue.getBaseValue("string"),memo:z.memo||null,receiver_id:z.recipient},attachedDeposit:"1",gas:"150000000000000",methodName:"ft_transfer"})];return x({actions:I,receiverId:z.contractId})}async function X(z){if(!await H())throw new Gy("toolbox_near_no_signer");let{assetValue:I,recipient:v,memo:b}=z,l=await o();if(!I.isGasAsset&&I.address){if(!await U({accountId:v,contractId:I.address}))return q({assetValue:I,contractId:I.address,memo:b,recipient:v})}let h=await G({...z,sender:l});return W(h)}async function G({recipient:z,assetValue:F,memo:I,attachedDeposit:v,sender:b,functionCall:l}){let h=await f();if(!bT(z))throw new Gy("toolbox_near_invalid_address",{recipient:z});if(!bT(b))throw new Gy("toolbox_near_invalid_address",{sender:b});if(l)return A({...l,sender:b});if(!F.isGasAsset){let xy=F.address;if(!xy)throw new Gy("toolbox_near_missing_contract_address");return A({args:{amount:F.getBaseValue("string"),memo:I||null,receiver_id:z},attachedDeposit:v||"1",contractId:xy,gas:"250000000000000",methodName:"ft_transfer",sender:b})}let{publicKey:s,nonce:t}=await y1(h,b),Yy=F.getBaseValue("bigint"),{actionCreators:Hy,createTransaction:Sy}=await import("@near-js/transactions"),{baseDecode:Py}=await import("@near-js/utils"),Ey=[Hy.transfer(Yy)];if(I&&v)Ey.push(Hy.functionCall("memo",{memo:I},BigInt("250000000000000"),BigInt(v)));let Zy=await h.block({finality:"final"}),e=Py(Zy.header.hash);return Sy(b,s,z,t+1,Ey,e)}function Z(z){let F=z.encode();return Buffer.from(F).toString("base64")}async function A({args:z,attachedDeposit:F,contractId:I,gas:v,methodName:b,sender:l}){let h=await f(),{publicKey:s,nonce:t}=await y1(h,l),{createTransaction:Yy,actionCreators:Hy}=await import("@near-js/transactions"),{baseDecode:Sy}=await import("@near-js/utils"),Py=await h.block({finality:"final"}),Ey=Sy(Py.header.hash),Zy=[Hy.functionCall(b,Buffer.from(JSON.stringify(z)),BigInt(v),BigInt(F))];return Yy(l,s,I,t+1,Zy,Ey)}async function M(z){let{actionCreators:F}=await import("@near-js/transactions");return F.functionCall(z.methodName,Buffer.from(JSON.stringify(z.args)),BigInt(z.gas),BigInt(z.attachedDeposit))}async function Q(z){let F=await H();if(!F)throw new Gy("toolbox_near_no_signer");await N(z);let[I,v]=await F.signTransaction(z);return v}async function N(z){let F=z.publicKey;if(F.toString?.().startsWith("ed25519:")||F.toString?.().startsWith("secp256k1:"))return;let{KeyType:I,PublicKey:v}=await import("@near-js/crypto"),b=F.data||F.ed25519Key?.data,l=F.secp256k1Key?.data;if(b){z.publicKey=new v({data:Uint8Array.from(b),keyType:I.ED25519});return}if(l)z.publicKey=new v({data:Uint8Array.from(l),keyType:I.SECP256K1})}function J(z){if(typeof z==="string")return z;if(Array.isArray(z))return z.map(J).find(Boolean);if(!(z&&typeof z==="object"))return;let F=z;return F.transaction?.hash||F.transaction_outcome?.id}function B(z){return z instanceof Error?z.message:String(z)}async function D(z){let I=await(await f()).sendTransaction(z),v=J(I);if(!v)throw new Gy("toolbox_near_transfer_failed",{result:I});return v}async function W(z){let F=await H();if(!F)throw new Gy("toolbox_near_no_signer");let I;try{I=await Q(z)}catch(v){let b;try{b=F.signAndSendTransaction?await F.signAndSendTransaction({actions:z.actions,receiverId:z.receiverId,signerId:z.signerId}):await F.signAndSendTransactions?.({transactions:[z]})}catch(h){throw new Gy({errorKey:"toolbox_near_sign_transaction_failed",info:{directSignError:B(v),signAndSendError:B(h)}},h)}let l=J(b);if(l)return l;throw v}return D(I)}async function R(z){let F=await H();if("assetValue"in z){let v=await O();try{let b=await b2(rf.Near),l=await fetch(b,{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:h}}=await l.json(),{execution:s,send_sir:t}=h.transaction_costs.action_receipt_creation_config,{execution:Yy,send_sir:Hy}=h.transaction_costs.action_creation_config.transfer_cost,Sy=BigInt(Hy)+BigInt(Yy),Py=BigInt(t)+BigInt(s),Zy=(Sy+Py)*BigInt(v.toString());return WH.from({chain:rf.Near,value:Zy})}catch(b){console.debug("NEAR fee estimation (protocol config) failed, using fallback:",b);let l=BigInt("115123062500"),h=BigInt("108059500000"),t=(l+h)*BigInt(v.toString());return WH.from({chain:rf.Near,value:t})}}let I=F?await C():void 0;return w(z,I)}async function O(){let z=await f();try{return await z.query({account_id:"system",args_base64:"",finality:"final",method_name:"gas_price",request_type:"call_function"})}catch{return"100000000"}}async function Y(z,F,I){if(!await H())throw new Gy("toolbox_near_no_signer");let b=await C(),{formatNearAmount:l}=await import("@near-js/utils"),{PublicKey:h}=await import("@near-js/crypto"),s=l(I)||"0";return(await b.createAccount(z,h.fromString(F),BigInt(s))).transaction.hash}async function _(z){let F=await H();try{if(!F)throw new Gy("toolbox_near_no_signer");let{actionCreators:I}=await import("@near-js/transactions"),{contractId:v,methodName:b,args:l,deposit:h}=z,s=await C(),t=await w({args:l||{},contractId:v,methodName:b}),Yy=I.functionCall(b,l||{},t.getBaseValue("bigint"),BigInt(h||"1"));return(await s.signAndSendTransaction({actions:[Yy],receiverId:v})).transaction_outcome.id}catch(I){throw new Gy("toolbox_near_transfer_failed",{error:I})}}async function L(z){let F=await C();return ZH({account:F,changeMethods:z.changeMethods,contractId:z.contractId,viewMethods:z.viewMethods})}async function x(z){if(!await H())throw new Gy("toolbox_near_no_signer");if(z.actions.length===0)throw new Gy("toolbox_near_empty_batch");return(await(await C()).signAndSendTransaction({actions:z.actions,receiverId:z.receiverId})).transaction.hash}async function w(z,F){let I=await V2(z).when(HH,()=>Xy.SIMPLE_TRANSFER).when(oH,(b)=>_H(b.methodName)).when(UH,(b)=>QH(b.actions)).when(qH,()=>Xy.ACCOUNT_CREATION).when(XH,()=>Xy.CONTRACT_DEPLOYMENT).when(GH,(b)=>{if(!F)throw new Gy("toolbox_near_no_account");return b.customEstimator(F)}).otherwise(()=>{throw new Gy("toolbox_near_invalid_gas_params")}),v=BigInt(I)*BigInt(1000000000000);return WH.from({chain:rf.Near,value:v})}function n(z,F){return console.warn("NEAR toolbox: estimateGas is deprecated, use estimateGasLimit instead"),w(z,F)}async function k(){let z=await f();try{return(await z.gasPrice(null)).gas_price||"100000000"}catch{return"100000000"}}async function $(){let z=await H();return z?(await z.getPublicKey()).toString():""}return{broadcastTransaction:D,callFunction:_,createAction:M,createContract:L,createContractFunctionCall:A,createSubAccount:Y,createTransaction:G,estimateGas:n,estimateGasLimit:w,estimateTransactionFee:R,executeBatchTransaction:x,getAddress:o,getBalance:Wy(rf.Near),getGasPrice:k,getNearProvider:f,getPublicKey:$,getSignerFromPhrase:e0,getSignerFromPrivateKey:TH,serializeTransaction:Z,signAndBroadcastTransaction:W,signTransaction:Q,transfer:X,validateAddress:bT}}var LH=E(()=>{uy();CH();MH()});var p2=E(()=>{LH()});var AH={};Ty(AH,{validateNearAddress:()=>bT,tgasToGas:()=>d4,isSimpleTransfer:()=>HH,isCustomEstimator:()=>GH,isContractDeployment:()=>XH,isContractCall:()=>oH,isBatchTransaction:()=>UH,isAccountCreation:()=>qH,getNearToolbox:()=>s4,getNearSignerFromPrivateKey:()=>TH,getNearSignerFromPhrase:()=>e0,getFullAccessPublicKey:()=>y1,getContractMethodGas:()=>_H,gasToTGas:()=>r4,estimateBatchGas:()=>QH,createNearContract:()=>ZH,GAS_COSTS:()=>Xy});var YH=E(()=>{CH();MH();LH();p2()});var zH={};Ty(zH,{validateRadixAddress:()=>j2,getRadixToolbox:()=>q6});import{GatewayApiClient as e4}from"@radixdlt/babylon-gateway-api-sdk";import{RadixDappToolkit as y6}from"@radixdlt/radix-dapp-toolkit";import{AssetValue as l2,Chain as JH,SKConfig as f6,SwapKitError as T6}from"@swapkit/helpers";function j2(y){return y.startsWith("account_rdx1")&&y.length===66}function C6({networkApi:y}){return async function(H){let f=await H6({address:H,networkApi:y}),C=await o6({networkApi:y,resources:f});if(!C.some((U)=>U.isGasAsset))return[l2.from({chain:JH.Radix}),...C];return C}}async function H6({address:y,networkApi:T}){let H=!0,f,C=[],o=await U6(T);while(H){let U={address:y,at_ledger_state:{state_version:o},cursor:f,limit_per_page:100},q=await T.state.innerClient.entityFungiblesPage({stateEntityFungiblesPageRequest:U});if(C=C.concat(q.items),q.next_cursor)f=q.next_cursor;else H=!1}return C}async function o6({resources:y,networkApi:T}){let H=[],f=50,C=[];for(let o=0;o<y.length;o+=50)C.push(y.slice(o,o+50));for(let o of C){let U=o.map((G)=>G.resource_address),q=await T.state.getEntityDetailsVaultAggregated(U),X=new Map;for(let G of q)if(G.details!==void 0){let Z=G.metadata?.items.find((M)=>M.key==="symbol"),A=Z?.value.typed.type==="String"?Z.value.typed.value:"?";if(G.details.type==="FungibleResource")X.set(G.address,{decimals:G.details.divisibility,symbol:A})}for(let G of o)if(G.aggregation_level==="Global"){let Z=X.get(G.resource_address)||{decimals:0,symbol:"?"},A=l2.from({asset:Z.symbol!==JH.Radix?`${JH.Radix}.${Z.symbol}-${G.resource_address}`:"XRD.XRD",value:G.amount});H.push(A)}}return H}async function U6(y){return(await y.status.getCurrent()).ledger_state.state_version}function q6({dappConfig:y}={}){let T=y||f6.get("integrations").radix,H=y6({...T,networkId:T.network?.networkId||1}),f=e4.initialize(H.gatewayApi.clientConfig);return{getAddress:()=>"",getBalance:C6({networkApi:f}),networkApi:f,signAndBroadcast:()=>{throw new T6("toolbox_radix_method_not_supported",{method:"signAndBroadcast"})},validateAddress:j2}}var NH=()=>{};import{SwapKitError as X6}from"@swapkit/helpers";function f1(y){return/^[0-9A-Fa-f]{40}$/.test(y)}function VT(y){if(f1(y))return y.toUpperCase();if(y.length<=3){let H=Buffer.from(y.padEnd(3,"\x00")).toString("hex");return`00${"0".repeat(22)}${H}${"0".repeat(10)}`.toUpperCase()}let T=Buffer.from(y).toString("hex").toUpperCase();if(T.length>40)throw new X6({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y,reason:"Currency exceeds maximum length (20 bytes)"}});return T.padEnd(40,"0")}function G6(y){if(!f1(y))return y;if(y.toUpperCase().startsWith("00")){let T=y.slice(24,30);try{let H=Buffer.from(T,"hex").toString("ascii").replace(/\0/g,"");if(/^[A-Za-z0-9?!@#$%^&*<>(){}[\]|]+$/.test(H)&&H.length>0)return H}catch{}return y.toUpperCase()}try{let T=y.replace(/0+$/,""),H=T.length%2===0?T:`${T}0`,f=Buffer.from(H,"hex").toString("utf8");if(/^[\x20-\x7E]+$/.test(f))return f}catch{}return y.toUpperCase()}function af(y){if(f1(y))return y.toUpperCase();if(y.length<=3)return y;return VT(y)}var T1=()=>{};import{RequestClient as Q6,warnOnce as _6}from"@swapkit/helpers";async function M6(y,T){let H=af(y),f=C1.find((C)=>af(C.currency)===H&&C.issuer===T);if(f)return f;try{let C=await Q6.get(`https://api.xrplmeta.org/token/${y}:${T}`);if(C)return{currency:y,decimals:15,description:C.desc,domain:C.domain,icon:C.icon,issuer:T,name:C.name,verified:C.self_assessment?.is_regulated||C.self_assessment?.is_licensed}}catch(C){_6({condition:!0,id:`xrpl_token_lookup_${y}_${T}`,warning:`Failed to fetch XRPL token info for ${y}:${T}: ${C}`})}return{currency:y,decimals:15,issuer:T,verified:!1}}function Z6(y){return C1.filter((T)=>T.issuer===y)}function W6(y,T){let H=af(y);return C1.some((f)=>af(f.currency)===H&&f.issuer===T)}var C1;var K2=E(()=>{T1();C1=[{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 BH={};Ty(BH,{validateRippleAddress:()=>U1,parseXrplTokenIdentifier:()=>i2,normalizeCurrency:()=>af,isKnownToken:()=>W6,isHexCurrency:()=>f1,hexToCurrency:()=>G6,hashes:()=>B6,getXrplTokenInfo:()=>M6,getRippleToolbox:()=>N6,getKnownTokensByIssuer:()=>Z6,formatXrplTokenIdentifier:()=>d2,currencyToHex:()=>VT,XRPL_TOKEN_ERROR_CODES:()=>o1,XRPL_KNOWN_TOKENS:()=>C1});import{AssetValue as H1,Chain as $y,getChainConfig as u2,getRPCUrl as L6,SwapKitError as My}from"@swapkit/helpers";import{match as h2,P as m2}from"ts-pattern";import{Client as A6,isValidAddress as g2,Wallet as Y6,xrpToDrops as J6}from"xrpl";import{hashes as B6}from"xrpl";function i2(y){let T=y.match(/^XRP\.([A-Fa-f0-9]{40}|[\x20-\x7E]{1,20})-([a-zA-Z0-9]{25,34})$/);if(!T?.[1]||!T?.[2])return null;if(!g2(T[2]))return null;return{currency:T[1],issuer:T[2]}}function d2(y,T){return`${$y.Ripple}.${y}-${T}`}function z6(y){if(y.isGasAsset)return J6(y.getValue("string"));let T=i2(y.toString());if(!T)throw new My({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:y.toString()}});return{currency:T.currency,issuer:T.issuer,value:y.getValue("string")}}function c2(y){let T=Y6.fromMnemonic(y);return{getAddress:()=>Promise.resolve(T.address),signTransaction:(H)=>Promise.resolve(T.sign(H))}}function U1(y){return g2(y)}function N6(y={}){let T=h2(y).with({phrase:m2.string},({phrase:W})=>c2(W)).with({signer:m2.any},({signer:W})=>W).otherwise(()=>{return}),H;async function f(){let W=await L6($y.Ripple);if(!W)throw new My({errorKey:"toolbox_ripple_rpc_not_configured",info:{chain:$y.Ripple}});let R=new A6(W);return await R.connect(),R}async function C(){if(H){let W=await H.catch(()=>null);if(W?.isConnected())return W}return H=f(),H}let o=()=>{if(!T)throw new My({errorKey:"toolbox_ripple_signer_not_found"});return T.getAddress()},U=async(W)=>{let R=W||await o(),{baseDecimal:O}=u2($y.Ripple),Y=await C();try{let[_,L]=await Promise.all([Y.request({account:R,command:"account_info"}),Y.request({account:R,command:"account_lines"})]),x=_.result.account_data.Balance,w=[H1.from({chain:$y.Ripple,fromBaseDecimal:O,value:x})];for(let n of L.result.lines){let k=d2(n.currency,n.account);if(Number.parseFloat(n.balance)!==0)w.push(H1.from({asset:k,asyncTokenLookup:!1,value:n.balance}))}return w}catch(_){if(_.data?.error_code===t2.ACCOUNT_NOT_FOUND)return[H1.from({chain:$y.Ripple,value:0})];throw new My({errorKey:"toolbox_ripple_get_balance_error",info:{address:R,error:_}})}},q=async()=>{let{baseDecimal:W}=u2($y.Ripple),Y=(await(await C()).request({command:"fee"})).result.drops.open_ledger_fee;return H1.from({chain:$y.Ripple,fromBaseDecimal:W,value:Y})};async function X(W){let R=W||await o(),O=await C();try{return(await O.request({account:R,command:"account_lines"})).result.lines.map((_)=>({account:_.account,authorized:_.authorized??!1,balance:_.balance,currency:_.currency,freeze:_.freeze??!1,freezePeer:_.freeze_peer??!1,limit:_.limit,limitPeer:_.limit_peer,noRipple:_.no_ripple??!1,noRipplePeer:_.no_ripple_peer??!1,peerAuthorized:_.peer_authorized??!1,qualityIn:_.quality_in??0,qualityOut:_.quality_out??0}))}catch(Y){if(Y.data?.error_code===t2.ACCOUNT_NOT_FOUND)return[];throw new My({errorKey:"toolbox_ripple_get_trust_lines_error",info:{address:R,error:Y}})}}async function G({address:W,currency:R,issuer:O}){let Y=await X(W),_=VT(R);return Y.some((L)=>{return VT(L.currency)===_&&L.account===O})}async function Z({currency:W,issuer:R,limit:O,sender:Y}){let _=Y||await o();if(!U1(R))throw new My({errorKey:"core_transaction_invalid_recipient_address",info:{address:R}});let L=Number.parseFloat(O);if(Number.isNaN(L)||L<0)throw new My({errorKey:"toolbox_ripple_invalid_trust_line_limit",info:{limit:O}});let x=await C(),w={Account:_,LimitAmount:{currency:W,issuer:R,value:O},TransactionType:"TrustSet"};return x.autofill(w)}async function A({assetValue:W,recipient:R,memo:O,sender:Y,destinationTag:_,extendBySeconds:L=150}){if(!U1(R))throw new My({errorKey:"core_transaction_invalid_recipient_address"});let x=Y||await o();if(W.chain!==$y.Ripple)throw new My({errorKey:"toolbox_ripple_asset_not_supported",info:{asset:W.toString()}});let w=z6(W),n={Account:x,Amount:w,Destination:R,TransactionType:"Payment",..._!==void 0&&{DestinationTag:_}};if(O)n.Memos=[{Memo:{MemoData:Buffer.from(O).toString("hex")}}];let $=await(await C()).autofill(n);if($.LastLedgerSequence&&L>0)$.LastLedgerSequence+=Math.ceil(L/4);return $}function M(W){if(!T)throw new My({errorKey:"toolbox_ripple_signer_not_found"});return T.signTransaction(W)}async function Q(W){let O=await(await C()).submitAndWait(W),{result:Y}=O;if(Y.validated)return Y.hash;let _=Y.meta?.TransactionResult,L=h2(_).with(o1.tecNO_LINE,()=>"No trust line exists for this token").with(o1.tecPATH_DRY,()=>"Payment path could not deliver funds").with(o1.tecFROZEN,()=>"Token is frozen").otherwise(()=>{return});throw new My({errorKey:"toolbox_ripple_broadcast_error",info:{chain:$y.Ripple,...L?{reason:L}:{txResult:_}}})}let N=async(W)=>{try{let R=await M(W);return Q(R.tx_blob)}catch(R){if(R instanceof My)throw R;throw new My({errorKey:"toolbox_ripple_broadcast_error",info:{chain:$y.Ripple,error:R}})}};async function J(W){if(!T)throw new My({errorKey:"toolbox_ripple_signer_not_found"});let R=await T.getAddress(),O=await A({...W,sender:R}),Y=await M(O);return Q(Y.tx_blob)}async function B(W){if(!T)throw new My({errorKey:"toolbox_ripple_signer_not_found"});let R=await T.getAddress(),O=await Z({...W,sender:R}),Y=await M(O);return Q(Y.tx_blob)}function D(){let W=H;if(H=null,W)W.then((R)=>{if(R?.isConnected())return R.disconnect();return}).catch((R)=>{console.warn("XRPL Cleanup failed silently:",R)})}return{broadcastTransaction:Q,createSigner:c2,createTransaction:A,disconnect:D,estimateTransactionFee:q,getAddress:o,getBalance:U,getTrustLines:X,hasTrustLine:G,setTrustLine:Z,setTrustLineAndBroadcast:B,signAndBroadcastTransaction:N,signTransaction:M,transfer:J,validateAddress:U1}}var t2,o1;var OH=E(()=>{T1();T1();K2();t2={ACCOUNT_NOT_FOUND:19},o1={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 O6}from"@noble/hashes/sha2.js";import{bytesToHex as r2,hexToBytes as a2}from"@noble/hashes/utils.js";import{SwapKitError as sf}from"@swapkit/helpers";function DH(y,T){let H=0n,f=0n,C=T;while(C<y.length&&C-T<10){let o=y[C++];if(o===void 0)break;if(H|=BigInt(o&127)<<f,f+=7n,(o&128)===0)return[H,C]}throw new sf("toolbox_tron_transaction_creation_failed")}function vT(y){let T=[],H=y<0n?y+2n**64n:y;while(H>=128n)T.push(Number(H&0x7fn)|128),H>>=7n;return T.push(Number(H)),T}function q1(y,T,H){let f=y.get(T);if(f)f.push(H);else y.set(T,[H])}function n6(y){let T=new Map,H=0;while(H<y.length){let[f,C]=DH(y,H);H=C;let o=Number(f>>3n),U=Number(f&7n);if(U===X1){let[q,X]=DH(y,H);H=X,q1(T,o,{data:new Uint8Array(vT(q)),wireType:X1})}else if(U===G1){let[q,X]=DH(y,H);H=X;let G=Number(q);if(G<0||H+G>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let Z=y.slice(H,H+G);H+=G,q1(T,o,{data:Z,wireType:G1})}else if(U===s2){if(H+8>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+8);H+=8,q1(T,o,{data:q,wireType:s2})}else if(U===e2){if(H+4>y.length)throw new sf("toolbox_tron_transaction_creation_failed");let q=y.slice(H,H+4);H+=4,q1(T,o,{data:q,wireType:e2})}else throw new sf("toolbox_tron_transaction_creation_failed")}return T}function w6(y){let T=[];for(let[o,U]of[...y.entries()].sort(([q],[X])=>q-X))for(let{wireType:q,data:X}of U){let G=BigInt(o<<3|q);if(T.push(new Uint8Array(vT(G))),q===G1)T.push(new Uint8Array(vT(BigInt(X.length))));T.push(X)}let H=T.reduce((o,U)=>o+U.length,0),f=new Uint8Array(H),C=0;for(let o of T)f.set(o,C),C+=o.length;return f}function yU(y,T){if(!y||y.length%2!==0)throw new sf("toolbox_tron_transaction_creation_failed");let H=a2(y),f=n6(H);if(T.expiration!==void 0)f.set(D6,[{data:new Uint8Array(vT(BigInt(T.expiration))),wireType:X1}]);if(T.data!==void 0)f.set(R6,[{data:a2(T.data),wireType:G1}]);if(T.fee_limit!==void 0)f.set(x6,[{data:new Uint8Array(vT(BigInt(T.fee_limit))),wireType:X1}]);let C=w6(f),o=r2(C),U=r2(O6(C));return{raw_data_hex:o,txID:U}}var X1=0,s2=1,G1=2,e2=5,D6=8,R6=10,x6=18;var fU=()=>{};import{secp256k1 as TU}from"@noble/curves/secp256k1.js";import{sha256 as CU}from"@noble/hashes/sha2.js";import{keccak_256 as k6}from"@noble/hashes/sha3.js";import{bytesToHex as ef,hexToBytes as Q1}from"@noble/hashes/utils.js";import{createBase58check as F6}from"@scure/base";import{SwapKitError as HU}from"@swapkit/helpers";function Iy(y){if(typeof y!=="string")return!1;try{let T=_1.decode(y);return T.length===21&&T[0]===oU}catch{return!1}}function UU(y){return ef(_1.decode(y))}function I6(y){return _1.decode(y).slice(1)}function qU(y){let T=TU.getPublicKey(Q1(y),!1),H=k6(T.slice(1)).slice(-20),f=new Uint8Array(21);return f[0]=oU,f.set(H,1),_1.encode(f)}function XU({txID:y,privateKey:T}){let H=TU.sign(Q1(y),Q1(T),{format:"recovered",prehash:!1}),f=H[0]??0,C=ef(H.slice(1,33)),o=ef(H.slice(33,65)),U=(f+27).toString(16).padStart(2,"0");return C+o+U}function yT({txID:y,raw_data_hex:T}){let H=ef(CU(Q1(T)));if(y!==H)throw new HU("toolbox_tron_invalid_transaction_integrity",{expected:H,txID:y})}function S6(y){return`000000000000000000000000${ef(I6(y))}`}function P6(y){let T=typeof y==="bigint"?y:BigInt(y);if(T<0n||T>=$6)throw new HU("toolbox_tron_invalid_token_identifier",{identifier:T.toString()});return T.toString(16).padStart(64,"0")}function fT(y){return y.map(({type:T,value:H})=>T==="address"?S6(H):P6(BigInt(H))).join("")}function GU(y){return ef(new TextEncoder().encode(y))}var _1,oU=65,$6;var RH=E(()=>{_1=F6(CU),$6=2n**256n});import{Chain as E6,getRPCUrlSync as b6,SwapKitError as zy,warnOnce as M1}from"@swapkit/helpers";function _U(){try{return b6(E6.Tron)}catch{return QU}}function MU(){let y=new AbortController,T=setTimeout(()=>y.abort(),j6);return{cleanup:()=>clearTimeout(T),signal:y.signal}}async function Df(y,T){let{signal:H,cleanup:f}=MU();try{let C=await fetch(`${_U()}${y}`,{body:JSON.stringify(T),headers:{"Content-Type":"application/json"},method:"POST",signal:H});if(!C.ok)throw new zy("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function ZU(y,T){let{signal:H,cleanup:f}=MU();try{let C=await fetch(`${T??_U()}${y}`,{headers:{"Content-Type":"application/json"},signal:H});if(!C.ok)throw new zy("toolbox_tron_trongrid_api_error",{message:`${C.status} ${C.statusText} on ${y}`});return await C.json()}finally{f()}}async function WU(y){if(!Iy(y))throw new zy("toolbox_tron_trongrid_api_error",{address:y,message:"Invalid address"});try{let T=await ZU(`/v1/accounts/${y}`,QU);if(!(T.success&&T.data)||T.data.length===0)return;let H;try{H=UU(y).toLowerCase()}catch{H=y.toLowerCase()}let f=T.data.find((C)=>C.address.toLowerCase()===H);if(!f)return;return{balance:f.balance,trc20:f.trc20||[]}}catch(T){if(T instanceof zy)throw T;throw new zy("toolbox_tron_trongrid_api_error",{address:y,message:T instanceof Error?T.message:"Unknown error"})}}async function LU({from:y,to:T,amount:H}){let C=await Df("/wallet/createtransaction",{amount:H,owner_address:y,to_address:T,visible:!0});if(!C.txID||!C.raw_data_hex||!C.raw_data)throw new zy("toolbox_tron_transaction_creation_failed");let U=C.raw_data?.contract?.[0]?.parameter?.value;if(U?.to_address!==T||U?.owner_address!==y||U?.amount!==H)throw new zy("toolbox_tron_transaction_creation_failed");return yT(C),C}async function AU({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f,feeLimit:C,callValue:o=0}){let U=await Df("/wallet/triggersmartcontract",{call_value:o,contract_address:T,fee_limit:C,function_selector:H,owner_address:y,parameter:f,visible:!0});if(!U.result.result||!U.transaction?.txID||!U.transaction?.raw_data_hex)throw new zy("toolbox_tron_transaction_creation_failed");let X=U.transaction.raw_data?.contract?.[0]?.parameter?.value;if(X?.contract_address!==T||X?.owner_address!==y)throw new zy("toolbox_tron_transaction_creation_failed");return yT(U.transaction),U.transaction}function YU({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return Df("/wallet/triggerconstantcontract",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}function K6({ownerAddress:y,contractAddress:T,functionSelector:H,parameter:f}){return Df("/wallet/estimateenergy",{contract_address:T,function_selector:H,owner_address:y,parameter:f,visible:!0})}async function pT(y){try{let{result:T,txid:H}=await Df("/wallet/broadcasttransaction",{raw_data:y.raw_data,raw_data_hex:y.raw_data_hex,signature:y.signature,txID:y.txID,visible:y.visible});if(!T||!H)throw new zy("toolbox_tron_token_transfer_failed");return H}catch(T){throw new zy("toolbox_tron_broadcast_failed",{error:T})}}async function lT(){let y={};try{let{chainParameter:T}=await ZU("/wallet/getchainparameters");for(let H of T)y[H.key]=H.value}catch(T){M1({condition:!0,id:"tron_chain_params_failed",warning:`Failed to fetch chain params, using defaults: ${T instanceof Error?T.message:T}`})}return{bandwidthFee:y.getTransactionFee??V6,createAccountFee:y.getCreateNewAccountFeeInSystemContract??y.getCreateAccountFee??v6,energyFee:y.getEnergyFee??p6,memoFee:y.getMemoFee??l6}}async function xH(y){try{let T=await Df("/wallet/getaccountresource",{address:y,visible:!0});return{bandwidth:{free:(T.freeNetLimit??600)-(T.freeNetUsed??0),total:T.NetLimit??0,used:T.NetUsed??0},energy:{total:T.EnergyLimit??0,used:T.EnergyUsed??0}}}catch(T){return M1({condition:!0,id:"tron_account_resources_failed",warning:`Failed to fetch account resources, using defaults: ${T instanceof Error?T.message:T}`}),{bandwidth:{free:600,total:0,used:0},energy:{total:0,used:0}}}}async function jT(y){try{let T=await Df("/wallet/getaccount",{address:y,visible:!0});return T&&Object.keys(T).length>0}catch{return!1}}async function nH(y){try{let T=await K6({...y,ownerAddress:y.sender}),H=T.energy_required??T.energyRequired;if(T.result&&!T.result.result)throw new zy("toolbox_tron_trongrid_api_error",{message:T.result.message||"estimateenergy failed"});if(H!==void 0){if(Number.isFinite(H)&&H>0)return H;throw new zy("toolbox_tron_trongrid_api_error",{message:"Invalid estimateenergy response"})}}catch(T){M1({condition:!0,id:"tron_energy_estimation_failed",warning:`Failed to estimate energy with estimateenergy, falling back to triggerconstantcontract: ${T instanceof Error?T.message:T}`})}try{let{energy_used:T}=await YU({...y,ownerAddress:y.sender});return T}catch(T){return M1({condition:!0,id:"tron_energy_estimation_fallback_failed",warning:`Failed to estimate energy, using default: ${T instanceof Error?T.message:T}`}),65000}}async function JU({assetAddress:y,owner:T,spender:H}){let f=fT([{type:"address",value:T},{type:"address",value:H}]),o=(await YU({contractAddress:y,functionSelector:"allowance(address,address)",ownerAddress:H,parameter:f})).constant_result?.[0];if(!o)return 0n;try{return BigInt(`0x${o}`)}catch{return 0n}}var QU="https://api.trongrid.io",V6=1000,v6=1e6,p6=420,l6=1e6,j6=30000;var zU=E(()=>{RH()});import{bytesToHex as u6}from"@noble/hashes/utils.js";import{HDKey as h6}from"@scure/bip32";import{mnemonicToSeedSync as m6}from"@scure/bip39";import{AssetValue as ay,BaseDecimal as Z1,Chain as Ry,derivationPathToString as xU,getRPCUrl as t6,NetworkDerivationPath as nU,SwapKitError as Qy,updateDerivationPath as wU,warnOnce as NU}from"@swapkit/helpers";import{match as c6,P as wH}from"ts-pattern";function FU({phrase:y,derivationPath:T}){let H=h6.fromMasterSeed(m6(y)).derive(T);if(!H.privateKey)throw new Qy("toolbox_tron_no_signer");return u6(H.privateKey)}function $U({phrase:y,derivationPath:T,index:H}){let f=T||xU(wU(nU[Ry.Tron],{index:H||0}));return FU({derivationPath:f,phrase:y})}function i6({phrase:y,derivationPath:T}){let H=FU({derivationPath:T,phrase:y}),f=qU(H);return{getAddress:()=>Promise.resolve(f),signTransaction:(C)=>{yT(C);let o=XU({privateKey:H,txID:C.txID});return Promise.resolve({...C,signature:[o]})}}}function RU({transaction:y,memo:T,expiration:H,feeLimit:f}){let C={},o={};if(f!==void 0&&y.raw_data)C.fee_limit=f,o.fee_limit=f;if(T){let X=T.startsWith("0x")?T.replace(/^0x/,""):GU(T);C.data=X,o.data=X}if(H){let X=y.raw_data.expiration+H*1000;C.expiration=X,o.expiration=X}if(Object.keys(C).length===0)return y;let{raw_data_hex:U,txID:q}=yU(y.raw_data_hex,C);return{...y,raw_data:{...y.raw_data,...o},raw_data_hex:U,txID:q}}function IU(y={}){let T="index"in y?y.index||0:0,H=xU("derivationPath"in y&&y.derivationPath?y.derivationPath:wU(nU[Ry.Tron],{index:T})),f,C=!1;function o(){if(C)return Promise.resolve(f);return f=c6(y).with({phrase:wH.string},({phrase:_})=>i6({derivationPath:H,phrase:_})).with({signer:wH.not(wH.nullish)},({signer:_})=>_).otherwise(()=>{return}),C=!0,Promise.resolve(f)}async function U(){let _=await o();if(!_)throw new Qy("toolbox_tron_no_signer");return _.getAddress()}async function q(_,L){let x=_||OU,w=L??(await lT()).energyFee,n=x*w,k=Math.ceil(n*1.5);return Math.min(Math.max(k,1e7),150000000)}async function X({contractAddress:_,functionSelector:L,parameter:x,sender:w,memo:n,expiration:k,extraEnergy:$=0}){let z=await nH({contractAddress:_,functionSelector:L,parameter:x,sender:w}),F=await q(z+$),I=await AU({contractAddress:_,feeLimit:F,functionSelector:L,ownerAddress:w,parameter:x});return RU({expiration:k,feeLimit:F,memo:n,transaction:I})}async function G(_){if(!Iy(_))return[ay.from({chain:Ry.Tron})];try{let L=await WU(_);if(!L)return[ay.from({chain:Ry.Tron})];let x=[ay.from({chain:Ry.Tron,fromBaseDecimal:6,value:String(L.balance)})],w=L.trc20?.find((n)=>(FH in n));if(w){let n=w[FH];x.push(ay.from({asset:`TRON.USDT-${FH}`,fromBaseDecimal:6,value:n}))}return x}catch(L){return NU({condition:!0,id:"tron_toolbox_get_balance_failed",warning:`Tron API getBalance failed: ${L instanceof Error?L.message:L}`}),[ay.from({chain:Ry.Tron})]}}async function Z({recipient:_,assetValue:L,memo:x,expiration:w}){if(!Iy(_))throw new Qy("toolbox_tron_token_transfer_failed",{message:"invalid address"});let n=await o();if(!n)throw new Qy("toolbox_tron_no_signer");try{let k=await U(),$=await B({assetValue:L,expiration:w,memo:x,recipient:_,sender:k}),z=await n.signTransaction($),F=await pT(z);if(!F)throw new Qy("toolbox_tron_token_transfer_failed",{message:"broadcast failed"});return F}catch(k){throw new Qy("toolbox_tron_token_transfer_failed",{message:k instanceof Error?k.message:String(k)})}}function A({requiredBandwidth:_,resources:L,feePerUnit:x}){let w=Math.max(0,L.free+L.total-L.used);return _>w?(_-w)*x:0}async function M({memo:_,recipient:L,senderAddress:x}){let[w,n,k]=await Promise.all([lT(),jT(L),xH(x)]),$=n?0:w.createAccountFee,z=A({feePerUnit:w.bandwidthFee,requiredBandwidth:BU,resources:k.bandwidth}),F=_?w.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:Z1.TRON,value:$+z+F})}async function Q({assetValue:_,memo:L,recipient:x,senderAddress:w}){let n=_.address;if(!n)throw new Qy("toolbox_tron_invalid_token_identifier",{identifier:_.toString()});let[k,$,z,F]=await Promise.all([lT(),jT(x),xH(w),nH({contractAddress:n,functionSelector:"transfer(address,uint256)",parameter:fT([{type:"address",value:x},{type:"uint256",value:_.getBaseValue("string")}]),sender:w})]),v=F+($?0:kH),b=A({feePerUnit:k.bandwidthFee,requiredBandwidth:DU,resources:z.bandwidth}),l=Math.max(0,z.energy.total-z.energy.used),h=v>l?(v-l)*k.energyFee:0,s=L?k.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:Z1.TRON,value:b+h+s})}async function N({assetValue:_,memo:L,recipient:x}){let[w,n]=await Promise.all([lT(),jT(x)]);if(_.isGasAsset){let F=n?0:w.createAccountFee,I=L?w.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:Z1.TRON,value:F+BU*w.bandwidthFee+I})}let $=await q(OU+(n?0:kH),w.energyFee),z=L?w.memoFee:0;return ay.from({chain:Ry.Tron,fromBaseDecimal:Z1.TRON,value:$+DU*w.bandwidthFee+z})}async function J({assetValue:_,memo:L,recipient:x,sender:w}){let n=await o();try{let k=w?w:n?await U():void 0;if(!k)return N({assetValue:_,memo:L,recipient:x});return _.isGasAsset?M({memo:L,recipient:x,senderAddress:k}):Q({assetValue:_,memo:L,recipient:x,senderAddress:k})}catch(k){throw NU({condition:!0,id:"tron_toolbox_fee_estimation_failed",warning:`Failed to calculate exact fee: ${k instanceof Error?k.message:k}`}),new Qy("toolbox_fee_estimation_failed",{chain:Ry.Tron,error:k})}}async function B({recipient:_,assetValue:L,memo:x,sender:w,expiration:n}){if(!Iy(_)||!Iy(w))throw new Qy("toolbox_tron_transaction_creation_failed",{message:"invalid address"});if(L.isGasAsset){let z=await LU({amount:L.getBaseValue("number"),from:w,to:_});return RU({expiration:n,memo:x,transaction:z})}let k=L.address;if(!k)throw new Qy("toolbox_tron_invalid_token_identifier",{identifier:L.toString()});let $=await jT(_);return X({contractAddress:k,expiration:n,extraEnergy:$?0:kH,functionSelector:"transfer(address,uint256)",memo:x,parameter:fT([{type:"address",value:_},{type:"uint256",value:L.getBaseValue("string")}]),sender:w})}async function D(_){yT(_);let L=await o();if(!L)throw new Qy("toolbox_tron_no_signer");return L.signTransaction(_)}async function W(_){let L=await D(_);return pT(L)}function R({assetAddress:_,spenderAddress:L,from:x}){return JU({assetAddress:_,owner:x,spender:L})}async function O({assetAddress:_,spenderAddress:L,from:x,amount:w}){let n=await R({assetAddress:_,from:x,spenderAddress:L});if(!w)return n>0n;return n>=BigInt(w)}async function Y({assetAddress:_,spenderAddress:L,amount:x,from:w}){if(!Iy(_)||!Iy(L))throw new Qy("toolbox_tron_approve_failed");let n=await o();if(!n)throw new Qy("toolbox_tron_no_signer");let k=w||await U(),$=x!==void 0?BigInt(x).toString():g6;try{let z=await X({contractAddress:_,functionSelector:"approve(address,uint256)",parameter:fT([{type:"address",value:L},{type:"uint256",value:$}]),sender:k}),F=await n.signTransaction(z),I=await pT(F);if(!I)throw new Qy("toolbox_tron_approve_failed");return I}catch(z){if(z instanceof Qy)throw z;throw new Qy("toolbox_tron_approve_failed",{error:z})}}return{approve:Y,broadcastTransaction:pT,createTransaction:B,estimateTransactionFee:J,getAddress:U,getApprovedAmount:R,getBalance:G,getRpcUrl:()=>t6(Ry.Tron),isApproved:O,signAndBroadcastTransaction:W,signTransaction:D,transfer:Z,validateAddress:Iy}}var kU,BU=268,OU=65000,kH=25000,DU=345,FH="TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",g6="115792089237316195423570985008687907853269984665640564039457584007913129639935";var SU=E(()=>{fU();zU();RH();kU=Iy});var $H={};Ty($H,{validateTronAddress:()=>kU,getTronToolbox:()=>IU,getTronPrivateKeyFromMnemonic:()=>$U});var IH=E(()=>{SU()});import{AssetValue as KT,Chain as jy,derivationPathToString as d6,getChainConfig as r6,getRPCUrl as PU,NetworkDerivationPath as a6,SKConfig as s6,SwapKitError as TT}from"@swapkit/helpers";import{match as e6,P as y9}from"ts-pattern";function W1(y){if(!y||typeof y!=="string"||!y.startsWith("G")||y.length!==56)return!1;return f9.test(y)}function T9(y){if(typeof y!=="object"||y===null)return;let T="response"in y?y.response:void 0;return typeof T?.status==="number"?T.status:void 0}function C9(y){return T9(y)===504}function H9(y){return y.hash?.().toString("hex")}function o9(y){return[...new Set([y,...s6.get("rpcUrls")[jy.Stellar]])].filter(Boolean)}async function U9(y){if(!W1(y))return!1;try{let{StrKey:T}=await import("@stellar/stellar-sdk");return T.isValidEd25519PublicKey(y)}catch{return!1}}function EU(y={}){let T,H=y.derivationPath||a6[jy.Stellar],f=d6(H.slice(0,3));async function C({phrase:D,path:W}){let{HDKey:R}=await import("micro-key-producer/slip10.js"),{mnemonicToSeedSync:O}=await import("@scure/bip39"),{Keypair:Y}=await import("@stellar/stellar-sdk"),_=O(D),x=R.fromMasterSeed(_).derive(W,!0);return Y.fromRawEd25519Seed(Buffer.from(x.privateKey))}async function o(){if(T)return T;let D=e6(y).with({phrase:y9.string},({phrase:W})=>W).otherwise(()=>{return});if(!D)throw new TT("toolbox_stellar_no_signer");return T=await C({path:f,phrase:D}),T}async function U(D){let{Horizon:W}=await import("@stellar/stellar-sdk"),R=D||await PU(jy.Stellar);return new W.Server(R)}async function q(D,W){for(let R of W)try{return(await(await U(R)).transactions().transaction(D).call()).hash||D}catch{}return}async function X(D,W){let R=await PU(jy.Stellar),O=o9(R),Y=H9(D),_;for(let L of O)try{let x=await U(L),{hash:w}=await x.submitTransaction(D);return w}catch(x){if(_=x,!C9(x))break;let w=Y?await q(Y,O):void 0;if(w)return w}throw new TT(W,_)}async function G(){try{return(await o()).publicKey()}catch{return""}}async function Z(D){let W=D||await G();if(!W)throw new TT("toolbox_stellar_account_not_found");try{return(await(await U()).loadAccount(W)).balances.map((Y)=>{if(Y.asset_type==="native")return KT.from({chain:jy.Stellar,value:Y.balance});let _="asset_code"in Y?Y.asset_code:"",L="asset_issuer"in Y?Y.asset_issuer:"";return KT.from({asset:`${jy.Stellar}.${_}-${L}`,asyncTokenLookup:!1,value:Y.balance})})}catch{return[KT.from({chain:jy.Stellar,value:0})]}}async function A({recipient:D,assetValue:W,memo:R,sender:O}){if(R){if(new TextEncoder().encode(R).length>28)throw new TT("helpers_invalid_memo_type")}if(!await U9(D))throw new TT("core_transaction_invalid_recipient_address");let _=O||await G();if(!_)throw new TT("toolbox_stellar_no_signer");let{Asset:L,Memo:x,Networks:w,Operation:n,TransactionBuilder:k}=await import("@stellar/stellar-sdk"),$=await U(),z=await $.fetchBaseFee(),F=await $.loadAccount(_),I=new k(F,{fee:String(z),networkPassphrase:w.PUBLIC});if(W.isGasAsset)try{await $.loadAccount(D),I.addOperation(n.payment({amount:W.getValue("string"),asset:L.native(),destination:D}))}catch{I.addOperation(n.createAccount({destination:D,startingBalance:W.getValue("string")}))}else I.addOperation(n.payment({amount:W.getValue("string"),asset:new L(W.symbol,W.address),destination:D}));if(R)I.addMemo(x.text(R));return I.setTimeout(30).build()}async function M(D){let{TransactionBuilder:W,Networks:R}=await import("@stellar/stellar-sdk"),O=await o(),Y=W.fromXDR(D.toXDR(),R.PUBLIC);return Y.sign(O),Y}function Q(D){return X(D,"toolbox_stellar_broadcast_error")}async function N({recipient:D,assetValue:W,memo:R}){let O=await o(),Y=O.publicKey(),_=await A({assetValue:W,memo:R,recipient:D,sender:Y});return _.sign(O),X(_,"toolbox_stellar_transaction_failed")}async function J(D){let W=await M(D);return Q(W)}async function B(){let{baseDecimal:D}=r6(jy.Stellar);try{let O=(await(await U()).feeStats()).fee_charged.p50;return KT.from({chain:jy.Stellar,fromBaseDecimal:D,value:O})}catch{return KT.from({chain:jy.Stellar,fromBaseDecimal:D,value:"100"})}}return{broadcastTransaction:Q,createTransaction:A,estimateTransactionFee:B,getAddress:G,getBalance:Z,signAndBroadcastTransaction:J,signTransaction:M,transfer:N,validateAddress:W1}}var f9;var bU=E(()=>{f9=/^G[A-Z2-7]{55}$/});var L1={};Ty(L1,{validateStellarAddress:()=>W1,getStellarToolbox:()=>EU});var A1=E(()=>{bU()});import{AssetValue as q9,Chain as j,CosmosChains as SH,EVMChains as PH,FeeOption as X9,SwapKitError as G9,UTXOChains as vU}from"@swapkit/helpers";async function FW(){let{match:y}=await import("ts-pattern"),{validateAptosAddress:T}=await Promise.resolve().then(() => (hT(),uT)),{validateEVMAddress:H}=await Promise.resolve().then(() => (h1(),A5)),{validateCardanoAddress:f}=await Promise.resolve().then(() => (d1(),i1)),{getCosmosAddressValidator:C}=await Promise.resolve().then(() => (D0(),O0)),{validateHyperCoreAddress:o}=await Promise.resolve().then(() => (xC(),RC)),{validateSolanaAddress:U}=await Promise.resolve().then(() => ($C(),FC)),{validateStarknetAddress:q}=await Promise.resolve().then(() => (S0(),I0)),{validateSuiAddress:X}=await Promise.resolve().then(() => (v0(),V0)),{validateTonAddress:G}=await Promise.resolve().then(() => (j0(),l0)),{getUTXOAddressValidator:Z}=await Promise.resolve().then(() => (fH(),yH)),{validateNearAddress:A}=await Promise.resolve().then(() => (YH(),AH)),{validateRadixAddress:M}=await Promise.resolve().then(() => (NH(),zH)),{validateRippleAddress:Q}=await Promise.resolve().then(() => (OH(),BH)),{validateTronAddress:N}=await Promise.resolve().then(() => (IH(),$H)),{validateStellarAddress:J}=await Promise.resolve().then(() => (A1(),L1));return function({address:D,chain:W}){return y(W).with(...PH,()=>H(D)).with(...vU,(O)=>{return Z(O)(D)}).with(...SH,(O)=>{return C(O)(D)}).with(j.Aptos,()=>T(D)).with(j.Radix,()=>M(D)).with(j.Hype,()=>o(D)).with(j.Near,()=>A(D)).with(j.Ripple,()=>Q(D)).with(j.Solana,()=>U(D)).with(j.Stellar,()=>J(D)).with(j.Starknet,()=>q(D)).with(j.Sui,()=>X(D)).with(j.Ton,()=>G(D)).with(j.Tron,()=>N(D)).with(j.Cardano,()=>f(D)).otherwise(()=>!1)}}function $W(y){return async function(H){let{match:f}=await import("ts-pattern");return f(y).returnType().with(...PH,async(C)=>{let o=await VU(C),U=await o.createTransaction(H),q="feeOptionKey"in H?H.feeOptionKey:X9.Fast;return o.estimateTransactionFee({...U,feeOption:q})}).with(j.Bitcoin,j.BitcoinCash,j.Dogecoin,j.Dash,j.Litecoin,j.Solana,j.Ripple,j.Tron,j.Near,j.Cardano,j.Hype,async(C)=>{return(await VU(C)).estimateTransactionFee(H)}).with(j.Aptos,async()=>{let{getAptosToolbox:C}=await Promise.resolve().then(() => (hT(),uT));return C().estimateTransactionFee(H)}).with(j.Starknet,async()=>{let{getStarknetToolbox:C}=await Promise.resolve().then(() => (S0(),I0));return(await C()).estimateTransactionFee(H)}).with(j.Stellar,async()=>{let{getStellarToolbox:C}=await Promise.resolve().then(() => (A1(),L1));return C().estimateTransactionFee()}).with(j.Sui,async()=>{let{getSuiToolbox:C}=await Promise.resolve().then(() => (v0(),V0));return C().estimateTransactionFee(H)}).with(j.Ton,async()=>{let{getTONToolbox:C}=await Promise.resolve().then(() => (j0(),l0));return C().estimateTransactionFee(H)}).with(...SH,async()=>{let{estimateTransactionFee:C}=await Promise.resolve().then(() => (D0(),O0));return C(H)}).otherwise(async()=>q9.from({chain:y}))}}async function VU(y,T){let{match:H}=await import("ts-pattern");return H(y).returnType().with(...PH,async()=>{let{getEvmToolboxAsync:f}=await Promise.resolve().then(() => (u1(),Z5));return await f(y,T)}).with(...vU,async()=>{let{getUtxoToolbox:f}=await Promise.resolve().then(() => (fH(),yH));return f(y,T)}).with(...SH,async()=>{let{getCosmosToolbox:f}=await Promise.resolve().then(() => (D0(),O0));return f(y,T)}).with(j.Aptos,async()=>{let{getAptosToolbox:f}=await Promise.resolve().then(() => (hT(),uT));return f(T)}).with(j.Hype,async()=>{let{getHyperCoreToolbox:f}=await Promise.resolve().then(() => (xC(),RC));return f(T)}).with(j.Radix,async()=>{let{getRadixToolbox:f}=await Promise.resolve().then(() => (NH(),zH));return f(T)}).with(j.Ripple,async()=>{let{getRippleToolbox:f}=await Promise.resolve().then(() => (OH(),BH));return f(T)}).with(j.Solana,async()=>{let{getSolanaToolbox:f}=await Promise.resolve().then(() => ($C(),FC));return f(T)}).with(j.Stellar,async()=>{let{getStellarToolbox:f}=await Promise.resolve().then(() => (A1(),L1));return f(T)}).with(j.Starknet,async()=>{let{getStarknetToolbox:f}=await Promise.resolve().then(() => (S0(),I0));return f(T)}).with(j.Sui,async()=>{let{getSuiToolbox:f}=await Promise.resolve().then(() => (v0(),V0));return f(T)}).with(j.Tron,async()=>{let{getTronToolbox:f}=await Promise.resolve().then(() => (IH(),$H));return f(T)}).with(j.Near,async()=>{let{getNearToolbox:f}=await Promise.resolve().then(() => (YH(),AH));return f(T)}).with(j.Cardano,async()=>{let{getCardanoToolbox:f}=await Promise.resolve().then(() => (d1(),i1));return f(T)}).with(j.Ton,async()=>{let{getTONToolbox:f}=await Promise.resolve().then(() => (j0(),l0));return f(T)}).otherwise(()=>{throw new G9("toolbox_not_supported",{chain:y})})}export{VU as getToolbox,$W as getFeeEstimator,FW as getAddressValidator};